netdev
[Top] [All Lists]

[3/5] netdev: HH_DATA_OFF bugfix

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@xxxxxxxxxxxxxxx>
References: <20050524150711.01632672@xxxxxxxxxxxxxxx>
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>