[linux-dvb] Compile error, bug in compat.h with kernel 2.6.27.9 ?

BOUWSMA Barry freebeer.bouwsma at gmail.com
Tue Dec 30 18:25:09 CET 2008


On Tue, 30 Dec 2008, Thierry Lelegard wrote:

> I have a compilation problem with the latest Linux DVB repository (Dec 30 2008)
> on kernel 2.6.27.9. The source of the error seems to be an incorrect test in
> compat.h.

> In <linux/pci.h>, the following has been added somewhere between 2.6.27.7
> and 2.6.27.9 (the two latest kernels I have on my Fedora 10 box):
> 
> #ifdef CONFIG_HAS_IOMEM
> static inline void __iomem *pci_ioremap_bar(struct pci_dev *pdev, int bar)

> But the test < KERNEL_VERSION(2, 6, 28) is not really correct since
> the definition of pci_ioremap_bar appeared in the kernel in the middle of
> 2.6.27.* (in .8 or .9).

This seems to be more a result of the versioning which
your distribution applies to the kernels, where certain
features seem to have been cherry-picked from 2.6.28 and
been added without bumping the version.

The above code is not present in the git kernel repo as
of the time 2.6.27 went out the door, but was added a
day before the 2.6.28-rc1 tag was applied during the two
week merge window of limbo-land (22.Oct), I think.

Unfortunately, I don't know myself of a more fine-grained
date-based versioning that can be useful for snapshots
made during the merge window -- but such would only apply
to the git 2.6 repository, and not to vendor versions.


> I do not see an obvious and general solution to this.

I wonder if you could modify compat.h to reverse the
test in the diff --
+#ifdef CONFIG_HAS_IOMEM
or if this is set/not-set elsewhere...  Well, it's an
idea.


barry bouwsma



More information about the linux-dvb mailing list