From nobody Sun Dec 14 05:52:26 2025 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) (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 A163822068F for ; Sat, 13 Dec 2025 11:53:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765626804; cv=none; b=nZhl77eZZ4moc3OPzXxYdveOKrUnprHhNEoN43Octoy8ZW4LPLriCW1dUZiUs0HgUL5Wm4cE83kB0HGp5zU7C70yUIvNgHaaPF2V71sNPzJN1lBJewEpK/WAFnSdZyc5r+v95mJMOaFhzZW735kW3OSyXLxW5MQr+ljaRTzaEL0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765626804; c=relaxed/simple; bh=+Df2k80A+QMnFwN1qt+6wxuvtshO+ZO3JjWMOc3c0pE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=S0604B/XQtQpL5uBpNrBVGooaidL0T5N8rj4JT6a2HbikzwEeVt86bizkjRDDZs5KUxqqk0jpTQ1Wcdi6VhvVi/SypC7sidNW/cg69HqCKtkvuAusfyOJHTW8eI65Unk24q7svY2rD3VfgosDfvSUjwi7YWeBS15VuYB2gnzFoo= 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=ZuILt83U; arc=none smtp.client-ip=209.85.208.50 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="ZuILt83U" Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-640ca678745so4028130a12.2 for ; Sat, 13 Dec 2025 03:53:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765626801; x=1766231601; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=YS63or9/gk9dRHrF5+8oKdwiTKdY1KQ6pLp1kwrVvRQ=; b=ZuILt83Uozmrk2qpX8MT2+w8TTwZwlOmOmM7z0cQxEv9bJFzPH4Zg95U8ALYH7eDjf dwwCKn+2/HaJQlOSKKLAvQLRew76g+t6P0PaucrmpUifi00f7L76hxBa4qyKd3ZfgPk6 jrNotW8uOtdHXSn3f/QniryAWBFEGfummUCtxpI6IGgxZD29DIqgDp+y8Hljfz7KJPmr e7vryijBa2R4Iylq0CII0/J4uEEH+JwGchKgmGPsqkZ5i7tNMALjWhy6Z0HSMXnBhObM +FTiThniZLSh7rFMVj+w/w5Aq+/Byx+w1/rPJktfh7BSoQIdAozm2NKb6jk2whaZn2Qx sE4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765626801; x=1766231601; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=YS63or9/gk9dRHrF5+8oKdwiTKdY1KQ6pLp1kwrVvRQ=; b=UuXQD5lMuObHa8WVebSx3m7V+8S0wP1yQCpmlwBk9G7tA3F+TN1dcJ7Pu8HLZuZJII ya0UeMfVl3Fv1uawA3Qug2UrdzgBwqyiA0AfyHIKW9wCIPrRtowshSf0TnvSzSdQx9NT Jt/P+poSvrhAH2jDCr5xnL+u7M/WPefsFSWjttMZUjHO50J7ozy275o2sbe/QnWXecAN twQd+CxU86JmxyISrIZcp61wMvb7bAAnkTFHd5OmWJxyTBqFIJAD2iZE9pffdg6jGr+f h5UolSos3hBWXqMJN/ckhDA7zTwZ0N+EUlBUxVZOGk86d0qGOMkeiF1JcOMw+KL9SU1u Dj3Q== X-Forwarded-Encrypted: i=1; AJvYcCVf2YXt10tYy+lsAQWfuswuj+4YANh1cxqXfC6Fy0bDMgWRO+/9pbbmmnJimzmqFjssty7SxuNmBGHoHo0=@vger.kernel.org X-Gm-Message-State: AOJu0YxU8ypnWmBZIKENmxpwRPfdl1y/v6X0I87HyHcv70RQFiKM8nDY zWf0RAZk//V9bz1rZuz6bQXU004NtwdZ/PY2Jhfjz3hzjDFc+yEYf87wphd4MQ== X-Gm-Gg: AY/fxX79l1/9U8pcjaaoPz6lcrHRPUdbGDf+Sst1o1dqGJsmbZUk1NlzEcCmcSE4VhD Q0MPtCVYunApZ1etfwiThiKMYS7Ic88HA9sfDDAieWKhmLaiA6iFe7gW/E+8wkZSInFQXiu+LTL uT0Sst4dcnIFlOKiDqit47IdnXqaCV7jNvjPq52U0rKdo5zF72P2S2QiPg21DGVe9j1r6UP/FRB JXdA7a16/OYH0yKN2jtjJKZiy0jnIvs3nnRN744wTF9yycKKwOpGD7DKrhbLRGMvHcTqjBYuHAX ymw3HuxMDM6TxIS3IkluqTkWvU8xEQdpbl0rMrJvfF/gjWADd6qVeQQS9YCq18g0nrEKpkPMu34 9NzTw5HtH//JuD5ZN5/w56ljM4on+ohhAkdKN23Mk7TbyRX4gaf7qZQvfy4NPGJZqe/3c+zJAUa YVitttCghkn6KO X-Google-Smtp-Source: AGHT+IFdd9JUy6N/EfbHv8rcTaSZC0XWnj+piH3Sz5Jx/DTVi0bezUZ+Uo415MiAFEWrxJ3YtlqR9Q== X-Received: by 2002:a17:907:7296:b0:b79:ecb0:db74 with SMTP id a640c23a62f3a-b7d23d11086mr473821766b.59.1765626800682; Sat, 13 Dec 2025 03:53:20 -0800 (PST) Received: from Ansuel-XPS24 ([217.201.95.100]) by smtp.googlemail.com with ESMTPSA id 4fb4d7f45d1cf-649820f7851sm7880915a12.22.2025.12.13.03.53.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Dec 2025 03:53:19 -0800 (PST) From: Christian Marangi To: Christian Marangi , Andrew Morton , Bjorn Helgaas , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH v2] resource: provide 0args DEFINE_RES variant for unset resource desc Date: Sat, 13 Dec 2025 12:53:09 +0100 Message-ID: <20251213115314.16700-1-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Provide a variant of DEFINE_RES that takes 0 arguments to initialize an "unset" resource descriptor. This should be used for the improper case of struct resource res =3D {}; where DEFINE_RES() should be used. With this new helper variant, it would result in: struct resource res =3D DEFINE_RES(); instead of having to define the full 3 arguments: struct resource res =3D DEFINE_RES(0, 0, IORESOURCE_UNSET); DEFINE_RES() with no args, will set the flags to IORESOURCE_UNSET signaling the resource descriptor is UNSET and doesn't reflect an actual resource currently. Suggested-by: Ilpo J=C3=A4rvinen Reviewed-by: Bjorn Helgaas Signed-off-by: Christian Marangi --- Changes v2: - Add missing header - Make one line - Add review tag include/linux/ioport.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/linux/ioport.h b/include/linux/ioport.h index d3e837eb8760..5779187f8698 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -10,6 +10,7 @@ #define _LINUX_IOPORT_H =20 #ifndef __ASSEMBLY__ +#include #include #include #include @@ -168,8 +169,12 @@ enum { =20 #define DEFINE_RES_NAMED(_start, _size, _name, _flags) \ DEFINE_RES_NAMED_DESC(_start, _size, _name, _flags, IORES_DESC_NONE) -#define DEFINE_RES(_start, _size, _flags) \ +#define __DEFINE_RES0() \ + DEFINE_RES_NAMED(0, 0, NULL, IORESOURCE_UNSET) +#define __DEFINE_RES3(_start, _size, _flags) \ DEFINE_RES_NAMED(_start, _size, NULL, _flags) +#define DEFINE_RES(...) \ + CONCATENATE(__DEFINE_RES, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__) =20 #define DEFINE_RES_IO_NAMED(_start, _size, _name) \ DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_IO) --=20 2.51.0