On 4/10/22 15:30, Zheyu Ma wrote: > Hello, > > I found a bug in the pata_marvell module. > When probing the driver, it seems to trigger the error path and > executes the function marvell_cable_detect(), but the > 'ap->ioaddr.bmdma_addr' is not initialized, which causes a warning. I do not have this hardware so I cannot debug this. Please debug it and send a patch. bmdma_addr is normally set in ata_pci_bmdma_init(), but some drivers set it manually in their probe functions. No idea about the marvell driver, I have not checked it. > > The following log can reveal it: > > [ 3.453943] Bad IO access at port 0x1 (return inb(port)) > [ 3.454430] WARNING: CPU: 7 PID: 291 at lib/iomap.c:44 ioread8+0x4a/0x60 > [ 3.457962] RIP: 0010:ioread8+0x4a/0x60 > [ 3.466362] Call Trace: > [ 3.466572] <TASK> > [ 3.466756] marvell_cable_detect+0xad/0xf0 [pata_marvell] > [ 3.467699] ata_eh_recover+0x3520/0x6cc0 > [ 3.473262] ata_do_eh+0x49/0x3c0 > [ 3.473906] ata_scsi_port_error_handler+0xd96/0x1d00 > [ 3.474355] ata_scsi_error+0x243/0x290 > [ 3.475428] scsi_error_handler+0x2ff/0xea0 > [ 3.477244] kthread+0x262/0x2e0 -- Damien Le Moal Western Digital Research