| To: | NetDev <netdev@xxxxxxxxxxx> |
|---|---|
| Subject: | [3/5] netdev: HH_DATA_OFF bugfix |
| From: | Jiri Benc <jbenc@xxxxxxx> |
| Date: | Tue, 24 May 2005 15:12:04 +0200 |
| Cc: | LKML <linux-kernel@xxxxxxxxxxxxxxx>, jgarzik@xxxxxxxxx, pavel@xxxxxxx |
| In-reply-to: | <20050524150711.01632672@griffin.suse.cz> |
| References: | <20050524150711.01632672@griffin.suse.cz> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
When the hardware header size is a multiple of HH_DATA_MOD, HH_DATA_OFF()
incorrectly returns HH_DATA_MOD (instead of 0).
Signed-off-by: Jiri Benc <jbenc@xxxxxxx>
--- linux/include/linux/netdevice.h
+++ work/include/linux/netdevice.h
@@ -204,7 +209,7 @@
/* cached hardware header; allow for machine alignment needs. */
#define HH_DATA_MOD 16
#define HH_DATA_OFF(__len) \
- (HH_DATA_MOD - ((__len) & (HH_DATA_MOD - 1)))
+ (HH_DATA_MOD - (((__len - 1) & (HH_DATA_MOD - 1)) + 1))
#define HH_DATA_ALIGN(__len) \
(((__len)+(HH_DATA_MOD-1))&~(HH_DATA_MOD - 1))
unsigned long hh_data[HH_DATA_ALIGN(LL_MAX_HEADER) / sizeof(long)];
--
Jiri Benc
SUSE Labs
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [2/5] ieee80211: ieee80211_device alignment fix and cleanup, Jiri Benc |
|---|---|
| Next by Date: | [4/5] ieee80211: ethernet independency, Jiri Benc |
| Previous by Thread: | Re: [2/5] ieee80211: ieee80211_device alignment fix and cleanup, Jiri Benc |
| Next by Thread: | Re: [3/5] netdev: HH_DATA_OFF bugfix, Jeff Garzik |
| Indexes: | [Date] [Thread] [Top] [All Lists] |