diff options
| author | Prashant Sreedharan <[email protected]> | 2014-12-20 12:16:17 -0800 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2014-12-22 16:13:32 -0500 |
| commit | 05b0aa579397b734f127af58e401a30784a1e315 (patch) | |
| tree | cc04caa1fe6c084f79694fb0814a1da2902c0af5 /tools/perf/scripts/python/bin | |
| parent | 6d08acd2d32e3e877579315dc3202d7a5f336d98 (diff) | |
tg3: tg3_disable_ints using uninitialized mailbox value to disable interrupts
During driver load in tg3_init_one, if the driver detects DMA activity before
intializing the chip tg3_halt is called. As part of tg3_halt interrupts are
disabled using routine tg3_disable_ints. This routine was using mailbox value
which was not initialized (default value is 0). As a result driver was writing
0x00000001 to pci config space register 0, which is the vendor id / device id.
This driver bug was exposed because of the commit a7877b17a667 (PCI: Check only
the Vendor ID to identify Configuration Request Retry). Also this issue is only
seen in older generation chipsets like 5722 because config space write to offset
0 from driver is possible. The newer generation chips ignore writes to offset 0.
Also without commit a7877b17a667, for these older chips when a GRC reset is
issued the Bootcode would reprogram the vendor id/device id, which is the reason
this bug was masked earlier.
Fixed by initializing the interrupt mailbox registers before calling tg3_halt.
Please queue for -stable.
Reported-by: Nils Holland <[email protected]>
Reported-by: Marcelo Ricardo Leitner <[email protected]>
Signed-off-by: Prashant Sreedharan <[email protected]>
Signed-off-by: Michael Chan <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions