Re: [PATCH] staging: lustre: lprocfs_status.h: fix sparse error: symbol redeclared with different type
Il giorno ven 7 ott 2016 alle 5:55, Greg KHha scritto: On Thu, Oct 06, 2016 at 06:52:07PM +0200, Samuele Baisi wrote: drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1554:5: error: symbol 'lprocfs_wr_root_squash' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:704) - incompatible argument 1 (different address spaces) drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1618:5: error: symbol 'lprocfs_wr_nosquash_nids' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:706) - incompatible argument 1 (different address spaces) Added __user annotation to the header definitions arguments (which are indeed userspace buffers). Are they really? Have you tested this? The last time this was looked at, it was a non-trivial problem... No, I haven't really tested it, I just saw they're treated like userspace buffers (copy_from_user) in the function body. if (copy_from_user(kernbuf, buffer, count)) { errmsg = "bad address"; rc = -EFAULT; goto failed_noprint; } if (copy_from_user(kernbuf, buffer, count)) { errmsg = "bad address"; rc = -EFAULT; goto failed; } And any reason you didn't cc the lustre maintainers with this change? If you think it is correct, please resend it with the testing information and cc: them. No, it was a mistake on my part, I thought to CC lustre-devel, but it seems not to be public access and then I forgot to add a Lustre mantainer. Anyway, I do not think I'm going to have a chanche to really test it, so it's probably better to dismiss the matter. Sorry for having wasted your time. thanks, greg k-h Thank you and best regards.
Re: [PATCH] staging: lustre: lprocfs_status.h: fix sparse error: symbol redeclared with different type
Il giorno ven 7 ott 2016 alle 5:55, Greg KH ha scritto: On Thu, Oct 06, 2016 at 06:52:07PM +0200, Samuele Baisi wrote: drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1554:5: error: symbol 'lprocfs_wr_root_squash' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:704) - incompatible argument 1 (different address spaces) drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1618:5: error: symbol 'lprocfs_wr_nosquash_nids' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:706) - incompatible argument 1 (different address spaces) Added __user annotation to the header definitions arguments (which are indeed userspace buffers). Are they really? Have you tested this? The last time this was looked at, it was a non-trivial problem... No, I haven't really tested it, I just saw they're treated like userspace buffers (copy_from_user) in the function body. if (copy_from_user(kernbuf, buffer, count)) { errmsg = "bad address"; rc = -EFAULT; goto failed_noprint; } if (copy_from_user(kernbuf, buffer, count)) { errmsg = "bad address"; rc = -EFAULT; goto failed; } And any reason you didn't cc the lustre maintainers with this change? If you think it is correct, please resend it with the testing information and cc: them. No, it was a mistake on my part, I thought to CC lustre-devel, but it seems not to be public access and then I forgot to add a Lustre mantainer. Anyway, I do not think I'm going to have a chanche to really test it, so it's probably better to dismiss the matter. Sorry for having wasted your time. thanks, greg k-h Thank you and best regards.
Re: [PATCH] staging: lustre: lprocfs_status.h: fix sparse error: symbol redeclared with different type
On Thu, Oct 06, 2016 at 06:52:07PM +0200, Samuele Baisi wrote: > drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1554:5: error: > symbol 'lprocfs_wr_root_squash' redeclared with different type (originally > declared at > drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:704) > - incompatible argument 1 (different address spaces) > > drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1618:5: error: > symbol 'lprocfs_wr_nosquash_nids' redeclared with different type (originally > declared at > drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:706) > - incompatible argument 1 (different address spaces) > > Added __user annotation to the header definitions arguments (which are > indeed userspace buffers). Are they really? Have you tested this? The last time this was looked at, it was a non-trivial problem... And any reason you didn't cc the lustre maintainers with this change? If you think it is correct, please resend it with the testing information and cc: them. thanks, greg k-h
Re: [PATCH] staging: lustre: lprocfs_status.h: fix sparse error: symbol redeclared with different type
On Thu, Oct 06, 2016 at 06:52:07PM +0200, Samuele Baisi wrote: > drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1554:5: error: > symbol 'lprocfs_wr_root_squash' redeclared with different type (originally > declared at > drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:704) > - incompatible argument 1 (different address spaces) > > drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1618:5: error: > symbol 'lprocfs_wr_nosquash_nids' redeclared with different type (originally > declared at > drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:706) > - incompatible argument 1 (different address spaces) > > Added __user annotation to the header definitions arguments (which are > indeed userspace buffers). Are they really? Have you tested this? The last time this was looked at, it was a non-trivial problem... And any reason you didn't cc the lustre maintainers with this change? If you think it is correct, please resend it with the testing information and cc: them. thanks, greg k-h
[PATCH] staging: lustre: lprocfs_status.h: fix sparse error: symbol redeclared with different type
drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1554:5: error: symbol 'lprocfs_wr_root_squash' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:704) - incompatible argument 1 (different address spaces) drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1618:5: error: symbol 'lprocfs_wr_nosquash_nids' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:706) - incompatible argument 1 (different address spaces) Added __user annotation to the header definitions arguments (which are indeed userspace buffers). Signed-off-by: Samuele Baisi--- drivers/staging/lustre/lustre/include/lprocfs_status.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index cc0713e..b5c24ca 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -701,9 +701,9 @@ static struct lustre_attr lustre_attr_##name = __ATTR(name, mode, show, store) extern const struct sysfs_ops lustre_sysfs_ops; struct root_squash_info; -int lprocfs_wr_root_squash(const char *buffer, unsigned long count, +int lprocfs_wr_root_squash(const char __user *buffer, unsigned long count, struct root_squash_info *squash, char *name); -int lprocfs_wr_nosquash_nids(const char *buffer, unsigned long count, +int lprocfs_wr_nosquash_nids(const char __user *buffer, unsigned long count, struct root_squash_info *squash, char *name); /* all quota proc functions */ -- 2.9.3
[PATCH] staging: lustre: lprocfs_status.h: fix sparse error: symbol redeclared with different type
drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1554:5: error: symbol 'lprocfs_wr_root_squash' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:704) - incompatible argument 1 (different address spaces) drivers/staging/lustre/lustre/obdclass/lprocfs_status.c:1618:5: error: symbol 'lprocfs_wr_nosquash_nids' redeclared with different type (originally declared at drivers/staging/lustre/lustre/obdclass/../include/lprocfs_status.h:706) - incompatible argument 1 (different address spaces) Added __user annotation to the header definitions arguments (which are indeed userspace buffers). Signed-off-by: Samuele Baisi --- drivers/staging/lustre/lustre/include/lprocfs_status.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/lustre/lustre/include/lprocfs_status.h b/drivers/staging/lustre/lustre/include/lprocfs_status.h index cc0713e..b5c24ca 100644 --- a/drivers/staging/lustre/lustre/include/lprocfs_status.h +++ b/drivers/staging/lustre/lustre/include/lprocfs_status.h @@ -701,9 +701,9 @@ static struct lustre_attr lustre_attr_##name = __ATTR(name, mode, show, store) extern const struct sysfs_ops lustre_sysfs_ops; struct root_squash_info; -int lprocfs_wr_root_squash(const char *buffer, unsigned long count, +int lprocfs_wr_root_squash(const char __user *buffer, unsigned long count, struct root_squash_info *squash, char *name); -int lprocfs_wr_nosquash_nids(const char *buffer, unsigned long count, +int lprocfs_wr_nosquash_nids(const char __user *buffer, unsigned long count, struct root_squash_info *squash, char *name); /* all quota proc functions */ -- 2.9.3