From nobody Tue Dec 16 16:38:06 2025 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 4BE4B32277B for ; Wed, 10 Dec 2025 18:03:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765389812; cv=none; b=lCj+49+DHfWpJ8DiasI1MrmiughyHwMsFP45vcDzLuue7laUQ6yvtE9gNU/haEtVtgS/+R7sAMvnyLHrBNJEkJRVlPh5/vlMN4U5ziz/OzQkNEOJ2dR0WzxQ6NS8eRTT8AB8QdWHWoR4vghEX+wNby5XhS0i+dx/wqrCmPXjaFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765389812; c=relaxed/simple; bh=JjsgdQNZc66WUwRFgEXykwDuvD8MvxDXvbqqBtW2ipY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=LIWG5H9yKAq9/zotUEDf9LwFp6l/iG3M7MazY7BE5HKcaYfWldX6FOtsjUnr7+/uFo04j7faffXYp4oc0O65D4JnYDlVV9N0wG7gcDX8RBtIhGW6IdLHuNAD4rQxF5hZBw/vg4bMWwAIACC7dvAKK2ySBKKmXyXhPYM4Pz2vj+U= 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=NJMFqk1X; arc=none smtp.client-ip=209.85.221.47 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="NJMFqk1X" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-42e2ce8681eso27085f8f.0 for ; Wed, 10 Dec 2025 10:03:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765389808; x=1765994608; 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=UyFGWHtM4WVDyhhLcgUXfVZNioX90n7U6cEeyPLkl9M=; b=NJMFqk1XefrLgsfSwLRczdJdYpcXw6QyQEiSjZqwBsvX2mQqLWm5/IbKLp4OcQHc9r JxXjybRQ2DKwNgk56jjkte+0Od/2BrZyfl6VFXwB/maM9wtpgOIP6kbVEYag+5KPw0Al BICmMkSkBiEEUrQu82wlEKgAPhh3y6DBZFHzujRFSYSKndTBtySRDovokr2jsUI9CgC/ yhTyMqC1BXinkKP6wmHwIK+lKLWUJSaI/mEHNzIlucKqp1JHoRezYN9QMsRnr/me0EuS aPeKzs7xLnKGm6K7tBioHIZPEZ1iOWuNUje47Ht+5Ip66ISNrgYovVJ7OmHF4TMSii1a Gwiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765389808; x=1765994608; 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=UyFGWHtM4WVDyhhLcgUXfVZNioX90n7U6cEeyPLkl9M=; b=P8uM00I2ivVg1lVMQoAamhcoQ6sAwPruIuulQCThMXHwH3ZxbyRJJIrz3yhU0fT4Vv yXyPUEjpZk3o+vZjEbtocnIyiu2mNa1UhHINFHLBg33IK/05UjRinMCYO+p7QneU/l0B oSVeKad5VvFd5F707joEXOYmS7bLiZit+T2RVvj+yr5HooqdwuDXFkiyDfrbmdBi7cj/ O1teNjz6qKiItJ9LPO7vzG0clyOqqCY6dNNVxWSf0pc5SPfIpCyzsHzfFNPI88JQVu5O kT698Y9WlQvwSHZgLIEvir9ZT1qcLTV/L/KbYegOXp6224098xgAhD3X+QGly55hCAMK 5vCA== X-Forwarded-Encrypted: i=1; AJvYcCUywZJQkURBUZ36pnmGDFkUT/AcC9sZMARfWb2jCTrBYb+TRiJf2odZRMoNQNDpoQKfP3XeHhMCUG1gUsk=@vger.kernel.org X-Gm-Message-State: AOJu0YwHoC/1WntUFirOwagiCxweey74V3WIfVuf69iZiByleSP4Hy+/ s4g0Y/5KWj2cwRALuXE9QVEuW138c7TaBoczGE9XtbUi/laoIoBSzlajRu576g== X-Gm-Gg: AY/fxX472ujZWwVCf+ieo/MVHvzDfxnw5hHPAvn5D5Y+ursrnukgd1kCWMvJX/sV9Tg Olc3nmgpulhzfzzA7aLVJsaD5ppVVbeTMc3eqmNo+EsWb3jkqPrK6M0btIKqTBZvKc22RtjadMg qO5PiJIp2d1NTJSuBjCjHEdg/uvGGKqceTp/axd5wXSbRfCAlTocQYbkawVH7qDzSAIF7zVfT3a DvvWUHGbq7Ajid7bp4GYBDVBkFJMmCxzOa1YR8pxDAvUhCU7TyxYq2TG1JPvKUdT94YAyN2syxI Dt2tu8uibEiKoBuqtMAFdA+7cOiOHvG1XQjearP9TonqCWD1M8ayucOJiOuYlwsxzHggfLzJ8Zv qf2qhkbKV09Ujs0bl51Ir1FJrY3+QBx+OrfATrMfbpxBm1xf7d5C7lhcx58r8DXwciKpmkshUtY JEFJ1Aq5/fD8Nrr9efB6oULu/iQe35o6bTm513zMyIiNvM6r9ifcY= X-Google-Smtp-Source: AGHT+IEoqEKETjzeTH7zB2dlmagXD8aOw2YRVwUhtEhsSD9E4TO2lbj1oPxwEF2BPx4OIurNiWta2w== X-Received: by 2002:a5d:5f45:0:b0:427:914:7468 with SMTP id ffacd0b85a97d-42fa39d1d3fmr3685794f8f.15.1765389808345; Wed, 10 Dec 2025 10:03:28 -0800 (PST) Received: from Ansuel-XPS24 (93-34-88-81.ip49.fastwebnet.it. [93.34.88.81]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-42fa8b96c70sm279772f8f.37.2025.12.10.10.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Dec 2025 10:03:27 -0800 (PST) From: Christian Marangi To: Christian Marangi , Andrew Morton , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH] resource: provide 0args DEFINE_RES variant for unset resource desc Date: Wed, 10 Dec 2025 19:03:07 +0100 Message-ID: <20251210180312.3869-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 inizialize 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 Signed-off-by: Christian Marangi Reviewed-by: Bjorn Helgaas --- 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..ebdbaaf7a520 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -168,8 +168,13 @@ 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