+++ /dev/null
-From f774747a385caf5dca7e9c779ba82873c11159a8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Mar 2022 22:35:29 +0300
-Subject: platform: finally disallow IRQ0 in platform_get_irq() and its ilk
-
-From: Sergey Shtylyov <s.shtylyov@omp.ru>
-
-[ Upstream commit ce753ad1549cbe9ccaea4c06a1f5fa47432c8289 ]
-
-The commit a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is
-invalid") only calls WARN() when IRQ0 is about to be returned, however
-using IRQ0 is considered invalid (according to Linus) outside the arch/
-code where it's used by the i8253 drivers. Many driver subsystems treat
-0 specially (e.g. as an indication of the polling mode by libata), so
-the users of platform_get_irq[_byname]() in them would have to filter
-out IRQ0 explicitly and this (quite obviously) doesn't scale...
-Let's finally get this straight and return -EINVAL instead of IRQ0!
-
-Fixes: a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is invalid")
-Acked-by: Marc Zyngier <maz@kernel.org>
-Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
-Link: https://lore.kernel.org/r/025679e1-1f0a-ae4b-4369-01164f691511@omp.ru
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/base/platform.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/base/platform.c b/drivers/base/platform.c
-index 88aef93eb4dd..ad9ef67df7ad 100644
---- a/drivers/base/platform.c
-+++ b/drivers/base/platform.c
-@@ -235,7 +235,8 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
- ret = -ENXIO;
- #endif
- out:
-- WARN(ret == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!ret, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return ret;
- }
- EXPORT_SYMBOL_GPL(platform_get_irq_optional);
-@@ -328,7 +329,8 @@ static int __platform_get_irq_byname(struct platform_device *dev,
-
- r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name);
- if (r) {
-- WARN(r->start == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!r->start, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return r->start;
- }
-
---
-2.35.1
-
+++ /dev/null
-From 94ed149cab47d752cadb9fb64792f90b39da8af3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Mar 2022 22:35:29 +0300
-Subject: platform: finally disallow IRQ0 in platform_get_irq() and its ilk
-
-From: Sergey Shtylyov <s.shtylyov@omp.ru>
-
-[ Upstream commit ce753ad1549cbe9ccaea4c06a1f5fa47432c8289 ]
-
-The commit a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is
-invalid") only calls WARN() when IRQ0 is about to be returned, however
-using IRQ0 is considered invalid (according to Linus) outside the arch/
-code where it's used by the i8253 drivers. Many driver subsystems treat
-0 specially (e.g. as an indication of the polling mode by libata), so
-the users of platform_get_irq[_byname]() in them would have to filter
-out IRQ0 explicitly and this (quite obviously) doesn't scale...
-Let's finally get this straight and return -EINVAL instead of IRQ0!
-
-Fixes: a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is invalid")
-Acked-by: Marc Zyngier <maz@kernel.org>
-Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
-Link: https://lore.kernel.org/r/025679e1-1f0a-ae4b-4369-01164f691511@omp.ru
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/base/platform.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/base/platform.c b/drivers/base/platform.c
-index 652531f67135..dd208430aadc 100644
---- a/drivers/base/platform.c
-+++ b/drivers/base/platform.c
-@@ -231,7 +231,8 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
- out_not_found:
- ret = -ENXIO;
- out:
-- WARN(ret == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!ret, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return ret;
- }
- EXPORT_SYMBOL_GPL(platform_get_irq_optional);
-@@ -445,7 +446,8 @@ static int __platform_get_irq_byname(struct platform_device *dev,
-
- r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name);
- if (r) {
-- WARN(r->start == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!r->start, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return r->start;
- }
-
---
-2.35.1
-
+++ /dev/null
-From fc32121eed7d2ef5aae923d1f0e6f8ee762e8c8c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Mar 2022 22:35:29 +0300
-Subject: platform: finally disallow IRQ0 in platform_get_irq() and its ilk
-
-From: Sergey Shtylyov <s.shtylyov@omp.ru>
-
-[ Upstream commit ce753ad1549cbe9ccaea4c06a1f5fa47432c8289 ]
-
-The commit a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is
-invalid") only calls WARN() when IRQ0 is about to be returned, however
-using IRQ0 is considered invalid (according to Linus) outside the arch/
-code where it's used by the i8253 drivers. Many driver subsystems treat
-0 specially (e.g. as an indication of the polling mode by libata), so
-the users of platform_get_irq[_byname]() in them would have to filter
-out IRQ0 explicitly and this (quite obviously) doesn't scale...
-Let's finally get this straight and return -EINVAL instead of IRQ0!
-
-Fixes: a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is invalid")
-Acked-by: Marc Zyngier <maz@kernel.org>
-Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
-Link: https://lore.kernel.org/r/025679e1-1f0a-ae4b-4369-01164f691511@omp.ru
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/base/platform.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/base/platform.c b/drivers/base/platform.c
-index 6cb04ac48bf0..d7e14363e417 100644
---- a/drivers/base/platform.c
-+++ b/drivers/base/platform.c
-@@ -231,7 +231,8 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
- out_not_found:
- ret = -ENXIO;
- out:
-- WARN(ret == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!ret, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return ret;
- }
- EXPORT_SYMBOL_GPL(platform_get_irq_optional);
-@@ -446,7 +447,8 @@ static int __platform_get_irq_byname(struct platform_device *dev,
-
- r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name);
- if (r) {
-- WARN(r->start == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!r->start, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return r->start;
- }
-
---
-2.35.1
-
+++ /dev/null
-From dabc818457ed941db86f911c1fed9fd94fa0d56f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Mar 2022 22:35:29 +0300
-Subject: platform: finally disallow IRQ0 in platform_get_irq() and its ilk
-
-From: Sergey Shtylyov <s.shtylyov@omp.ru>
-
-[ Upstream commit ce753ad1549cbe9ccaea4c06a1f5fa47432c8289 ]
-
-The commit a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is
-invalid") only calls WARN() when IRQ0 is about to be returned, however
-using IRQ0 is considered invalid (according to Linus) outside the arch/
-code where it's used by the i8253 drivers. Many driver subsystems treat
-0 specially (e.g. as an indication of the polling mode by libata), so
-the users of platform_get_irq[_byname]() in them would have to filter
-out IRQ0 explicitly and this (quite obviously) doesn't scale...
-Let's finally get this straight and return -EINVAL instead of IRQ0!
-
-Fixes: a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is invalid")
-Acked-by: Marc Zyngier <maz@kernel.org>
-Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
-Link: https://lore.kernel.org/r/025679e1-1f0a-ae4b-4369-01164f691511@omp.ru
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/base/platform.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/base/platform.c b/drivers/base/platform.c
-index 8cc272fd5c99..7d08cd8947be 100644
---- a/drivers/base/platform.c
-+++ b/drivers/base/platform.c
-@@ -231,7 +231,8 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
- out_not_found:
- ret = -ENXIO;
- out:
-- WARN(ret == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!ret, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return ret;
- }
- EXPORT_SYMBOL_GPL(platform_get_irq_optional);
-@@ -446,7 +447,8 @@ static int __platform_get_irq_byname(struct platform_device *dev,
-
- r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name);
- if (r) {
-- WARN(r->start == 0, "0 is an invalid IRQ number\n");
-+ if (WARN(!r->start, "0 is an invalid IRQ number\n"))
-+ return -EINVAL;
- return r->start;
- }
-
---
-2.35.1
-