lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 25 Aug 2020 02:37:04 +0000
From:   "Xia, Hui" <hui.xia@...el.com>
To:     Johan Hovold <johan@...nel.org>, lkp <lkp@...el.com>
CC:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        "kbuild-all@...ts.01.org" <kbuild-all@...ts.01.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [kbuild-all] Re: drivers/greybus/es2.c:439 message_send() error:
 double unlocked 'es2->cport_out_urb_lock' (orig line 417)



>-----Original Message-----
>From: Johan Hovold <johan@...nel.org>
>Sent: 2020年8月24日 17:54
>To: kernel test robot <lkp@...el.com>
>Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>; kbuild-all@...ts.01.org;
>linux-kernel@...r.kernel.org
>Subject: [kbuild-all] Re: drivers/greybus/es2.c:439 message_send() error: double
>unlocked 'es2->cport_out_urb_lock' (orig line 417)
>
>On Fri, Aug 14, 2020 at 03:26:27AM +0800, kernel test robot wrote:
>> Hi Greg,
>>
>> First bad commit (maybe != root cause):
>>
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head:   dc06fe51d26efc100ac74121607c01a454867c91
>> commit: b81beec9cb2d586412c7166c893894930f19965e staging: greybus:
>move es2 to drivers/greybus/
>> date:   12 months ago
>> config: x86_64-randconfig-m001-20200813 (attached as .config)
>> compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@...el.com>
>>
>> New smatch warnings:
>> drivers/greybus/es2.c:439 message_send() error: double unlocked
>> 'es2->cport_out_urb_lock' (orig line 417)
>> drivers/greybus/es2.c:879 cport_out_callback() error: double unlocked
>> 'es2->cport_out_urb_lock' (orig line 871)
>> drivers/greybus/es2.c:1018 arpc_sync() error: double unlocked
>> 'es2->arpc_lock' (orig line 992)
>>
>> Old smatch warnings:
>> drivers/greybus/es2.c:441 message_send() error: double unlocked
>> 'es2->cport_out_urb_lock' (orig line 439)
>
>None of these warnings make any sense. Is the robot drunk?
Hi Johan,

It is a false positive. Please kindly ignore.
There was a bug in robot that sent unconfident reports out directly and has been fixed. Sorry for inconvenient.

Best Regards,
Hui
>
>> vim +439 drivers/greybus/es2.c
>>
>> d29b3d631e57240 drivers/staging/greybus/es2.c    Alex Elder         2015-06-13
>385
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  386  /*
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>387   * Returns zero if the message was successfully queued, or a negative errno
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>388   * otherwise.
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  389   */
>> 2537636abae5b81 drivers/staging/greybus/es2.c    Johan Hovold       2015-11-
>03  390  static int message_send(struct gb_host_device *hd, u16 cport_id,
>> 7cf7bca9ec5659e drivers/staging/greybus/es2.c    Johan Hovold       2015-04-07
>391  			struct gb_message *message, gfp_t gfp_mask)
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  392  {
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>393  	struct es2_ap_dev *es2 = hd_to_es2(hd);
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>394  	struct usb_device *udev = es2->usb_dev;
>> 7cf7bca9ec5659e drivers/staging/greybus/es2.c    Johan Hovold       2015-04-07
>395  	size_t buffer_size;
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  396  	int retval;
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  397  	struct urb *urb;
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>398  	unsigned long flags;
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  399
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  400  	/*
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  401  	 * The data actually transferred will include an indication
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  402  	 * of where the data should be sent.  Do one last check of
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  403  	 * the target CPort id before filling it in.
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  404  	 */
>> 144670c2ae3f9b4 drivers/staging/greybus/es2.c    Fabien Parent      2015-09-02
>405  	if (!cport_id_valid(hd, cport_id)) {
>> 100e90000840741 drivers/staging/greybus/es2.c    Johan Hovold       2015-12-
>07  406  		dev_err(&udev->dev, "invalid cport %u\n", cport_id);
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>407  		return -EINVAL;
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  408  	}
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  409
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  410  	/* Find a free urb */
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>411  	urb = next_free_urb(es2, gfp_mask);
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  412  	if (!urb)
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>413  		return -ENOMEM;
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>414
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>415  	spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>416  	message->hcpriv = urb;
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>@417  	spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
>
>How is this a double unlock?
>
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  418
>> d29b3d631e57240 drivers/staging/greybus/es2.c    Alex Elder         2015-06-13
>419  	/* Pack the cport id into the message header */
>> d29b3d631e57240 drivers/staging/greybus/es2.c    Alex Elder         2015-06-13
>420  	gb_message_cport_pack(message->header, cport_id);
>> 491e60d63fde0a9 drivers/staging/greybus/es2.c    Johan Hovold       2015-04-07
>421
>> 821c620afa1ad29 drivers/staging/greybus/es2.c    Alex Elder         2015-06-13
>422  	buffer_size = sizeof(*message->header) + message->payload_size;
>> 491e60d63fde0a9 drivers/staging/greybus/es2.c    Johan Hovold       2015-04-07
>423
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  424  	usb_fill_bulk_urb(urb, udev,
>> 606addd2847ccc5 drivers/staging/greybus/es2.c    Alexandre Bailon   2015-06-
>15  425  			  usb_sndbulkpipe(udev,
>> 403074b50b66f1a drivers/staging/greybus/es2.c    Greg Kroah-Hartman 2016-
>08-17  426  					  es2->cport_out_endpoint),
>> 821c620afa1ad29 drivers/staging/greybus/es2.c    Alex Elder         2015-06-13
>427  			  message->buffer, buffer_size,
>> 7cf7bca9ec5659e drivers/staging/greybus/es2.c    Johan Hovold       2015-04-07
>428  			  cport_out_callback, message);
>> 977e209ab41073d drivers/staging/greybus/es2.c    Alexandre Bailon   2015-08-
>31  429  	urb->transfer_flags |= URB_ZERO_PACKET;
>> 495787a792ac498 drivers/staging/greybus/es2.c    Alex Elder         2016-06-03
>430
>> 495787a792ac498 drivers/staging/greybus/es2.c    Alex Elder         2016-06-03
>431  	trace_gb_message_submit(message);
>> 495787a792ac498 drivers/staging/greybus/es2.c    Alex Elder         2016-06-03
>432
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  433  	retval = usb_submit_urb(urb, gfp_mask);
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  434  	if (retval) {
>> 05e3095563670ab drivers/staging/greybus/es2.c    Viresh Kumar       2016-06-23
>435  		dev_err(&udev->dev, "failed to submit out-urb: %d\n", retval);
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>436
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>437  		spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>438  		message->hcpriv = NULL;
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>@439  		spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>440
>> 4b1d82047ebbb10 drivers/staging/greybus/es2.c    Alex Elder         2015-10-27
>441  		free_urb(es2, urb);
>> d29b3d631e57240 drivers/staging/greybus/es2.c    Alex Elder         2015-06-13
>442  		gb_message_cport_clear(message->header);
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>443
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>444  		return retval;
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  445  	}
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman 2015-
>01-21  446
>> 3e136cc9e05e1a3 drivers/staging/greybus/es2.c    Johan Hovold       2015-07-01
>447  	return 0;
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman
>> 2015-01-21  448  }
>> f587027e793cf89 drivers/staging/greybus/gb-es2.c Greg Kroah-Hartman
>> 2015-01-21  449
>>
>> :::::: The code at line 439 was first introduced by commit
>> :::::: 4b1d82047ebbb108e9961fffd51f8ccd54459221 greybus: es2: rename
>> es2 data structures
>>
>> :::::: TO: Alex Elder <elder@...aro.org>
>> :::::: CC: Greg Kroah-Hartman <gregkh@...gle.com>
>>
>> ---
>> 0-DAY CI Kernel Test Service, Intel Corporation
>> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
>
>Johan
>_______________________________________________
>kbuild-all mailing list -- kbuild-all@...ts.01.org To unsubscribe send an email to
>kbuild-all-leave@...ts.01.org

Powered by blists - more mailing lists