Re: [PATCH 1/2] pci/irq: restore mask_bits in msi shutdown -v3

From: Jesse Barnes
Date: Tue Apr 29 2008 - 12:14:14 EST


On Friday, April 25, 2008 3:08 pm Yinghai Lu wrote:
> On Fri, Apr 25, 2008 at 2:48 PM, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
wrote:
> > On Wednesday, April 23, 2008 2:56 pm Yinghai Lu wrote:
> > > Yinghai found after using 2.6.25-rc3 later to kexec RHEL 5.1,
> > > NIC can not be used.
> > >
> > > bisected to
> >
> > Hi Yinghai, I've been thinking about these patches a bit... They seem
> > like an important bug fix (making sure kexec'd kernels work), but I'm a
> > bit worried that the kexec'd kernel can't handle potentially broken
> > MSI/INTx setups. Shouldn't the kexec'd kernel be a bit more robust? I
> > guess in this case you're kexec'ing an old kernel, so there's not much we
> > can do, but it still makes me a little uneasy.
>
> Yes, it is important, and should be in 2.6.25 stable too.
>
> the maskbits always 0x00 (enabled) from BIOS post..., so we should restore
> that.
>
> > I guess for this particular set it doesn't matter much, since we should
> > be restoring things in pci_msi*_shutdown and pci_shutdown_device either
> > way. Can you clean up the changelog a bit and maybe make it more concise?
> > E.g. we probably don't need the whole commit message for the bisect, and
> > we want to be clearer about what the failure mode is w/o the changes...
>
> without it, the second kernel can not use the devices, if second
> kernel could use MSI but doesn't touch mask_bit.
>
> ---
> [PATCH 1/2] pci/irq: restore mask_bits in msi shutdown -v3
>
> Yinghai found after using 2.6.25-rc3 later to kexec RHEL 5.1,
> NIC can not be used.
>
> bisected to
>
> | commit 89d694b9dbe769ca1004e01db0ca43964806a611
> | Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> | Date: Mon Feb 18 18:25:17 2008 +0100
> |
> | genirq: do not leave interupts enabled on free_irq
> |
> | The default_disable() function was changed in commit:
> |
> | 76d2160147f43f982dfe881404cfde9fd0a9da21
> | genirq: do not mask interrupts by default
>
> for MSI, default_shutdown will call mask_bit for msi device. so all mask
> bits will left disabled after free_irq. then if kexec next kernel that
> only can use msi_enable bit. all device's MSI can not be used.
>
> So lets to restore the mask bit to it's pci reset defined value (enabled)
> when we disable the kernels use of msi.
>
> extend msi_set_mask_bit to msi_set_mask_bits to take mask, so we can fully
> restore that to 0x00 instead of 0xfe.
>
> Signed-off-by: Yinghai Lu <yhlu.kernel@xxxxxxxxx>

Applied both (fixed up the changelog a little though), thanks.

Jesse
--
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/