Message ID | 20220409020821.10229-1-rdunlap@infradead.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | macintosh: fix via-pmu and via-cuda build without RTC_CLASS | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 7 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 24 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
Le 09/04/2022 à 04:08, Randy Dunlap a écrit : > Fix build when RTC_CLASS is not set/enabled. > Eliminates these build errors: > > m68k-linux-ld: drivers/macintosh/via-pmu.o: in function `pmu_set_rtc_time': > drivers/macintosh/via-pmu.c:1769: undefined reference to `rtc_tm_to_time64' > m68k-linux-ld: drivers/macintosh/via-cuda.o: in function `cuda_set_rtc_time': > drivers/macintosh/via-cuda.c:797: undefined reference to `rtc_tm_to_time64' You don't need RTC_CLASS for that. All you need is RTC_LIB I think. What about selecting RTC_LIB from m68k Kconfig just like powerpc and a few architectures do ? See https://elixir.bootlin.com/linux/v5.18-rc1/source/arch/powerpc/Kconfig#L269 Otherwise, I think it would be better to move (and rename) rtc_tm_to_time64() into kernel/time/time.c instead of opencoding it twice. Christophe > > Fixes: 0792a2c8e0bb ("macintosh: Use common code to access RTC") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Reported-by: kernel test robot <lkp@intel.com> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Cc: Christophe Leroy <christophe.leroy@csgroup.eu> > Cc: Kees Cook <keescook@chromium.org> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Finn Thain <fthain@linux-m68k.org> > Cc: Geert Uytterhoeven <geert@linux-m68k.org> > Cc: Nathan Chancellor <nathan@kernel.org> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: linuxppc-dev@lists.ozlabs.org > --- > drivers/macintosh/via-cuda.c | 5 ++++- > drivers/macintosh/via-pmu.c | 5 ++++- > 2 files changed, 8 insertions(+), 2 deletions(-) > > --- a/drivers/macintosh/via-cuda.c > +++ b/drivers/macintosh/via-cuda.c > @@ -794,7 +794,10 @@ int cuda_set_rtc_time(struct rtc_time *t > u32 now; > struct adb_request req; > > - now = lower_32_bits(rtc_tm_to_time64(tm) + RTC_OFFSET); > + now = lower_32_bits(mktime64(((unsigned int)tm->tm_year + 1900), > + tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, > + tm->tm_min, tm->tm_sec) > + + RTC_OFFSET); > if (cuda_request(&req, NULL, 6, CUDA_PACKET, CUDA_SET_TIME, > now >> 24, now >> 16, now >> 8, now) < 0) > return -ENXIO; > --- a/drivers/macintosh/via-pmu.c > +++ b/drivers/macintosh/via-pmu.c > @@ -1766,7 +1766,10 @@ int pmu_set_rtc_time(struct rtc_time *tm > u32 now; > struct adb_request req; > > - now = lower_32_bits(rtc_tm_to_time64(tm) + RTC_OFFSET); > + now = lower_32_bits(mktime64(((unsigned int)tm->tm_year + 1900), > + tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, > + tm->tm_min, tm->tm_sec) > + + RTC_OFFSET); > if (pmu_request(&req, NULL, 5, PMU_SET_RTC, > now >> 24, now >> 16, now >> 8, now) < 0) > return -ENXIO;
Hi-- On 4/10/22 00:03, Christophe Leroy wrote: > > > Le 09/04/2022 à 04:08, Randy Dunlap a écrit : >> Fix build when RTC_CLASS is not set/enabled. >> Eliminates these build errors: >> >> m68k-linux-ld: drivers/macintosh/via-pmu.o: in function `pmu_set_rtc_time': >> drivers/macintosh/via-pmu.c:1769: undefined reference to `rtc_tm_to_time64' >> m68k-linux-ld: drivers/macintosh/via-cuda.o: in function `cuda_set_rtc_time': >> drivers/macintosh/via-cuda.c:797: undefined reference to `rtc_tm_to_time64' > > You don't need RTC_CLASS for that. All you need is RTC_LIB I think. Oh good. > What about selecting RTC_LIB from m68k Kconfig just like powerpc and a > few architectures do ? Sounds good. I'll test that now. > See > https://elixir.bootlin.com/linux/v5.18-rc1/source/arch/powerpc/Kconfig#L269 > > Otherwise, I think it would be better to move (and rename) > rtc_tm_to_time64() into kernel/time/time.c instead of opencoding it twice. > Yeah, I didn't like that either. >> >> Fixes: 0792a2c8e0bb ("macintosh: Use common code to access RTC") >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> >> Reported-by: kernel test robot <lkp@intel.com> >> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> >> Cc: Michael Ellerman <mpe@ellerman.id.au> >> Cc: Christophe Leroy <christophe.leroy@csgroup.eu> >> Cc: Kees Cook <keescook@chromium.org> >> Cc: Arnd Bergmann <arnd@arndb.de> >> Cc: Finn Thain <fthain@linux-m68k.org> >> Cc: Geert Uytterhoeven <geert@linux-m68k.org> >> Cc: Nathan Chancellor <nathan@kernel.org> >> Cc: Nick Desaulniers <ndesaulniers@google.com> >> Cc: linuxppc-dev@lists.ozlabs.org >> --- >> drivers/macintosh/via-cuda.c | 5 ++++- >> drivers/macintosh/via-pmu.c | 5 ++++- >> 2 files changed, 8 insertions(+), 2 deletions(-) thanks.
--- a/drivers/macintosh/via-cuda.c +++ b/drivers/macintosh/via-cuda.c @@ -794,7 +794,10 @@ int cuda_set_rtc_time(struct rtc_time *t u32 now; struct adb_request req; - now = lower_32_bits(rtc_tm_to_time64(tm) + RTC_OFFSET); + now = lower_32_bits(mktime64(((unsigned int)tm->tm_year + 1900), + tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, + tm->tm_min, tm->tm_sec) + + RTC_OFFSET); if (cuda_request(&req, NULL, 6, CUDA_PACKET, CUDA_SET_TIME, now >> 24, now >> 16, now >> 8, now) < 0) return -ENXIO; --- a/drivers/macintosh/via-pmu.c +++ b/drivers/macintosh/via-pmu.c @@ -1766,7 +1766,10 @@ int pmu_set_rtc_time(struct rtc_time *tm u32 now; struct adb_request req; - now = lower_32_bits(rtc_tm_to_time64(tm) + RTC_OFFSET); + now = lower_32_bits(mktime64(((unsigned int)tm->tm_year + 1900), + tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, + tm->tm_min, tm->tm_sec) + + RTC_OFFSET); if (pmu_request(&req, NULL, 5, PMU_SET_RTC, now >> 24, now >> 16, now >> 8, now) < 0) return -ENXIO;
Fix build when RTC_CLASS is not set/enabled. Eliminates these build errors: m68k-linux-ld: drivers/macintosh/via-pmu.o: in function `pmu_set_rtc_time': drivers/macintosh/via-pmu.c:1769: undefined reference to `rtc_tm_to_time64' m68k-linux-ld: drivers/macintosh/via-cuda.o: in function `cuda_set_rtc_time': drivers/macintosh/via-cuda.c:797: undefined reference to `rtc_tm_to_time64' Fixes: 0792a2c8e0bb ("macintosh: Use common code to access RTC") Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Reported-by: kernel test robot <lkp@intel.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: Kees Cook <keescook@chromium.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Finn Thain <fthain@linux-m68k.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: linuxppc-dev@lists.ozlabs.org --- drivers/macintosh/via-cuda.c | 5 ++++- drivers/macintosh/via-pmu.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-)