linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / s390 / cio / device_ops.c
index 795abb5..3a50b19 100644 (file)
@@ -359,9 +359,10 @@ read_dev_chars (struct ccw_device *cdev, void **buffer, int length)
        CIO_TRACE_EVENT (4, "rddevch");
        CIO_TRACE_EVENT (4, sch->dev.bus_id);
 
-       rdc_ccw = kzalloc(sizeof(struct ccw1), GFP_KERNEL | GFP_DMA);
+       rdc_ccw = kmalloc(sizeof(struct ccw1), GFP_KERNEL | GFP_DMA);
        if (!rdc_ccw)
                return -ENOMEM;
+       memset(rdc_ccw, 0, sizeof(struct ccw1));
        rdc_ccw->cmd_code = CCW_CMD_RDC;
        rdc_ccw->count = length;
        rdc_ccw->flags = CCW_FLAG_SLI;
@@ -425,14 +426,16 @@ read_conf_data_lpm (struct ccw_device *cdev, void **buffer, int *length, __u8 lp
        if (!ciw || ciw->cmd == 0)
                return -EOPNOTSUPP;
 
-       rcd_ccw = kzalloc(sizeof(struct ccw1), GFP_KERNEL | GFP_DMA);
+       rcd_ccw = kmalloc(sizeof(struct ccw1), GFP_KERNEL | GFP_DMA);
        if (!rcd_ccw)
                return -ENOMEM;
-       rcd_buf = kzalloc(ciw->count, GFP_KERNEL | GFP_DMA);
+       memset(rcd_ccw, 0, sizeof(struct ccw1));
+       rcd_buf = kmalloc(ciw->count, GFP_KERNEL | GFP_DMA);
        if (!rcd_buf) {
                kfree(rcd_ccw);
                return -ENOMEM;
        }
+       memset (rcd_buf, 0, ciw->count);
        rcd_ccw->cmd_code = ciw->cmd;
        rcd_ccw->cda = (__u32) __pa (rcd_buf);
        rcd_ccw->count = ciw->count;