Skip to content

Commit

Permalink
[NET]: Remove HIPPI private from skbuff.h
Browse files Browse the repository at this point in the history
This removes the private element from skbuff, that is only used by
HIPPI. Instead it uses skb->cb[] to hold the additional data that is
needed in the output path from hard_header to device driver.

PS: The only qdisc that might potentially corrupt this cb[] is if
netem was used over HIPPI. I will take care of that by fixing netem
to use skb->stamp. I don't expect many users of netem over HIPPI

Signed-off-by: Stephen Hemminger <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Stephen Hemminger authored and David S. Miller committed Aug 29, 2005
1 parent b0573de commit 6f1cf16
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 11 deletions.
3 changes: 2 additions & 1 deletion drivers/net/rrunner.c
Original file line number Diff line number Diff line change
Expand Up @@ -1429,6 +1429,7 @@ static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct rr_private *rrpriv = netdev_priv(dev);
struct rr_regs __iomem *regs = rrpriv->regs;
struct hippi_cb *hcb = (struct hippi_cb *) skb->cb;
struct ring_ctrl *txctrl;
unsigned long flags;
u32 index, len = skb->len;
Expand Down Expand Up @@ -1460,7 +1461,7 @@ static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev)
ifield = (u32 *)skb_push(skb, 8);

ifield[0] = 0;
ifield[1] = skb->private.ifield;
ifield[1] = hcb->ifield;

/*
* We don't need the lock before we are actually going to start
Expand Down
5 changes: 5 additions & 0 deletions include/linux/hippidevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@
#include <linux/if_hippi.h>

#ifdef __KERNEL__

struct hippi_cb {
__u32 ifield;
};

extern unsigned short hippi_type_trans(struct sk_buff *skb,
struct net_device *dev);

Expand Down
6 changes: 0 additions & 6 deletions include/linux/skbuff.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,6 @@ struct skb_shared_info {
* @nfct: Associated connection, if any
* @nfctinfo: Relationship of this skb to the connection
* @nf_bridge: Saved data about a bridged frame - see br_netfilter.c
* @private: Data which is private to the HIPPI implementation
* @tc_index: Traffic control index
* @tc_verd: traffic control verdict
*/
Expand Down Expand Up @@ -265,11 +264,6 @@ struct sk_buff {
struct nf_bridge_info *nf_bridge;
#endif
#endif /* CONFIG_NETFILTER */
#if defined(CONFIG_HIPPI)
union {
__u32 ifield;
} private;
#endif
#ifdef CONFIG_NET_SCHED
__u32 tc_index; /* traffic control index */
#ifdef CONFIG_NET_CLS_ACT
Expand Down
4 changes: 3 additions & 1 deletion net/802/hippi.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ static int hippi_header(struct sk_buff *skb, struct net_device *dev,
unsigned len)
{
struct hippi_hdr *hip = (struct hippi_hdr *)skb_push(skb, HIPPI_HLEN);
struct hippi_cb *hcb = (struct hippi_cb *) skb->cb;

if (!len){
len = skb->len - HIPPI_HLEN;
Expand Down Expand Up @@ -84,9 +85,10 @@ static int hippi_header(struct sk_buff *skb, struct net_device *dev,
if (daddr)
{
memcpy(hip->le.dest_switch_addr, daddr + 3, 3);
memcpy(&skb->private.ifield, daddr + 2, 4);
memcpy(&hcb->ifield, daddr + 2, 4);
return HIPPI_HLEN;
}
hcb->ifield = 0;
return -((int)HIPPI_HLEN);
}

Expand Down
3 changes: 0 additions & 3 deletions net/core/skbuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -365,9 +365,6 @@ struct sk_buff *skb_clone(struct sk_buff *skb, unsigned int __nocast gfp_mask)
nf_bridge_get(skb->nf_bridge);
#endif
#endif /*CONFIG_NETFILTER*/
#if defined(CONFIG_HIPPI)
C(private);
#endif
#ifdef CONFIG_NET_SCHED
C(tc_index);
#ifdef CONFIG_NET_CLS_ACT
Expand Down

0 comments on commit 6f1cf16

Please sign in to comment.