Message ID | 8c570c152c95087faa75e397c667b6d5b8d98b3b.1474177609.git.baolin.wang@linaro.org |
---|---|
State | Rejected |
Headers | show |
On Sun, 18 Sep 2016, Baolin Wang wrote: > The patch 2 in this patchset adding tracepoints for alarmtimers will build > failed on S390 platform, due to S390 defconfig did not define CONFIG_RTC_LIB > macro to define the rtc_ktime_to_tm() function which is used in this patch. > Thus we should add some ummy static inline functions in case CONFIG_RTC_LIB > is not defined. I told you before that adding these inlines has the danger that we introduce code which uses these functions in places which does not depend on RTC_LIB. The resulting wreckage is going to be subtle and hard to debug. This still stands and this patch is going nowhere. Thanks, tglx
Hi, On 21 September 2016 at 05:36, Thomas Gleixner <tglx@linutronix.de> wrote: > On Sun, 18 Sep 2016, Baolin Wang wrote: > >> The patch 2 in this patchset adding tracepoints for alarmtimers will build >> failed on S390 platform, due to S390 defconfig did not define CONFIG_RTC_LIB >> macro to define the rtc_ktime_to_tm() function which is used in this patch. >> Thus we should add some ummy static inline functions in case CONFIG_RTC_LIB >> is not defined. > > I told you before that adding these inlines has the danger that we > introduce code which uses these functions in places which does not depend > on RTC_LIB. The resulting wreckage is going to be subtle and hard to debug. Make sense. (By the way I am sorry I did not receive your previous comments in my mailbox and I checked again I found it was treated as spam.) > > This still stands and this patch is going nowhere. > > Thanks, > > tglx
diff --git a/include/linux/rtc.h b/include/linux/rtc.h index b693ada..521f752 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -16,13 +16,60 @@ #include <linux/interrupt.h> #include <uapi/linux/rtc.h> +#ifdef CONFIG_RTC_LIB extern int rtc_month_days(unsigned int month, unsigned int year); -extern int rtc_year_days(unsigned int day, unsigned int month, unsigned int year); +extern int rtc_year_days(unsigned int day, unsigned int month, + unsigned int year); extern int rtc_valid_tm(struct rtc_time *tm); extern time64_t rtc_tm_to_time64(struct rtc_time *tm); extern void rtc_time64_to_tm(time64_t time, struct rtc_time *tm); ktime_t rtc_tm_to_ktime(struct rtc_time tm); struct rtc_time rtc_ktime_to_tm(ktime_t kt); +#else +static inline int rtc_month_days(unsigned int month, unsigned int year) +{ + return 0; +} + +static inline int rtc_year_days(unsigned int day, unsigned int month, + unsigned int year) +{ + return 0; +} + +static inline int rtc_valid_tm(struct rtc_time *tm) +{ + return 0; +} + +static inline time64_t rtc_tm_to_time64(struct rtc_time *tm) +{ + time64_t ret; + + memset(&ret, 0, sizeof(time64_t)); + return ret; +} + +static inline void rtc_time64_to_tm(time64_t time, struct rtc_time *tm) +{ +} + +static inline ktime_t rtc_tm_to_ktime(struct rtc_time tm) +{ + ktime_t ret; + + memset(&ret, 0, sizeof(ktime_t)); + return ret; +} + +static inline struct rtc_time rtc_ktime_to_tm(ktime_t kt) +{ + struct rtc_time ret; + + memset(&ret, 0, sizeof(struct rtc_time)); + return ret; +} +#endif /* * rtc_tm_sub - Return the difference in seconds.
The patch 2 in this patchset adding tracepoints for alarmtimers will build failed on S390 platform, due to S390 defconfig did not define CONFIG_RTC_LIB macro to define the rtc_ktime_to_tm() function which is used in this patch. Thus we should add some ummy static inline functions in case CONFIG_RTC_LIB is not defined. Signed-off-by: Baolin Wang <baolin.wang@linaro.org> --- include/linux/rtc.h | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-)