From patchwork Wed Oct 23 03:15:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1181757 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="PsGnYIId"; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46yb9S5b5Qz9sPV; Wed, 23 Oct 2019 14:15:40 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1iN77W-00061U-Bv; Wed, 23 Oct 2019 03:15:34 +0000 Received: from mail-pg1-f194.google.com ([209.85.215.194]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1iN77N-0005tT-Hd for kernel-team@lists.ubuntu.com; Wed, 23 Oct 2019 03:15:25 +0000 Received: by mail-pg1-f194.google.com with SMTP id w3so11233321pgt.5 for ; Tue, 22 Oct 2019 20:15:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=asV+Wph81BI17Nv+hD3v7L1B2njreWIv8T/IgZPA7ic=; b=PsGnYIIdUodeyjE+SjCRqfnWFryd+cVTt96/8rXAhnds8KFFBfSfVoFMlQoMoSg6xW s8yf3ve3K1miExlvgPRt0z9jEvQSPKGF1uZ98VsYwJ7GZ4lvM34kE/hleIO6n0qhwSnq ndXhPDOQf/gJS9SIxPOkBlEvnxDgd3tFj0cGQwappaCtD8t0NldJBg69p5wHJzkCxGpC 0KGb288RNXF+JArg3N8ojeoTrwSZ6ceBycTX1wM2if8wUAtjaudrN7V0laOMhWvbqet2 T1Y9kpEWYOYdonuW6qNUQSC9LMwDkh6nrQPJQnLtD+Sj1Df7C/a+UZW+WzZIntja+Hdr XZUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=asV+Wph81BI17Nv+hD3v7L1B2njreWIv8T/IgZPA7ic=; b=nJetOU2AM4LYXMndgoNIQDn4Muf4oB81eYooilykbx7B8JXfRE4av9m8mI4UIkoKyb pHveMR4u4KwxwpAgmA+IyQ6UZLqhlf5E9ZDe95LE/u7+iVRyWBEyFdMNeigG1A4PB/12 cUS++qPX5DlM8n7IlhhGUEy/Sm4QcP6kHU3gP4Vj6OI/u5KKrpQ3EmMUpNrcpV4fhAU3 VNerglZ1zjM9I05oiUrAPwOAe12CI9I/4ltgAtPyVWtahjK9rIDxdB7DNSGeUz96bKdN F+r3w0jAilMuTQc8lLgtsH/mseyHt5UZR7/nBsU7XP+U4xe1tJbzjUXlg93f/G12V7Nn KCrA== X-Gm-Message-State: APjAAAXzaS8Bo7UPisGsQwINPx/tkzioTI79QGkcDUEa7aPlgB2Yv3L3 fDPmosJ7lmWW59BGHywEIQ/sdDojAKc= X-Google-Smtp-Source: APXvYqzpi11bx1k5bz1MBEOEXD89xGZADTCtlsibYx4xE0P8NJQX5g/cYiv3RN14x5e+7OAQ8hsPIA== X-Received: by 2002:a17:90a:aa81:: with SMTP id l1mr18402pjq.73.1571800523386; Tue, 22 Oct 2019 20:15:23 -0700 (PDT) Received: from localhost (61-220-137-37.HINET-IP.hinet.net. [61.220.137.37]) by smtp.gmail.com with ESMTPSA id w29sm517973pgc.10.2019.10.22.20.15.22 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 22 Oct 2019 20:15:22 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/4][SRU][D][E][OEM-B-OSP1] Revert "libata, freezer: avoid block device removal while system is frozen" Date: Wed, 23 Oct 2019 11:15:05 +0800 Message-Id: <20191023031509.23554-7-acelan.kao@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191023031509.23554-1-acelan.kao@canonical.com> References: <20191023031509.23554-1-acelan.kao@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Mika Westerberg BugLink: https://bugs.launchpad.net/bugs/1849269 This reverts commit 85fbd722ad0f5d64d1ad15888cd1eb2188bfb557. The commit was added as a quick band-aid for a hang that happened when a block device was removed during system suspend. Now that bdi_wq is not freezable anymore the hang should not be possible and we can get rid of this hack by reverting it. Acked-by: Rafael J. Wysocki Signed-off-by: Mika Westerberg Signed-off-by: Jens Axboe (cherry picked from commit 0e48f51cbbfbdb79149806de14dcb8bf0f01ca94) Signed-off-by: AceLan Kao --- drivers/ata/libata-scsi.c | 21 --------------------- kernel/freezer.c | 6 ------ 2 files changed, 27 deletions(-) diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 39f401c02b43..d910a3573501 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -4808,27 +4808,6 @@ void ata_scsi_hotplug(struct work_struct *work) return; } - /* - * XXX - UGLY HACK - * - * The block layer suspend/resume path is fundamentally broken due - * to freezable kthreads and workqueue and may deadlock if a block - * device gets removed while resume is in progress. I don't know - * what the solution is short of removing freezable kthreads and - * workqueues altogether. - * - * The following is an ugly hack to avoid kicking off device - * removal while freezer is active. This is a joke but does avoid - * this particular deadlock scenario. - * - * https://bugzilla.kernel.org/show_bug.cgi?id=62801 - * http://marc.info/?l=linux-kernel&m=138695698516487 - */ -#ifdef CONFIG_FREEZER - while (pm_freezing) - msleep(10); -#endif - DPRINTK("ENTER\n"); mutex_lock(&ap->scsi_scan_mutex); diff --git a/kernel/freezer.c b/kernel/freezer.c index b162b74611e4..bc6d55f6dce4 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c @@ -21,12 +21,6 @@ EXPORT_SYMBOL(system_freezing_cnt); bool pm_freezing; bool pm_nosig_freezing; -/* - * Temporary export for the deadlock workaround in ata_scsi_hotplug(). - * Remove once the hack becomes unnecessary. - */ -EXPORT_SYMBOL_GPL(pm_freezing); - /* protects freezing and frozen transitions */ static DEFINE_SPINLOCK(freezer_lock);