All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <fengguang.wu@intel.com>
To: kbuild@01.org, Dean Anderson <linux-dev@sensoray.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>,
	Mauro Carvalho Chehab <m.chehab@samsung.com>,
	linux-media@vger.kernel.org,
	Hans Verkuil <hans.verkuil@cisco.com>
Subject: [linuxtv-media:master 476/499] drivers/media/usb/s2255/s2255drv.c:2405 s2255_stop_acquire() warn: inconsistent returns mutex:&dev->cmdlock: locked (2391 [(-12)]) unlocked (2405 [0], 2405 [s32min-(-1),1-s32max])
Date: Sat, 1 Mar 2014 00:52:17 +0300	[thread overview]
Message-ID: <20140228215217.GO26776@mwanda> (raw)

Hi Dean,

FYI, there are new smatch warnings show up in

tree:   git://linuxtv.org/media_tree.git master
head:   a06b429df49bb50ec1e671123a45147a1d1a6186
commit: 47d8c881c304642a68d398b87d9e8846e643c81a [476/499] [media] s2255drv: dynamic memory allocation efficiency fix

drivers/media/usb/s2255/s2255drv.c:2405 s2255_stop_acquire() warn: inconsistent returns mutex:&dev->cmdlock: locked (2391 [(-12)]) unlocked (2405 [0], 2405 [s32min-(-1),1-s32max])
drivers/media/usb/s2255/s2255drv.c:2462 s2255_probe() warn: possible memory leak of 'dev'

git remote add linuxtv-media git://linuxtv.org/media_tree.git
git remote update linuxtv-media
git checkout 47d8c881c304642a68d398b87d9e8846e643c81a
vim +2405 drivers/media/usb/s2255/s2255drv.c

38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2399  	if (res != 0)
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2400  		dev_err(&dev->udev->dev, "CMD_STOP error\n");
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2401  
5e950faf drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-04  2402  	vc->b_acquire = 0;
5e950faf drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-04  2403  	dprintk(dev, 4, "%s: chn %d, res %d\n", __func__, vc->idx, res);
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2404  	mutex_unlock(&dev->cmdlock);
14d96260 drivers/media/video/s2255drv.c     Dean Anderson         2008-08-25 @2405  	return res;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2406  }
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2407  
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2408  static void s2255_stop_readpipe(struct s2255_dev *dev)
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2409  {
ab85c6a3 drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2410  	struct s2255_pipeinfo *pipe = &dev->pipe;
8b661b50 drivers/media/video/s2255drv.c     Dan Carpenter         2010-05-05  2411  
ab85c6a3 drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2412  	pipe->state = 0;
ab85c6a3 drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2413  	if (pipe->stream_urb) {
ab85c6a3 drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2414  		/* cancel urb */
ab85c6a3 drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2415  		usb_kill_urb(pipe->stream_urb);
ab85c6a3 drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2416  		usb_free_urb(pipe->stream_urb);
ab85c6a3 drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2417  		pipe->stream_urb = NULL;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2418  	}
f5402007 drivers/media/usb/s2255/s2255drv.c sensoray-dev          2014-01-29  2419  	dprintk(dev, 4, "%s", __func__);
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2420  	return;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2421  }
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2422  
14d96260 drivers/media/video/s2255drv.c     Dean Anderson         2008-08-25  2423  static void s2255_fwload_start(struct s2255_dev *dev, int reset)
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2424  {
14d96260 drivers/media/video/s2255drv.c     Dean Anderson         2008-08-25  2425  	if (reset)
14d96260 drivers/media/video/s2255drv.c     Dean Anderson         2008-08-25  2426  		s2255_reset_dsppower(dev);
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2427  	dev->fw_data->fw_size = dev->fw_data->fw->size;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2428  	atomic_set(&dev->fw_data->fw_state, S2255_FW_NOTLOADED);
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2429  	memcpy(dev->fw_data->pfw_data,
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2430  	       dev->fw_data->fw->data, CHUNK_SIZE);
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2431  	dev->fw_data->fw_loaded = CHUNK_SIZE;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2432  	usb_fill_bulk_urb(dev->fw_data->fw_urb, dev->udev,
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2433  			  usb_sndbulkpipe(dev->udev, 2),
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2434  			  dev->fw_data->pfw_data,
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2435  			  CHUNK_SIZE, s2255_fwchunk_complete,
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2436  			  dev->fw_data);
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2437  	mod_timer(&dev->timer, jiffies + HZ);
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2438  }
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2439  
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2440  /* standard usb probe function */
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2441  static int s2255_probe(struct usb_interface *interface,
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2442  		       const struct usb_device_id *id)
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2443  {
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2444  	struct s2255_dev *dev = NULL;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2445  	struct usb_host_interface *iface_desc;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2446  	struct usb_endpoint_descriptor *endpoint;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2447  	int i;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2448  	int retval = -ENOMEM;
14d96260 drivers/media/video/s2255drv.c     Dean Anderson         2008-08-25  2449  	__le32 *pdata;
14d96260 drivers/media/video/s2255drv.c     Dean Anderson         2008-08-25  2450  	int fw_size;
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2451  
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2452  	/* allocate memory for our device state and initialize it to zero */
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2453  	dev = kzalloc(sizeof(struct s2255_dev), GFP_KERNEL);
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2454  	if (dev == NULL) {
be9ed511 drivers/media/video/s2255drv.c     Mauro Carvalho Chehab 2009-01-08  2455  		s2255_dev_err(&interface->dev, "out of memory\n");
ff7e22df drivers/media/video/s2255drv.c     Dean Anderson         2010-04-08  2456  		return -ENOMEM;
38f993ad drivers/media/video/s2255drv.c     Dean Anderson         2008-06-26  2457  	}
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2458  
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2459  	dev->cmdbuf = kzalloc(S2255_CMDBUF_SIZE, GFP_KERNEL);
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2460  	if (dev->cmdbuf == NULL) {
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2461  		s2255_dev_err(&interface->dev, "out of memory\n");
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05 @2462  		return -ENOMEM;
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2463  	}
47d8c881 drivers/media/usb/s2255/s2255drv.c Dean Anderson         2014-02-05  2464  
fe85ce90 drivers/media/video/s2255drv.c     Dean Anderson         2010-06-01  2465  	atomic_set(&dev->num_channels, 0);

---
0-DAY kernel build testing backend              Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation

                 reply	other threads:[~2014-02-28 21:52 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140228215217.GO26776@mwanda \
    --to=fengguang.wu@intel.com \
    --cc=dan.carpenter@oracle.com \
    --cc=hans.verkuil@cisco.com \
    --cc=kbuild@01.org \
    --cc=linux-dev@sensoray.com \
    --cc=linux-media@vger.kernel.org \
    --cc=m.chehab@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.