Skip to content

libertas update

David Woodhouse linux-wireless 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest48 patches 92 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/48libertas: Fix memory leak of RX skbsdrivers/net/wireless/libertas/if_usb.c+5 -10 replies
2/48libertas: Remove cmd_oid from struct cmd_ctrl_nodedrivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/decl.h drivers/net/wireless/libertas/hostcmd.h+4 -90 replies
3/48libertas: Consolidate lbs_host_to_card_done() function.drivers/net/wireless/libertas/decl.h drivers/net/wireless/libertas/if_cs.c drivers/net/wireless/libertas/if_sdio.c +2 more+27 -310 replies
4/48libertas: select WIRELESS_EXTdrivers/net/wireless/Kconfig+1 -00 replies
5/48libertas: remove cmd_ctrl_node->cmdflagsdrivers/net/wireless/libertas/cmdresp.c drivers/net/wireless/libertas/hostcmd.h+0 -80 replies
6/48libertas: remove cmd_ctrl_node->statusdrivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/hostcmd.h+0 -20 replies
7/48libertas: make more functions staticdrivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/decl.h+8 -83 replies
8/48libertas: handy function to call firmware commandsdrivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/cmdresp.c drivers/net/wireless/libertas/decl.h +1 more+126 -100 replies
9/48libertas: Don't claim to have checksummed incoming packets.drivers/net/wireless/libertas/rx.c+1 -10 replies
10/48libertas: Move SET_BOOT2_VER command to if_usb where it belongsdrivers/net/wireless/libertas/if_usb.c drivers/net/wireless/libertas/main.c+5 -40 replies
11/48libertas: Zero 'pdata_size' field in cmd_ctrl_node reliably.drivers/net/wireless/libertas/cmd.c+2 -00 replies
12/48libertas: Byteswap cmdptr->size in lbs_cmd()drivers/net/wireless/libertas/cmd.c+1 -10 replies
13/48libertas: don't cast a pointer to pointer ofdrivers/net/wireless/libertas/cmd.c+11 -110 replies
14/48libertas: fix data packet size errorsdrivers/net/wireless/libertas/cmdresp.c drivers/net/wireless/libertas/if_cs.c+4 -13 replies
15/48libertas: Use lbs_cmd() for setting Boot2 versiondrivers/net/wireless/libertas/if_usb.c+16 -40 replies
16/48libertas: Remove SET_BOOT2_VER support from the Big Switch Statement.drivers/net/wireless/libertas/cmd.c+0 -150 replies
17/48libertas: Fix endianness in boot2_version handling.drivers/net/wireless/libertas/if_usb.c+1 -10 replies
18/48libertas: implement new scanning logicdrivers/net/wireless/libertas/dev.h drivers/net/wireless/libertas/scan.c+361 -5130 replies
19/48libertas: when usb_submit_usb fails, include the error code in the printkdrivers/net/wireless/libertas/if_usb.c+2 -20 replies
20/48libertas: Switch to using a callback function pointer for commandsdrivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/cmdresp.c drivers/net/wireless/libertas/hostcmd.h+34 -210 replies
21/48libertas: endianness fixesdrivers/net/wireless/libertas/11d.c drivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/cmdresp.c +3 more+23 -230 replies
22/48libertas: Don't set IW_ENCODE_NOKEY when returning WEP keys.drivers/net/wireless/libertas/wext.c+1 -100 replies
23/48libertas: Fix up error handling in lbs_setuserscan()drivers/net/wireless/libertas/debugfs.c+19 -100 replies
24/48libertas: kill adapter->nr_cmd_pendingdrivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/cmdresp.c drivers/net/wireless/libertas/debugfs.c +2 more+5 -140 replies
25/48libertas: switch lbs_cmd() to take a callback function pointerdrivers/net/wireless/libertas/cmd.c drivers/net/wireless/libertas/decl.h drivers/net/wireless/libertas/hostcmd.h +1 more+7 -350 replies
26/48libertas: clean up lbs_thread() to make it slightly more readabledrivers/net/wireless/libertas/main.c+36 -560 replies
27/48libertas: fix lbs_rtap attribute in sysfsdrivers/net/wireless/libertas/dev.h drivers/net/wireless/libertas/main.c+6 -140 replies
28/48libertas: kill TxLockFlagdrivers/net/wireless/libertas/dev.h drivers/net/wireless/libertas/main.c drivers/net/wireless/libertas/tx.c+25 -100 replies
29/48libertas: kill struct lbs_adapterdrivers/net/wireless/libertas/11d.c drivers/net/wireless/libertas/assoc.c drivers/net/wireless/libertas/assoc.h +16 more+1046 -12040 replies
30/48libertas: use lbs_host_to_card_done() in lbs_tx_timeout()drivers/net/wireless/libertas/main.c+17 -230 replies
31/48libertas: cope with device which already has firmware loadeddrivers/net/wireless/libertas/if_usb.c drivers/net/wireless/libertas/if_usb.h+23 -140 replies
32/48libertas: stop debugfs code looking at cmdpendingqdrivers/net/wireless/libertas/debugfs.c+1 -20 replies
33/48libertas: kill internal tx queue for PS modedrivers/net/wireless/libertas/decl.h drivers/net/wireless/libertas/dev.h drivers/net/wireless/libertas/main.c +1 more+3 -500 replies
34/48libertas: kill SendSinglePacket() function.drivers/net/wireless/libertas/tx.c+24 -420 replies
35/48libertas: move lbs_hard_start_xmit() into tx.cdrivers/net/wireless/libertas/decl.h drivers/net/wireless/libertas/main.c drivers/net/wireless/libertas/tx.c+33 -340 replies
36/48libertas: kill lbs_process_tx() by merging it into lbs_hard_start_xmit()drivers/net/wireless/libertas/tx.c+13 -320 replies
37/48libertas: clean up lbs_hard_start_xmit()drivers/net/wireless/libertas/tx.c+63 -700 replies
38/48libertas: kill lbs_pre_start_xmit(), lib_mesh_pre_start_xmit()drivers/net/wireless/libertas/main.c+2 -480 replies
39/48libertas: stop using ieee80211 for radiotap devicedrivers/net/wireless/libertas/dev.h drivers/net/wireless/libertas/main.c+15 -230 replies
40/48libertas: set dev_addr on rtap devicedrivers/net/wireless/libertas/main.c+1 -00 replies
41/48libertas: TX packet is radiotap iff it comes from rtap_devdrivers/net/wireless/libertas/tx.c+1 -10 replies
42/48libertas: free successfully transmitted skbs againdrivers/net/wireless/libertas/tx.c+3 -10 replies
43/48libertas: refactor the 'should I sleep?' decision in lbs_thread()drivers/net/wireless/libertas/main.c+18 -20 replies
44/48libertas: Move actual transmission to main threaddrivers/net/wireless/libertas/dev.h drivers/net/wireless/libertas/main.c drivers/net/wireless/libertas/tx.c+71 -610 replies
45/48libertas: remove unreachable code from process_rxed_802_11_packet()drivers/net/wireless/libertas/rx.c+32 -430 replies
46/48libertas: fix error cases in lbs_process_rxed_802_11_packet()drivers/net/wireless/libertas/rx.c+8 -60 replies
47/48libertas: kill lbs_upload_tx_packet()drivers/net/wireless/libertas/decl.h drivers/net/wireless/libertas/rx.c drivers/net/wireless/libertas/tx.c+16 -260 replies
48/48libertas: kill (IS,SET,UNSET)_MESH_FRAME.drivers/net/wireless/libertas/defs.h+0 -40 replies

Reviews trailers per patch

1 of 48 patches has a Reviewed-by or Acked-by.

PatchDan Williams
1/48
2/48
3/48
4/48
5/48
6/48
7/48
8/48
9/48
10/48
11/48
12/48
13/48
14/48
15/48
16/48
17/48
18/48A-b
19/48
20/48
21/48
22/48
23/48
24/48
25/48
26/48
27/48
28/48
29/48
30/48
31/48
32/48
33/48
34/48
35/48
36/48
37/48
38/48
39/48
40/48
41/48
42/48
43/48
44/48
45/48
46/48
47/48
48/48

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH] [00/48] libertas update

This is the first set of patches to clean up the libertas driver, from the tree at git://git.infradead.org/libertas-2.6.git

It removes the 'struct lbs_adapter' data structure, merging it into 'struct lbs_private', and removes a bunch of pointless unused fields from it.

It collapses the pointless nest of functions in the transmit path, which used to go pre_start_xmit->hard_start_xmit->lbs_process_tx->SendSinglePacket and now can be handled entirely in libertas_hard_start_xmit() -- thus removing the need to store information about which netdevice the packet belongs to, so the whole IS_MESH_FRAME / {UN,}SET_MESH_FRAME thing can go away too.

It slightly cleans up the RX code path too, along similar lines. There's more to be done here.

It fixes radiotap mode so that you can query it without crashing, and can even enable it and see packets, which is a shiny new feature. As an added bonus, you can even disable it again without crashing, too.

It also fixes a bunch of other things which offended me along the way, and makes a start at addressing the locking issues with command and data transmission to the device, partly by moving the actual TX packet submission to the context of the main worker thread.

There's more to be done, but it seems to make sense to merge at this point before I embark on the next batch...

Dan Williams (1):
libertas: select WIRELESS_EXT

David Woodhouse (39):
libertas: Fix memory leak of RX skbs
libertas: Remove cmd_oid from struct cmd_ctrl_node
libertas: Consolidate lbs_host_to_card_done() function.
libertas: Don't claim to have checksummed incoming packets.
libertas: Move SET_BOOT2_VER command to if_usb where it belongs
libertas: Zero 'pdata_size' field in cmd_ctrl_node reliably.
libertas: Byteswap cmdptr->size in lbs_cmd()
libertas: Use lbs_cmd() for setting Boot2 version
libertas: Remove SET_BOOT2_VER support from the Big Switch Statement.
libertas: Fix endianness in boot2_version handling.
libertas: when usb_submit_usb fails, include the error code in the printk
libertas: Switch to using a callback function pointer for commands
libertas: Don't set IW_ENCODE_NOKEY when returning WEP keys.
libertas: Fix up error handling in lbs_setuserscan()
libertas: kill adapter->nr_cmd_pending
libertas: switch lbs_cmd() to take a callback function pointer
libertas: clean up lbs_thread() to make it slightly more readable
libertas: fix lbs_rtap attribute in sysfs
libertas: kill TxLockFlag
libertas: kill struct lbs_adapter
libertas: use lbs_host_to_card_done() in lbs_tx_timeout()
libertas: cope with device which already has firmware loaded
libertas: stop debugfs code looking at cmdpendingq
libertas: kill internal tx queue for PS mode
libertas: kill SendSinglePacket() function.
libertas: move lbs_hard_start_xmit() into tx.c
libertas: kill lbs_process_tx() by merging it into lbs_hard_start_xmit()
libertas: clean up lbs_hard_start_xmit()
libertas: kill lbs_pre_start_xmit(), lib_mesh_pre_start_xmit()
libertas: stop using ieee80211 for radiotap device
libertas: set dev_addr on rtap device
libertas: TX packet is radiotap iff it comes from rtap_dev
libertas: free successfully transmitted skbs again
libertas: refactor the 'should I sleep?' decision in lbs_thread()
libertas: Move actual transmission to main thread
libertas: remove unreachable code from process_rxed_802_11_packet()
libertas: fix error cases in lbs_process_rxed_802_11_packet()
libertas: kill lbs_upload_tx_packet()
libertas: kill (IS,SET,UNSET)_MESH_FRAME.

Holger Schurig (7):
libertas: remove cmd_ctrl_node->cmdflags
libertas: remove cmd_ctrl_node->status
libertas: make more functions static
libertas: handy function to call firmware commands
libertas: fix data packet size errors
libertas: implement new scanning logic
libertas: endianness fixes

Li Zefan (1):
libertas: don't cast a pointer to pointer of

---

23 files changed, 1809 insertions(+), 2189 deletions(-)
Signature · 1 line
dwmw2