Re: NS83820 2.6.0-test5 driver seems unstable on IA64

From: Benjamin LaHaise <bcrl_at_kvack.org>
Date: 2003-09-23 10:36:29
Denied.  Dave, please explain.

		-ben

On Tue, Sep 23, 2003 at 10:34:18AM +1000, Peter Chubb wrote:
> 
> OK, a patch for the driver in 2.6.0-test5 is appended.
> 
> I suspect that there are other architectures that don't like unaligned
> accesses...  feel free to add them to the #ifdef.
> This is based on code I found in the revision history.  It seems to
> work.
> 
> Without this patch, the console messages saying `unaligned access'
> would come out fast enough and often enough to delay and or miss
> interrupts, leading to an eventual machine hangup on I2000.
> 
> ===== drivers/net/ns83820.c 1.30 vs edited =====
> --- 1.30/drivers/net/ns83820.c	Thu Sep 11 09:46:45 2003
> +++ edited/drivers/net/ns83820.c	Mon Sep 22 12:49:18 2003
> @@ -793,6 +793,25 @@
>  	}
>  }
>  
> +#if defined(__ia64__)
> +static inline struct sk_buff *skb_realign_iphdr(struct sk_buff *skb, int len, struct ns83820 *dev)
> +{
> +	struct sk_buff *tmp = __dev_alloc_skb(len+2, GFP_ATOMIC);
> +	if (!tmp)
> +		return NULL;
> +	tmp->dev = &dev->net_dev;
> +	skb_reserve(tmp, 2);
> +	memcpy(skb_put(tmp, len), skb->data, len);
> +	kfree_skb(skb);
> +	return tmp;
> +}
> +#else
> +static inline  struct sk_buff *skb_realign_iphdr(struct sk_buff *skb, int len, struct ns83820 *dev)
> +{
> +	return skb;
> +}
> +#endif
> +
>  static void FASTCALL(ns83820_rx_kick(struct ns83820 *dev));
>  static void ns83820_rx_kick(struct ns83820 *dev)
>  {
> @@ -862,6 +881,7 @@
>  		if (likely(CMDSTS_OK & cmdsts)) {
>  			int len = cmdsts & 0xffff;
>  			skb_put(skb, len);
> +			skb = skb_realign_iphdr(skb, len, dev);
>  			if (unlikely(!skb))
>  				goto netdev_mangle_me_harder_failed;
>  			if (cmdsts & CMDSTS_DEST_MULTI)

-- 
"The software industry today survives only through an unstated agreement 
not to stir things up too much.  We must hope this lawsuit [by SCO] isn't 
the big stirring spoon." -- Ian Lance Taylor, Linux Journal, June 2003
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Mon Sep 22 20:43:11 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:17 EST