Messages in this thread | | | Date | Sun, 14 Nov 2021 17:02:53 -0800 | From | Drew Fustini <> | Subject | Re: drivers/clocksource/timer-pistachio.c:74:22: warning: variable 'overflow' set but not used |
| |
On Sun, Nov 14, 2021 at 11:17:38PM +0100, Daniel Lezcano wrote: > On 14/11/2021 22:29, Drew Fustini wrote: > > On Fri, Nov 12, 2021 at 07:05:48AM +0800, kernel test robot wrote: > >> Hi Drew, > >> > >> FYI, the error/warning still remains. > >> > >> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > >> head: debe436e77c72fcee804fb867f275e6d31aa999c > >> commit: a47d7ef4550d08fb428ea4c3f1a9c71674212208 clocksource/drivers/pistachio: Fix trivial typo > >> date: 7 months ago > >> config: mips-randconfig-r012-20210927 (attached as .config) > >> compiler: mips-linux-gcc (GCC) 11.2.0 > >> reproduce (this is a W=1 build): > >> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > >> chmod +x ~/bin/make.cross > >> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a47d7ef4550d08fb428ea4c3f1a9c71674212208 > >> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git > >> git fetch --no-tags linus master > >> git checkout a47d7ef4550d08fb428ea4c3f1a9c71674212208 > >> # save the attached .config to linux build tree > >> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips > >> > >> If you fix the issue, kindly add following tag as appropriate > >> Reported-by: kernel test robot <lkp@intel.com> > >> > >> All warnings (new ones prefixed by >>): > >> > >> drivers/clocksource/timer-pistachio.c: In function 'pistachio_clocksource_read_cycles': > >>>> drivers/clocksource/timer-pistachio.c:74:22: warning: variable 'overflow' set but not used [-Wunused-but-set-variable] > >> 74 | u32 counter, overflow; > >> | ^~~~~~~~ > >> > >> > >> vim +/overflow +74 drivers/clocksource/timer-pistachio.c > >> > >> 69 > >> 70 static u64 notrace > >> 71 pistachio_clocksource_read_cycles(struct clocksource *cs) > >> 72 { > >> 73 struct pistachio_clocksource *pcs = to_pistachio_clocksource(cs); > >> > 74 u32 counter, overflow; > >> 75 unsigned long flags; > >> 76 > >> 77 /* > >> 78 * The counter value is only refreshed after the overflow value is read. > >> 79 * And they must be read in strict order, hence raw spin lock added. > >> 80 */ > >> 81 > >> 82 raw_spin_lock_irqsave(&pcs->lock, flags); > >> 83 overflow = gpt_readl(pcs->base, TIMER_CURRENT_OVERFLOW_VALUE, 0); > > overflow is set here but then never reused in the function. So a call to > gpt_readl without getting the return value is fine. > > The warning is different from 'variable is unused'
Thank you for pointing that out. I was reading it incorrectly.
As for this function, it seems that warning is a false positive as the act of reading TIMER_CURRENT_OVERFLOW_VALUE causes the hardware to refresh TIMER_CURRENT_VALUE.
Thanks, Drew
| |