• Michael Chan's avatar
    [TG3]: Remove status block access in tg3_msi() and add prefetches · 61487480
    Michael Chan authored
    Remove unnecessary status block accesses in tg3_msi(). Since MSI is
    not shared, it is unnecessary to read the status block to determine if
    there are any new events in the MSI handler. It is also unnecessary to
    clear the updated bit in the status block.
    
    Since the poll list is per-cpu, tg3_poll() will be scheduled to run on
    the same CPU that received the MSI. Prefetches for the status block
    and the next rx descriptors are added in tg3_msi() to improve their
    access times when tg3_poll() runs.
    
    In the non-MSI irq handlers, we need to check the status block because
    interrupts may be shared. Only prefetches for the next rx descriptors
    are added.
    Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    61487480
tg3.c 308 KB