Re: [RFC][PATCH] timers fixes/improvements

From: Christoph Lameter
Date: Wed May 11 2005 - 10:15:31 EST


On Wed, 11 May 2005, Oleg Nesterov wrote:

> > However, if the padding is put before ptype_base and after ptype_all
> > then the problem occurs.
>
> So. ptype_base/ptype_all is corrupted before e1000_probe()->register_netdev().
>
> Christoph, please, could you try this patch?

We found that this has nothing to do with the timer patches. There is a
scribble in pcie_rootport_aspm_quirk that overwrites ptype_all.

quirk_aspm_offset[GET_INDEX(pdev->device, dev->devfn)]= cap_base + 0x10;

does the evil deed. The array offset calculated by GET_INDEX is out of
bounds.

The definition of GET_INDEX is suspect:

#define GET_INDEX(a, b) (((a - PCI_DEVICE_ID_INTEL_MCH_PA) << 3) + b)

should this not be

#define GET_INDEX(a, b) ((((a) - PCI_DEVICE_ID_INTEL_MCH_PA) << 3) + \
((b) & 7))

?


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