lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 29 May 2020 15:21:05 +0000
From:   "Saleem, Shiraz" <shiraz.saleem@...el.com>
To:     Leon Romanovsky <leon@...nel.org>
CC:     Jason Gunthorpe <jgg@...lanox.com>,
        "Kirsher, Jeffrey T" <jeffrey.t.kirsher@...el.com>,
        "dledford@...hat.com" <dledford@...hat.com>,
        "davem@...emloft.net" <davem@...emloft.net>,
        "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
        "linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "nhorman@...hat.com" <nhorman@...hat.com>,
        "sassmann@...hat.com" <sassmann@...hat.com>,
        "poswald@...e.com" <poswald@...e.com>
Subject: RE: [RDMA RFC v6 00/16] Intel RDMA Driver Updates 2020-05-19

> Subject: Re: [RDMA RFC v6 00/16] Intel RDMA Driver Updates 2020-05-19
> 

[......]

> 
> I'm looking on it and see static assignments, to by dynamic you will need "to play"
> with hw_shifts/hw_masks later, but you don't. What am I missing?
> 
> +	for (i = 0; i < IRDMA_MAX_SHIFTS; ++i)
> +		dev->hw_shifts[i] = i40iw_shifts[i];
> +
> +	for (i = 0; i < IRDMA_MAX_MASKS; ++i)
> +		dev->hw_masks[i] = i40iw_masks[i];
> 
> >
> > we still need to use the custom macro FLD_LS_64 without FIELD_PREP in
> > this case as FIELD_PREP expects compile time constants.
> > +#define FLD_LS_64(dev, val, field)	\
> > +	(((u64)(val) << (dev)->hw_shifts[field ## _S]) &
> > +(dev)->hw_masks[field ## _M])
> > And the shifts are still required for these fields which causes a bit
> > of inconsistency
> >


The device hw_masks/hw_shifts array store masks/shifts of those
descriptor fields that have same name across HW generations but
differ in some attribute such as field width. Yes they are statically assigned,
initialized with values from i40iw_masks and icrdma_masks, depending on
the HW generation. We can even use GENMASK for the values in
i40iw_masks[] , icrdma_masks[] but FIELD_PREP cant be used on
dev->hw_masks[]

Powered by blists - more mailing lists