On Thu, Nov 4, 2021 at 4:29 PM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > On Thu, Nov 4, 2021 at 2:59 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > > > > A new commit in LLVM causes an error on the use of 'long double' when > > '-mno-x87' is used, which the kernel does through an alias, > > '-mno-80387' (see the LLVM commit below for more details around why it > > does this). > > > > drivers/usb/dwc2/hcd_queue.c:1744:25: error: expression requires 'long double' type support, but target 'x86_64-unknown-linux-gnu' does not support it > > delay = ktime_set(0, DWC2_RETRY_WAIT_DELAY); > > ^ > > drivers/usb/dwc2/hcd_queue.c:62:34: note: expanded from macro 'DWC2_RETRY_WAIT_DELAY' > > #define DWC2_RETRY_WAIT_DELAY (1 * 1E6L) > > ^ > > 1 error generated. > > > > This happens due to the use of a 'long double' literal. The 'E6' part of > > '1E6L' causes the literal to be a 'double' then the 'L' suffix promotes > > it to 'long double'. > > > > There is no visible reason for a floating point value in this driver, as > > the value is only used as a parameter to a function that expects an > > integer type. Use USEC_PER_SEC, which is the same integer value as > > '1E6L', to avoid changing functionality but fix the error. > > > > Fixes: 6ed30a7d8ec2 ("usb: dwc2: host: use hrtimer for NAK retries") > > Link: https://github.com/ClangBuiltLinux/linux/issues/1497 > > Link: https://github.com/llvm/llvm-project/commit/a8083d42b1c346e21623a1d36d1f0cadd7801d83 > > Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> > > Thanks for the patch! > Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> hmm...should we explicitly #include <vdso/time.h> for this declaration? It may work due to transitive includes, but that's generally considered brittle should those transitive includes change in the future. > > > --- > > drivers/usb/dwc2/hcd_queue.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/usb/dwc2/hcd_queue.c b/drivers/usb/dwc2/hcd_queue.c > > index 89a788326c56..bdf1927e1be1 100644 > > --- a/drivers/usb/dwc2/hcd_queue.c > > +++ b/drivers/usb/dwc2/hcd_queue.c > > @@ -59,7 +59,7 @@ > > #define DWC2_UNRESERVE_DELAY (msecs_to_jiffies(5)) > > > > /* If we get a NAK, wait this long before retrying */ > > -#define DWC2_RETRY_WAIT_DELAY (1 * 1E6L) > > +#define DWC2_RETRY_WAIT_DELAY (1 * USEC_PER_SEC) > > > > /** > > * dwc2_periodic_channel_available() - Checks that a channel is available for a > > > > base-commit: d4439a1189f93d0ac1eaf0197db8e6b3e197d5c7 > > -- > > 2.34.0.rc0 > > > > > -- > Thanks, > ~Nick Desaulniers -- Thanks, ~Nick Desaulniers