linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Input-gameport: Fine-tuning for joydump_connect()
@ 2016-09-24 13:45 SF Markus Elfring
  2016-09-24 13:46 ` [PATCH 1/4] Input-gameport: Use kmalloc_array() in joydump_connect() SF Markus Elfring
                   ` (3 more replies)
  0 siblings, 4 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 13:45 UTC (permalink / raw)
  To: linux-input, Dmitry Torokhov; +Cc: LKML, kernel-janitors, Julia Lawall

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 24 Sep 2016 15:34:15 +0200

A few update suggestions were taken into account
from static source code analysis.

Markus Elfring (4):
  Use kmalloc_array()
  Delete an error message for a failed memory allocation
  Add the macro "pr_fmt"
  Replace some printk() calls by pr_info()

 drivers/input/joystick/joydump.c | 46 ++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

-- 
2.10.0

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 1/4] Input-gameport: Use kmalloc_array() in joydump_connect()
  2016-09-24 13:45 [PATCH 0/4] Input-gameport: Fine-tuning for joydump_connect() SF Markus Elfring
@ 2016-09-24 13:46 ` SF Markus Elfring
  2016-09-24 16:42   ` Dmitry Torokhov
  2016-09-24 13:47 ` [PATCH 2/4] Input-gameport: Delete an error message for a failed memory allocation SF Markus Elfring
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 13:46 UTC (permalink / raw)
  To: linux-input, Dmitry Torokhov; +Cc: LKML, kernel-janitors, Julia Lawall

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 24 Sep 2016 13:50:20 +0200

* A multiplication for the size determination of a memory allocation
  indicated that an array data structure should be processed.
  Thus use the corresponding function "kmalloc_array".

  This issue was detected by using the Coccinelle software.

* Replace the specification of a data structure by a pointer dereference
  to make the corresponding size determination a bit safer according to
  the Linux coding style convention.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/input/joystick/joydump.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index d1c6e48..e515058 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -79,8 +79,7 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 	}
 
 	timeout = gameport_time(gameport, 10000); /* 10 ms */
-
-	buf = kmalloc(BUF_SIZE * sizeof(struct joydump), GFP_KERNEL);
+	buf = kmalloc_array(BUF_SIZE, sizeof(*buf), GFP_KERNEL);
 	if (!buf) {
 		printk(KERN_INFO "joydump: no memory for testing\n");
 		goto jd_end;
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 2/4] Input-gameport: Delete an error message for a failed memory allocation
  2016-09-24 13:45 [PATCH 0/4] Input-gameport: Fine-tuning for joydump_connect() SF Markus Elfring
  2016-09-24 13:46 ` [PATCH 1/4] Input-gameport: Use kmalloc_array() in joydump_connect() SF Markus Elfring
@ 2016-09-24 13:47 ` SF Markus Elfring
  2016-09-24 13:48 ` [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump" SF Markus Elfring
  2016-09-24 13:50 ` [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect() SF Markus Elfring
  3 siblings, 0 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 13:47 UTC (permalink / raw)
  To: linux-input, Dmitry Torokhov
  Cc: LKML, kernel-janitors, Julia Lawall, Wolfram Sang

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 24 Sep 2016 14:18:48 +0200

Omit an extra message for a memory allocation failure in this function.

Link: http://events.linuxfoundation.org/sites/events/files/slides/LCJ16-Refactor_Strings-WSang_0.pdf

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/input/joystick/joydump.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index e515058..f9f6cbe 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -80,10 +80,9 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 
 	timeout = gameport_time(gameport, 10000); /* 10 ms */
 	buf = kmalloc_array(BUF_SIZE, sizeof(*buf), GFP_KERNEL);
-	if (!buf) {
-		printk(KERN_INFO "joydump: no memory for testing\n");
+	if (!buf)
 		goto jd_end;
-	}
+
 	dump = buf;
 	t = 0;
 	i = 1;
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump"
  2016-09-24 13:45 [PATCH 0/4] Input-gameport: Fine-tuning for joydump_connect() SF Markus Elfring
  2016-09-24 13:46 ` [PATCH 1/4] Input-gameport: Use kmalloc_array() in joydump_connect() SF Markus Elfring
  2016-09-24 13:47 ` [PATCH 2/4] Input-gameport: Delete an error message for a failed memory allocation SF Markus Elfring
@ 2016-09-24 13:48 ` SF Markus Elfring
  2016-09-24 16:41   ` Dmitry Torokhov
  2016-09-24 13:50 ` [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect() SF Markus Elfring
  3 siblings, 1 reply; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 13:48 UTC (permalink / raw)
  To: linux-input, Dmitry Torokhov; +Cc: LKML, kernel-janitors, Julia Lawall

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 24 Sep 2016 14:30:44 +0200

Add a definition for the macro "pr_fmt" so that its information can be used
for consistent message output.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/input/joystick/joydump.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index f9f6cbe..a38f10e 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -27,6 +27,8 @@
  * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/module.h>
 #include <linux/gameport.h>
 #include <linux/kernel.h>
-- 
2.10.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 13:45 [PATCH 0/4] Input-gameport: Fine-tuning for joydump_connect() SF Markus Elfring
                   ` (2 preceding siblings ...)
  2016-09-24 13:48 ` [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump" SF Markus Elfring
@ 2016-09-24 13:50 ` SF Markus Elfring
  2016-09-24 16:13   ` Joe Perches
  3 siblings, 1 reply; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 13:50 UTC (permalink / raw)
  To: linux-input, Dmitry Torokhov; +Cc: LKML, kernel-janitors, Julia Lawall

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 24 Sep 2016 15:12:21 +0200

* Prefer usage of the macro "pr_info" over the interface "printk"
  in this function.

* Reduce number of output function calls.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/input/joystick/joydump.c | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index a38f10e..02ea60c 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -57,27 +57,29 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 	unsigned long flags;
 	unsigned char u;
 
-	printk(KERN_INFO "joydump: ,------------------ START ----------------.\n");
-	printk(KERN_INFO "joydump: | Dumping: %30s |\n", gameport->phys);
-	printk(KERN_INFO "joydump: | Speed: %28d kHz |\n", gameport->speed);
+	pr_info(",------------------ START ----------------.\n"
+		"| Dumping: %30s |\n"
+		"| Speed: %28d kHz |\n",
+		gameport->phys,
+		gameport->speed);
 
 	if (gameport_open(gameport, drv, GAMEPORT_MODE_RAW)) {
-
-		printk(KERN_INFO "joydump: | Raw mode not available - trying cooked.    |\n");
-
+		pr_info("| Raw mode not available - trying cooked.    |\n");
 		if (gameport_open(gameport, drv, GAMEPORT_MODE_COOKED)) {
-
-			printk(KERN_INFO "joydump: | Cooked not available either. Failing.   |\n");
-			printk(KERN_INFO "joydump: `------------------- END -----------------'\n");
+			pr_info("| Cooked not available either. Failing.   |\n"
+				"`------------------- END -----------------'\n");
 			return -ENODEV;
 		}
 
 		gameport_cooked_read(gameport, axes, &buttons);
 
 		for (i = 0; i < 4; i++)
-			printk(KERN_INFO "joydump: | Axis %d: %4d.                           |\n", i, axes[i]);
-		printk(KERN_INFO "joydump: | Buttons %02x.                             |\n", buttons);
-		printk(KERN_INFO "joydump: `------------------- END -----------------'\n");
+			pr_info("| Axis %d: %4d.                           |\n",
+				i,
+				axes[i]);
+		pr_info("| Buttons %02x.                             |\n"
+			"`------------------- END -----------------'\n",
+			buttons);
 	}
 
 	timeout = gameport_time(gameport, 10000); /* 10 ms */
@@ -121,16 +123,15 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 	t = i;
 	dump = buf;
 	prev = dump;
-
-	printk(KERN_INFO "joydump: >------------------ DATA -----------------<\n");
-	printk(KERN_INFO "joydump: | index: %3d delta: %3d us data: ", 0, 0);
+	pr_info(">------------------ DATA -----------------<\n"
+		"| index: %3d delta: %3d us data: ", 0, 0);
 	for (j = 7; j >= 0; j--)
 		printk("%d", (dump->data >> j) & 1);
 	printk(" |\n");
 	dump++;
 
 	for (i = 1; i < t; i++, dump++, prev++) {
-		printk(KERN_INFO "joydump: | index: %3d delta: %3d us data: ",
+		pr_info("| index: %3d delta: %3d us data: ",
 			i, dump->time - prev->time);
 		for (j = 7; j >= 0; j--)
 			printk("%d", (dump->data >> j) & 1);
@@ -139,8 +140,7 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 	kfree(buf);
 
 jd_end:
-	printk(KERN_INFO "joydump: `------------------- END -----------------'\n");
-
+	pr_info("`------------------- END -----------------'\n");
 	return 0;
 }
 
-- 
2.10.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 13:50 ` [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect() SF Markus Elfring
@ 2016-09-24 16:13   ` Joe Perches
  2016-09-24 16:32     ` SF Markus Elfring
                       ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Joe Perches @ 2016-09-24 16:13 UTC (permalink / raw)
  To: SF Markus Elfring, linux-input, Dmitry Torokhov
  Cc: LKML, kernel-janitors, Julia Lawall

On Sat, 2016-09-24 at 15:50 +0200, SF Markus Elfring wrote:

> * Prefer usage of the macro "pr_info" over the interface "printk"
>   in this function.
> * Reduce number of output function calls.

Did you test this?  I doubt it.

> diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
[]
> @@ -57,27 +57,29 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
> >  	unsigned long flags;
> >  	unsigned char u;
>  
> > -	printk(KERN_INFO "joydump: ,------------------ START ----------------.\n");
> > -	printk(KERN_INFO "joydump: | Dumping: %30s |\n", gameport->phys);
> > -	printk(KERN_INFO "joydump: | Speed: %28d kHz |\n", gameport->speed);
> > +	pr_info(",------------------ START ----------------.\n"
> > +		"| Dumping: %30s |\n"
> > +		"| Speed: %28d kHz |\n",
> > +		gameport->phys,
> > +		gameport->speed);

Not the same output.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 16:13   ` Joe Perches
@ 2016-09-24 16:32     ` SF Markus Elfring
  2016-09-24 16:39       ` Dmitry Torokhov
  2016-09-24 16:47       ` [PATCH 4/4] " Joe Perches
  2016-09-24 16:41     ` [PATCH 4/4] " SF Markus Elfring
  2016-09-25  7:15     ` [PATCH v2 3/3] " SF Markus Elfring
  2 siblings, 2 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 16:32 UTC (permalink / raw)
  To: Joe Perches
  Cc: linux-input, Dmitry Torokhov, LKML, kernel-janitors, Julia Lawall

>> @@ -57,27 +57,29 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
>>>  	unsigned long flags;
>>>  	unsigned char u;
>>  
>>> -	printk(KERN_INFO "joydump: ,------------------ START ----------------.\n");
>>> -	printk(KERN_INFO "joydump: | Dumping: %30s |\n", gameport->phys);
>>> -	printk(KERN_INFO "joydump: | Speed: %28d kHz |\n", gameport->speed);
>>> +	pr_info(",------------------ START ----------------.\n"
>>> +		"| Dumping: %30s |\n"
>>> +		"| Speed: %28d kHz |\n",
>>> +		gameport->phys,
>>> +		gameport->speed);
> 
> Not the same output.

Should the desired output be the same when the relevant data are passed by a single function call
(instead of three as before)?

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 16:32     ` SF Markus Elfring
@ 2016-09-24 16:39       ` Dmitry Torokhov
  2016-09-24 17:20         ` SF Markus Elfring
  2016-09-24 16:47       ` [PATCH 4/4] " Joe Perches
  1 sibling, 1 reply; 23+ messages in thread
From: Dmitry Torokhov @ 2016-09-24 16:39 UTC (permalink / raw)
  To: SF Markus Elfring
  Cc: Joe Perches, linux-input, LKML, kernel-janitors, Julia Lawall

On Sat, Sep 24, 2016 at 06:32:29PM +0200, SF Markus Elfring wrote:
> >> @@ -57,27 +57,29 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
> >>>  	unsigned long flags;
> >>>  	unsigned char u;
> >>  
> >>> -	printk(KERN_INFO "joydump: ,------------------ START ----------------.\n");
> >>> -	printk(KERN_INFO "joydump: | Dumping: %30s |\n", gameport->phys);
> >>> -	printk(KERN_INFO "joydump: | Speed: %28d kHz |\n", gameport->speed);
> >>> +	pr_info(",------------------ START ----------------.\n"
> >>> +		"| Dumping: %30s |\n"
> >>> +		"| Speed: %28d kHz |\n",
> >>> +		gameport->phys,
> >>> +		gameport->speed);
> > 
> > Not the same output.
> 
> Should the desired output be the same when the relevant data are passed by a single function call
> (instead of three as before)?

The desired output should not be broken in conversion, which you did. Do
you know how syslog works and why the transformation is not correct.

I am also curious as to why you are patching joydump? Are you working on
extending it?

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump"
  2016-09-24 13:48 ` [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump" SF Markus Elfring
@ 2016-09-24 16:41   ` Dmitry Torokhov
  2016-09-24 16:55     ` SF Markus Elfring
  0 siblings, 1 reply; 23+ messages in thread
From: Dmitry Torokhov @ 2016-09-24 16:41 UTC (permalink / raw)
  To: SF Markus Elfring; +Cc: linux-input, LKML, kernel-janitors, Julia Lawall

On Sat, Sep 24, 2016 at 03:48:54PM +0200, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 24 Sep 2016 14:30:44 +0200
> 
> Add a definition for the macro "pr_fmt" so that its information can be used
> for consistent message output.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  drivers/input/joystick/joydump.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
> index f9f6cbe..a38f10e 100644
> --- a/drivers/input/joystick/joydump.c
> +++ b/drivers/input/joystick/joydump.c
> @@ -27,6 +27,8 @@
>   * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
>   */
>  
> +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> +

Why did you split it off from the patch where you attempt to use it?
What good does this change do on its own?

>  #include <linux/module.h>
>  #include <linux/gameport.h>
>  #include <linux/kernel.h>
> -- 
> 2.10.0
> 

-- 
Dmitry

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 16:13   ` Joe Perches
  2016-09-24 16:32     ` SF Markus Elfring
@ 2016-09-24 16:41     ` SF Markus Elfring
  2016-09-25  7:15     ` [PATCH v2 3/3] " SF Markus Elfring
  2 siblings, 0 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 16:41 UTC (permalink / raw)
  To: Joe Perches
  Cc: linux-input, Dmitry Torokhov, LKML, kernel-janitors, Julia Lawall

>> @@ -57,27 +57,29 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
>>>  	unsigned long flags;
>>>  	unsigned char u;
>>  
>>> -	printk(KERN_INFO "joydump: ,------------------ START ----------------.\n");
>>> -	printk(KERN_INFO "joydump: | Dumping: %30s |\n", gameport->phys);
>>> -	printk(KERN_INFO "joydump: | Speed: %28d kHz |\n", gameport->speed);
>>> +	pr_info(",------------------ START ----------------.\n"
>>> +		"| Dumping: %30s |\n"
>>> +		"| Speed: %28d kHz |\n",
>>> +		gameport->phys,
>>> +		gameport->speed);
> 
> Not the same output.

Do you insist that each line from a multi-line text that is passed by such a single logging call
contains the same module prefix?

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 1/4] Input-gameport: Use kmalloc_array() in joydump_connect()
  2016-09-24 13:46 ` [PATCH 1/4] Input-gameport: Use kmalloc_array() in joydump_connect() SF Markus Elfring
@ 2016-09-24 16:42   ` Dmitry Torokhov
  2016-09-24 17:04     ` SF Markus Elfring
  0 siblings, 1 reply; 23+ messages in thread
From: Dmitry Torokhov @ 2016-09-24 16:42 UTC (permalink / raw)
  To: SF Markus Elfring; +Cc: linux-input, LKML, kernel-janitors, Julia Lawall

On Sat, Sep 24, 2016 at 03:46:21PM +0200, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 24 Sep 2016 13:50:20 +0200
> 
> * A multiplication for the size determination of a memory allocation
>   indicated that an array data structure should be processed.
>   Thus use the corresponding function "kmalloc_array".
> 

-ENOPARSE.

>   This issue was detected by using the Coccinelle software.
> 
> * Replace the specification of a data structure by a pointer dereference
>   to make the corresponding size determination a bit safer according to
>   the Linux coding style convention.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  drivers/input/joystick/joydump.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
> index d1c6e48..e515058 100644
> --- a/drivers/input/joystick/joydump.c
> +++ b/drivers/input/joystick/joydump.c
> @@ -79,8 +79,7 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
>  	}
>  
>  	timeout = gameport_time(gameport, 10000); /* 10 ms */
> -
> -	buf = kmalloc(BUF_SIZE * sizeof(struct joydump), GFP_KERNEL);
> +	buf = kmalloc_array(BUF_SIZE, sizeof(*buf), GFP_KERNEL);
>  	if (!buf) {
>  		printk(KERN_INFO "joydump: no memory for testing\n");
>  		goto jd_end;
> -- 
> 2.10.0
> 

-- 
Dmitry

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 16:32     ` SF Markus Elfring
  2016-09-24 16:39       ` Dmitry Torokhov
@ 2016-09-24 16:47       ` Joe Perches
  2016-09-24 19:50         ` SF Markus Elfring
  1 sibling, 1 reply; 23+ messages in thread
From: Joe Perches @ 2016-09-24 16:47 UTC (permalink / raw)
  To: SF Markus Elfring
  Cc: linux-input, Dmitry Torokhov, LKML, kernel-janitors, Julia Lawall

On Sat, 2016-09-24 at 18:32 +0200, SF Markus Elfring wrote:
> > > @@ -57,27 +57,29 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
> > >  	unsigned long flags;
> > >  	unsigned char u;
> > 
> >  
> > > -	printk(KERN_INFO "joydump: ,------------------ START ----------------.\n");
> > > -	printk(KERN_INFO "joydump: | Dumping: %30s |\n", gameport->phys);
> > > -	printk(KERN_INFO "joydump: | Speed: %28d kHz |\n", gameport->speed);
> > > +	pr_info(",------------------ START ----------------.\n"
> > > +		"| Dumping: %30s |\n"
> > > +		"| Speed: %28d kHz |\n",
> > > +		gameport->phys,
> > > +		gameport->speed);
> 
> 
> > Not the same output.
> 
> 
> Should the desired output be the same when the relevant data are passed by a single function call
> (instead of three as before)?

Adding a singleton for a pr_fmt #define constant string and
updating the printk subsystem to prepend that constant string
to each use of a pr_<level> at runtime would be an improvement
as it could reduce constant data used by the format strings.

That would be a _real_ improvement.

Please try to implement something like that before submitting
more of these incorrect patches.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump"
  2016-09-24 16:41   ` Dmitry Torokhov
@ 2016-09-24 16:55     ` SF Markus Elfring
  2016-09-24 17:03       ` Joe Perches
  0 siblings, 1 reply; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 16:55 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, LKML, kernel-janitors, Julia Lawall

>> +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>> +
> 
> Why did you split it off from the patch where you attempt to use it?

I chose a special patch granularity once again.


> What good does this change do on its own?

I find that it is a preparation. - If this addition could not be accepted,
the following update step would also be discussed under an other perspective,
wouldn't it?

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump"
  2016-09-24 16:55     ` SF Markus Elfring
@ 2016-09-24 17:03       ` Joe Perches
  2016-09-24 17:45         ` SF Markus Elfring
  0 siblings, 1 reply; 23+ messages in thread
From: Joe Perches @ 2016-09-24 17:03 UTC (permalink / raw)
  To: SF Markus Elfring, Dmitry Torokhov
  Cc: linux-input, LKML, kernel-janitors, Julia Lawall

On Sat, 2016-09-24 at 18:55 +0200, SF Markus Elfring wrote:
> > > +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> > Why did you split it off from the patch where you attempt to use it?
> I chose a special patch granularity once again.
> > What good does this change do on its own?
> I find that it is a preparation. - If this addition could not be accepted,
> the following update step would also be discussed under an other perspective,
> wouldn't it?

It's purposeless, creates unnecessary patches to review
and generally wastes other people's time.

Please don't purposefully waste other people's time.
It makes your patch proposals _less_ likely to be applied.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Input-gameport: Use kmalloc_array() in joydump_connect()
  2016-09-24 16:42   ` Dmitry Torokhov
@ 2016-09-24 17:04     ` SF Markus Elfring
  0 siblings, 0 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 17:04 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, LKML, kernel-janitors, Julia Lawall

>> * A multiplication for the size determination of a memory allocation
>>   indicated that an array data structure should be processed.
>>   Thus use the corresponding function "kmalloc_array".
>>
> 
> -ENOPARSE.

Do you find an other wording better?


The script "checkpatch.pl" can point information out like the following.

WARNING: Prefer kmalloc_array over kmalloc with multiply


Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 16:39       ` Dmitry Torokhov
@ 2016-09-24 17:20         ` SF Markus Elfring
  0 siblings, 0 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 17:20 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Joe Perches, linux-input, LKML, kernel-janitors, Julia Lawall

> The desired output should not be broken in conversion, which you did.

I dared to change another source code place a bit too much perhaps.


> Do you know how syslog works and why the transformation is not correct.

I imagine that there are chances to improve the software situation a bit more,
aren't there?


> I am also curious as to why you are patching joydump?

The discussed function implementation contains update candidates.

One of them was detected by the execution of a script for the semantic patch
language (Coccinelle software).
I identified further update possibilities after the opportunity for using
the function "kmalloc_array" also in this software module.


> Are you working on extending it?

I attempted just another software refactoring.

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Input-gameport: Add the macro "pr_fmt" for module "joydump"
  2016-09-24 17:03       ` Joe Perches
@ 2016-09-24 17:45         ` SF Markus Elfring
  2016-09-24 18:01           ` Joe Perches
  0 siblings, 1 reply; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 17:45 UTC (permalink / raw)
  To: Joe Perches
  Cc: Dmitry Torokhov, linux-input, LKML, kernel-janitors, Julia Lawall

>> I find that it is a preparation. - If this addition could not be accepted,
>> the following update step would also be discussed under an other perspective,
>> wouldn't it?
> 
> It's purposeless, creates unnecessary patches to review
> and generally wastes other people's time.

I have got an other opinion about this.


> Please don't purposefully waste other people's time.

I do not want to "waste" your time. - But I can imagine that I stress your
software development attention to some degree as I am publishing a significant
number of update suggestions according to a bit of static source code analysis.


> It makes your patch proposals _less_ likely to be applied.

The acceptance varies as usual.


I see also another option.

* Can the first three update steps from this small patch series be integrated
  while the fourth needs further adjustments (where I went a bit too far)?

* Do you prefer to squash the last two update steps together?

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Input-gameport: Add the macro "pr_fmt" for module "joydump"
  2016-09-24 17:45         ` SF Markus Elfring
@ 2016-09-24 18:01           ` Joe Perches
  2016-09-24 18:45             ` SF Markus Elfring
  0 siblings, 1 reply; 23+ messages in thread
From: Joe Perches @ 2016-09-24 18:01 UTC (permalink / raw)
  To: SF Markus Elfring
  Cc: Dmitry Torokhov, linux-input, LKML, kernel-janitors, Julia Lawall

On Sat, 2016-09-24 at 19:45 +0200, SF Markus Elfring wrote:
> > It's purposeless, creates unnecessary patches to review
> > and generally wastes other people's time.
> I have got an other opinion about this.

Nice for you, not nice for others that have to act on
your patch proposals to get them forwarded upstream.

> > Please don't purposefully waste other people's time.
> I do not want to "waste" your time.

When a chorus of voices says to you that you are wasting
their time, perhaps you listen to their song.

> > It makes your patch proposals _less_ likely to be applied.
> The acceptance varies as usual.

Usual for whom?

It seems to me your patch proposals have a relatively high
unapplied patch percentage and there is an increase in the
number of upstream maintainers that ignore you.

> I see also another option.
> 
> * Can the first three update steps from this small patch series be integrated
>   while the fourth needs further adjustments (where I went a bit too far)?
> 
> * Do you prefer to squash the last two update steps together?

Yes, the overall number of patches should be minimized when
the suggested patches are highly related.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Input-gameport: Add the macro "pr_fmt" for module "joydump"
  2016-09-24 18:01           ` Joe Perches
@ 2016-09-24 18:45             ` SF Markus Elfring
  0 siblings, 0 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 18:45 UTC (permalink / raw)
  To: Joe Perches
  Cc: Dmitry Torokhov, linux-input, LKML, kernel-janitors, Julia Lawall

> When a chorus of voices says to you that you are wasting
> their time, perhaps you listen to their song.

I am listening to some degree. - I guess that I am making some decisions
and conclusions in a way that you would prefer to be different.

I know that my update suggestions won't be liked by all contributors.


> It seems to me your patch proposals have a relatively high
> unapplied patch percentage

I agree here. - This impression can occur for a while.

I find that this situation is hardly avoidable according to my evolving number
of update suggestions.
In which time frames do you look for the corresponding software development process?


> and there is an increase in the number of upstream maintainers that ignore you.

It's a pity. - I hope that the corresponding software development can still
be continued in constructive ways.


> Yes, the overall number of patches should be minimized when
> the suggested patches are highly related.

I have got a special opinion about patch squashing. But I can consider it
also for this update step when a corresponding consensus could be
achieved between contributors.

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 16:47       ` [PATCH 4/4] " Joe Perches
@ 2016-09-24 19:50         ` SF Markus Elfring
  0 siblings, 0 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-24 19:50 UTC (permalink / raw)
  To: Joe Perches
  Cc: linux-input, Dmitry Torokhov, LKML, kernel-janitors, Julia Lawall

>> Should the desired output be the same when the relevant data are passed by a single function call
>> (instead of three as before)?
> 
> Adding a singleton for a pr_fmt #define constant string and
> updating the printk subsystem to prepend that constant string
> to each use of a pr_<level> at runtime would be an improvement
> as it could reduce constant data used by the format strings.

Thanks for for this constructive feedback.


> That would be a _real_ improvement.

This sounds interesting for me too.


> Please try to implement something like that before submitting
> more of these incorrect patches.

Nice wish!

Did any other software developer try to implement such enhanced
logging functionality already?

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH v2 3/3] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-24 16:13   ` Joe Perches
  2016-09-24 16:32     ` SF Markus Elfring
  2016-09-24 16:41     ` [PATCH 4/4] " SF Markus Elfring
@ 2016-09-25  7:15     ` SF Markus Elfring
  2016-09-25  7:31       ` Joe Perches
  2 siblings, 1 reply; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-25  7:15 UTC (permalink / raw)
  To: linux-input, Dmitry Torokhov, Joe Perches
  Cc: LKML, kernel-janitors, Julia Lawall

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 25 Sep 2016 08:40:34 +0200

1. Add a definition for the macros "MY_LOG_PREFIX" and "pr_fmt" so that
   their information can be used for consistent message output.

2. Prefer usage of the macro "pr_info" over the interface "printk"
   in this function.

3. Reduce number of output function calls.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---

v2: Yesterday a software development discussion pointed weaknesses out around
    the previous update steps "3" and "4".
    Now I propose this update variant in the hope that my second approach
    for this software module will work as desired and can be accepted
    a bit easier.

    Will the script "checkpatch.pl" need another improvement so that
    the following information can be avoided for my use case anyhow?

    ERROR: Macros with complex values should be enclosed in parentheses


 drivers/input/joystick/joydump.c | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index f9f6cbe..e23c499 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -27,6 +27,8 @@
  * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
  */
 
+#define MY_LOG_PREFIX KBUILD_MODNAME ": "
+#define pr_fmt(fmt) MY_LOG_PREFIX fmt
 #include <linux/module.h>
 #include <linux/gameport.h>
 #include <linux/kernel.h>
@@ -55,27 +57,31 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 	unsigned long flags;
 	unsigned char u;
 
-	printk(KERN_INFO "joydump: ,------------------ START ----------------.\n");
-	printk(KERN_INFO "joydump: | Dumping: %30s |\n", gameport->phys);
-	printk(KERN_INFO "joydump: | Speed: %28d kHz |\n", gameport->speed);
+	pr_info(",------------------ START ----------------.\n"
+		MY_LOG_PREFIX "| Dumping: %30s |\n"
+		MY_LOG_PREFIX "| Speed: %28d kHz |\n",
+		gameport->phys,
+		gameport->speed);
 
 	if (gameport_open(gameport, drv, GAMEPORT_MODE_RAW)) {
-
-		printk(KERN_INFO "joydump: | Raw mode not available - trying cooked.    |\n");
-
+		pr_info("| Raw mode not available - trying cooked.    |\n");
 		if (gameport_open(gameport, drv, GAMEPORT_MODE_COOKED)) {
-
-			printk(KERN_INFO "joydump: | Cooked not available either. Failing.   |\n");
-			printk(KERN_INFO "joydump: `------------------- END -----------------'\n");
+			pr_info("| Cooked not available either. Failing.   |\n"
+				MY_LOG_PREFIX
+				"`------------------- END -----------------'\n");
 			return -ENODEV;
 		}
 
 		gameport_cooked_read(gameport, axes, &buttons);
 
 		for (i = 0; i < 4; i++)
-			printk(KERN_INFO "joydump: | Axis %d: %4d.                           |\n", i, axes[i]);
-		printk(KERN_INFO "joydump: | Buttons %02x.                             |\n", buttons);
-		printk(KERN_INFO "joydump: `------------------- END -----------------'\n");
+			pr_info("| Axis %d: %4d.                           |\n",
+				i,
+				axes[i]);
+		pr_info("| Buttons %02x.                             |\n"
+			MY_LOG_PREFIX
+			"`------------------- END -----------------'\n",
+			buttons);
 	}
 
 	timeout = gameport_time(gameport, 10000); /* 10 ms */
@@ -119,16 +125,15 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 	t = i;
 	dump = buf;
 	prev = dump;
-
-	printk(KERN_INFO "joydump: >------------------ DATA -----------------<\n");
-	printk(KERN_INFO "joydump: | index: %3d delta: %3d us data: ", 0, 0);
+	pr_info(">------------------ DATA -----------------<\n"
+		MY_LOG_PREFIX "| index: %3d delta: %3d us data: ", 0, 0);
 	for (j = 7; j >= 0; j--)
 		printk("%d", (dump->data >> j) & 1);
 	printk(" |\n");
 	dump++;
 
 	for (i = 1; i < t; i++, dump++, prev++) {
-		printk(KERN_INFO "joydump: | index: %3d delta: %3d us data: ",
+		pr_info("| index: %3d delta: %3d us data: ",
 			i, dump->time - prev->time);
 		for (j = 7; j >= 0; j--)
 			printk("%d", (dump->data >> j) & 1);
@@ -137,8 +142,7 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
 	kfree(buf);
 
 jd_end:
-	printk(KERN_INFO "joydump: `------------------- END -----------------'\n");
-
+	pr_info("`------------------- END -----------------'\n");
 	return 0;
 }
 
-- 
2.10.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 3/3] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-25  7:15     ` [PATCH v2 3/3] " SF Markus Elfring
@ 2016-09-25  7:31       ` Joe Perches
  2016-09-25  7:45         ` SF Markus Elfring
  0 siblings, 1 reply; 23+ messages in thread
From: Joe Perches @ 2016-09-25  7:31 UTC (permalink / raw)
  To: SF Markus Elfring, linux-input, Dmitry Torokhov
  Cc: LKML, kernel-janitors, Julia Lawall

On Sun, 2016-09-25 at 09:15 +0200, SF Markus Elfring wrote:
> 1. Add a definition for the macros "MY_LOG_PREFIX" and "pr_fmt" so that
>    their information can be used for consistent message output.
> 
> 
> 2. Prefer usage of the macro "pr_info" over the interface "printk"
>    in this function.
> 
> 
> 3. Reduce number of output function calls.
> 
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
> 
> 
> v2: Yesterday a software development discussion pointed weaknesses out around
>     the previous update steps "3" and "4".
>     Now I propose this update variant in the hope that my second approach
>     for this software module will work as desired and can be accepted
>     a bit easier.

No thank you.

This is not a good change as it messes with dmesg timestamps.

Simpler to read and more straightforward is multiple
individual function calls.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH v2 3/3] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect()
  2016-09-25  7:31       ` Joe Perches
@ 2016-09-25  7:45         ` SF Markus Elfring
  0 siblings, 0 replies; 23+ messages in thread
From: SF Markus Elfring @ 2016-09-25  7:45 UTC (permalink / raw)
  To: Joe Perches
  Cc: linux-input, Dmitry Torokhov, LKML, kernel-janitors, Julia Lawall

> This is not a good change as it messes with dmesg timestamps.

Thanks for your quick feedback.

Have you got any more concerns around multi-line text output?


> Simpler to read and more straightforward is multiple
> individual function calls.

Will it become feasible to pass the desired data also only
by one logging call directly?

Regards,
Markus

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2016-09-25  7:45 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-24 13:45 [PATCH 0/4] Input-gameport: Fine-tuning for joydump_connect() SF Markus Elfring
2016-09-24 13:46 ` [PATCH 1/4] Input-gameport: Use kmalloc_array() in joydump_connect() SF Markus Elfring
2016-09-24 16:42   ` Dmitry Torokhov
2016-09-24 17:04     ` SF Markus Elfring
2016-09-24 13:47 ` [PATCH 2/4] Input-gameport: Delete an error message for a failed memory allocation SF Markus Elfring
2016-09-24 13:48 ` [PATCH 3/4] Input-gameport: Add the macro "pr_fmt" for module "joydump" SF Markus Elfring
2016-09-24 16:41   ` Dmitry Torokhov
2016-09-24 16:55     ` SF Markus Elfring
2016-09-24 17:03       ` Joe Perches
2016-09-24 17:45         ` SF Markus Elfring
2016-09-24 18:01           ` Joe Perches
2016-09-24 18:45             ` SF Markus Elfring
2016-09-24 13:50 ` [PATCH 4/4] Input-gameport: Replace some printk() calls by pr_info() in joydump_connect() SF Markus Elfring
2016-09-24 16:13   ` Joe Perches
2016-09-24 16:32     ` SF Markus Elfring
2016-09-24 16:39       ` Dmitry Torokhov
2016-09-24 17:20         ` SF Markus Elfring
2016-09-24 16:47       ` [PATCH 4/4] " Joe Perches
2016-09-24 19:50         ` SF Markus Elfring
2016-09-24 16:41     ` [PATCH 4/4] " SF Markus Elfring
2016-09-25  7:15     ` [PATCH v2 3/3] " SF Markus Elfring
2016-09-25  7:31       ` Joe Perches
2016-09-25  7:45         ` SF Markus Elfring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).