Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1466802 > unrolled thread
| Started by | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| First post | 2016-08-20 10:40 +0200 |
| Last post | 2016-08-25 11:20 +0200 |
| Articles | 6 — 4 participants |
Back to article view | Back to linux.kernel
[PATCH] wan-cosa: Use memdup_user() rather than duplicating its implementation SF Markus Elfring <elfring@users.sourceforge.net> - 2016-08-20 10:40 +0200
Re: [PATCH] wan-cosa: Use memdup_user() rather than duplicating its implementation Christophe JAILLET <christophe.jaillet@wanadoo.fr> - 2016-08-20 10:50 +0200
Re: [PATCH] wan-cosa: Use memdup_user() rather than duplicating its implementation David Miller <davem@davemloft.net> - 2016-08-21 04:20 +0200
Re: [PATCH] wan-cosa: Use memdup_user() rather than duplicating its implementation Jan Kasprzak <kas@fi.muni.cz> - 2016-08-24 17:40 +0200
Re: wan-cosa: Use memdup_user() rather than duplicating its implementation SF Markus Elfring <elfring@users.sourceforge.net> - 2016-08-24 18:20 +0200
Re: wan-cosa: Use memdup_user() rather than duplicating its implementation Jan Kasprzak <kas@fi.muni.cz> - 2016-08-25 11:20 +0200
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2016-08-20 10:40 +0200 |
| Subject | [PATCH] wan-cosa: Use memdup_user() rather than duplicating its implementation |
| Message-ID | <s89YR-Aq-5@gated-at.bofh.it> |
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 20 Aug 2016 10:10:12 +0200
Reuse existing functionality from memdup_user() instead of keeping
duplicate source code.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
drivers/net/wan/cosa.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
index b87fe0a..02f5809 100644
--- a/drivers/net/wan/cosa.c
+++ b/drivers/net/wan/cosa.c
@@ -875,16 +875,10 @@ static ssize_t cosa_write(struct file *file,
if (count > COSA_MTU)
count = COSA_MTU;
- /* Allocate the buffer */
- kbuf = kmalloc(count, GFP_KERNEL|GFP_DMA);
- if (kbuf == NULL) {
+ kbuf = memdup_user(buf, count);
+ if (IS_ERR(kbuf)) {
up(&chan->wsem);
- return -ENOMEM;
- }
- if (copy_from_user(kbuf, buf, count)) {
- up(&chan->wsem);
- kfree(kbuf);
- return -EFAULT;
+ return PTR_ERR(kbuf);
}
chan->tx_status=0;
cosa_start_tx(chan, kbuf, count);
--
2.9.3
[toc] | [next] | [standalone]
| From | Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
|---|---|
| Date | 2016-08-20 10:50 +0200 |
| Message-ID | <s8a8x-F2-5@gated-at.bofh.it> |
| In reply to | #1466802 |
Le 20/08/2016 à 10:25, SF Markus Elfring a écrit :
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 20 Aug 2016 10:10:12 +0200
>
> Reuse existing functionality from memdup_user() instead of keeping
> duplicate source code.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
> drivers/net/wan/cosa.c | 12 +++---------
> 1 file changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
> index b87fe0a..02f5809 100644
> --- a/drivers/net/wan/cosa.c
> +++ b/drivers/net/wan/cosa.c
> @@ -875,16 +875,10 @@ static ssize_t cosa_write(struct file *file,
> if (count > COSA_MTU)
> count = COSA_MTU;
>
> - /* Allocate the buffer */
> - kbuf = kmalloc(count, GFP_KERNEL|GFP_DMA);
In this case, 'memdup_user()' has a different meaning, as GFP_DMA will
no more be used for this memory allocation.
> - if (kbuf == NULL) {
> + kbuf = memdup_user(buf, count);
> + if (IS_ERR(kbuf)) {
> up(&chan->wsem);
> - return -ENOMEM;
> - }
> - if (copy_from_user(kbuf, buf, count)) {
> - up(&chan->wsem);
> - kfree(kbuf);
> - return -EFAULT;
> + return PTR_ERR(kbuf);
> }
> chan->tx_status=0;
> cosa_start_tx(chan, kbuf, count);
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2016-08-21 04:20 +0200 |
| Subject | Re: [PATCH] wan-cosa: Use memdup_user() rather than duplicating its implementation |
| Message-ID | <s8qwF-2Ob-3@gated-at.bofh.it> |
| In reply to | #1466803 |
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Date: Sat, 20 Aug 2016 10:42:54 +0200 > Le 20/08/2016 à 10:25, SF Markus Elfring a écrit : >> @@ -875,16 +875,10 @@ static ssize_t cosa_write(struct file *file, >> if (count > COSA_MTU) >> count = COSA_MTU; >> >> - /* Allocate the buffer */ >> - kbuf = kmalloc(count, GFP_KERNEL|GFP_DMA); > In this case, 'memdup_user()' has a different meaning, as GFP_DMA will > no more be used for this memory allocation. Agreed, this transformation is not equivalent. Markus, please do not make these changes so blindly.
[toc] | [prev] | [next] | [standalone]
| From | Jan Kasprzak <kas@fi.muni.cz> |
|---|---|
| Date | 2016-08-24 17:40 +0200 |
| Message-ID | <s9Irv-4bS-1@gated-at.bofh.it> |
| In reply to | #1466802 |
Hello,
SF Markus Elfring wrote:
: From: Markus Elfring <elfring@users.sourceforge.net>
: Date: Sat, 20 Aug 2016 10:10:12 +0200
:
: Reuse existing functionality from memdup_user() instead of keeping
: duplicate source code.
:
: This issue was detected by using the Coccinelle software.
What about the GFP_DMA attribute, which your patch deletes?
The buffer in question has to be ISA DMA-able.
Anyway, COSA is an ancient ISA device, which is out of production
for at least 10 years. I don't have a box with ISA bus anymore, so I can't
even test the modifications of the wan/cosa.c (I do have a COSA board
itself, though :-).
I suggest keeping the driver intact if possible, in case somebody
still uses it.
Sincerely,
-Yenya
: Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
: ---
: drivers/net/wan/cosa.c | 12 +++---------
: 1 file changed, 3 insertions(+), 9 deletions(-)
:
: diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
: index b87fe0a..02f5809 100644
: --- a/drivers/net/wan/cosa.c
: +++ b/drivers/net/wan/cosa.c
: @@ -875,16 +875,10 @@ static ssize_t cosa_write(struct file *file,
: if (count > COSA_MTU)
: count = COSA_MTU;
:
: - /* Allocate the buffer */
: - kbuf = kmalloc(count, GFP_KERNEL|GFP_DMA);
: - if (kbuf == NULL) {
: + kbuf = memdup_user(buf, count);
: + if (IS_ERR(kbuf)) {
: up(&chan->wsem);
: - return -ENOMEM;
: - }
: - if (copy_from_user(kbuf, buf, count)) {
: - up(&chan->wsem);
: - kfree(kbuf);
: - return -EFAULT;
: + return PTR_ERR(kbuf);
: }
: chan->tx_status=0;
: cosa_start_tx(chan, kbuf, count);
: --
: 2.9.3
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5 |
Like most things in Windows, on the surface it looks great.
-- Jeremy Allison, A Tale of Two Standards
[toc] | [prev] | [next] | [standalone]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2016-08-24 18:20 +0200 |
| Subject | Re: wan-cosa: Use memdup_user() rather than duplicating its implementation |
| Message-ID | <s9J4d-4GN-19@gated-at.bofh.it> |
| In reply to | #1469544 |
> What about the GFP_DMA attribute, which your patch deletes? > The buffer in question has to be ISA DMA-able. Thanks for your constructive feedback. Would you be interested in using a variant of the function "memdup_…" with which the corresponding memory allocation option can be preserved? Regards, Markus
[toc] | [prev] | [next] | [standalone]
| From | Jan Kasprzak <kas@fi.muni.cz> |
|---|---|
| Date | 2016-08-25 11:20 +0200 |
| Subject | Re: wan-cosa: Use memdup_user() rather than duplicating its implementation |
| Message-ID | <s9YZk-7vE-45@gated-at.bofh.it> |
| In reply to | #1469563 |
SF Markus Elfring wrote:
: > What about the GFP_DMA attribute, which your patch deletes?
: > The buffer in question has to be ISA DMA-able.
:
: Thanks for your constructive feedback.
:
: Would you be interested in using a variant of the function "memdup_…"
: with which the corresponding memory allocation option can be preserved?
I am not sure that extending an in-kernel API just for one
legacy driver is what we want. As I said, I would prefer the driver
unchanged, if possible.
Maybe it is the time for gradually phasing out ISA DMA support and
all the legacy drivers which use it?
Sincerely,
-Yenya
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5 |
Like most things in Windows, on the surface it looks great.
-- Jeremy Allison, A Tale of Two Standards
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web