Message ID | ada4ohlrx22.fsf@roland-alpha.cisco.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On 06/02/2010 04:36 PM, Roland Dreier wrote: > Probably no one has used this driver on big-endian systems, since it was > setting up descriptor swapping if CONFIG_BIG_ENDIAN is set, which it > never is, since that symbol is not mentioned anywhere else in the kernel > source. Switch this test to a check for __BIG_ENDIAN so it has a chance > at working. > > Signed-off-by: Roland Dreier<rolandd@cisco.com> Acked-by: Jeff Garzik <jgarzik@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Jeff Garzik <jeff@garzik.org> Date: Wed, 02 Jun 2010 20:08:27 -0400 > On 06/02/2010 04:36 PM, Roland Dreier wrote: >> Probably no one has used this driver on big-endian systems, since it >> was >> setting up descriptor swapping if CONFIG_BIG_ENDIAN is set, which it >> never is, since that symbol is not mentioned anywhere else in the >> kernel >> source. Switch this test to a check for __BIG_ENDIAN so it has a >> chance >> at working. >> >> Signed-off-by: Roland Dreier<rolandd@cisco.com> > > Acked-by: Jeff Garzik <jgarzik@redhat.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c index 6838dfc..4c27465 100644 --- a/drivers/net/epic100.c +++ b/drivers/net/epic100.c @@ -87,6 +87,7 @@ static int rx_copybreak; #include <linux/bitops.h> #include <asm/io.h> #include <asm/uaccess.h> +#include <asm/byteorder.h> /* These identify the driver base version and may not be removed. */ static char version[] __devinitdata = @@ -230,7 +231,7 @@ static const u16 media2miictl[16] = { * The EPIC100 Rx and Tx buffer descriptors. Note that these * really ARE host-endian; it's not a misannotation. We tell * the card to byteswap them internally on big-endian hosts - - * look for #ifdef CONFIG_BIG_ENDIAN in epic_open(). + * look for #ifdef __BIG_ENDIAN in epic_open(). */ struct epic_tx_desc { @@ -690,7 +691,7 @@ static int epic_open(struct net_device *dev) outl((inl(ioaddr + NVCTL) & ~0x003C) | 0x4800, ioaddr + NVCTL); /* Tell the chip to byteswap descriptors on big-endian hosts */ -#ifdef CONFIG_BIG_ENDIAN +#ifdef __BIG_ENDIAN outl(0x4432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL); inl(ioaddr + GENCTL); outl(0x0432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL); @@ -806,7 +807,7 @@ static void epic_restart(struct net_device *dev) for (i = 16; i > 0; i--) outl(0x0008, ioaddr + TEST1); -#ifdef CONFIG_BIG_ENDIAN +#ifdef __BIG_ENDIAN outl(0x0432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL); #else outl(0x0412 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL);
Probably no one has used this driver on big-endian systems, since it was setting up descriptor swapping if CONFIG_BIG_ENDIAN is set, which it never is, since that symbol is not mentioned anywhere else in the kernel source. Switch this test to a check for __BIG_ENDIAN so it has a chance at working. Signed-off-by: Roland Dreier <rolandd@cisco.com> --- drivers/net/epic100.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)