aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message/fusion')
-rw-r--r--drivers/message/fusion/mptctl.c36
1 files changed, 12 insertions, 24 deletions
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c
index b9618f4e3ab6..12dfa2e84f0f 100644
--- a/drivers/message/fusion/mptctl.c
+++ b/drivers/message/fusion/mptctl.c
@@ -977,10 +977,9 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
977 * structures for the SG elements. 977 * structures for the SG elements.
978 */ 978 */
979 i = MAX_SGL_BYTES / 8; 979 i = MAX_SGL_BYTES / 8;
980 buflist = kmalloc(i, GFP_USER); 980 buflist = kzalloc(i, GFP_USER);
981 if (buflist == NULL) 981 if (!buflist)
982 return NULL; 982 return NULL;
983 memset(buflist, 0, i);
984 buflist_ent = 0; 983 buflist_ent = 0;
985 984
986 /* Allocate a single block of memory to store the sg elements and 985 /* Allocate a single block of memory to store the sg elements and
@@ -1379,13 +1378,12 @@ mptctl_gettargetinfo (unsigned long arg)
1379 * 15- 8: Bus Number 1378 * 15- 8: Bus Number
1380 * 7- 0: Target ID 1379 * 7- 0: Target ID
1381 */ 1380 */
1382 pmem = kmalloc(numBytes, GFP_KERNEL); 1381 pmem = kzalloc(numBytes, GFP_KERNEL);
1383 if (pmem == NULL) { 1382 if (!pmem) {
1384 printk(KERN_ERR "%s::mptctl_gettargetinfo() @%d - no memory available!\n", 1383 printk(KERN_ERR "%s::mptctl_gettargetinfo() @%d - no memory available!\n",
1385 __FILE__, __LINE__); 1384 __FILE__, __LINE__);
1386 return -ENOMEM; 1385 return -ENOMEM;
1387 } 1386 }
1388 memset(pmem, 0, numBytes);
1389 pdata = (int *) pmem; 1387 pdata = (int *) pmem;
1390 1388
1391 /* Get number of devices 1389 /* Get number of devices
@@ -1570,12 +1568,11 @@ mptctl_eventenable (unsigned long arg)
1570 /* Have not yet allocated memory - do so now. 1568 /* Have not yet allocated memory - do so now.
1571 */ 1569 */
1572 int sz = MPTCTL_EVENT_LOG_SIZE * sizeof(MPT_IOCTL_EVENTS); 1570 int sz = MPTCTL_EVENT_LOG_SIZE * sizeof(MPT_IOCTL_EVENTS);
1573 ioc->events = kmalloc(sz, GFP_KERNEL); 1571 ioc->events = kzalloc(sz, GFP_KERNEL);
1574 if (ioc->events == NULL) { 1572 if (!ioc->events) {
1575 printk(KERN_ERR MYNAM ": ERROR - Insufficient memory to add adapter!\n"); 1573 printk(KERN_ERR MYNAM ": ERROR - Insufficient memory to add adapter!\n");
1576 return -ENOMEM; 1574 return -ENOMEM;
1577 } 1575 }
1578 memset(ioc->events, 0, sz);
1579 ioc->alloc_total += sz; 1576 ioc->alloc_total += sz;
1580 1577
1581 ioc->eventContext = 0; 1578 ioc->eventContext = 0;
@@ -2865,31 +2862,22 @@ static long compat_mpctl_ioctl(struct file *f, unsigned int cmd, unsigned long a
2865static int 2862static int
2866mptctl_probe(struct pci_dev *pdev, const struct pci_device_id *id) 2863mptctl_probe(struct pci_dev *pdev, const struct pci_device_id *id)
2867{ 2864{
2868 int err; 2865 MPT_IOCTL *mem;
2869 int sz;
2870 u8 *mem;
2871 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); 2866 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
2872 2867
2873 /* 2868 /*
2874 * Allocate and inite a MPT_IOCTL structure 2869 * Allocate and inite a MPT_IOCTL structure
2875 */ 2870 */
2876 sz = sizeof (MPT_IOCTL); 2871 mem = kzalloc(sizeof(MPT_IOCTL), GFP_KERNEL);
2877 mem = kmalloc(sz, GFP_KERNEL); 2872 if (!mem) {
2878 if (mem == NULL) { 2873 mptctl_remove(pdev);
2879 err = -ENOMEM; 2874 return -ENOMEM;
2880 goto out_fail;
2881 } 2875 }
2882 2876
2883 memset(mem, 0, sz); 2877 ioc->ioctl = mem;
2884 ioc->ioctl = (MPT_IOCTL *) mem;
2885 ioc->ioctl->ioc = ioc; 2878 ioc->ioctl->ioc = ioc;
2886 mutex_init(&ioc->ioctl->ioctl_mutex); 2879 mutex_init(&ioc->ioctl->ioctl_mutex);
2887 return 0; 2880 return 0;
2888
2889out_fail:
2890
2891 mptctl_remove(pdev);
2892 return err;
2893} 2881}
2894 2882
2895/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 2883/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/