Re: [PATCH] drivers: rtc: handle OTF clock changes
Dan Carpenter <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild-all,dev.linux.lists.oe-kbuild,org.kernel.vger.linux-kernel,org.kernel.vger.linux-rtc |
|---|---|
| Message-ID | <[email protected]> |
Hi Elad, kernel test robot noticed the following build warnings: https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Elad-Nachman/drivers-rtc-handle-OTF-clock-changes/20260806-231215 base: https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next patch link: https://lore.kernel.org/r/20260624123103.3523728-1-enachman%40marvell.com patch subject: [PATCH] drivers: rtc: handle OTF clock changes config: i386-randconfig-141 (https://download.01.org/0day-ci/archive/20260807/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 smatch: v0.5.0-9187-g5189e3fb If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Reported-by: Dan Carpenter <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ smatch warnings: drivers/rtc/interface.c:163 rtc_set_time() warn: variable dereferenced before check 'rtc' (see line 135) vim +/rtc +163 drivers/rtc/interface.c ab6a2d70d18edc David Brownell 2007-05-08 126 int rtc_set_time(struct rtc_device *rtc, struct rtc_time *tm) 0c86edc0d49706 Alessandro Zummo 2006-03-27 127 { 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 128 int err, uie; 37b82b16c5f104 Elad Nachman 2026-06-24 129 struct rtc_time new_tm; 0c86edc0d49706 Alessandro Zummo 2006-03-27 130 0c86edc0d49706 Alessandro Zummo 2006-03-27 131 err = rtc_valid_tm(tm); 0c86edc0d49706 Alessandro Zummo 2006-03-27 132 if (err != 0) 0c86edc0d49706 Alessandro Zummo 2006-03-27 133 return err; 0c86edc0d49706 Alessandro Zummo 2006-03-27 134 4c4e5df1f346f7 Baolin Wang 2018-01-08 @135 err = rtc_valid_range(rtc, tm); 4c4e5df1f346f7 Baolin Wang 2018-01-08 136 if (err) 4c4e5df1f346f7 Baolin Wang 2018-01-08 137 return err; 71db049e7355f3 Alexandre Belloni 2018-02-17 138 989515647e7832 Baolin Wang 2018-01-08 139 rtc_subtract_offset(rtc, tm); 989515647e7832 Baolin Wang 2018-01-08 140 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 141 #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 142 uie = rtc->uie_rtctimer.enabled || rtc->uie_irq_active; 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 143 #else 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 144 uie = rtc->uie_rtctimer.enabled; 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 145 #endif 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 146 if (uie) { 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 147 err = rtc_update_irq_enable(rtc, 0); 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 148 if (err) 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 149 return err; 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 150 } 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 151 0c86edc0d49706 Alessandro Zummo 2006-03-27 152 err = mutex_lock_interruptible(&rtc->ops_lock); 0c86edc0d49706 Alessandro Zummo 2006-03-27 153 if (err) b68bb2632453a9 David Brownell 2008-07-29 154 return err; 0c86edc0d49706 Alessandro Zummo 2006-03-27 155 0c86edc0d49706 Alessandro Zummo 2006-03-27 156 if (!rtc->ops) 0c86edc0d49706 Alessandro Zummo 2006-03-27 157 err = -ENODEV; bbccf83f6c4e1a Alessandro Zummo 2009-01-06 158 else if (rtc->ops->set_time) cd9662094edf41 David Brownell 2007-05-08 159 err = rtc->ops->set_time(rtc->dev.parent, tm); 606cc43c720bde Alexandre Belloni 2019-03-20 160 else bbccf83f6c4e1a Alessandro Zummo 2009-01-06 161 err = -EINVAL; 0c86edc0d49706 Alessandro Zummo 2006-03-27 162 37b82b16c5f104 Elad Nachman 2026-06-24 @163 if (rtc && rtc->ops && rtc->ops->read_time) { ^^^ There is no point in checking "rtc" after we have already dereferenced it. 37b82b16c5f104 Elad Nachman 2026-06-24 164 if (!rtc->ops->read_time(rtc->dev.parent, &new_tm)) { 37b82b16c5f104 Elad Nachman 2026-06-24 165 pr_debug("new rtc time secs %d mins %d hours %d mday %d mon %d year %d way %d yday %d dst %d\n", 37b82b16c5f104 Elad Nachman 2026-06-24 166 new_tm.tm_sec, new_tm.tm_min, 37b82b16c5f104 Elad Nachman 2026-06-24 167 new_tm.tm_hour, new_tm.tm_mday, 37b82b16c5f104 Elad Nachman 2026-06-24 168 new_tm.tm_mon, new_tm.tm_year, 37b82b16c5f104 Elad Nachman 2026-06-24 169 new_tm.tm_wday, new_tm.tm_yday, 37b82b16c5f104 Elad Nachman 2026-06-24 170 new_tm.tm_isdst); 37b82b16c5f104 Elad Nachman 2026-06-24 171 } 37b82b16c5f104 Elad Nachman 2026-06-24 172 } 37b82b16c5f104 Elad Nachman 2026-06-24 173 14d0e347ea2db5 Zoran Markovic 2013-06-26 174 pm_stay_awake(rtc->dev.parent); 0c86edc0d49706 Alessandro Zummo 2006-03-27 175 mutex_unlock(&rtc->ops_lock); 5f9679d29c7959 NeilBrown 2011-12-09 176 /* A timer might have just expired */ 5f9679d29c7959 NeilBrown 2011-12-09 177 schedule_work(&rtc->irqwork); 29a1f599c0cc37 Baolin Wang 2017-12-14 178 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 179 if (uie) { 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 180 err = rtc_update_irq_enable(rtc, 1); 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 181 if (err) 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 182 return err; 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 183 } 7e7c005b4b1f1f Alexandre Belloni 2019-10-21 184 29a1f599c0cc37 Baolin Wang 2017-12-14 185 trace_rtc_set_time(rtc_tm_to_time64(tm), err); 0c86edc0d49706 Alessandro Zummo 2006-03-27 186 return err; 0c86edc0d49706 Alessandro Zummo 2006-03-27 187 } -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki