Message ID | 20180725162849.8320-3-yehs2007@zoho.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kaddr and pfn can be NULL to ->direct_access() | expand |
Dear Maintainers of Linux-s390, Greetings. May I have your ack's for this patch? The whole series would be applied to libnvdimm if it could get your approval. And any suggestion is welcome. Cheers, Huaisheng Ye > From: Huaisheng Ye <yehs2007@zoho.com> > Sent: Thursday, July 26, 2018 12:29 AM > > From: Huaisheng Ye <yehs1@lenovo.com> > > dcssblk_direct_access() needs to check the validity of pointers kaddr > and pfn for NULL assignment. If anyone equals to NULL, it doesn't need > to calculate the value. > > If either of them is equal to NULL, that is to say callers may > have no need for kaddr or pfn, so this patch is prepared for allowing > them to pass in NULL instead of having to pass in a pointer or local > variable that they then just throw away. > > Signed-off-by: Huaisheng Ye <yehs1@lenovo.com> > --- > drivers/s390/block/dcssblk.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c > index ed60728..23e526c 100644 > --- a/drivers/s390/block/dcssblk.c > +++ b/drivers/s390/block/dcssblk.c > @@ -922,9 +922,11 @@ static DEVICE_ATTR(save, S_IWUSR | S_IRUSR, dcssblk_save_show, > unsigned long dev_sz; > > dev_sz = dev_info->end - dev_info->start + 1; > - *kaddr = (void *) dev_info->start + offset; > - *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), > - PFN_DEV|PFN_SPECIAL); > + if (kaddr) > + *kaddr = (void *) dev_info->start + offset; > + if (pfn) > + *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), > + PFN_DEV|PFN_SPECIAL); > > return (dev_sz - offset) / PAGE_SIZE; > } > -- > 1.8.3.1
On Sat, 28 Jul 2018 04:07:25 +0000 Huaisheng HS1 Ye <yehs1@lenovo.com> wrote: > May I have your ack's for this patch? The whole series would be applied > to libnvdimm if it could get your approval. > And any suggestion is welcome. Sure, it is just two additional ifs. I did not think that this needed an ack, but here you go: Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> > > Cheers, > Huaisheng Ye > > > From: Huaisheng Ye <yehs2007@zoho.com> > > Sent: Thursday, July 26, 2018 12:29 AM > > > > From: Huaisheng Ye <yehs1@lenovo.com> > > > > dcssblk_direct_access() needs to check the validity of pointers kaddr > > and pfn for NULL assignment. If anyone equals to NULL, it doesn't need > > to calculate the value. > > > > If either of them is equal to NULL, that is to say callers may > > have no need for kaddr or pfn, so this patch is prepared for allowing > > them to pass in NULL instead of having to pass in a pointer or local > > variable that they then just throw away. > > > > Signed-off-by: Huaisheng Ye <yehs1@lenovo.com> > > --- > > drivers/s390/block/dcssblk.c | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c > > index ed60728..23e526c 100644 > > --- a/drivers/s390/block/dcssblk.c > > +++ b/drivers/s390/block/dcssblk.c > > @@ -922,9 +922,11 @@ static DEVICE_ATTR(save, S_IWUSR | S_IRUSR, dcssblk_save_show, > > unsigned long dev_sz; > > > > dev_sz = dev_info->end - dev_info->start + 1; > > - *kaddr = (void *) dev_info->start + offset; > > - *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), > > - PFN_DEV|PFN_SPECIAL); > > + if (kaddr) > > + *kaddr = (void *) dev_info->start + offset; > > + if (pfn) > > + *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), > > + PFN_DEV|PFN_SPECIAL); > > > > return (dev_sz - offset) / PAGE_SIZE; > > } > > -- > > 1.8.3.1 >
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c index ed60728..23e526c 100644 --- a/drivers/s390/block/dcssblk.c +++ b/drivers/s390/block/dcssblk.c @@ -922,9 +922,11 @@ static DEVICE_ATTR(save, S_IWUSR | S_IRUSR, dcssblk_save_show, unsigned long dev_sz; dev_sz = dev_info->end - dev_info->start + 1; - *kaddr = (void *) dev_info->start + offset; - *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), - PFN_DEV|PFN_SPECIAL); + if (kaddr) + *kaddr = (void *) dev_info->start + offset; + if (pfn) + *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), + PFN_DEV|PFN_SPECIAL); return (dev_sz - offset) / PAGE_SIZE; }