CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: Mauro Carvalho Chehab CC: linux-media(a)vger.kernel.org tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: b51594df17d0ce80b9f9f35394a1f42d7ac94472 commit: a81068181aad78a5f6980408a4b6115d22bb8aed media: move CEC USB drivers to a separate directory date: 5 months ago :::::: branch date: 5 hours ago :::::: commit date: 5 months ago config: h8300-randconfig-m031-20200831 (attached as .config) compiler: h8300-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/media/cec/usb/pulse8/pulse8-cec.c:348 pulse8_irq_work_handler() error: double unlocked 'pulse8->msg_lock' (orig line 335) # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a81068181aad78a5f6980408a4b6115d22bb8aed git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout a81068181aad78a5f6980408a4b6115d22bb8aed vim +348 drivers/media/cec/usb/pulse8/pulse8-cec.c b36910e078428a drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 325 9d01315d132469 drivers/staging/media/pulse8-cec/pulse8-cec.c Mauro Carvalho Chehab 2016-07-12 326 static void pulse8_irq_work_handler(struct work_struct *work) 3dff3106fd7992 drivers/staging/media/pulse8-cec/pulse8-cec.c Hans Verkuil 2016-07-10 327 { 3dff3106fd7992 drivers/staging/media/pulse8-cec/pulse8-cec.c Hans Verkuil 2016-07-10 328 struct pulse8 *pulse8 = b36910e078428a drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 329 container_of(work, struct pulse8, irq_work); 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 330 unsigned long flags; b7d0567f552a46 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 331 u32 status; 3dff3106fd7992 drivers/staging/media/pulse8-cec/pulse8-cec.c Hans Verkuil 2016-07-10 332 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 333 spin_lock_irqsave(&pulse8->msg_lock, flags); 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 334 while (pulse8->rx_msg_num) { 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 @335 spin_unlock_irqrestore(&pulse8->msg_lock, flags); a67524c8bf7509 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 336 if (debug) a67524c8bf7509 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 337 dev_info(pulse8->dev, "adap received %*ph\n", a67524c8bf7509 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 338 pulse8->rx_msg[pulse8->rx_msg_cur_idx].len, a67524c8bf7509 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 339 pulse8->rx_msg[pulse8->rx_msg_cur_idx].msg); 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 340 cec_received_msg(pulse8->adap, 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 341 &pulse8->rx_msg[pulse8->rx_msg_cur_idx]); 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 342 spin_lock_irqsave(&pulse8->msg_lock, flags); 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 343 if (pulse8->rx_msg_num) 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 344 pulse8->rx_msg_num--; 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 345 pulse8->rx_msg_cur_idx = 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 346 (pulse8->rx_msg_cur_idx + 1) % NUM_MSGS; b7d0567f552a46 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 347 } 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 @348 spin_unlock_irqrestore(&pulse8->msg_lock, flags); 906870770431cb drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 349 a6706447f31916 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 350 mutex_lock(&pulse8->lock); b7d0567f552a46 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 351 status = pulse8->tx_done_status; b7d0567f552a46 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 352 pulse8->tx_done_status = 0; a6706447f31916 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 353 mutex_unlock(&pulse8->lock); b7d0567f552a46 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 354 if (status) b7d0567f552a46 drivers/media/usb/pulse8-cec/pulse8-cec.c Hans Verkuil 2019-12-11 355 cec_transmit_attempt_done(pulse8->adap, status); 3dff3106fd7992 drivers/staging/media/pulse8-cec/pulse8-cec.c Hans Verkuil 2016-07-10 356 } 3dff3106fd7992 drivers/staging/media/pulse8-cec/pulse8-cec.c Hans Verkuil 2016-07-10 357 :::::: The code at line 348 was first introduced by commit :::::: 906870770431cbeb64e73da2111a4636d227f1e0 media: pulse8-cec: queue received messages in an array :::::: TO: Hans Verkuil :::::: CC: Mauro Carvalho Chehab --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org