On 10/28/19 5:30 PM, Kees Cook wrote: > On Mon, Oct 28, 2019 at 05:27:59PM -0600, Jens Axboe wrote: >> On 10/28/19 5:05 PM, coverity-bot wrote: >>> Hello! >>> >>> This is an experimental automated report about issues detected by Coverity >>> from a scan of next-20191025 as part of the linux-next weekly scan project: >>> https://scan.coverity.com/projects/linux-next-weekly-scan >>> >>> You're getting this email because you were associated with the identified >>> lines of code (noted below) that were touched by recent commits: >>> >>> 46134db8fdc5 ("io-wq: small threadpool implementation for io_uring") >>> >>> Coverity reported the following: >>> >>> *** CID 1487365: Program hangs (LOCK) >>> /fs/io-wq.c: 349 in io_wqe_worker() >>> 343 io_worker_handle_work(worker); >>> 344 else >>> 345 spin_unlock(&wqe->lock); >>> 346 } >>> 347 >>> 348 io_worker_exit(worker); >>> vvv CID 1487365: Program hangs (LOCK) >>> vvv Returning without unlocking "(*wqe).lock". >>> 349 return 0; >>> 350 } >>> 351 >>> 352 /* >>> 353 * Check head of free list for an available worker. If one isn't available, >>> 354 * caller must wake up the wq manager to create one. >>> >>> If this is a false positive, please let us know so we can mark it as >>> such, or teach the Coverity rules to be smarter. If not, please make >>> sure fixes get into linux-next. :) For patches fixing this, please >>> include: >> >> It's a false positive, lock is dropped on non-zero return. > > Does that happen in the caller side? I'll see if I can figure out how to > teach coverity about that... Hmmm I was trying to use the right incantations of __release() etc to shut up the checker as well. So if there are things I could be improving on that side, do let me know. As mentioned in other emails, the linux-next version is somewhat outdated at this point. My for-next branch has the latest version. -- Jens Axboe