Search Linux Wireless

Re: [PATCH] wifi: iwlwifi: mld: Work around Clang loop unrolling bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Apr 25, 2025 at 11:18:33AM -0700, Kees Cook wrote:
> On Tue, Apr 22, 2025 at 12:59:03PM -0700, Nathan Chancellor wrote:
> >   $ git cite
> >   a33b5a08cbbd ("Merge tag 'sched_ext-for-6.15-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext")
> 
> Make me look. :) "cite" is a local alias, yes? Looks like my own alias
> for "short", but basically "short HEAD". From my ~/.gitconfig:
> 
> [alias]
>         short = "!f() { for i in \"$@\"; do git log -1 --pretty='%h (\"%s\")' \"$i\"; done; }; f"

Heh, yes, that was me being lazy :) 'cite' ultimately expands to

  show --format='%h ("%s")' --no-patch

to basically do what yours does.

  $ git cite HEAD~2 HEAD^ HEAD
  e72e9e693307 ("Merge tag 'net-6.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
  30e268185e59 ("Merge tag 'landlock-6.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux")
  02ddfb981de8 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi")

> > diff --git a/drivers/net/wireless/intel/iwlwifi/mld/d3.c b/drivers/net/wireless/intel/iwlwifi/mld/d3.c
> > index fba6a7b1bb5c..7ce01ad3608e 100644
> > --- a/drivers/net/wireless/intel/iwlwifi/mld/d3.c
> > +++ b/drivers/net/wireless/intel/iwlwifi/mld/d3.c
> > @@ -1757,7 +1757,7 @@ iwl_mld_send_proto_offload(struct iwl_mld *mld,
> >  
> >  		addrconf_addr_solict_mult(&wowlan_data->target_ipv6_addrs[i],
> >  					  &solicited_addr);
> > -		for (j = 0; j < c && j < n_nsc; j++)
> > +		for (j = 0; j < n_nsc && j < c; j++)
> >  			if (ipv6_addr_cmp(&nsc[j].dest_ipv6_addr,
> >  					  &solicited_addr) == 0)
> >  				break;
> 
> Oof, an unstable solution. Well, I guess we work with what we've got.
> Your change also solves it for me, so I'll send a v2 with it that way.

Indeed... I will review v2 shortly but another option would be stick a

  #include <linux/unroll.h>

  #ifdef CONFIG_CC_IS_CLANG
  unrolled_none
  #endif

above the loop to just avoid tripping the optimizer up altogether but I
understand that is just as unstable as this one (even if it is one of
the few ways that the compiler gives us to turn off optimizations).

Cheers,
Nathan




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux