struct channel *ch;
 
        DBF_TEXT(trace, 2, __FUNCTION__);
-       if ((ch =
-            (struct channel *) kmalloc(sizeof (struct channel),
-                                       GFP_KERNEL)) == NULL) {
+       ch = kzalloc(sizeof(struct channel), GFP_KERNEL);
+       if (!ch) {
                ctc_pr_warn("ctc: Out of memory in add_channel\n");
                return -1;
        }
-       memset(ch, 0, sizeof (struct channel));
-       if ((ch->ccw = kmalloc(8*sizeof(struct ccw1),
-                                              GFP_KERNEL | GFP_DMA)) == NULL) {
+       /* assure all flags and counters are reset */
+       ch->ccw = kzalloc(8 * sizeof(struct ccw1), GFP_KERNEL | GFP_DMA);
+       if (!ch->ccw) {
                kfree(ch);
                ctc_pr_warn("ctc: Out of memory in add_channel\n");
                return -1;
        }
 
-       memset(ch->ccw, 0, 8*sizeof(struct ccw1));      // assure all flags and counters are reset
 
        /**
         * "static" ccws are used in the following way:
                return -1;
        }
        fsm_newstate(ch->fsm, CH_STATE_IDLE);
-       if ((ch->irb = kmalloc(sizeof (struct irb),
-                                             GFP_KERNEL)) == NULL) {
+       ch->irb = kzalloc(sizeof(struct irb), GFP_KERNEL);
+       if (!ch->irb) {
                ctc_pr_warn("ctc: Out of memory in add_channel\n");
                kfree_fsm(ch->fsm);
                kfree(ch->ccw);
                kfree(ch);
                return -1;
        }
-       memset(ch->irb, 0, sizeof (struct irb));
        while (*c && less_than((*c)->id, ch->id))
                c = &(*c)->next;
        if (*c && (!strncmp((*c)->id, ch->id, CTC_ID_SIZE))) {
        if (!get_device(&cgdev->dev))
                return -ENODEV;
 
-       priv = kmalloc(sizeof (struct ctc_priv), GFP_KERNEL);
+       priv = kzalloc(sizeof(struct ctc_priv), GFP_KERNEL);
        if (!priv) {
                ctc_pr_err("%s: Out of memory\n", __func__);
                put_device(&cgdev->dev);
                return -ENOMEM;
        }
 
-       memset(priv, 0, sizeof (struct ctc_priv));
        rc = ctc_add_files(&cgdev->dev);
        if (rc) {
                kfree(priv);
        DBF_TEXT(setup, 3, __FUNCTION__);
 
        if (alloc_device) {
-               dev = kmalloc(sizeof (struct net_device), GFP_KERNEL);
+               dev = kzalloc(sizeof(struct net_device), GFP_KERNEL);
                if (!dev)
                        return NULL;
-               memset(dev, 0, sizeof (struct net_device));
        }
 
        dev->priv = privptr;