• D
    ipwireless: Fix blocked sending · eb4e545d
    David Sterba 提交于
    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: NMichal Rokos <michal.rokos@gmail.com>
    Signed-off-by: NDavid Sterba <dsterba@suse.cz>
    Signed-off-by: NJiri Kosina <jkosina@suse.cz>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    eb4e545d
hardware.c 45.6 KB