From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757768Ab3APDF1 (ORCPT ); Tue, 15 Jan 2013 22:05:27 -0500 Received: from youngberry.canonical.com ([91.189.89.112]:60809 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755488Ab3APDF0 (ORCPT ); Tue, 15 Jan 2013 22:05:26 -0500 MIME-Version: 1.0 In-Reply-To: References: Date: Wed, 16 Jan 2013 11:05:22 +0800 Message-ID: Subject: Re: USB device cannot be reconnected and khubd "blocked for more than 120 seconds" From: Ming Lei To: Linus Torvalds Cc: Tejun Heo , Alex Riesen , Alan Stern , Jens Axboe , USB list , Linux Kernel Mailing List Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 16, 2013 at 1:36 AM, Linus Torvalds wrote: > > Because it's not just sd.c that uses async_schedule(), and would need > the async synchronize. It's floppy.c, it's generic scsi scanning (so > scsi tapes etc), and it's libata-core.c. As discussed previously, only the module which will populate device node for user space inside async func may require the synchronization, so that the below modprobe A mount /dev/XXX /mnt script can't be broken, and that should be the original bug report: https://bugzilla.kernel.org/attachment.cgi?id=20937 For other modules, looks the synchonization isn't needed, at least there are lots of other async(work, kthread, ...) things which is scheduled in driver probe() and no any synchronize is added after the module init() completes inside loading module. Do we need to add that sync for all async things inside loading module? So looks only sd.c and floppy.c are to be synchronized suppose some sync interfaces are introduced, doesn't it? Thanks -- Ming Lei