*** wvlan_cs.c.orig	Thu Mar  8 09:29:33 2001
--- wvlan_cs.c	Sun May  6 17:05:18 2001
***************
*** 2535,2554 ****
  	// Align IP on 16b boundary
  	skb_reserve(skb, 2);
  	p = skb_put(skb, len);
  	dev->last_rx = jiffies;
  
  	// Add Ethernet-II frame decapsulation, because
  	// HCF-light doesn't support that.
! 	if (local->ifb.IFB_RxStat == 0x2000 || local-
>ifb.IFB_RxStat == 0x4000)
! 	{
! 		hcf_get_data(&local->ifb, 0, p, 12);
! 		hcf_get_data(&local->ifb, 12+sizeof
(snap_header), p+12, len-12-sizeof(snap_header));
  		skb_trim(skb, len-sizeof(snap_header));
  	}
- 	else
- 		hcf_get_data(&local->ifb, 0, p, len);
  
  	skb->dev = dev;
  	skb->protocol = eth_type_trans(skb, dev);
  	skb->ip_summed = CHECKSUM_NONE;
  
--- 2535,2556 ----
  	// Align IP on 16b boundary
  	skb_reserve(skb, 2);
  	p = skb_put(skb, len);
  	dev->last_rx = jiffies;
  
+ 	hcf_get_data(&local->ifb, 0, p, len);
+ 
  	// Add Ethernet-II frame decapsulation, because
  	// HCF-light doesn't support that.
! 
! 	/* decapsulate if snap header exists, regardless of 
RxStat (hgoffin) */
! 
! 	if (local->ifb.IFB_RxStat == 0x2000 || local-
>ifb.IFB_RxStat == 0x4000
! 			|| memcmp(p+14, snap_header+2, 3) 
== 0) {
! 		memmove(p+12, p+12+sizeof(snap_header), len-
12-sizeof(snap_header));
  		skb_trim(skb, len-sizeof(snap_header));
  	}
  
  	skb->dev = dev;
  	skb->protocol = eth_type_trans(skb, dev);
  	skb->ip_summed = CHECKSUM_NONE;
  

