/* dl9sau bugfix: the trailling two bytes flexnet crc * will not be passed to the kernel. thus we have * to correct the kissparm signature, because it * indicates a crc but there's none 
*ax->rbuff &= ~0x80; } else if (ax->rbuff[0] & 0x20)  { if (check_crc_flex(ax->rbuff, ax->rcount) < 0) { ax->stats.rx_errors++; spin_unlock_bh(&ax->buflock); return; } if (ax->crcmode != CRC_MODE_FLEX && ax->crcauto) { printk(KERN_INFO "mkiss: %s: Switchting to crc-flexnet\n", ax->dev->name); ax->crcmode = CRC_MODE_FLEX; } ax->rcount -= 2;  /* * dl9sau bugfix: the trailling two bytes flexnet crc * will not be passed to the kernel. thus we have to * correct the kissparm signature, because it indicates * a crc but there's none 
static void ax_bump(struct mkiss *ax){	struct sk_buff *skb;	int count;	spin_lock_bh(&ax->buflock);	if (ax->rbuff[0] > 0x0f) {		if (ax->rbuff[0] & 0x20) {		        ax->crcmode = CRC_MODE_FLEX;			if (check_crc_flex(ax->rbuff, ax->rcount) < 0) {			        ax->stats.rx_errors++;				return;			}			ax->rcount -= 2;                        /* dl9sau bugfix: the trailling two bytes flexnet crc                         * will not be passed to the kernel. thus we have                         * to correct the kissparm signature, because it                         * indicates a crc but there's none			 */                        *ax->rbuff &= ~0x20;		} 	}	spin_unlock_bh(&ax->buflock);	count = ax->rcount;	if ((skb = dev_alloc_skb(count)) == NULL) {		printk(KERN_ERR "mkiss: %s: memory squeeze, dropping packet.\n",		       ax->dev->name);		ax->stats.rx_dropped++;		return;	}	spin_lock_bh(&ax->buflock);	memcpy(skb_put(skb,count), ax->rbuff, count);	spin_unlock_bh(&ax->buflock);	skb->protocol = ax25_type_trans(skb, ax->dev);	netif_rx(skb);	ax->dev->last_rx = jiffies;	ax->stats.rx_packets++;	ax->stats.rx_bytes += count;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/5793f4be23f0171b4999ca68a39a9157b44139f3/mkiss.c/clean/drivers/net/hamradio/mkiss.c