Message ID | 20190124142207.9060-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1] lightnvm: Use u64 instead of __le64 for CPU visible side | expand |
> On 24 Jan 2019, at 15.22, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > Sparse complains about using strict data types: > > drivers/lightnvm/pblk-read.c:254:43: warning: incorrect type in assignment (different base types) > drivers/lightnvm/pblk-read.c:254:43: expected restricted __le64 <noident> > drivers/lightnvm/pblk-read.c:254:43: got unsigned long long [unsigned] [usertype] <noident> > drivers/lightnvm/pblk-read.c:255:29: warning: cast from restricted __le64 > drivers/lightnvm/pblk-read.c:268:29: warning: cast from restricted __le64 > drivers/lightnvm/pblk-read.c:328:41: warning: incorrect type in assignment (different base types) > drivers/lightnvm/pblk-read.c:328:41: expected restricted __le64 <noident> > drivers/lightnvm/pblk-read.c:328:41: got unsigned long long [unsigned] [usertype] <noident> > > In the code it seems explicit that lba_list_mem and lba_list_media members of > struct pblk_pr_ctx are used on CPU side, which means they should not be of > strict types. > > Change types of lba_list_mem and lba_list_media members to be u64. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/lightnvm/pblk.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h > index 12bf02df4204..72ae8755764e 100644 > --- a/drivers/lightnvm/pblk.h > +++ b/drivers/lightnvm/pblk.h > @@ -131,8 +131,8 @@ struct pblk_pr_ctx { > unsigned int bio_init_idx; > void *ppa_ptr; > dma_addr_t dma_ppa_list; > - __le64 lba_list_mem[NVM_MAX_VLBA]; > - __le64 lba_list_media[NVM_MAX_VLBA]; > + u64 lba_list_mem[NVM_MAX_VLBA]; > + u64 lba_list_media[NVM_MAX_VLBA]; > }; > > /* Pad context */ > -- > 2.20.1 Looks good to me. At some point these mapped directly to the metadata stored in the device and the type remained when we change it. Reviewed-by: Javier González <javier@javigon.com>
On 1/24/19 3:22 PM, Andy Shevchenko wrote: > Sparse complains about using strict data types: > > drivers/lightnvm/pblk-read.c:254:43: warning: incorrect type in assignment (different base types) > drivers/lightnvm/pblk-read.c:254:43: expected restricted __le64 <noident> > drivers/lightnvm/pblk-read.c:254:43: got unsigned long long [unsigned] [usertype] <noident> > drivers/lightnvm/pblk-read.c:255:29: warning: cast from restricted __le64 > drivers/lightnvm/pblk-read.c:268:29: warning: cast from restricted __le64 > drivers/lightnvm/pblk-read.c:328:41: warning: incorrect type in assignment (different base types) > drivers/lightnvm/pblk-read.c:328:41: expected restricted __le64 <noident> > drivers/lightnvm/pblk-read.c:328:41: got unsigned long long [unsigned] [usertype] <noident> > > In the code it seems explicit that lba_list_mem and lba_list_media members of > struct pblk_pr_ctx are used on CPU side, which means they should not be of > strict types. > > Change types of lba_list_mem and lba_list_media members to be u64. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/lightnvm/pblk.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h > index 12bf02df4204..72ae8755764e 100644 > --- a/drivers/lightnvm/pblk.h > +++ b/drivers/lightnvm/pblk.h > @@ -131,8 +131,8 @@ struct pblk_pr_ctx { > unsigned int bio_init_idx; > void *ppa_ptr; > dma_addr_t dma_ppa_list; > - __le64 lba_list_mem[NVM_MAX_VLBA]; > - __le64 lba_list_media[NVM_MAX_VLBA]; > + u64 lba_list_mem[NVM_MAX_VLBA]; > + u64 lba_list_media[NVM_MAX_VLBA]; > }; > > /* Pad context */ > Thanks Andy. I've applied it for 5.1.
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h index 12bf02df4204..72ae8755764e 100644 --- a/drivers/lightnvm/pblk.h +++ b/drivers/lightnvm/pblk.h @@ -131,8 +131,8 @@ struct pblk_pr_ctx { unsigned int bio_init_idx; void *ppa_ptr; dma_addr_t dma_ppa_list; - __le64 lba_list_mem[NVM_MAX_VLBA]; - __le64 lba_list_media[NVM_MAX_VLBA]; + u64 lba_list_mem[NVM_MAX_VLBA]; + u64 lba_list_media[NVM_MAX_VLBA]; }; /* Pad context */
Sparse complains about using strict data types: drivers/lightnvm/pblk-read.c:254:43: warning: incorrect type in assignment (different base types) drivers/lightnvm/pblk-read.c:254:43: expected restricted __le64 <noident> drivers/lightnvm/pblk-read.c:254:43: got unsigned long long [unsigned] [usertype] <noident> drivers/lightnvm/pblk-read.c:255:29: warning: cast from restricted __le64 drivers/lightnvm/pblk-read.c:268:29: warning: cast from restricted __le64 drivers/lightnvm/pblk-read.c:328:41: warning: incorrect type in assignment (different base types) drivers/lightnvm/pblk-read.c:328:41: expected restricted __le64 <noident> drivers/lightnvm/pblk-read.c:328:41: got unsigned long long [unsigned] [usertype] <noident> In the code it seems explicit that lba_list_mem and lba_list_media members of struct pblk_pr_ctx are used on CPU side, which means they should not be of strict types. Change types of lba_list_mem and lba_list_media members to be u64. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/lightnvm/pblk.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)