Hello Ming Lei, The patch e6c6d33cb7d1: "ath9k-htc:respect usb buffer cacheline alignment in reg in path" from Apr 13, 2010, leads to the following static checker warning: drivers/net/wireless/ath/ath9k/hif_usb.c:745 ath9k_hif_usb_reg_in_cb() warn: 'skb' was already freed. drivers/net/wireless/ath/ath9k/hif_usb.c 712 if (likely(urb->actual_length != 0)) { 713 skb_put(skb, urb->actual_length); 714 715 /* Process the command first */ 716 ath9k_htc_rx_msg(hif_dev->htc_handle, skb, 717 skb->len, USB_REG_IN_PIPE); 718 719 720 nskb = alloc_skb(MAX_REG_IN_BUF_SIZE, GFP_ATOMIC); 721 if (!nskb) { 722 dev_err(&hif_dev->udev->dev, 723 "ath9k_htc: REG_IN memory allocation failure\n"); 724 urb->context = NULL; 725 return; 726 } 727 728 usb_fill_int_urb(urb, hif_dev->udev, 729 usb_rcvintpipe(hif_dev->udev, 730 USB_REG_IN_PIPE), 731 nskb->data, MAX_REG_IN_BUF_SIZE, 732 ath9k_hif_usb_reg_in_cb, nskb, 1); 733 } 734 735 resubmit: 736 usb_anchor_urb(urb, &hif_dev->reg_in_submitted); 737 ret = usb_submit_urb(urb, GFP_ATOMIC); 738 if (ret) { 739 usb_unanchor_urb(urb); 740 goto free; 741 } 742 743 return; 744 free: 745 kfree_skb(skb); 746 urb->context = NULL; 747 } regards, dan carpenter