From: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
To: "David S. Miller" <davem@redhat.com>
Cc: netdev@oss.sgi.com
Subject: [SKBUFF] use eth_hdr(skb), skb->mac.raw cases
Date: Sat, 02 Oct 2004 16:50:24 -0300 [thread overview]
Message-ID: <415F0680.7040200@conectiva.com.br> (raw)
[-- Attachment #1: Type: text/plain, Size: 159 bytes --]
Hi David,
Please consider pulling from:
bk://kernel.bkbits.net/acme/sk_buff-2.6
Now there are 3 outstanding changesets in this tree.
Regards,
- Arnaldo
[-- Attachment #2: eth_hdr2.patch --]
[-- Type: text/plain, Size: 7393 bytes --]
===================================================================
ChangeSet@1.2032, 2004-10-02 16:44:12-03:00, acme@amd64.kerneljanitors.org
[SKBUFF] use eth_hdr(skb), skb->mac.raw cases
Signed-off-by: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
Signed-off-by: David S. Miller <davem@redhat.com>
drivers/ieee1394/eth1394.c | 2 +-
drivers/ieee1394/eth1394.h | 7 +++++++
drivers/net/hamradio/bpqether.c | 2 +-
drivers/net/wireless/orinoco.c | 2 +-
drivers/net/wireless/wavelan.c | 5 ++---
drivers/net/wireless/wavelan_cs.c | 4 ++--
include/net/llc_pdu.h | 6 +++---
net/bluetooth/bnep/core.c | 6 +++---
net/llc/llc_input.c | 2 +-
net/llc/llc_output.c | 2 +-
10 files changed, 22 insertions(+), 16 deletions(-)
diff -Nru a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
--- a/drivers/ieee1394/eth1394.c 2004-10-02 16:44:56 -03:00
+++ b/drivers/ieee1394/eth1394.c 2004-10-02 16:44:56 -03:00
@@ -850,7 +850,7 @@
skb->mac.raw = skb->data;
skb_pull (skb, ETH1394_HLEN);
- eth = (struct eth1394hdr*)skb->mac.raw;
+ eth = eth1394_hdr(skb);
if (*eth->h_dest & 1) {
if (memcmp(eth->h_dest, dev->broadcast, dev->addr_len)==0)
diff -Nru a/drivers/ieee1394/eth1394.h b/drivers/ieee1394/eth1394.h
--- a/drivers/ieee1394/eth1394.h 2004-10-02 16:44:56 -03:00
+++ b/drivers/ieee1394/eth1394.h 2004-10-02 16:44:56 -03:00
@@ -81,7 +81,14 @@
unsigned short h_proto; /* packet type ID field */
} __attribute__((packed));
+#ifdef __KERNEL__
+#include <linux/skbuff.h>
+static inline struct eth1394hdr *eth1394_hdr(const struct sk_buff *skb)
+{
+ return (struct eth1394hdr *)skb->mac.raw;
+}
+#endif
typedef enum {ETH1394_GASP, ETH1394_WRREQ} eth1394_tx_type;
diff -Nru a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
--- a/drivers/net/hamradio/bpqether.c 2004-10-02 16:44:56 -03:00
+++ b/drivers/net/hamradio/bpqether.c 2004-10-02 16:44:56 -03:00
@@ -193,7 +193,7 @@
bpq = (struct bpqdev *)dev->priv;
- eth = (struct ethhdr *)skb->mac.raw;
+ eth = eth_hdr(skb);
if (!(bpq->acpt_addr[0] & 0x01) &&
memcmp(eth->h_source, bpq->acpt_addr, ETH_ALEN))
diff -Nru a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
--- a/drivers/net/wireless/orinoco.c 2004-10-02 16:44:56 -03:00
+++ b/drivers/net/wireless/orinoco.c 2004-10-02 16:44:56 -03:00
@@ -1009,7 +1009,7 @@
/* Note : gcc will optimise the whole section away if
* WIRELESS_SPY is not defined... - Jean II */
if (SPY_NUMBER(priv)) {
- orinoco_spy_gather(dev, skb->mac.raw + ETH_ALEN,
+ orinoco_spy_gather(dev, eth_hdr(skb)->h_source,
desc->signal, desc->silence);
}
}
diff -Nru a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c
--- a/drivers/net/wireless/wavelan.c 2004-10-02 16:44:56 -03:00
+++ b/drivers/net/wireless/wavelan.c 2004-10-02 16:44:56 -03:00
@@ -2521,7 +2521,7 @@
skb->protocol = eth_type_trans(skb, dev);
#ifdef DEBUG_RX_INFO
- wv_packet_info(skb->mac.raw, sksize, dev->name, "wv_packet_read");
+ wv_packet_info(eth_hdr(skb)->h_dest, sksize, dev->name, "wv_packet_read");
#endif /* DEBUG_RX_INFO */
/* Statistics-gathering and associated stuff.
@@ -2557,8 +2557,7 @@
/* Spying stuff */
#ifdef IW_WIRELESS_SPY
- wl_spy_gather(dev, skb->mac.raw + WAVELAN_ADDR_SIZE,
- stats);
+ wl_spy_gather(dev, eth_hdr(skb)->h_source, stats);
#endif /* IW_WIRELESS_SPY */
#ifdef HISTOGRAM
wl_his_gather(dev, stats);
diff -Nru a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
--- a/drivers/net/wireless/wavelan_cs.c 2004-10-02 16:44:56 -03:00
+++ b/drivers/net/wireless/wavelan_cs.c 2004-10-02 16:44:56 -03:00
@@ -2943,7 +2943,7 @@
skb->protocol = eth_type_trans(skb, dev);
#ifdef DEBUG_RX_INFO
- wv_packet_info(skb->mac.raw, sksize, dev->name, "wv_packet_read");
+ wv_packet_info(eth_hdr(skb)->h_dest, sksize, dev->name, "wv_packet_read");
#endif /* DEBUG_RX_INFO */
/* Statistics gathering & stuff associated.
@@ -2977,7 +2977,7 @@
#endif /* WAVELAN_ROAMING */
#ifdef WIRELESS_SPY
- wl_spy_gather(dev, skb->mac.raw + WAVELAN_ADDR_SIZE, stats);
+ wl_spy_gather(dev, eth_hdr(skb)->h_source, stats);
#endif /* WIRELESS_SPY */
#ifdef HISTOGRAM
wl_his_gather(dev, stats);
diff -Nru a/include/net/llc_pdu.h b/include/net/llc_pdu.h
--- a/include/net/llc_pdu.h 2004-10-02 16:44:56 -03:00
+++ b/include/net/llc_pdu.h 2004-10-02 16:44:56 -03:00
@@ -253,7 +253,7 @@
static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
{
if (skb->protocol == ntohs(ETH_P_802_2))
- memcpy(sa, ((struct ethhdr *)skb->mac.raw)->h_source, ETH_ALEN);
+ memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
else if (skb->protocol == ntohs(ETH_P_TR_802_2))
memcpy(sa, ((struct trh_hdr *)skb->mac.raw)->saddr, ETH_ALEN);
}
@@ -268,7 +268,7 @@
static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
{
if (skb->protocol == ntohs(ETH_P_802_2))
- memcpy(da, ((struct ethhdr *)skb->mac.raw)->h_dest, ETH_ALEN);
+ memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
else if (skb->protocol == ntohs(ETH_P_TR_802_2))
memcpy(da, ((struct trh_hdr *)skb->mac.raw)->daddr, ETH_ALEN);
}
@@ -347,7 +347,7 @@
struct llc_pdu_un *ev_pdu = llc_pdu_un_hdr(ev_skb);
int dsize;
- dsize = ntohs(((struct ethhdr *)ev_skb->mac.raw)->h_proto) - 3;
+ dsize = ntohs(eth_hdr(ev_skb)->h_proto) - 3;
memcpy(((u8 *)pdu) + 3, ((u8 *)ev_pdu) + 3, dsize);
skb_put(skb, dsize);
}
diff -Nru a/net/bluetooth/bnep/core.c b/net/bluetooth/bnep/core.c
--- a/net/bluetooth/bnep/core.c 2004-10-02 16:44:56 -03:00
+++ b/net/bluetooth/bnep/core.c 2004-10-02 16:44:56 -03:00
@@ -364,17 +364,17 @@
case BNEP_COMPRESSED_SRC_ONLY:
memcpy(__skb_put(nskb, ETH_ALEN), s->eh.h_dest, ETH_ALEN);
- memcpy(__skb_put(nskb, ETH_ALEN), skb->mac.raw, ETH_ALEN);
+ memcpy(__skb_put(nskb, ETH_ALEN), eth_hdr(skb), ETH_ALEN);
put_unaligned(s->eh.h_proto, (u16 *) __skb_put(nskb, 2));
break;
case BNEP_COMPRESSED_DST_ONLY:
- memcpy(__skb_put(nskb, ETH_ALEN), skb->mac.raw, ETH_ALEN);
+ memcpy(__skb_put(nskb, ETH_ALEN), eth_hdr(skb), ETH_ALEN);
memcpy(__skb_put(nskb, ETH_ALEN + 2), s->eh.h_source, ETH_ALEN + 2);
break;
case BNEP_GENERAL:
- memcpy(__skb_put(nskb, ETH_ALEN * 2), skb->mac.raw, ETH_ALEN * 2);
+ memcpy(__skb_put(nskb, ETH_ALEN * 2), eth_hdr(skb), ETH_ALEN * 2);
put_unaligned(s->eh.h_proto, (u16 *) __skb_put(nskb, 2));
break;
}
diff -Nru a/net/llc/llc_input.c b/net/llc/llc_input.c
--- a/net/llc/llc_input.c 2004-10-02 16:44:56 -03:00
+++ b/net/llc/llc_input.c 2004-10-02 16:44:56 -03:00
@@ -111,7 +111,7 @@
skb->h.raw += llc_len;
skb_pull(skb, llc_len);
if (skb->protocol == htons(ETH_P_802_2)) {
- u16 pdulen = ((struct ethhdr *)skb->mac.raw)->h_proto,
+ u16 pdulen = eth_hdr(skb)->h_proto,
data_size = ntohs(pdulen) - llc_len;
skb_trim(skb, data_size);
diff -Nru a/net/llc/llc_output.c b/net/llc/llc_output.c
--- a/net/llc/llc_output.c 2004-10-02 16:44:56 -03:00
+++ b/net/llc/llc_output.c 2004-10-02 16:44:56 -03:00
@@ -61,7 +61,7 @@
struct ethhdr *eth;
skb->mac.raw = skb_push(skb, sizeof(*eth));
- eth = (struct ethhdr *)skb->mac.raw;
+ eth = eth_hdr(skb);
eth->h_proto = htons(len);
memcpy(eth->h_dest, da, ETH_ALEN);
memcpy(eth->h_source, sa, ETH_ALEN);
reply other threads:[~2004-10-02 19:50 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=415F0680.7040200@conectiva.com.br \
--to=acme@conectiva.com.br \
--cc=davem@redhat.com \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).