[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20120607.224604.1263677055122853939.davem@davemloft.net>
Date: Thu, 07 Jun 2012 22:46:04 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: therbert@...gle.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH] bonding: Fix corrupted queue_mapping
From: Tom Herbert <therbert@...gle.com>
Date: Thu, 7 Jun 2012 22:05:42 -0700 (PDT)
> @@ -381,7 +382,8 @@ struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr)
> return next;
> }
>
> -#define bond_queue_mapping(skb) (*(u16 *)((skb)->cb))
> +#define bond_queue_mapping(skb) (*(u16 *)((skb)->cb + \
> + sizeof(struct qdisc_skb_cb)))
>
> /**
> * bond_dev_queue_xmit - Prepare skb for xmit.
I know it's a little bit more work, but please declare a proper
datastructure which shows explicitly what's going on, like Infiniband
does in drivers/infiniband/ulp/ipoib/ipoib.h
struct bond_skb_cb {
struct qdisc_skb_cb qdisc_cb;
u16 queue_mapping;
};
Actually, this probably means there is also a conflict and thus
queue mapping corruption possible for bonded infiniband. :-/
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists