Loading drivers/net/bnx2.c +4 −4 Original line number Diff line number Diff line Loading @@ -54,8 +54,8 @@ #define DRV_MODULE_NAME "bnx2" #define PFX DRV_MODULE_NAME ": " #define DRV_MODULE_VERSION "1.5.5" #define DRV_MODULE_RELDATE "February 1, 2007" #define DRV_MODULE_VERSION "1.5.6" #define DRV_MODULE_RELDATE "March 28, 2007" #define RUN_AT(x) (jiffies + (x)) Loading Loading @@ -2033,8 +2033,8 @@ bnx2_has_work(struct bnx2 *bp) (sblk->status_tx_quick_consumer_index0 != bp->hw_tx_cons)) return 1; if (((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) != 0) != bp->link_up) if ((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) != (sblk->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE)) return 1; return 0; Loading drivers/net/ifb.c +13 −22 Original line number Diff line number Diff line Loading @@ -96,17 +96,24 @@ static void ri_tasklet(unsigned long dev) skb->tc_verd = SET_TC_NCLS(skb->tc_verd); stats->tx_packets++; stats->tx_bytes +=skb->len; skb->dev = __dev_get_by_index(skb->iif); if (!skb->dev) { dev_kfree_skb(skb); stats->tx_dropped++; break; } skb->iif = _dev->ifindex; if (from & AT_EGRESS) { dp->st_rx_frm_egr++; dev_queue_xmit(skb); } else if (from & AT_INGRESS) { dp->st_rx_frm_ing++; skb_pull(skb, skb->dev->hard_header_len); netif_rx(skb); } else { dev_kfree_skb(skb); stats->tx_dropped++; } } else BUG(); } if (netif_tx_trylock(_dev)) { Loading Loading @@ -157,26 +164,10 @@ static int ifb_xmit(struct sk_buff *skb, struct net_device *dev) stats->rx_packets++; stats->rx_bytes+=skb->len; if (!from || !skb->input_dev) { dropped: if (!(from & (AT_INGRESS|AT_EGRESS)) || !skb->iif) { dev_kfree_skb(skb); stats->rx_dropped++; return ret; } else { /* * note we could be going * ingress -> egress or * egress -> ingress */ skb->dev = skb->input_dev; skb->input_dev = dev; if (from & AT_INGRESS) { skb_pull(skb, skb->dev->hard_header_len); } else { if (!(from & AT_EGRESS)) { goto dropped; } } } if (skb_queue_len(&dp->rq) >= dev->tx_queue_len) { Loading include/linux/skbuff.h +3 −2 Original line number Diff line number Diff line Loading @@ -188,7 +188,7 @@ enum { * @sk: Socket we are owned by * @tstamp: Time we arrived * @dev: Device we arrived on/are leaving by * @input_dev: Device we arrived on * @iif: ifindex of device we arrived on * @h: Transport layer header * @nh: Network layer header * @mac: Link layer header Loading Loading @@ -235,7 +235,8 @@ struct sk_buff { struct sock *sk; struct skb_timeval tstamp; struct net_device *dev; struct net_device *input_dev; int iif; /* 4 byte hole on 64 bit*/ union { struct tcphdr *th; Loading include/net/pkt_cls.h +5 −2 Original line number Diff line number Diff line Loading @@ -352,10 +352,13 @@ tcf_change_indev(struct tcf_proto *tp, char *indev, struct rtattr *indev_tlv) static inline int tcf_match_indev(struct sk_buff *skb, char *indev) { struct net_device *dev; if (indev[0]) { if (!skb->input_dev) if (!skb->iif) return 0; if (strcmp(indev, skb->input_dev->name)) dev = __dev_get_by_index(skb->iif); if (!dev || strcmp(indev, dev->name)) return 0; } Loading net/core/dev.c +4 −4 Original line number Diff line number Diff line Loading @@ -1741,8 +1741,8 @@ static int ing_filter(struct sk_buff *skb) if (dev->qdisc_ingress) { __u32 ttl = (__u32) G_TC_RTTL(skb->tc_verd); if (MAX_RED_LOOP < ttl++) { printk(KERN_WARNING "Redir loop detected Dropping packet (%s->%s)\n", skb->input_dev->name, skb->dev->name); printk(KERN_WARNING "Redir loop detected Dropping packet (%d->%d)\n", skb->iif, skb->dev->ifindex); return TC_ACT_SHOT; } Loading Loading @@ -1775,8 +1775,8 @@ int netif_receive_skb(struct sk_buff *skb) if (!skb->tstamp.off_sec) net_timestamp(skb); if (!skb->input_dev) skb->input_dev = skb->dev; if (!skb->iif) skb->iif = skb->dev->ifindex; orig_dev = skb_bond(skb); Loading Loading
drivers/net/bnx2.c +4 −4 Original line number Diff line number Diff line Loading @@ -54,8 +54,8 @@ #define DRV_MODULE_NAME "bnx2" #define PFX DRV_MODULE_NAME ": " #define DRV_MODULE_VERSION "1.5.5" #define DRV_MODULE_RELDATE "February 1, 2007" #define DRV_MODULE_VERSION "1.5.6" #define DRV_MODULE_RELDATE "March 28, 2007" #define RUN_AT(x) (jiffies + (x)) Loading Loading @@ -2033,8 +2033,8 @@ bnx2_has_work(struct bnx2 *bp) (sblk->status_tx_quick_consumer_index0 != bp->hw_tx_cons)) return 1; if (((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) != 0) != bp->link_up) if ((sblk->status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) != (sblk->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE)) return 1; return 0; Loading
drivers/net/ifb.c +13 −22 Original line number Diff line number Diff line Loading @@ -96,17 +96,24 @@ static void ri_tasklet(unsigned long dev) skb->tc_verd = SET_TC_NCLS(skb->tc_verd); stats->tx_packets++; stats->tx_bytes +=skb->len; skb->dev = __dev_get_by_index(skb->iif); if (!skb->dev) { dev_kfree_skb(skb); stats->tx_dropped++; break; } skb->iif = _dev->ifindex; if (from & AT_EGRESS) { dp->st_rx_frm_egr++; dev_queue_xmit(skb); } else if (from & AT_INGRESS) { dp->st_rx_frm_ing++; skb_pull(skb, skb->dev->hard_header_len); netif_rx(skb); } else { dev_kfree_skb(skb); stats->tx_dropped++; } } else BUG(); } if (netif_tx_trylock(_dev)) { Loading Loading @@ -157,26 +164,10 @@ static int ifb_xmit(struct sk_buff *skb, struct net_device *dev) stats->rx_packets++; stats->rx_bytes+=skb->len; if (!from || !skb->input_dev) { dropped: if (!(from & (AT_INGRESS|AT_EGRESS)) || !skb->iif) { dev_kfree_skb(skb); stats->rx_dropped++; return ret; } else { /* * note we could be going * ingress -> egress or * egress -> ingress */ skb->dev = skb->input_dev; skb->input_dev = dev; if (from & AT_INGRESS) { skb_pull(skb, skb->dev->hard_header_len); } else { if (!(from & AT_EGRESS)) { goto dropped; } } } if (skb_queue_len(&dp->rq) >= dev->tx_queue_len) { Loading
include/linux/skbuff.h +3 −2 Original line number Diff line number Diff line Loading @@ -188,7 +188,7 @@ enum { * @sk: Socket we are owned by * @tstamp: Time we arrived * @dev: Device we arrived on/are leaving by * @input_dev: Device we arrived on * @iif: ifindex of device we arrived on * @h: Transport layer header * @nh: Network layer header * @mac: Link layer header Loading Loading @@ -235,7 +235,8 @@ struct sk_buff { struct sock *sk; struct skb_timeval tstamp; struct net_device *dev; struct net_device *input_dev; int iif; /* 4 byte hole on 64 bit*/ union { struct tcphdr *th; Loading
include/net/pkt_cls.h +5 −2 Original line number Diff line number Diff line Loading @@ -352,10 +352,13 @@ tcf_change_indev(struct tcf_proto *tp, char *indev, struct rtattr *indev_tlv) static inline int tcf_match_indev(struct sk_buff *skb, char *indev) { struct net_device *dev; if (indev[0]) { if (!skb->input_dev) if (!skb->iif) return 0; if (strcmp(indev, skb->input_dev->name)) dev = __dev_get_by_index(skb->iif); if (!dev || strcmp(indev, dev->name)) return 0; } Loading
net/core/dev.c +4 −4 Original line number Diff line number Diff line Loading @@ -1741,8 +1741,8 @@ static int ing_filter(struct sk_buff *skb) if (dev->qdisc_ingress) { __u32 ttl = (__u32) G_TC_RTTL(skb->tc_verd); if (MAX_RED_LOOP < ttl++) { printk(KERN_WARNING "Redir loop detected Dropping packet (%s->%s)\n", skb->input_dev->name, skb->dev->name); printk(KERN_WARNING "Redir loop detected Dropping packet (%d->%d)\n", skb->iif, skb->dev->ifindex); return TC_ACT_SHOT; } Loading Loading @@ -1775,8 +1775,8 @@ int netif_receive_skb(struct sk_buff *skb) if (!skb->tstamp.off_sec) net_timestamp(skb); if (!skb->input_dev) skb->input_dev = skb->dev; if (!skb->iif) skb->iif = skb->dev->ifindex; orig_dev = skb_bond(skb); Loading