diff options
| author | Andy Gospodarek <andy@greyhouse.net> | 2007-01-29 15:08:38 -0500 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2007-01-30 09:36:02 -0500 |
| commit | f8a8ccd56d82bd4f4b5c7c2e7eb758c7764d98e1 (patch) | |
| tree | 6358595d1471b15ec6332f076244d7472118bcc1 | |
| parent | d4150a2731615de5cd4527a23435aaa7396c63c6 (diff) | |
bonding: ARP monitoring broken on x86_64
While working with the latest bonding code I noticed a nasty problem that
will prevent arp monitoring from always functioning correctly on x86_64
systems. Comparing ints to longs and expecting reliable results on x86_64
is a bad idea. With this patch, arp monitoring works correctly again.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Stephen Hemminger <shemminger@osdl.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
| -rw-r--r-- | drivers/net/bonding/bonding.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h index dc434fb6da85..0978c9ac6d2b 100644 --- a/drivers/net/bonding/bonding.h +++ b/drivers/net/bonding/bonding.h | |||
| @@ -151,8 +151,8 @@ struct slave { | |||
| 151 | struct slave *next; | 151 | struct slave *next; |
| 152 | struct slave *prev; | 152 | struct slave *prev; |
| 153 | int delay; | 153 | int delay; |
| 154 | u32 jiffies; | 154 | unsigned long jiffies; |
| 155 | u32 last_arp_rx; | 155 | unsigned long last_arp_rx; |
| 156 | s8 link; /* one of BOND_LINK_XXXX */ | 156 | s8 link; /* one of BOND_LINK_XXXX */ |
| 157 | s8 state; /* one of BOND_STATE_XXXX */ | 157 | s8 state; /* one of BOND_STATE_XXXX */ |
| 158 | u32 original_flags; | 158 | u32 original_flags; |
| @@ -242,7 +242,8 @@ extern inline int slave_do_arp_validate(struct bonding *bond, struct slave *slav | |||
| 242 | return bond->params.arp_validate & (1 << slave->state); | 242 | return bond->params.arp_validate & (1 << slave->state); |
| 243 | } | 243 | } |
| 244 | 244 | ||
| 245 | extern inline u32 slave_last_rx(struct bonding *bond, struct slave *slave) | 245 | extern inline unsigned long slave_last_rx(struct bonding *bond, |
| 246 | struct slave *slave) | ||
| 246 | { | 247 | { |
| 247 | if (slave_do_arp_validate(bond, slave)) | 248 | if (slave_do_arp_validate(bond, slave)) |
| 248 | return slave->last_arp_rx; | 249 | return slave->last_arp_rx; |
