[S390]: Fix use of skb after netif_rx

Recently, Wang Chen submitted a patch
(d30f53aeb31d453a5230f526bea592af07944564) to move a call to netif_rx(skb)
after a subsequent reference to skb, because netif_rx may call kfree_skb on
its argument. netif_rx_ni calls netif_rx, so the same problem occurs in
the files below.

I have left the updating of dev->last_rx after the calls to netif_rx_ni
because it seems time dependent, but moved the other field updates before.

This was found using the following semantic match.
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression skb, e,e1;
@@

(
netif_rx(skb);
|
netif_rx_ni(skb);
)
... when != skb = e
(
skb = e1
|
* skb
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Julia Lawall and committed by David S. Miller 9b3efc01 299f590f

+5 -5
+3 -3
drivers/s390/net/ctcmain.c
··· 478 478 skb->dev = pskb->dev; 479 479 skb->protocol = pskb->protocol; 480 480 pskb->ip_summed = CHECKSUM_UNNECESSARY; 481 - netif_rx_ni(skb); 482 481 /** 483 - * Successful rx; reset logflags 482 + * reset logflags 484 483 */ 485 484 ch->logflags = 0; 486 - dev->last_rx = jiffies; 487 485 privptr->stats.rx_packets++; 488 486 privptr->stats.rx_bytes += skb->len; 487 + netif_rx_ni(skb); 488 + dev->last_rx = jiffies; 489 489 if (len > 0) { 490 490 skb_pull(pskb, header->length); 491 491 if (skb_tailroom(pskb) < LL_HEADER_LENGTH) {
+2 -2
drivers/s390/net/netiucv.c
··· 639 639 skb->dev = pskb->dev; 640 640 skb->protocol = pskb->protocol; 641 641 pskb->ip_summed = CHECKSUM_UNNECESSARY; 642 + privptr->stats.rx_packets++; 643 + privptr->stats.rx_bytes += skb->len; 642 644 /* 643 645 * Since receiving is always initiated from a tasklet (in iucv.c), 644 646 * we must use netif_rx_ni() instead of netif_rx() 645 647 */ 646 648 netif_rx_ni(skb); 647 649 dev->last_rx = jiffies; 648 - privptr->stats.rx_packets++; 649 - privptr->stats.rx_bytes += skb->len; 650 650 skb_pull(pskb, header->next); 651 651 skb_put(pskb, NETIUCV_HDRLEN); 652 652 }