@@ -641,9 +641,9 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev,
641
641
642
642
static void ath9k_hif_usb_rx_cb (struct urb * urb )
643
643
{
644
- struct rx_buf * rx_buf = (struct rx_buf * )urb -> context ;
645
- struct hif_device_usb * hif_dev = rx_buf -> hif_dev ;
646
- struct sk_buff * skb = rx_buf -> skb ;
644
+ struct sk_buff * skb = (struct sk_buff * ) urb -> context ;
645
+ struct hif_device_usb * hif_dev =
646
+ usb_get_intfdata ( usb_ifnum_to_if ( urb -> dev , 0 )) ;
647
647
int ret ;
648
648
649
649
if (!skb )
@@ -683,15 +683,14 @@ static void ath9k_hif_usb_rx_cb(struct urb *urb)
683
683
return ;
684
684
free :
685
685
kfree_skb (skb );
686
- kfree (rx_buf );
687
686
}
688
687
689
688
static void ath9k_hif_usb_reg_in_cb (struct urb * urb )
690
689
{
691
- struct rx_buf * rx_buf = (struct rx_buf * )urb -> context ;
692
- struct hif_device_usb * hif_dev = rx_buf -> hif_dev ;
693
- struct sk_buff * skb = rx_buf -> skb ;
690
+ struct sk_buff * skb = (struct sk_buff * ) urb -> context ;
694
691
struct sk_buff * nskb ;
692
+ struct hif_device_usb * hif_dev =
693
+ usb_get_intfdata (usb_ifnum_to_if (urb -> dev , 0 ));
695
694
int ret ;
696
695
697
696
if (!skb )
@@ -749,7 +748,6 @@ static void ath9k_hif_usb_reg_in_cb(struct urb *urb)
749
748
return ;
750
749
free :
751
750
kfree_skb (skb );
752
- kfree (rx_buf );
753
751
urb -> context = NULL ;
754
752
}
755
753
@@ -795,7 +793,7 @@ static int ath9k_hif_usb_alloc_tx_urbs(struct hif_device_usb *hif_dev)
795
793
init_usb_anchor (& hif_dev -> mgmt_submitted );
796
794
797
795
for (i = 0 ; i < MAX_TX_URB_NUM ; i ++ ) {
798
- tx_buf = kzalloc (sizeof (* tx_buf ), GFP_KERNEL );
796
+ tx_buf = kzalloc (sizeof (struct tx_buf ), GFP_KERNEL );
799
797
if (!tx_buf )
800
798
goto err ;
801
799
@@ -832,22 +830,15 @@ static void ath9k_hif_usb_dealloc_rx_urbs(struct hif_device_usb *hif_dev)
832
830
833
831
static int ath9k_hif_usb_alloc_rx_urbs (struct hif_device_usb * hif_dev )
834
832
{
835
- struct rx_buf * rx_buf = NULL ;
836
- struct sk_buff * skb = NULL ;
837
833
struct urb * urb = NULL ;
834
+ struct sk_buff * skb = NULL ;
838
835
int i , ret ;
839
836
840
837
init_usb_anchor (& hif_dev -> rx_submitted );
841
838
spin_lock_init (& hif_dev -> rx_lock );
842
839
843
840
for (i = 0 ; i < MAX_RX_URB_NUM ; i ++ ) {
844
841
845
- rx_buf = kzalloc (sizeof (* rx_buf ), GFP_KERNEL );
846
- if (!rx_buf ) {
847
- ret = - ENOMEM ;
848
- goto err_rxb ;
849
- }
850
-
851
842
/* Allocate URB */
852
843
urb = usb_alloc_urb (0 , GFP_KERNEL );
853
844
if (urb == NULL ) {
@@ -862,14 +853,11 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev)
862
853
goto err_skb ;
863
854
}
864
855
865
- rx_buf -> hif_dev = hif_dev ;
866
- rx_buf -> skb = skb ;
867
-
868
856
usb_fill_bulk_urb (urb , hif_dev -> udev ,
869
857
usb_rcvbulkpipe (hif_dev -> udev ,
870
858
USB_WLAN_RX_PIPE ),
871
859
skb -> data , MAX_RX_BUF_SIZE ,
872
- ath9k_hif_usb_rx_cb , rx_buf );
860
+ ath9k_hif_usb_rx_cb , skb );
873
861
874
862
/* Anchor URB */
875
863
usb_anchor_urb (urb , & hif_dev -> rx_submitted );
@@ -895,8 +883,6 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev)
895
883
err_skb :
896
884
usb_free_urb (urb );
897
885
err_urb :
898
- kfree (rx_buf );
899
- err_rxb :
900
886
ath9k_hif_usb_dealloc_rx_urbs (hif_dev );
901
887
return ret ;
902
888
}
@@ -908,21 +894,14 @@ static void ath9k_hif_usb_dealloc_reg_in_urbs(struct hif_device_usb *hif_dev)
908
894
909
895
static int ath9k_hif_usb_alloc_reg_in_urbs (struct hif_device_usb * hif_dev )
910
896
{
911
- struct rx_buf * rx_buf = NULL ;
912
- struct sk_buff * skb = NULL ;
913
897
struct urb * urb = NULL ;
898
+ struct sk_buff * skb = NULL ;
914
899
int i , ret ;
915
900
916
901
init_usb_anchor (& hif_dev -> reg_in_submitted );
917
902
918
903
for (i = 0 ; i < MAX_REG_IN_URB_NUM ; i ++ ) {
919
904
920
- rx_buf = kzalloc (sizeof (* rx_buf ), GFP_KERNEL );
921
- if (!rx_buf ) {
922
- ret = - ENOMEM ;
923
- goto err_rxb ;
924
- }
925
-
926
905
/* Allocate URB */
927
906
urb = usb_alloc_urb (0 , GFP_KERNEL );
928
907
if (urb == NULL ) {
@@ -937,14 +916,11 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev)
937
916
goto err_skb ;
938
917
}
939
918
940
- rx_buf -> hif_dev = hif_dev ;
941
- rx_buf -> skb = skb ;
942
-
943
919
usb_fill_int_urb (urb , hif_dev -> udev ,
944
920
usb_rcvintpipe (hif_dev -> udev ,
945
921
USB_REG_IN_PIPE ),
946
922
skb -> data , MAX_REG_IN_BUF_SIZE ,
947
- ath9k_hif_usb_reg_in_cb , rx_buf , 1 );
923
+ ath9k_hif_usb_reg_in_cb , skb , 1 );
948
924
949
925
/* Anchor URB */
950
926
usb_anchor_urb (urb , & hif_dev -> reg_in_submitted );
@@ -970,8 +946,6 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev)
970
946
err_skb :
971
947
usb_free_urb (urb );
972
948
err_urb :
973
- kfree (rx_buf );
974
- err_rxb :
975
949
ath9k_hif_usb_dealloc_reg_in_urbs (hif_dev );
976
950
return ret ;
977
951
}
0 commit comments