Merge tag 'regulator-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[linux-2.6-microblaze.git] / drivers / s390 / net / ctcm_mpc.c
index 85a1a45..19ee91a 100644 (file)
@@ -655,24 +655,10 @@ static void ctcmpc_send_sweep_resp(struct channel *rch)
                goto done;
        }
 
-       header = kmalloc(sizeof(struct th_sweep), gfp_type());
-
-       if (!header) {
-               dev_kfree_skb_any(sweep_skb);
-               goto done;
-       }
-
-       header->th.th_seg       = 0x00 ;
+       header = skb_put_zero(sweep_skb, TH_SWEEP_LENGTH);
        header->th.th_ch_flag   = TH_SWEEP_RESP;
-       header->th.th_blk_flag  = 0x00;
-       header->th.th_is_xid    = 0x00;
-       header->th.th_seq_num   = 0x00;
        header->sw.th_last_seq  = ch->th_seq_num;
 
-       skb_put_data(sweep_skb, header, TH_SWEEP_LENGTH);
-
-       kfree(header);
-
        netif_trans_update(dev);
        skb_queue_tail(&ch->sweep_queue, sweep_skb);
 
@@ -1177,7 +1163,7 @@ static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb)
                        skb_pull(pskb, new_len); /* point to next PDU */
                }
        } else {
-               mpcginfo = kmalloc(sizeof(struct mpcg_info), gfp_type());
+               mpcginfo = kmalloc(sizeof(struct mpcg_info), GFP_ATOMIC);
                if (mpcginfo == NULL)
                                        goto done;
 
@@ -2062,7 +2048,6 @@ static void mpc_action_rcvd_xid7(fsm_instance *fsm, int event, void *arg)
  */
 static int mpc_send_qllc_discontact(struct net_device *dev)
 {
-       __u32   new_len = 0;
        struct sk_buff   *skb;
        struct qllc      *qllcptr;
        struct ctcm_priv *priv = dev->ml_priv;
@@ -2093,31 +2078,19 @@ static int mpc_send_qllc_discontact(struct net_device *dev)
        case MPCG_STATE_FLOWC:
        case MPCG_STATE_READY:
                grp->send_qllc_disc = 2;
-               new_len = sizeof(struct qllc);
-               qllcptr = kzalloc(new_len, gfp_type() | GFP_DMA);
-               if (qllcptr == NULL) {
-                       CTCM_DBF_TEXT_(MPC_ERROR, CTC_DBF_ERROR,
-                               "%s(%s): qllcptr allocation error",
-                                               CTCM_FUNTAIL, dev->name);
-                       return -ENOMEM;
-               }
-
-               qllcptr->qllc_address = 0xcc;
-               qllcptr->qllc_commands = 0x03;
-
-               skb = __dev_alloc_skb(new_len, GFP_ATOMIC);
 
+               skb = __dev_alloc_skb(sizeof(struct qllc), GFP_ATOMIC);
                if (skb == NULL) {
                        CTCM_DBF_TEXT_(MPC_ERROR, CTC_DBF_ERROR,
                                "%s(%s): skb allocation error",
                                                CTCM_FUNTAIL, dev->name);
                        priv->stats.rx_dropped++;
-                       kfree(qllcptr);
                        return -ENOMEM;
                }
 
-               skb_put_data(skb, qllcptr, new_len);
-               kfree(qllcptr);
+               qllcptr = skb_put(skb, sizeof(struct qllc));
+               qllcptr->qllc_address = 0xcc;
+               qllcptr->qllc_commands = 0x03;
 
                if (skb_headroom(skb) < 4) {
                        CTCM_DBF_TEXT_(MPC_ERROR, CTC_DBF_ERROR,