[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <6fade104-0f00-3ebf-827c-8f6d830d4ac5@linux.intel.com>
Date: Fri, 17 Sep 2021 15:58:53 +0300
From: Jarkko Nikula <jarkko.nikula@...ux.intel.com>
To: William Breathitt Gray <vilhelm.gray@...il.com>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>
Cc: kernel test robot <lkp@...el.com>, llvm@...ts.linux.dev,
kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
David Lechner <david@...hnology.com>,
Fabrice Gasnier <fabrice.gasnier@...s.st.com>
Subject: Re: [iio:testing 40/43] ld.lld: error: undefined symbol: __udivdi3
On 9/14/21 4:52 PM, William Breathitt Gray wrote:
> On Tue, Sep 14, 2021 at 01:41:03PM +0100, Jonathan Cameron wrote:
>> On Sun, 12 Sep 2021 06:43:58 +0800
>> kernel test robot <lkp@...el.com> wrote:
>>
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
>>> head: 77a4a019161bcba51af1dbbeadc04795840fb3e0
>>> commit: f7da4339ca510e4476ea35cb9fd44f3f190706c5 [40/43] counter: Internalize sysfs interface code
>>> config: i386-randconfig-r022-20210911 (attached as .config)
>>> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
>>> 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/jic23/iio.git/commit/?id=f7da4339ca510e4476ea35cb9fd44f3f190706c5
>>> git remote add iio https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
>>> git fetch --no-tags iio testing
>>> git checkout f7da4339ca510e4476ea35cb9fd44f3f190706c5
>>> # save the attached .config to linux build tree
>>> mkdir build_dir
>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=i386 SHELL=/bin/bash
>>>
>>> If you fix the issue, kindly add following tag as appropriate
>>> Reported-by: kernel test robot <lkp@...el.com>
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>>>> ld.lld: error: undefined symbol: __udivdi3
>>> >>> referenced by intel-qep.c:290 (drivers/counter/intel-qep.c:290)
>>> >>> counter/intel-qep.o:(intel_qep_spike_filter_ns_write) in archive drivers/built-in.a
>> This is a result of a change to passing in a u64 instead of a string. I've applied a fix
>> that uses do_div() and pushed out as testing again.
>>
>> William, please sanity check that fix looks right to you.
>>
>> Thanks,
>>
>> Jonathan
>
> Your do_div() change seems sane to me; would div_u64_rem() work here as
> well, or is do_div preferred because we're not using the remainder?
>
> I'm CCing Jarkko Nikula as well to keep them in the loop.
>
Yeah I believe do_div() is the right fix for the "counter: Internalize
sysfs interface code" since the calculation remains the same.
I realized now the filter length has been rounded down. E.g. values
20-29 from user space set 20 ns long filter in HW. Perhaps better would
be to round up or to nearest but that goes to some future patch if needed.
Jarkko
Powered by blists - more mailing lists