On 08/09/2012 03:26 PM, Zefir Kurtisi wrote: > On 08/09/2012 06:40 AM, Andy Gospodarek wrote: >> This patch allows me to compile and load the latest compat modules on >> RHEL6.3. Users of compat on RHEL6 should note that you should set >> CONFIG_COMPAT_KFIFO=n as those bits are not needed at all. >> >> [...] >> >> diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h >> index 56d5961..09e4b6f 100644 >> --- a/include/linux/compat-2.6.36.h >> +++ b/include/linux/compat-2.6.36.h >> @@ -98,6 +98,8 @@ struct pm_qos_request_list { >> * Dummy printk for disabled debugging statements to use whilst maintaining >> * gcc's format and side-effect checking. >> */ >> +/* mask no_printk as RHEL6 backports this */ >> +#define no_printk(...) compat_no_printk(...) >> static inline __attribute__ ((format (printf, 1, 2))) >> int no_printk(const char *s, ...) { return 0; } >> >> [...] > > This at least breaks compilation on 2.6.35-22 with gcc throwing a > compat-2.6.36.h:104: error: ISO C requires a named argument before ‘...’ > > It looks like no_printk() needs to be renamed to compat_no_printk() > to make it work as intended. > > This is a systematic mistake at several sections of this patch, where > the original function needs to be prefixed by 'compat_' to match the > related macro. > > > --- > diff --git a/include/linux/compat-2.6.36.h b/include/linux/compat-2.6.36.h > index 8b02260..b6757c3 100644 > --- a/include/linux/compat-2.6.36.h > +++ b/include/linux/compat-2.6.36.h > @@ -101,7 +101,7 @@ struct pm_qos_request_list { > /* mask no_printk as RHEL6 backports this */ > #define no_printk(...) compat_no_printk(...) > static inline __attribute__ ((format (printf, 1, 2))) > -int no_printk(const char *s, ...) { return 0; } > +int compat_no_printk(const char *s, ...) { return 0; } > > #ifndef alloc_workqueue > #define alloc_workqueue(name, flags, max_active) __create_workqueue(name, flags, max_active, 0) With this patch applied it works better, but I still get this error in drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c. brcmfmac has this line: #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__) so brcmf_dbg gets no_printk and not compat_no_printk. Why isn't "ifndef CONFIG_COMPAT_RHEL_6_3" put around the declaration of no_printk()? Hauke -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html