info->rx_skb->pkt_type &= 0x0f; 
bt_cb(info->rx_skb)->pkt_type &= 0x0f; 
static void dtl1_receive(dtl1_info_t *info){	unsigned int iobase;	nsh_t *nsh;	int boguscount = 0;	if (!info) {		BT_ERR("Unknown device");		return;	}	iobase = info->link.io.BasePort1;	do {		info->hdev->stat.byte_rx++;		/* Allocate packet */		if (info->rx_skb == NULL)			if (!(info->rx_skb = bt_skb_alloc(HCI_MAX_FRAME_SIZE, GFP_ATOMIC))) {				BT_ERR("Can't allocate mem for new packet");				info->rx_state = RECV_WAIT_NSH;				info->rx_count = NSHL;				return;			}		*skb_put(info->rx_skb, 1) = inb(iobase + UART_RX);		nsh = (nsh_t *)info->rx_skb->data;		info->rx_count--;		if (info->rx_count == 0) {			switch (info->rx_state) {			case RECV_WAIT_NSH:				info->rx_state = RECV_WAIT_DATA;				info->rx_count = nsh->len + (nsh->len & 0x0001);				break;			case RECV_WAIT_DATA:				info->rx_skb->pkt_type = nsh->type;				/* remove PAD byte if it exists */				if (nsh->len & 0x0001) {					info->rx_skb->tail--;					info->rx_skb->len--;				}				/* remove NSH */				skb_pull(info->rx_skb, NSHL);				switch (info->rx_skb->pkt_type) {				case 0x80:					/* control data for the Nokia Card */					dtl1_control(info, info->rx_skb);					break;				case 0x82:				case 0x83:				case 0x84:					/* send frame to the HCI layer */					info->rx_skb->dev = (void *) info->hdev;					info->rx_skb->pkt_type &= 0x0f;					hci_recv_frame(info->rx_skb);					break;				default:					/* unknown packet */					BT_ERR("Unknown HCI packet with type 0x%02x received", info->rx_skb->pkt_type);					kfree_skb(info->rx_skb);					break;				}				info->rx_state = RECV_WAIT_NSH;				info->rx_count = NSHL;				info->rx_skb = NULL;				break;			}		}		/* Make sure we don't stay here too long */		if (boguscount++ > 32)			break;	} while (inb(iobase + UART_LSR) & UART_LSR_DR);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0d48d93947dd9ea21c5cdc76a8581b06a4a39281/dtl1_cs.c/buggy/drivers/bluetooth/dtl1_cs.c