From: "Arinzon, David" <darinzon@amazon.com>
To: "Nelson, Shannon" <shannon.nelson@amd.com>,
David Miller <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: "Woodhouse, David" <dwmw@amazon.co.uk>,
"Machulsky, Zorik" <zorik@amazon.com>,
"Matushevsky, Alexander" <matua@amazon.com>,
"Bshara, Saeed" <saeedb@amazon.com>,
"Wilson, Matt" <msw@amazon.com>,
"Liguori, Anthony" <aliguori@amazon.com>,
"Bshara, Nafea" <nafea@amazon.com>,
"Belgazal, Netanel" <netanel@amazon.com>,
"Saidi, Ali" <alisaidi@amazon.com>,
"Herrenschmidt, Benjamin" <benh@amazon.com>,
"Kiyanovski, Arthur" <akiyano@amazon.com>,
"Dagan, Noam" <ndagan@amazon.com>,
"Agroskin, Shay" <shayagr@amazon.com>,
"Itzko, Shahar" <itzko@amazon.com>,
"Abboud, Osama" <osamaabb@amazon.com>,
"Ostrovsky, Evgeny" <evostrov@amazon.com>,
"Tabachnik, Ofir" <ofirt@amazon.com>,
"Koler, Nati" <nkolder@amazon.com>
Subject: RE: [PATCH v1 net-next 10/11] net: ena: handle ena_calc_io_queue_size() possible errors
Date: Tue, 30 Jan 2024 09:39:19 +0000 [thread overview]
Message-ID: <2baee949f83d47a896a2752e7667a99a@amazon.com> (raw)
In-Reply-To: <8752f5ea-9e9d-4884-b472-445c711c7bf0@amd.com>
> On 1/29/2024 12:55 AM, darinzon@amazon.com wrote:
> >
> > From: David Arinzon <darinzon@amazon.com>
> >
> > Fail queue size calculation when the device returns maximum TX/RX
> > queue sizes that are smaller than the allowed minimum.
> >
> > Signed-off-by: Osama Abboud <osamaabb@amazon.com>
> > Signed-off-by: David Arinzon <darinzon@amazon.com>
> > ---
> > drivers/net/ethernet/amazon/ena/ena_netdev.c | 24
> +++++++++++++++++---
> > 1 file changed, 21 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c
> > b/drivers/net/ethernet/amazon/ena/ena_netdev.c
> > index 8d99904..ca56dff 100644
> > --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
> > +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
> > @@ -2899,8 +2899,8 @@ static const struct net_device_ops
> ena_netdev_ops = {
> > .ndo_xdp_xmit = ena_xdp_xmit,
> > };
> >
> > -static void ena_calc_io_queue_size(struct ena_adapter *adapter,
> > - struct ena_com_dev_get_features_ctx *get_feat_ctx)
> > +static int ena_calc_io_queue_size(struct ena_adapter *adapter,
> > + struct ena_com_dev_get_features_ctx
> > +*get_feat_ctx)
> > {
> > struct ena_admin_feature_llq_desc *llq = &get_feat_ctx->llq;
> > struct ena_com_dev *ena_dev = adapter->ena_dev; @@ -2959,6
> > +2959,18 @@ static void ena_calc_io_queue_size(struct ena_adapter
> *adapter,
> > max_tx_queue_size =
> rounddown_pow_of_two(max_tx_queue_size);
> > max_rx_queue_size =
> rounddown_pow_of_two(max_rx_queue_size);
> >
> > + if (max_tx_queue_size < ENA_MIN_RING_SIZE) {
> > + netdev_err(adapter->netdev, "Device max TX queue size: %d <
> minimum: %d\n",
> > + max_tx_queue_size, ENA_MIN_RING_SIZE);
> > + return -EFAULT;
> > + }
> > +
> > + if (max_rx_queue_size < ENA_MIN_RING_SIZE) {
> > + netdev_err(adapter->netdev, "Device max RX queue size: %d <
> minimum: %d\n",
> > + max_rx_queue_size, ENA_MIN_RING_SIZE);
> > + return -EFAULT;
>
> Maybe EINVAL for these two?
>
> sln
>
I agree with you, EINVAL represents this error much better than EFAULT.
Will change in the next patchset.
Thanks!
David
> > + }
> > +
> > /* When forcing large headers, we multiply the entry size by 2, and
> therefore divide
> > * the queue size by 2, leaving the amount of memory used by the
> queues unchanged.
> > */
> > @@ -2989,6 +3001,8 @@ static void ena_calc_io_queue_size(struct
> ena_adapter *adapter,
> > adapter->max_rx_ring_size = max_rx_queue_size;
> > adapter->requested_tx_ring_size = tx_queue_size;
> > adapter->requested_rx_ring_size = rx_queue_size;
> > +
> > + return 0;
> > }
> >
> > static int ena_device_validate_params(struct ena_adapter *adapter,
> > @@ -3190,11 +3204,15 @@ static int ena_device_init(struct ena_adapter
> *adapter, struct pci_dev *pdev,
> > goto err_admin_init;
> > }
> >
> > - ena_calc_io_queue_size(adapter, get_feat_ctx);
> > + rc = ena_calc_io_queue_size(adapter, get_feat_ctx);
> > + if (unlikely(rc))
> > + goto err_admin_init;
> >
> > return 0;
> >
> > err_admin_init:
> > + ena_com_abort_admin_commands(ena_dev);
> > + ena_com_wait_for_abort_completion(ena_dev);
> > ena_com_delete_host_info(ena_dev);
> > ena_com_admin_destroy(ena_dev);
> > err_mmio_read_less:
> > --
> > 2.40.1
> >
> >
next prev parent reply other threads:[~2024-01-30 9:39 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-29 8:55 [PATCH v1 net-next 00/11] ENA driver changes darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 01/11] net: ena: Remove an unused field darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 02/11] net: ena: Add more documentation for RX copybreak darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 03/11] net: ena: Minor cosmetic changes darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 04/11] net: ena: Enable DIM by default darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 05/11] net: ena: Remove CQ tail pointer update darinzon
2024-01-30 1:16 ` Nelson, Shannon
2024-01-30 9:39 ` Arinzon, David
2024-01-29 8:55 ` [PATCH v1 net-next 06/11] net: ena: Change error print during ena_device_init() darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 07/11] net: ena: Add more information on TX timeouts darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 08/11] net: ena: Relocate skb_tx_timestamp() to improve time stamping accuracy darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 09/11] net: ena: Change default print level for netif_ prints darinzon
2024-01-29 8:55 ` [PATCH v1 net-next 10/11] net: ena: handle ena_calc_io_queue_size() possible errors darinzon
2024-01-30 1:16 ` Nelson, Shannon
2024-01-30 9:39 ` Arinzon, David [this message]
2024-01-29 8:55 ` [PATCH v1 net-next 11/11] net: ena: Reduce lines with longer column width boundary darinzon
2024-01-30 1:16 ` Nelson, Shannon
2024-01-30 9:39 ` Arinzon, David
2024-01-30 1:20 ` [PATCH v1 net-next 00/11] ENA driver changes Nelson, Shannon
2024-01-30 9:39 ` Arinzon, David
2024-01-30 21:07 ` Nelson, Shannon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2baee949f83d47a896a2752e7667a99a@amazon.com \
--to=darinzon@amazon.com \
--cc=akiyano@amazon.com \
--cc=aliguori@amazon.com \
--cc=alisaidi@amazon.com \
--cc=benh@amazon.com \
--cc=davem@davemloft.net \
--cc=dwmw@amazon.co.uk \
--cc=evostrov@amazon.com \
--cc=itzko@amazon.com \
--cc=kuba@kernel.org \
--cc=matua@amazon.com \
--cc=msw@amazon.com \
--cc=nafea@amazon.com \
--cc=ndagan@amazon.com \
--cc=netanel@amazon.com \
--cc=netdev@vger.kernel.org \
--cc=nkolder@amazon.com \
--cc=ofirt@amazon.com \
--cc=osamaabb@amazon.com \
--cc=saeedb@amazon.com \
--cc=shannon.nelson@amd.com \
--cc=shayagr@amazon.com \
--cc=zorik@amazon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.