Re: [PATCH v2 -next] powerpc: kernel/time.c - cleanup warnings
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: 2021-03-24 09:10:25
Also in:
linuxppc-dev, lkml
On 24/03/2021 09:19:58+0100, Geert Uytterhoeven wrote:
Hi Alexandre, On Tue, Mar 23, 2021 at 11:18 PM Alexandre Belloni [off-list ref] wrote:quoted
On 23/03/2021 05:12:57-0400, He Ying wrote:quoted
We found these warnings in arch/powerpc/kernel/time.c as follows: warning: symbol 'decrementer_max' was not declared. Should it be static? warning: symbol 'rtc_lock' was not declared. Should it be static? warning: symbol 'dtl_consumer' was not declared. Should it be static? Declare 'decrementer_max' and 'rtc_lock' in powerpc asm/time.h. Rename 'rtc_lock' in drviers/rtc/rtc-vr41xx.c to 'vr41xx_rtc_lock' to avoid the conflict with the variable in powerpc asm/time.h. Move 'dtl_consumer' definition behind "include <asm/dtl.h>" because it is declared there. Reported-by: Hulk Robot <redacted> Signed-off-by: He Ying <redacted> --- v2: - Instead of including linux/mc146818rtc.h in powerpc kernel/time.c, declare rtc_lock in powerpc asm/time.h.V1 was actually the correct thing to do. rtc_lock is there exactly because chrp and maple are using mc146818 compatible RTCs. This is then useful because then drivers/char/nvram.c is enabled. The proper fix would be to scrap all of that and use rtc-cmos for those platforms as this drives the RTC properly and exposes the NVRAM for the mc146818. Or at least, if there are no users for the char/nvram driver on those two platforms, remove the spinlock and stop enabling CONFIG_NVRAM or more likely rename the symbol as it seems to be abused by both chrp and powermac.IIRC, on CHRP LongTrail, NVRAM was inherited from CHRP's Mac ancestry, not from CHRP's PC ancestry, and thus NVRAM is not the one in the mc146818-compatible RTC. http://users.telenet.be/geertu/Linux/PPC/DeviceTree.html confirms that, showing that nvram is a different device node than rtc.
Yes, what I missed was the ifdefery in drivers/char/nvram.c that makes it a completely different driver on both platforms. I tend to forget about that as reading this driver is not a pleasant experience. I would really like to get rid of the x86 part which would in turn allow to remove the global rtc_lock spinlock on all architectures. -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com