Problem with kexec on i386, linux-3.5
khalid.aziz at hp.com
Mon Sep 10 12:29:00 EDT 2012
On Mon, 2012-09-10 at 08:00 +0200, Christian Schaubschläger wrote:
> Hello Khalid,
> > Are you not loading the driver for your disk drive controller when the
> > new kernel boots up, even though you are not using the driver for disk
> > I/O? If yes, the driver should have re-enabled Bus Master bit in its
> > init routine. If you are loading the driver, which driver is it? I can
> > take a look at it and see if there is anything missing in the
> > initialization routine. Can you also include output from "lspci -v" from
> > your machine?
> I'm not loading any drivers in my new kernel, I'm just doing pure BIOS disk I/O using Int13 calls (the program I start using kexec I would not actually call a 'kernel', it's just a very tiny piece of software which does some disk I/O and output on the screen).
> Attached you find the output of lspci -v
> Best regards
You have a rather esoteric use case. The patch that clears Bus Master
bit relies upon drivers reinitializing the controllers which includes
setting the Bus Master bit as well. Can you access PCI config space in
your program that you kexec? If yes, can you set the Bus Master bit in
your program? You have a pretty standard IDE controller there which does
have Bus Master capability.
Khalid Aziz <khalid.aziz at hp.com>
More information about the kexec