diff options
Diffstat (limited to 'drivers/mtd/devices/slram.c')
| -rw-r--r-- | drivers/mtd/devices/slram.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/mtd/devices/slram.c b/drivers/mtd/devices/slram.c index 542a0c009006..5f49248a4856 100644 --- a/drivers/mtd/devices/slram.c +++ b/drivers/mtd/devices/slram.c | |||
| @@ -168,19 +168,16 @@ static int register_device(char *name, unsigned long start, unsigned long length | |||
| 168 | E("slram: Cannot allocate new MTD device.\n"); | 168 | E("slram: Cannot allocate new MTD device.\n"); |
| 169 | return(-ENOMEM); | 169 | return(-ENOMEM); |
| 170 | } | 170 | } |
| 171 | (*curmtd)->mtdinfo = kmalloc(sizeof(struct mtd_info), GFP_KERNEL); | 171 | (*curmtd)->mtdinfo = kzalloc(sizeof(struct mtd_info), GFP_KERNEL); |
| 172 | (*curmtd)->next = NULL; | 172 | (*curmtd)->next = NULL; |
| 173 | 173 | ||
| 174 | if ((*curmtd)->mtdinfo) { | 174 | if ((*curmtd)->mtdinfo) { |
| 175 | memset((char *)(*curmtd)->mtdinfo, 0, sizeof(struct mtd_info)); | ||
| 176 | (*curmtd)->mtdinfo->priv = | 175 | (*curmtd)->mtdinfo->priv = |
| 177 | kmalloc(sizeof(slram_priv_t), GFP_KERNEL); | 176 | kzalloc(sizeof(slram_priv_t), GFP_KERNEL); |
| 178 | 177 | ||
| 179 | if (!(*curmtd)->mtdinfo->priv) { | 178 | if (!(*curmtd)->mtdinfo->priv) { |
| 180 | kfree((*curmtd)->mtdinfo); | 179 | kfree((*curmtd)->mtdinfo); |
| 181 | (*curmtd)->mtdinfo = NULL; | 180 | (*curmtd)->mtdinfo = NULL; |
| 182 | } else { | ||
| 183 | memset((*curmtd)->mtdinfo->priv,0,sizeof(slram_priv_t)); | ||
| 184 | } | 181 | } |
| 185 | } | 182 | } |
| 186 | 183 | ||
