OSDN Git Service

net: ena: Fix error handling when calculating max IO queues number
authorArthur Kiyanovski <akiyano@amazon.com>
Sun, 2 Jan 2022 07:37:28 +0000 (07:37 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 2 Jan 2022 12:45:13 +0000 (12:45 +0000)
commit5055dc0348b8b7c168e3296044bccd724e1ae6cd
tree1acec271fea5784bfbc23b2a5ce393efa5b83a59
parentcb3d4f98f0b26eafa0b913ac3716e4714254a747
net: ena: Fix error handling when calculating max IO queues number

The role of ena_calc_max_io_queue_num() is to return the number
of queues supported by the device, which means the return value
should be >=0.

The function that calls ena_calc_max_io_queue_num(), checks
the return value. If it is 0, it means the device reported
it supports 0 IO queues. This case is considered an error
and is handled by the calling function accordingly.

However the current implementation of ena_calc_max_io_queue_num()
is wrong, since when it detects the device supports 0 IO queues,
it returns -EFAULT.

In such a case the calling function doesn't detect the error,
and therefore doesn't handle it.

This commit changes ena_calc_max_io_queue_num() to return 0
in case the device reported it supports 0 queues, allowing the
calling function to properly handle the error case.

Fixes: 736ce3f414cc ("net: ena: make ethtool -l show correct max number of queues")
Signed-off-by: Shay Agroskin <shayagr@amazon.com>
Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amazon/ena/ena_netdev.c