Fw: staging: media: Use dev_err() instead of pr_err()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm not sure how this patch got applied upstream:

	commit b6ea5ef80aa7fd6f4b18ff2e4174930e8772e812
	Author: Dulshani Gunawardhana <dulshani.gunawardhana89@xxxxxxxxx>
	Date:   Sun Oct 20 22:58:28 2013 +0530
	
	    staging:media: Use dev_dbg() instead of pr_debug()
	    
	    Use dev_dbg() instead of pr_debug() in go7007-usb.c.
    
	    Signed-off-by: Dulshani Gunawardhana <dulshani.gunawardhana89@xxxxxxxxx>
	    Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
	    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

But, from the custody chain, it seems it was not C/C to linux-media ML,
doesn't have the driver maintainer's ack[1] and didn't went via my tree.

[1] Dulshani, please next time run the get_maintainer.pl script to get the
proper maintainers:
	$ /scripts/get_maintainer.pl -f drivers/staging/media/go7007/go7007-usb.c
	Hans Verkuil <hans.verkuil@xxxxxxxxx> (maintainer:STAGING - GO7007...)
	Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> (maintainer:MEDIA INPUT INFRA...)
	Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> (supporter:STAGING SUBSYSTEM)
	linux-media@xxxxxxxxxxxxxxx (open list:MEDIA INPUT INFRA...)
	devel@xxxxxxxxxxxxxxxxxxxx (open list:STAGING SUBSYSTEM)

Anyway, this patch is clearly wrong, and will cause an OOPS if CONFIG_DEBUG is 
enabled, during device probing, because of this change:

@@ -1052,21 +1050,21 @@ static int go7007_usb_probe(struct usb_interface *intf,
                const struct usb_device_id *id)
 {
        struct go7007 *go;
        struct go7007_usb *usb;
        const struct go7007_usb_board *board;
        struct usb_device *usbdev = interface_to_usbdev(intf);
        unsigned num_i2c_devs;
        char *name;
        int video_pipe, i, v_urb_len;
 
-       pr_debug("probing new GO7007 USB board\n");
+       dev_dbg(go->dev, "probing new GO7007 USB board\n");
 
        switch (id->driver_info) {
        case GO7007_BOARDID_MATRIX_II:
                name = "WIS Matrix II or compatible";
                board = &board_matrix_ii;
                break;
        case GO7007_BOARDID_MATRIX_RELOAD:
                name = "WIS Matrix Reloaded or compatible";
                board = &board_matrix_reload;
                break;


As it will try to de-reference the uninitialized "go" struct go7007_usb
pointer.

The alternative of mixing pr_debug with dev_debug, as Dan is suggesting
is, IMHO, worse, as it will lack coherency on the usage of printk
macros inside the driver.

So, I think we should just revert this patch.

Comments?

Regards,
Mauro

Forwarded message:

Date: Tue, 5 Nov 2013 23:26:05 +0300
From: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
To: dulshani.gunawardhana89@xxxxxxxxx
Cc: linux-media@xxxxxxxxxxxxxxx, devel@xxxxxxxxxxxxxxxxxxxx
Subject: re: staging: media: Use dev_err() instead of pr_err()


Hello Dulshani Gunawardhana,

The patch 44ee8e801137: "staging: media: Use dev_err() instead of 
pr_err()" from Oct 20, 2013, leads to the following
GCC warning: 

drivers/staging/media/go7007/go7007-usb.c: In function ‘go7007_usb_probe’:
drivers/staging/media/go7007/go7007-usb.c:1100:13: warning: ‘go’ may be used uninitialized in this function [-Wuninitialized]

drivers/staging/media/go7007/go7007-usb.c
  1049  static int go7007_usb_probe(struct usb_interface *intf,
  1050                  const struct usb_device_id *id)
  1051  {
  1052          struct go7007 *go;
  1053          struct go7007_usb *usb;
  1054          const struct go7007_usb_board *board;
  1055          struct usb_device *usbdev = interface_to_usbdev(intf);
  1056          unsigned num_i2c_devs;
  1057          char *name;
  1058          int video_pipe, i, v_urb_len;
  1059  
  1060          dev_dbg(go->dev, "probing new GO7007 USB board\n");
                        ^^^^^^^
  1061  
  1062          switch (id->driver_info) {
  1063          case GO7007_BOARDID_MATRIX_II:
  1064                  name = "WIS Matrix II or compatible";
  1065                  board = &board_matrix_ii;
  1066                  break;

There are several other uses of "go" before it has been initialized.

Probably you will just want to change these back to pr_info().  Some of
the messages are not very useful like:
	dev_info(go->dev, "Sensoray 2250 found\n");
You can delete that one.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel





[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux