From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1539B39099A for ; Sat, 20 Jun 2026 12:01:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781956914; cv=none; b=fdkikxGqVk03IS4ArcCo8EAgrxvWFUHcHu5mwSPdoDtS9jS0KW+eqlQnFJtoAyTbjBbSbF0zDJre0LPAYcC2FyML1aIi1cVnic2eMdt9v5Ihz5vDUJIw4e4thnY3GmceOVOb5NK3YSa1cF2XTHr12JZDaeOpd6Bm4bVVwrdLB98= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781956914; c=relaxed/simple; bh=kS5pcNt/vY5gNiRg/sttruEhmDQy6pjscW7MjrckjQs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HXrJaPP9EpPrJVBa2N2txiSYypbXxI8XY25h2jTgEe6ZbMTdtvPtiTyt5nY6HQAc/gHaGe8FYbsrYD/OxfQvO6VMz857rtvMHjluLjmkYGO51xIW80nwLdxCNdnFcds9gUgkXox1QzMenYqPwdrfWNcQ99fNWazpR8JUe8fEw28= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hDJDJZIy; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hDJDJZIy" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-49241896317so7497825e9.3 for ; Sat, 20 Jun 2026 05:01:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781956911; x=1782561711; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UoUdv95J4bJxz2Gn9Lb1NNztjkNqpS6kvv/4h1UTTes=; b=hDJDJZIyXqOX975byr7pCZ6ODZgQrTz1XYjbggL3YYEcua/howz7tVHVAbIkHnCeIr vp5Ku/0Uoyeue1ZFkThYMVBIVLk6tqKhbfJVplmEGL3+x6DKnNDQBLwHRw7jvJwZInlr 0+LgBe4ZPKU8CvZmg46K9qVcELdIiqBfSJI82IwRBzdiu8f6tQd9UUHJ7soZoHc9NwIg ALsoGp+FlFcxAC/t33Ea8CiQ/O67EnH9FAkW+wVjjSSDEJDDeBO2WHE6Bf6IZT9P/cn/ 5769X18XU60jdqUrRAj11AVqD2BbM8iYEgRhPm/j3DlZyoz//Prlm+wt/pmQPFnBt0Gp i/Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781956911; x=1782561711; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UoUdv95J4bJxz2Gn9Lb1NNztjkNqpS6kvv/4h1UTTes=; b=ETDU6sYOJy3WkBidqyK9VImbcbSu4wGAFFqMuZtzXixPLE2/KXp2TGIT5WLQ26ey/0 HjFQUUqxNy7SujHsc4iNr73hfQO/uzERJPGDjOt8jfdsV2tKIAhLC99te/FZP7gijTlX bS2dCNF7ePGQPA18iMEpMy7Hffsr87Bdf7bjPYfu/nXslPRvy4PnanZvTmVq4LPx2Pvj nSYb4GcJYgkZh17iqovU30imtARhRYAcWXfXS8UcYMBBHrncCUJbAjJiX3Y6wwHybHnN PkBZ0q22fgVKQoBhvJHr0H3QZx0Y4v+FfPlDVWZibhKQa0J5cIrUdeBHV2hPp1vJjs3J hs7g== X-Forwarded-Encrypted: i=1; AFNElJ+bD09ynVfh35uNECcs1LBajXnToeurY9yoDSXQ7XfBO2QLkfjKne+Ll6/HxzYKrIqKtWUSnblDvy5fcA8=@vger.kernel.org X-Gm-Message-State: AOJu0YysoEjLTYokt3sTilAHY5Kph0vEfItF06f3/3NiR7/2obL2sk5j QDpoZ6FfM/3/5P16PPvY8ecKy8vWBZOr5QFcrHfZVyT7y+fHujrCZYnD X-Gm-Gg: AfdE7cnehMV2C6eTaJ87kOflUFsvt8ungH01jZ7e/8LaeIFdPcvUGLmAUDTw3n5OMrF TnDe2FuNvRZovrfza173mjnRtPMtXxgmsbdu+bCU2HcmK60bBSlfUG9evXjwzvN8dc+YA5mF3xR 0V17N7heGTxXrA6sii1lEEKowIU02twLxsbrt73H977ishKy1j28/XPuoNLI6BkrO+89N/LMIHP 7r/035itsfHNILGhZrj1izJ1LmYGAAGBmcIOVBk71fC2BE3+6jBXbm8D3HaaeJhUrkRcoUCOd2h FahIN1Zkjx5rwg6FeOgEkJjVaT4xBJvi/MZLSJxU9imxUBEYt2mX4WHrMhqApkgGdg5gJWFEajX GuNWJeh+jWagFs7TF/bY/eHns39iBl7Y94DJr4H8vr2x5gcrkMebbju0pfftAmf9d++A/PjxlYv NKnaMSIinTpeQfPjhv0Zgu9uqcS7kVJn6KvcZKwZyVFP7Yb9iZEM9lxVCF7LM= X-Received: by 2002:a05:600c:c4a3:b0:492:4c2e:9610 with SMTP id 5b1f17b1804b1-4924c2e96c7mr25313295e9.11.1781956906817; Sat, 20 Jun 2026 05:01:46 -0700 (PDT) Received: from camaron.. (147.red-88-9-50.dynamicip.rima-tde.net. [88.9.50.147]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49240ee9bc2sm93161565e9.1.2026.06.20.05.01.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2026 05:01:44 -0700 (PDT) From: Sergio Paracuellos To: linux-gpio@vger.kernel.org Cc: linusw@kernel.org, brgl@kernel.org, vicencb@gmail.com, linux-kernel@vger.kernel.org, Sashiko Subject: [PATCH 1/4] gpio: mt7621: avoid corruption of shared interrupt trigger state Date: Sat, 20 Jun 2026 14:01:33 +0200 Message-ID: <20260620120136.2482872-2-sergio.paracuellos@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260620120136.2482872-1-sergio.paracuellos@gmail.com> References: <20260620120136.2482872-1-sergio.paracuellos@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The bank-shared fields like 'rising' and 'falling' are modified using non-atomic read-modify-write operations. Since every gpio chip instance represents an entire bank of 32 pins, if 'mediatek_gpio_irq_type()' is called concurrently for different IRQs on the same bank a possible overwrite of each other's configuration is possible. Thus, protect this state with 'gpio_generic_lock_irqsave' lock in the same way it is handled in irp_chip 'mediatek_gpio_irq_mask()' and 'mediatek_gpio_irq_unmask()' callbacks. Reported-by: Sashiko Signed-off-by: Sergio Paracuellos --- drivers/gpio/gpio-mt7621.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpio/gpio-mt7621.c b/drivers/gpio/gpio-mt7621.c index a814885ccd5d..ceb99641baee 100644 --- a/drivers/gpio/gpio-mt7621.c +++ b/drivers/gpio/gpio-mt7621.c @@ -187,6 +187,8 @@ mediatek_gpio_irq_type(struct irq_data *d, unsigned int type) struct mtk_gc *rg = gpiochip_get_data(gc); u32 mask = BIT(mt7621_gpio_hwirq_to_offset(d->hwirq, rg)); + guard(gpio_generic_lock_irqsave)(&rg->chip); + if (type == IRQ_TYPE_PROBE) { if ((rg->rising | rg->falling | rg->hlevel | rg->llevel) & mask) -- 2.43.0