projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus
[deliverable/linux.git]
/
drivers
/
lightnvm
/
core.c
diff --git
a/drivers/lightnvm/core.c
b/drivers/lightnvm/core.c
index 0d1fb6b40c468e9bb4f455c06336972e0551f668..0dc9a80adb9443407aca24836f756b12c6ab5569 100644
(file)
--- a/
drivers/lightnvm/core.c
+++ b/
drivers/lightnvm/core.c
@@
-464,8
+464,13
@@
static int nvm_core_init(struct nvm_dev *dev)
dev->nr_luns = dev->luns_per_chnl * dev->nr_chnls;
dev->total_secs = dev->nr_luns * dev->sec_per_lun;
dev->nr_luns = dev->luns_per_chnl * dev->nr_chnls;
dev->total_secs = dev->nr_luns * dev->sec_per_lun;
+ dev->lun_map = kcalloc(BITS_TO_LONGS(dev->nr_luns),
+ sizeof(unsigned long), GFP_KERNEL);
+ if (!dev->lun_map)
+ return -ENOMEM;
INIT_LIST_HEAD(&dev->online_targets);
mutex_init(&dev->mlock);
INIT_LIST_HEAD(&dev->online_targets);
mutex_init(&dev->mlock);
+ spin_lock_init(&dev->lock);
return 0;
}
return 0;
}
@@
-585,6
+590,7
@@
int nvm_register(struct request_queue *q, char *disk_name,
return 0;
err_init:
return 0;
err_init:
+ kfree(dev->lun_map);
kfree(dev);
return ret;
}
kfree(dev);
return ret;
}
@@
-607,6
+613,7
@@
void nvm_unregister(char *disk_name)
up_write(&nvm_lock);
nvm_exit(dev);
up_write(&nvm_lock);
nvm_exit(dev);
+ kfree(dev->lun_map);
kfree(dev);
}
EXPORT_SYMBOL(nvm_unregister);
kfree(dev);
}
EXPORT_SYMBOL(nvm_unregister);
This page took
0.025141 seconds
and
5
git commands to generate.