Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752253AbdLLCQo (ORCPT ); Mon, 11 Dec 2017 21:16:44 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:43429 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751123AbdLLCQl (ORCPT ); Mon, 11 Dec 2017 21:16:41 -0500 X-Google-Smtp-Source: ACJfBosMt5sdbxKR6hVMFnbXf0zI6u4JP6VXXJ+e5fcBPGhGhvNStbM3tvF7oKNR/aBF9c2GJo3cyw== From: Jia-Ju Bai To: aacraid@adaptec.com, jejb@linux.vnet.ibm.com, martin.petersen@oracle.com Cc: linux-scsi@vger.kernel.org, Linux Kernel Mailing List Subject: [BUG] drivers/scsi/dpt_i2o: a possible sleep-in-atomic bug in adpt_i2o_post_this Message-ID: <612bd427-c932-9fb4-5c9c-99941f0d8c01@gmail.com> Date: Tue, 12 Dec 2017 10:11:30 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 770 Lines: 27 According to drivers/scsi/dpt_i2o.c, the kernel module may sleep under a spinlock. The function call paths are: adpt_abort (acquire the spinlock) adpt_i2o_post_wait adpt_i2o_post_this schedule_timeout_uninterruptible--> may sleep adpt_device_reset (acquire the spinlock) adpt_i2o_post_wait adpt_i2o_post_this schedule_timeout_uninterruptible--> may sleep adpt_bus_reset (acquire the spinlock) adpt_i2o_post_wait adpt_i2o_post_this schedule_timeout_uninterruptible--> may sleep A possible fixing is to replace "schedule_timeout_uninterruptible" with "mdelay". If this fixing is correct, I can send a patch. This possible bug is found by my static analysis tool (DSAC) and checked by my code review. Thanks, Jia-Ju Bai