Changeset 28085


Ignore:
Timestamp:
Nov 7, 2015, 9:11:34 AM (19 months ago)
Author:
brainslayer
Message:

solve the same leak for broadcom devices

Location:
src/linux/universal
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-3.10/arch/arm/plat-brcm/nvram_linux.c

    r28050 r28085  
    415415                printk( KERN_INFO "nvram: consolidating space!\n");
    416416                /* Consolidate space and try again */
    417                 if ((header = kmalloc(nvram_space,GFP_ATOMIC))) {
     417                if ((header = vmalloc(nvram_space))) {
    418418                        if (_nvram_commit(header) == 0)
    419419                                ret = _nvram_set(name, value);
    420                         kfree(header);
     420                        vfree(header);
    421421                }
    422422        }
     
    480480        u_int32_t offset;
    481481
    482         if (!(buf = kmalloc(nvram_space,GFP_ATOMIC))) {
     482        if (!(buf = vmalloc(nvram_space))) {
    483483                printk(KERN_WARNING "nvram_commit: out of memory\n");
    484484                return -ENOMEM;
     
    511511done:
    512512        mutex_unlock(&nvram_sem);
    513         kfree(buf);
     513        vfree(buf);
    514514        return ret;
    515515}
     
    547547        /* Backup sector blocks to be erased */
    548548        erasesize = ROUNDUP(nvram_space, nvram_mtd->erasesize);
    549         if (!(buf = kmalloc(erasesize,GFP_ATOMIC))) {
     549        if (!(buf = vmalloc(erasesize))) {
    550550                printk(KERN_WARNING "nvram_commit: out of memory\n");
    551551                return -ENOMEM;
     
    653653done:
    654654        mutex_unlock(&nvram_sem);
    655         kfree(buf);
     655        vfree(buf);
    656656        return ret;
    657657}
  • src/linux/universal/linux-3.10/arch/mips/brcm-boards/bcm947xx/nvram_linux.c

    r27514 r28085  
    487487
    488488        if (!t) {
    489                 if (!(t = vmalloc(sizeof(struct nvram_tuple) + strlen(name) + 1)))
     489                if (!(t = kmalloc(sizeof(struct nvram_tuple) + strlen(name) + 1,GFP_ATOMIC)))
    490490                        return NULL;
    491491
     
    512512                nvram_offset = 0;
    513513        else
    514                 vfree(t);
     514                kfree(t);
    515515}
    516516
     
    793793
    794794        if (count > sizeof(tmp)) {
    795                 if (!(name = vmalloc(count)))
     795                if (!(name = kmalloc(count,GFP_ATOMIC)))
    796796                        return -ENOMEM;
    797797        }
     
    833833done:
    834834        if (name != tmp)
    835                 vfree(name);
     835                kfree(name);
    836836
    837837        return ret;
     
    844844
    845845        if (count >= sizeof(tmp)) {
    846                 if (!(name = vmalloc(count + 1)))
     846                if (!(name = kmalloc(count + 1,GFP_ATOMIC)))
    847847                        return -ENOMEM;
    848848        }
     
    862862done:
    863863        if (name != tmp)
    864                 vfree(name);
     864                kfree(name);
    865865
    866866        return ret;
  • src/linux/universal/linux-3.18/arch/arm/plat-brcm/nvram_linux.c

    r27924 r28085  
    416416                printk( KERN_INFO "nvram: consolidating space!\n");
    417417                /* Consolidate space and try again */
    418                 if ((header = kmalloc(nvram_space,GFP_ATOMIC))) {
     418                if ((header = vmalloc(nvram_space))) {
    419419                        if (_nvram_commit(header) == 0)
    420420                                ret = _nvram_set(name, value);
    421                         kfree(header);
     421                        vfree(header);
    422422                }
    423423        }
     
    481481        u_int32_t offset;
    482482
    483         if (!(buf = kmalloc(nvram_space,GFP_ATOMIC))) {
     483        if (!(buf = vmalloc(nvram_space))) {
    484484                printk(KERN_WARNING "nvram_commit: out of memory\n");
    485485                return -ENOMEM;
     
    512512done:
    513513        mutex_unlock(&nvram_sem);
    514         kfree(buf);
     514        vfree(buf);
    515515        return ret;
    516516}
     
    548548        /* Backup sector blocks to be erased */
    549549        erasesize = ROUNDUP(nvram_space, nvram_mtd->erasesize);
    550         if (!(buf = kmalloc(erasesize,GFP_ATOMIC))) {
     550        if (!(buf = vmalloc(erasesize))) {
    551551                printk(KERN_WARNING "nvram_commit: out of memory\n");
    552552                return -ENOMEM;
     
    654654done:
    655655        mutex_unlock(&nvram_sem);
    656         kfree(buf);
     656        vfree(buf);
    657657        return ret;
    658658}
  • src/linux/universal/linux-3.18/arch/mips/brcm-boards/bcm947xx/nvram_linux.c

    r25569 r28085  
    487487
    488488        if (!t) {
    489                 if (!(t = vmalloc(sizeof(struct nvram_tuple) + strlen(name) + 1)))
     489                if (!(t = kmalloc(sizeof(struct nvram_tuple) + strlen(name) + 1,GFP_ATOMIC)))
    490490                        return NULL;
    491491
     
    512512                nvram_offset = 0;
    513513        else
    514                 vfree(t);
     514                kfree(t);
    515515}
    516516
     
    793793
    794794        if (count > sizeof(tmp)) {
    795                 if (!(name = vmalloc(count)))
     795                if (!(name = kmalloc(count,GFP_ATOMIC)))
    796796                        return -ENOMEM;
    797797        }
     
    833833done:
    834834        if (name != tmp)
    835                 vfree(name);
     835                kfree(name);
    836836
    837837        return ret;
     
    844844
    845845        if (count >= sizeof(tmp)) {
    846                 if (!(name = vmalloc(count + 1)))
     846                if (!(name = kmalloc(count + 1,GFP_ATOMIC)))
    847847                        return -ENOMEM;
    848848        }
     
    862862done:
    863863        if (name != tmp)
    864                 vfree(name);
     864                kfree(name);
    865865
    866866        return ret;
Note: See TracChangeset for help on using the changeset viewer.