X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fmyri_sbus.c;h=aad5494c83cfc9d4aa80b6a1421855762559f17e;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=c5f95959ccbec1ecadfb0d0ccc0ef491a1e269ed;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c index c5f95959c..aad5494c8 100644 --- a/drivers/net/myri_sbus.c +++ b/drivers/net/myri_sbus.c @@ -22,6 +22,7 @@ static char version[] = #include #include #include +#include #include #include @@ -29,7 +30,6 @@ static char version[] = #include #include -#include #include #include #include @@ -118,7 +118,7 @@ static void myri_enable_irq(void __iomem *lp, void __iomem *cregs) static inline void bang_the_chip(struct myri_eth *mp) { - struct myri_shmem *shmem = mp->shmem; + struct myri_shmem __iomem *shmem = mp->shmem; void __iomem *cregs = mp->cregs; sbus_writel(1, &shmem->send); @@ -127,9 +127,9 @@ static inline void bang_the_chip(struct myri_eth *mp) static int myri_do_handshake(struct myri_eth *mp) { - struct myri_shmem *shmem = mp->shmem; + struct myri_shmem __iomem *shmem = mp->shmem; void __iomem *cregs = mp->cregs; - struct myri_channel *chan = &shmem->channel; + struct myri_channel __iomem *chan = &shmem->channel; int tick = 0; DET(("myri_do_handshake: ")); @@ -427,7 +427,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev) u32 csum = sbus_readl(&rxdack->csum); int len = sbus_readl(&rxdack->myri_scatters[0].len); int index = sbus_readl(&rxdack->ctx); - struct myri_rxd __iomem *rxd = &rq->myri_rxd[rq->tail]; + struct myri_rxd __iomem *rxd = &rq->myri_rxd[sbus_readl(&rq->tail)]; struct sk_buff *skb = mp->rx_skbs[index]; /* Ack it. */ @@ -546,7 +546,7 @@ static irqreturn_t myri_interrupt(int irq, void *dev_id, struct pt_regs *regs) struct net_device *dev = (struct net_device *) dev_id; struct myri_eth *mp = (struct myri_eth *) dev->priv; void __iomem *lregs = mp->lregs; - struct myri_channel *chan = &mp->shmem->channel; + struct myri_channel __iomem *chan = &mp->shmem->channel; unsigned long flags; u32 status; int handled = 0;