From: Randy Dunlap <randy.dunlap@oracle.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Ingo Molnar <mingo@elte.hu>, Len Brown <lenb@kernel.org>,
Stephen Rothwell <sfr@canb.auug.org.au>,
Luming Yu <luming.yu@intel.com>,
linux-next@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
linux-acpi@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH upstream build breakage] acpi: several drivers depend on NET
Date: Mon, 28 Feb 2011 16:00:15 -0800 [thread overview]
Message-ID: <4D6C370F.1040104@oracle.com> (raw)
In-Reply-To: <201102282342.59407.rjw@sisk.pl>
On 02/28/11 14:42, Rafael J. Wysocki wrote:
> On Monday, February 28, 2011, Rafael J. Wysocki wrote:
>> On Monday, February 28, 2011, Randy Dunlap wrote:
>>> On Tue, 1 Feb 2011 13:03:23 +0100 Ingo Molnar wrote:
>>>
>>>> * Ingo Molnar <mingo@elte.hu> wrote:
>>>>
>>>>> * Randy Dunlap <randy.dunlap@oracle.com> wrote:
>>>>>
>>>>>> On Mon, 20 Dec 2010 20:00:13 +1100 Stephen Rothwell wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> [The mirroring on kernel.org is running slowly]
>>>>>>>
>>>>>>> Changes since 20101217:
>>>>>>
>>>>>> ERROR: "thermal_cooling_device_register" [drivers/acpi/video.ko] undefined!
>>>>>> ERROR: "thermal_cooling_device_unregister" [drivers/acpi/video.ko] undefined!
>>>>>
>>>>> This bug has been reported two months ago, one month ago, it has been ignored twice
>>>>> and now the bug has been pushed upstream and it's triggering there as well.
>>>>>
>>>>> What's going on?
>>>>
>>>> *Tap*, *tap*, is this thing on? :)
>>>>
>>>> acpi-video is still build-broken upstream, as of .38-rc3:
>>>>
>>>> MODPOST 651 modules
>>>> ERROR: "thermal_cooling_device_register" [drivers/acpi/video.ko] undefined!
>>>> ERROR: "thermal_cooling_device_unregister" [drivers/acpi/video.ko] undefined!
>>>> WARNING: modpost: Found 37 section mismatch(es).
>>>> To see full details build your kernel with:
>>>> 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
>>>> make[1]: *** [__modpost] Error 1
>>>> make: *** [modules] Error 2
>>>>
>>>> Triggers in about 10% of all randconfig builds. Config attached.
>>>
>>>
>>> From: Randy Dunlap <randy.dunlap@oracle.com>
>>>
>>> Several ACPI drivers select THERMAL, but THERMAL depends on NET
>>> (for netlink). Fix build breakage by making the ACPI drivers
>>> also depend on NET.
>>
>> Well, making ACPI_FAN depend on NET seems to be a kind of an overstretch to me.
>> A proper fix would be to disable the netlink interface in THERMAL when
>> NET is unset, I guess. I'll see what can be done to that end (although I had
>> hoped that the people who introduced the breakage would handle it).
>
> OK, please check if the appended patch helps. Admittedly, I only built it
> with CONFIG_NET set, so caveat emptor.
Looks good, built both with NET=y and NET disabled.
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Thanks.
> Thanks,
> Rafael
>
>
> ---
> drivers/thermal/Kconfig | 1 -
> drivers/thermal/thermal_sys.c | 40 +++++++++++++++++++++-------------------
> include/linux/thermal.h | 8 ++++++++
> 3 files changed, 29 insertions(+), 20 deletions(-)
>
> Index: linux-2.6/drivers/thermal/thermal_sys.c
> ===================================================================
> --- linux-2.6.orig/drivers/thermal/thermal_sys.c
> +++ linux-2.6/drivers/thermal/thermal_sys.c
> @@ -62,20 +62,6 @@ static DEFINE_MUTEX(thermal_list_lock);
>
> static unsigned int thermal_event_seqnum;
>
> -static struct genl_family thermal_event_genl_family = {
> - .id = GENL_ID_GENERATE,
> - .name = THERMAL_GENL_FAMILY_NAME,
> - .version = THERMAL_GENL_VERSION,
> - .maxattr = THERMAL_GENL_ATTR_MAX,
> -};
> -
> -static struct genl_multicast_group thermal_event_mcgrp = {
> - .name = THERMAL_GENL_MCAST_GROUP_NAME,
> -};
> -
> -static int genetlink_init(void);
> -static void genetlink_exit(void);
> -
> static int get_idr(struct idr *idr, struct mutex *lock, int *id)
> {
> int err;
> @@ -1225,6 +1211,18 @@ void thermal_zone_device_unregister(stru
>
> EXPORT_SYMBOL(thermal_zone_device_unregister);
>
> +#ifdef CONFIG_NET
> +static struct genl_family thermal_event_genl_family = {
> + .id = GENL_ID_GENERATE,
> + .name = THERMAL_GENL_FAMILY_NAME,
> + .version = THERMAL_GENL_VERSION,
> + .maxattr = THERMAL_GENL_ATTR_MAX,
> +};
> +
> +static struct genl_multicast_group thermal_event_mcgrp = {
> + .name = THERMAL_GENL_MCAST_GROUP_NAME,
> +};
> +
> int generate_netlink_event(u32 orig, enum events event)
> {
> struct sk_buff *skb;
> @@ -1301,6 +1299,15 @@ static int genetlink_init(void)
> return result;
> }
>
> +static void genetlink_exit(void)
> +{
> + genl_unregister_family(&thermal_event_genl_family);
> +}
> +#else /* !CONFIG_NET */
> +static inline int genetlink_init(void) { return 0; }
> +static inline void genetlink_exit(void) {}
> +#endif /* !CONFIG_NET */
> +
> static int __init thermal_init(void)
> {
> int result = 0;
> @@ -1316,11 +1323,6 @@ static int __init thermal_init(void)
> return result;
> }
>
> -static void genetlink_exit(void)
> -{
> - genl_unregister_family(&thermal_event_genl_family);
> -}
> -
> static void __exit thermal_exit(void)
> {
> class_unregister(&thermal_class);
> Index: linux-2.6/include/linux/thermal.h
> ===================================================================
> --- linux-2.6.orig/include/linux/thermal.h
> +++ linux-2.6/include/linux/thermal.h
> @@ -172,6 +172,14 @@ void thermal_zone_device_update(struct t
> struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
> const struct thermal_cooling_device_ops *);
> void thermal_cooling_device_unregister(struct thermal_cooling_device *);
> +
> +#ifdef CONFIG_NET
> extern int generate_netlink_event(u32 orig, enum events event);
> +#else
> +static inline int generate_netlink_event(u32 orig, enum events event)
> +{
> + return 0;
> +}
> +#endif
>
> #endif /* __THERMAL_H__ */
> Index: linux-2.6/drivers/thermal/Kconfig
> ===================================================================
> --- linux-2.6.orig/drivers/thermal/Kconfig
> +++ linux-2.6/drivers/thermal/Kconfig
> @@ -4,7 +4,6 @@
>
> menuconfig THERMAL
> tristate "Generic Thermal sysfs driver"
> - depends on NET
> help
> Generic Thermal Sysfs driver offers a generic mechanism for
> thermal management. Usually it's made up of one or more thermal
--
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
next prev parent reply other threads:[~2011-03-01 0:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-20 9:00 linux-next: Tree for December 20 Stephen Rothwell
2010-12-20 16:14 ` Zimny Lech
2010-12-20 20:49 ` Stephen Rothwell
2010-12-20 16:53 ` linux-next: Tree for December 20 (acpi_video) Randy Dunlap
2011-01-26 11:42 ` Ingo Molnar
2011-02-01 12:03 ` [upstream build breakage] " Ingo Molnar
2011-02-01 19:17 ` [PATCH] gpu/stub: fix acpi_video build error, fix stub kconfig dependencies Randy Dunlap
2011-02-02 1:35 ` Ingo Molnar
2011-02-28 17:03 ` [PATCH upstream build breakage] acpi: several drivers depend on NET Randy Dunlap
2011-02-28 20:37 ` Rafael J. Wysocki
2011-02-28 22:42 ` Rafael J. Wysocki
2011-03-01 0:00 ` Randy Dunlap [this message]
2011-03-01 0:12 ` Rafael J. Wysocki
2011-03-01 6:17 ` [build fix] ACPI: Fix build for CONFIG_NET unset Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D6C370F.1040104@oracle.com \
--to=randy.dunlap@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=luming.yu@intel.com \
--cc=mingo@elte.hu \
--cc=rjw@sisk.pl \
--cc=sfr@canb.auug.org.au \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).