Re: [RFT v3] eata: Convert eata driver as normal PCI and platform device drivers

From: Arthur Marsh
Date: Sat Sep 26 2015 - 02:27:17 EST




Arthur Marsh wrote on 24/09/15 15:26:


Jiang Liu wrote on 24/09/15 13:58:

Hi James,
Thanks for review. How about the attached patch which addresses
the three suggestions from you?
Thanks!
Gerry

I've applied the patch, rebuilt the kernel and verified that it allows
unloading of the eata module and reloading it, as well as a successful
kexec.

Regards,

Arthur.

After some more thorough testing I've encountered an ongoing problem trying to use kexec with filesystems mounted with the eata driver.

If I boot up and have the eata driver loaded but no filesystem check or mounting of filesystems on the disk attached to the DPT2044W controller, then attempt a kexec reboot I get the reboot pausing after the "synchronizing scsi cache" messages and getting the errors that I have included as pictures in my previous reports.

If I do a normal boot which includes eata being loaded, the disk attached to the DPT2044W controller having its filesystems checked and mounted, then attempt a kexec reboot, I get the reboot pausing after the "synchronizing SCSI cache" messages as before.

If I un-mount the filesystems on the disk attached to the DPT2044W controller after start-up and try a reboot I get the same problem.

If I do modprobe -r eata after un-mounting the filesystems on the disk attached to the DPT2044W controller after a start-up kexec *works fine*.

If I do:

start-up
un-mount filesystems on disk attached to DPT2044W controller
modprobe -r eata
modprobe eata
fsck -a of filesystems on disk attached to DPT2044W controller
mount filesystems

then a kexec reboot works fine.

I did some more experimenting and found a workaround:

I was unable to blacklist the eata module but if I did:

modprobe -r eata
modprobe eata

in a cron job before the fsck and mount commands then
I could then perform a kexec reboot successfully.

I also verified that if I did:

modprobe -r eata

after eata was loaded on boot-up without any fsck or mounting of filesystems on the disk attached to the DPT2044W controller using the eata the kexec reboot worked fine.

In summary:

if eata is loaded kexec reboot will fail unless a modprobe -r eata is done either manually or by a cron job.

if a modprobe -r eata has been done, then even if I modprobe eata and fsck and mount filesystems, kexec reboot works.

Any suggestions for further tests or checks welcome.

Arthur.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/