* [PATCH] staging: vt6655: preserve address space by not casting @ 2014-06-13 10:11 Martin Kepplinger 2014-06-16 7:55 ` Dan Carpenter 0 siblings, 1 reply; 5+ messages in thread From: Martin Kepplinger @ 2014-06-13 10:11 UTC (permalink / raw) To: gregkh; +Cc: forest, devel, linux-kernel, Martin Kepplinger Fix the sparse error: cast removes address space of expression. --- Is that even correct? I haven't signed-off on it yet. ethtool_ioctl() takes a (void *) as user data, dereferenced and assigend to u32. applies to next-20140611 drivers/staging/vt6655/device_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 1d3908d..15b2ee5 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -3067,7 +3067,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { break; case SIOCETHTOOL: - return ethtool_ioctl(dev, (void *)rq->ifr_data); + return ethtool_ioctl(dev, &rq->ifr_data); // All other calls are currently unsupported default: -- 1.7.10.4 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] staging: vt6655: preserve address space by not casting 2014-06-13 10:11 [PATCH] staging: vt6655: preserve address space by not casting Martin Kepplinger @ 2014-06-16 7:55 ` Dan Carpenter 2014-06-17 12:32 ` [PATCH v2] staging: vt6655: preserve address space in ethtool_ioctl() Martin Kepplinger 0 siblings, 1 reply; 5+ messages in thread From: Dan Carpenter @ 2014-06-16 7:55 UTC (permalink / raw) To: Martin Kepplinger; +Cc: gregkh, devel, forest, linux-kernel On Fri, Jun 13, 2014 at 12:11:51PM +0200, Martin Kepplinger wrote: > Fix the sparse error: cast removes address space of expression. > --- > Is that even correct? It's correct but not complete. vt6655 impliment their own versions of ethtool_ioctl() when they should be using the standard versions. The vt6655 version of ethtool_ioctl() should be annotated so it's marked that the second parameter is marked as a __user pointer. It doesn't print a Sparse warning because at a certain point Sparse just says: "warning: too many warnings" and gives up. > I haven't signed-off on it yet. > ethtool_ioctl() takes a (void *) as user data, dereferenced and assigend to u32. > applies to next-20140611 It doesn't dereference the pointer. You are getting mixed up with the vt6656 version of ethtool_ioctl() I think? You're not allowed to dereference __user pointers. regards, dan carpenter ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] staging: vt6655: preserve address space in ethtool_ioctl() 2014-06-16 7:55 ` Dan Carpenter @ 2014-06-17 12:32 ` Martin Kepplinger 2014-06-17 12:40 ` [PATCH v3] " Martin Kepplinger 0 siblings, 1 reply; 5+ messages in thread From: Martin Kepplinger @ 2014-06-17 12:32 UTC (permalink / raw) To: dan.carpenter; +Cc: gregkh, devel, forest, linux-kernel, Martin Kepplinger Fix the sparse error: cast removes address space of expression and add __user annotation to the driver's ethtool_ioctl(). Signed-off-by: Martin Kepplinger <martink@posteo.de> --- Beyond that, how would you include socket.c's ethtool_ioctl() here? thanks for looking at these tiny changes. drivers/staging/vt6655/device_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 1d3908d..740690e 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -3067,7 +3067,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { break; case SIOCETHTOOL: - return ethtool_ioctl(dev, (void *)rq->ifr_data); + return ethtool_ioctl(dev, &rq->ifr_data); // All other calls are currently unsupported default: @@ -3103,7 +3103,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { return rc; } -static int ethtool_ioctl(struct net_device *dev, void *useraddr) +static int ethtool_ioctl(struct net_device *dev, void __user *useraddr) { u32 ethcmd; -- 1.7.10.4 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3] staging: vt6655: preserve address space in ethtool_ioctl() 2014-06-17 12:32 ` [PATCH v2] staging: vt6655: preserve address space in ethtool_ioctl() Martin Kepplinger @ 2014-06-17 12:40 ` Martin Kepplinger 2014-06-19 23:37 ` Greg KH 0 siblings, 1 reply; 5+ messages in thread From: Martin Kepplinger @ 2014-06-17 12:40 UTC (permalink / raw) To: dan.carpenter; +Cc: gregkh, devel, forest, linux-kernel, Martin Kepplinger Fix the sparse error: cast removes address space of expression and add __user annotation to the driver's ethtool_ioctl(). Signed-off-by: Martin Kepplinger <martink@posteo.de> --- I think I forgot to change the declaration on top. drivers/staging/vt6655/device_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 1d3908d..81c9932 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -302,7 +302,7 @@ static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev); //2008-0714<Add>by Mike Liu static bool device_release_WPADEV(PSDevice pDevice); -static int ethtool_ioctl(struct net_device *dev, void *useraddr); +static int ethtool_ioctl(struct net_device *dev, void __user *useraddr); static int device_rx_srv(PSDevice pDevice, unsigned int uIdx); static int device_tx_srv(PSDevice pDevice, unsigned int uIdx); static bool device_alloc_rx_buf(PSDevice pDevice, PSRxDesc pDesc); @@ -3067,7 +3067,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { break; case SIOCETHTOOL: - return ethtool_ioctl(dev, (void *)rq->ifr_data); + return ethtool_ioctl(dev, &rq->ifr_data); // All other calls are currently unsupported default: @@ -3103,7 +3103,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { return rc; } -static int ethtool_ioctl(struct net_device *dev, void *useraddr) +static int ethtool_ioctl(struct net_device *dev, void __user *useraddr) { u32 ethcmd; -- 1.7.10.4 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] staging: vt6655: preserve address space in ethtool_ioctl() 2014-06-17 12:40 ` [PATCH v3] " Martin Kepplinger @ 2014-06-19 23:37 ` Greg KH 0 siblings, 0 replies; 5+ messages in thread From: Greg KH @ 2014-06-19 23:37 UTC (permalink / raw) To: Martin Kepplinger; +Cc: dan.carpenter, devel, forest, linux-kernel On Tue, Jun 17, 2014 at 02:40:27PM +0200, Martin Kepplinger wrote: > Fix the sparse error: cast removes address space of expression and > add __user annotation to the driver's ethtool_ioctl(). > > Signed-off-by: Martin Kepplinger <martink@posteo.de> > --- > I think I forgot to change the declaration on top. Someone else did this change just before you did, sorry :( ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-06-19 23:33 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-06-13 10:11 [PATCH] staging: vt6655: preserve address space by not casting Martin Kepplinger 2014-06-16 7:55 ` Dan Carpenter 2014-06-17 12:32 ` [PATCH v2] staging: vt6655: preserve address space in ethtool_ioctl() Martin Kepplinger 2014-06-17 12:40 ` [PATCH v3] " Martin Kepplinger 2014-06-19 23:37 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome