Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751678AbdLLCUk (ORCPT ); Mon, 11 Dec 2017 21:20:40 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:46872 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751123AbdLLCUg (ORCPT ); Mon, 11 Dec 2017 21:20:36 -0500 X-Google-Smtp-Source: ACJfBoucM5g7GQqNgvAAc5lAN5eqW/RaC/J0FD1rzr+bT4PSX4mPs/cdQOizKgFX3IszaEFKZQulfA== To: aacraid@adaptec.com, jejb@linux.vnet.ibm.com, martin.petersen@oracle.com, linux-scsi@vger.kernel.org, Linux Kernel Mailing List From: Jia-Ju Bai Subject: [BUG] drivers/scsi/dpt_i2o: a possible sleep-in-atomic bug in adpt_i2o_status_get Message-ID: <267ca600-93dd-3f1f-8f63-3362b1495524@gmail.com> Date: Tue, 12 Dec 2017 10:20:25 +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: 643 Lines: 20 According to drivers/scsi/dpt_i2o.c, the kernel module may sleep under a spinlock. The function call paths are: adpt_reset (acquire the spinlock) __adpt_reset adpt_hba_reset adpt_i2o_activate_hba adpt_i2o_status_get dma_alloc_coherent(GFP_KERNEL) --> may sleep schedule_timeout_uninterruptible --> may sleep A possible fixing is to replace "schedule_timeout_uninterruptible" with "mdelay" and replace "GFP_KERNEL" with "GFP_ATOMIC". 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