Pull bugzilla-7897 into release branch
[sfrench/cifs-2.6.git] / sound / isa / gus / gus_mem.c
index e8bdb860a19fc03278e928a8621677eea801f7a1..7107753b85b52b727499ebdc4a8c018b988166ec 100644 (file)
@@ -34,9 +34,9 @@ static void snd_gf1_mem_info_read(struct snd_info_entry *entry,
 void snd_gf1_mem_lock(struct snd_gf1_mem * alloc, int xup)
 {
        if (!xup) {
-               down(&alloc->memory_mutex);
+               mutex_lock(&alloc->memory_mutex);
        } else {
-               up(&alloc->memory_mutex);
+               mutex_unlock(&alloc->memory_mutex);
        }
 }
 
@@ -59,7 +59,7 @@ static struct snd_gf1_mem_block *snd_gf1_mem_xalloc(struct snd_gf1_mem * alloc,
                                alloc->first = nblock;
                        else
                                nblock->prev->next = nblock;
-                       up(&alloc->memory_mutex);
+                       mutex_unlock(&alloc->memory_mutex);
                        return NULL;
                }
                pblock = pblock->next;
@@ -80,7 +80,7 @@ int snd_gf1_mem_xfree(struct snd_gf1_mem * alloc, struct snd_gf1_mem_block * blo
 {
        if (block->share) {     /* ok.. shared block */
                block->share--;
-               up(&alloc->memory_mutex);
+               mutex_unlock(&alloc->memory_mutex);
                return 0;
        }
        if (alloc->first == block) {
@@ -143,9 +143,8 @@ static int snd_gf1_mem_find(struct snd_gf1_mem * alloc,
        struct snd_gf1_mem_block *pblock;
        unsigned int ptr1, ptr2;
 
-       align--;
-       if (w_16 && align < 1)
-               align = 1;
+       if (w_16 && align < 2)
+               align = 2;
        block->flags = w_16 ? SNDRV_GF1_MEM_BLOCK_16BIT : 0;
        block->owner = SNDRV_GF1_MEM_OWNER_DRIVER;
        block->share = 0;
@@ -165,7 +164,7 @@ static int snd_gf1_mem_find(struct snd_gf1_mem * alloc,
                        if (pblock->next->ptr < boundary)
                                ptr2 = pblock->next->ptr;
                }
-               ptr1 = (pblock->ptr + pblock->size + align) & ~align;
+               ptr1 = ALIGN(pblock->ptr + pblock->size, align);
                if (ptr1 >= ptr2)
                        continue;
                size1 = ptr2 - ptr1;
@@ -244,7 +243,7 @@ int snd_gf1_mem_init(struct snd_gus_card * gus)
 #endif
 
        alloc = &gus->gf1.mem_alloc;
-       init_MUTEX(&alloc->memory_mutex);
+       mutex_init(&alloc->memory_mutex);
        alloc->first = alloc->last = NULL;
        if (!gus->gf1.memory)
                return 0;
@@ -264,10 +263,8 @@ int snd_gf1_mem_init(struct snd_gus_card * gus)
        if (snd_gf1_mem_xalloc(alloc, &block) == NULL)
                return -ENOMEM;
 #ifdef CONFIG_SND_DEBUG
-       if (! snd_card_proc_new(gus->card, "gusmem", &entry)) {
-               snd_info_set_text_ops(entry, gus, 1024, snd_gf1_mem_info_read);
-               entry->c.text.read_size = 256 * 1024;
-       }
+       if (! snd_card_proc_new(gus->card, "gusmem", &entry))
+               snd_info_set_text_ops(entry, gus, snd_gf1_mem_info_read);
 #endif
        return 0;
 }
@@ -299,7 +296,7 @@ static void snd_gf1_mem_info_read(struct snd_info_entry *entry,
 
        gus = entry->private_data;
        alloc = &gus->gf1.mem_alloc;
-       down(&alloc->memory_mutex);
+       mutex_lock(&alloc->memory_mutex);
        snd_iprintf(buffer, "8-bit banks       : \n    ");
        for (i = 0; i < 4; i++)
                snd_iprintf(buffer, "0x%06x (%04ik)%s", alloc->banks_8[i].address, alloc->banks_8[i].size >> 10, i + 1 < 4 ? "," : "");
@@ -343,7 +340,7 @@ static void snd_gf1_mem_info_read(struct snd_info_entry *entry,
        }
        snd_iprintf(buffer, "  Total: memory = %i, used = %i, free = %i\n",
                    total, used, total - used);
-       up(&alloc->memory_mutex);
+       mutex_unlock(&alloc->memory_mutex);
 #if 0
        ultra_iprintf(buffer, "  Verify: free = %i, max 8-bit block = %i, max 16-bit block = %i\n",
                      ultra_memory_free_size(card, &card->gf1.mem_alloc),