Dave Jones <davej@xxxxxxxxxx> wrote:
(This has actually been there for a while, but I only
noticed it in dmesg this morning).
During boot on a dual em64t I see ..
scsi2 : ata_piix
isa bounce pool size: 16 pages
slab error in cache_free_debugcheck(): cache `size-2048': double free, or memory outside object was overwritten
Call Trace:<ffffffff80163448>{cache_free_debugcheck+392} <ffffffff801646aa>{kfree+234}
<ffffffff88065189>{:libata:ata_pci_init_one+937} <ffffffff801fe9ea>{pci_bus_read_config_word+122}
<ffffffff880707f2>{:ata_piix:piix_init_one+498} <ffffffff80202926>{pci_device_probe+134}
<ffffffff802691ad>{driver_probe_device+77} <ffffffff802692cb>{driver_attach+75}
<ffffffff802696c9>{bus_add_driver+169} <ffffffff802025e3>{pci_register_driver+131}
<ffffffff88074010>{:ata_piix:piix_init+16} <ffffffff80152c58>{sys_init_module+344}
<ffffffff8010e52a>{system_call+126}
ffff81011e49f4a0: redzone 1: 0x5a2cf071, redzone 2: 0x5a2cf071.
It's plain to see how ata_pci_init_one() will free `probe_ent' twice. Jeff
wanna fix that up please? A naive fix would be