• David Sterba's avatar
    ipwireless: Fix blocked sending · eb4e545d
    David Sterba authored
    Packet sending is driven by two flags, tx_ready and tx_queued.
    It was possible, that there were queued data for sending and
    hardware was flagged as blocked but in fact it was not.
    
    The tx_queued was indicator but should be really a counter else
    first fragmented packet resets tx_queued flag, but there may be
    pending packets which do not get sent.
    
    New semantics:
    tx_ready - set, if hw is ready to send packet, no packet is being
               transferred right now
               set the flag right at the place where data are copied
               into hw memory and not earlier without checking if it
               was succesful
    tx_queued - count of enqueued packets, including fragments
    Tested-by: default avatarMichal Rokos <michal.rokos@gmail.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.cz>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    eb4e545d
hardware.c 45.6 KB