• Johannes Berg's avatar
    iwlwifi: fix up command sending · c2acea8e
    Johannes Berg authored
    
    
    The current command sending in iwlwifi is a bit of a mess:
     1) there is a struct, iwl_cmd, that contains both driver
        and device data in a single packed structure -- this
        is very confusing
     2) the on-stack data and the command metadata share a
        structure by embedding the latter in the former, which
        is also rather confusing because it leads to weird
        unions and similarly odd constructs
     3) each txq always has enough space for 256 commands,
        even if only 32 end up being used
    
    This patch fixes these things:
     1) rename iwl_cmd to iwl_device_cmd and keep track of
        command metadata and device command separately, in
        two arrays in each tx queue
     2) remove the 'meta' member from iwl_host_cmd and only
        put in the required members
     3) allocate the cmd/meta arrays separately instead of
        embedding them into the txq structure
    Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    c2acea8e
iwl-core.c 84.5 KB