During probing, the driver tries to get a list (mask) of supported command types in port100_get_command_type_mask() function. The value is u64 and 0 is treated as invalid mask (no commands supported). The function however returns also -ERRNO as u64 which will be interpret as valid command mask.
Return 0 on every error case of port100_get_command_type_mask(), so the probing will stop.
Cc: stable@vger.kernel.org Fixes: 0347a6ab300a ("NFC: port100: Commands mechanism implementation") Signed-off-by: Krzysztof Kozlowski krzysztof.kozlowski@canonical.com
---
Changes since v1: 1. Drop debug code. --- drivers/nfc/port100.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/nfc/port100.c b/drivers/nfc/port100.c index 517376c43b86..16ceb763594f 100644 --- a/drivers/nfc/port100.c +++ b/drivers/nfc/port100.c @@ -1006,11 +1006,11 @@ static u64 port100_get_command_type_mask(struct port100 *dev)
skb = port100_alloc_skb(dev, 0); if (!skb) - return -ENOMEM; + return 0;
resp = port100_send_cmd_sync(dev, PORT100_CMD_GET_COMMAND_TYPE, skb); if (IS_ERR(resp)) - return PTR_ERR(resp); + return 0;
if (resp->len < 8) mask = 0;
Hello:
This patch was applied to netdev/net.git (master) by David S. Miller davem@davemloft.net:
On Mon, 25 Oct 2021 16:49:36 +0200 you wrote:
During probing, the driver tries to get a list (mask) of supported command types in port100_get_command_type_mask() function. The value is u64 and 0 is treated as invalid mask (no commands supported). The function however returns also -ERRNO as u64 which will be interpret as valid command mask.
Return 0 on every error case of port100_get_command_type_mask(), so the probing will stop.
[...]
Here is the summary with links: - [v2] nfc: port100: fix using -ERRNO as command type mask https://git.kernel.org/netdev/net/c/2195f2062e4c
You are awesome, thank you!
linux-stable-mirror@lists.linaro.org