linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / usb / storage / isd200.c
index 6831dca..ecb328a 100644 (file)
@@ -1361,19 +1361,21 @@ static int isd200_init_info(struct us_data *us)
        struct isd200_info *info;
 
        info = (struct isd200_info *)
-                       kzalloc(sizeof(struct isd200_info), GFP_KERNEL);
+                       kmalloc(sizeof(struct isd200_info), GFP_KERNEL);
        if (!info)
                retStatus = ISD200_ERROR;
        else {
+               memset(info, 0, sizeof(struct isd200_info));
                info->id = (struct hd_driveid *)
-                               kzalloc(sizeof(struct hd_driveid), GFP_KERNEL);
+                               kmalloc(sizeof(struct hd_driveid), GFP_KERNEL);
                info->RegsBuf = (unsigned char *)
                                kmalloc(sizeof(info->ATARegs), GFP_KERNEL);
                if (!info->id || !info->RegsBuf) {
                        isd200_free_info_ptrs(info);
                        kfree(info);
                        retStatus = ISD200_ERROR;
-               }
+               } else
+                       memset(info->id, 0, sizeof(struct hd_driveid));
        }
 
        if (retStatus == ISD200_GOOD) {
@@ -1382,7 +1384,7 @@ static int isd200_init_info(struct us_data *us)
        } else
                US_DEBUGP("ERROR - kmalloc failure\n");
 
-       return retStatus;
+       return(retStatus);
 }
 
 /**************************************************************************