From patchwork Tue Apr 28 18:40:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Stultz X-Patchwork-Id: 185815 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp6163632ilf; Tue, 28 Apr 2020 11:43:34 -0700 (PDT) X-Received: by 2002:a63:9801:: with SMTP id q1mr30579601pgd.447.1588099414227; Tue, 28 Apr 2020 11:43:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588099414; cv=none; d=google.com; s=arc-20160816; b=GlB5avYmYi/YGLKzGef8QKEeZCeveHzmw5IvYfRnjkZiyh5BqOHj5jqowBnJ7HUjY8 vtjJlQjPdLgpaGsP8y8DFENvYRCwSV0vWOgqtrVzomlVnZ44QistpV0TbEYIKE9vy38p ep8mGT7n4FY8H/Q0Wl7gcF7KVLUMWb5UUMx0nb4FumD6ilqGvCcLOZ7RcImP5W1UVMGd euGuZOTp5VqzvgvAD1I4g7STyYpvJVnRAh7FBV2GJrtMmyZdUjrtYgmCmxCZh2Q91mfO GeS0qTsAxUWHXpa/IrwsOhrLlfxrz1L8+X9BUpv2eZXR4bjZnm7dPgrB5Do35NbqRrhH KslA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature; bh=BW+Um+UGb0iUWkx+XSMpz8/xZvRFEsv5sCv53qINszQ=; b=GBoLwEy+AT65Xl7r2GH9vPu+B1KvcFGXQGSAVlKN2Kfy9yiMRWm64VtvSuIY3h9uMu pwuzNYc9Pbypc7cLSRcne81wbtqXHLxTI9GUfU17VWAmtAvZTEfhpzer+lzxjSiIT0Ta PdTagxBg4L+XSyOb6FlOvEYoIoJtm8up5orgG7U72G9DsXI6srCqWmMDEUI6SI2A0AnU i1R38MmfJGHEb8zgjE4SkLJ5IO6G+GmJSHin5LWG/cnUDg1hPO8kC+tlFPlPmEQ3rrDR X18u8ZCo10ib2OqbDwZU8Cl1BjSZ0MbAVZ8I1K+A/m9+0FsaX8xDtz/SNBXEFS26w47y jllg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=q5vsKd5z; spf=pass (google.com: domain of john.stultz@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=john.stultz@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id 13sor24020390pfv.26.2020.04.28.11.43.34 for (Google Transport Security); Tue, 28 Apr 2020 11:43:34 -0700 (PDT) Received-SPF: pass (google.com: domain of john.stultz@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=q5vsKd5z; spf=pass (google.com: domain of john.stultz@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=john.stultz@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=BW+Um+UGb0iUWkx+XSMpz8/xZvRFEsv5sCv53qINszQ=; b=q5vsKd5z2Id3W7Fztqh0E0KsZBfS2jaMH+m9IqvY5E+w0VAtx7AEp3igY7i3HqRnbI j66bawXeiZVpGfJ0diArxfrCn2uVdtb2ODXktvZPdenVlHpWTm/s4lj85iUvVTnY1R/J uwgHnXg66485vsrnvo2MFuGxQIW0fcgjkbBmAymEj1eez8kdDMQ1AnIlri5gy9TnZDMQ sZ5VldUlSmC2JvVvMqWgKcNlZuVu/JEHIa0UcmBjWDp0nkJiJ6KlG2c8h5gpmS4pB5T+ 8y+k1Zl6yA6bCaCiWR4vWRGvQXvD2n473D48gHqMt7F+E1R2y0AhRIGWrzg4mLM8lQdl wjSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=BW+Um+UGb0iUWkx+XSMpz8/xZvRFEsv5sCv53qINszQ=; b=eae9jqzNa72i+DVP5Ac4cj4YR8T5CtWAyyZnpb4YKcwbp92GjAxoeXVFcuKDt8SihA nREHPpgIORcrNiB3vqEP2tzTeaBI5b9eOwUutFig5MHiSQ6c3BvpnG5enaVC8RWNkOw7 SJpxLbD0jzbII/IGXNrs/VNTgZ7UoKimXpZb500Wxon1MGcIc6vQEAm12YqF2S5CVXhw QUxlue5xq4OxQxrXCI7ReLWi61p+QldZXYZ1l/ca64G0NXMrpE7O7ATPORmjvvjSjcXt 7hr9yK24MJ2Xajn+WkZcULJ/AahkF7ThOIWhSLeVk7ggqEzwJMZ1Hek1Mz+vQEc2zpSZ lO7w== X-Gm-Message-State: AGi0PubwQV3q7+ELpFmvarpvvERWSRf33srjFsa+V1NmYZ1+H/6jSuL8 4wkmeGLqof9NOdVeuNeOWiEojzBY X-Google-Smtp-Source: APiQypIpotlBs1YsvBB8S5sO68j1K3mpsjTEMOhodWnMmqbJpZWED/LQQvJzTabxyGRXRckGHoEmTA== X-Received: by 2002:a62:158f:: with SMTP id 137mr28936022pfv.219.1588099413768; Tue, 28 Apr 2020 11:43:33 -0700 (PDT) Return-Path: Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id v133sm15780763pfc.113.2020.04.28.11.43.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Apr 2020 11:43:33 -0700 (PDT) From: John Stultz To: lkml Cc: John Stultz , Valentin Schneider , Andy Shevchenko , Russell King , Greg Kroah-Hartman , Jiri Slaby , linux-serial@vger.kernel.org Subject: [PATCH v2] serial: amba-pl011: Make sure we initialize the port.lock spinlock Date: Tue, 28 Apr 2020 18:40:50 +0000 Message-Id: <20200428184050.6501-1-john.stultz@linaro.org> X-Mailer: git-send-email 2.17.1 Valentine reported seeing: [ 3.626638] INFO: trying to register non-static key. [ 3.626639] the code is fine but needs lockdep annotation. [ 3.626640] turning off the locking correctness validator. [ 3.626644] CPU: 7 PID: 51 Comm: kworker/7:1 Not tainted 5.7.0-rc2-00115-g8c2e9790f196 #116 [ 3.626646] Hardware name: HiKey960 (DT) [ 3.626656] Workqueue: events deferred_probe_work_func [ 3.632476] sd 0:0:0:0: [sda] Optimal transfer size 8192 bytes not a multiple of physical block size (16384 bytes) [ 3.640220] Call trace: [ 3.640225] dump_backtrace+0x0/0x1b8 [ 3.640227] show_stack+0x20/0x30 [ 3.640230] dump_stack+0xec/0x158 [ 3.640234] register_lock_class+0x598/0x5c0 [ 3.640235] __lock_acquire+0x80/0x16c0 [ 3.640236] lock_acquire+0xf4/0x4a0 [ 3.640241] _raw_spin_lock_irqsave+0x70/0xa8 [ 3.640245] uart_add_one_port+0x388/0x4b8 [ 3.640248] pl011_register_port+0x70/0xf0 [ 3.640250] pl011_probe+0x184/0x1b8 [ 3.640254] amba_probe+0xdc/0x180 [ 3.640256] really_probe+0xe0/0x338 [ 3.640257] driver_probe_device+0x60/0xf8 [ 3.640259] __device_attach_driver+0x8c/0xd0 [ 3.640260] bus_for_each_drv+0x84/0xd8 [ 3.640261] __device_attach+0xe4/0x140 [ 3.640263] device_initial_probe+0x1c/0x28 [ 3.640265] bus_probe_device+0xa4/0xb0 [ 3.640266] deferred_probe_work_func+0x7c/0xb8 [ 3.640269] process_one_work+0x2c0/0x768 [ 3.640271] worker_thread+0x4c/0x498 [ 3.640272] kthread+0x14c/0x158 [ 3.640275] ret_from_fork+0x10/0x1c Which seems to be due to the fact that after allocating the uap structure, nothing initializes the spinlock. Its a little confusing, as uart_port_spin_lock_init() is one place where the lock is supposed to be initialized, but it has an exception for the case where the port is a console. This makes it seem like a deeper fix is needed to properly register the console, but I'm not sure what that entails, and Andy suggested that this approach is less invasive. Thus, this patch resolves the issue by initializing the spinlock in the driver, and resolves the resulting warning. Cc: Valentin Schneider Cc: Andy Shevchenko Cc: Russell King Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Reported-by: Valentin Schneider Reviewed-by: Andy Shevchenko Signed-off-by: John Stultz --- v2: Added extra context in the commit message --- drivers/tty/serial/amba-pl011.c | 1 + 1 file changed, 1 insertion(+) -- 2.17.1 diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index 2296bb0f9578..458fc3d9d48c 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2575,6 +2575,7 @@ static int pl011_setup_port(struct device *dev, struct uart_amba_port *uap, uap->port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_AMBA_PL011_CONSOLE); uap->port.flags = UPF_BOOT_AUTOCONF; uap->port.line = index; + spin_lock_init(&uap->port.lock); amba_ports[index] = uap;