From: Prashant Sreedharan <prashant@xxxxxxxxxxxx> Date: Sat, 20 Dec 2014 12:16:17 -0800 > 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 <nholland@xxxxxxxxx> > Reported-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx> > Signed-off-by: Prashant Sreedharan <prashant@xxxxxxxxxxxx> > Signed-off-by: Michael Chan <mchan@xxxxxxxxxxxx> Applied and queued up for -stable, thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html