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(-) -- dwmw2 - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html