From: Justin Lai <justinlai0215@realtek.com>
To: Markus Elfring <Markus.Elfring@web.de>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>, Andrew Lunn <andrew@lunn.ch>,
Hariprasad Kelam <hkelam@marvell.com>,
Jiri Pirko <jiri@resnulli.us>,
"Larry Chiu" <larry.chiu@realtek.com>,
Ping-Ke Shih <pkshih@realtek.com>,
"Ratheesh Kannoth" <rkannoth@marvell.com>
Subject: RE: [PATCH net-next v20 02/13] rtase: Implement the .ndo_open function
Date: Mon, 17 Jun 2024 09:25:48 +0000 [thread overview]
Message-ID: <ef7c83dea1d849ad94acef81819f9430@realtek.com> (raw)
In-Reply-To: <1d01ece4-bf4e-4266-942c-289c032bf44d@web.de>
> …
> > when requesting irq, because the first group of interrupts needs to
> > process more events, the overall structure will be different from
> > other groups of interrupts, so it needs to be processed separately.
>
> Can such a change description become clearer anyhow?
Do you think it's ok if I change the description to the following?
"When requesting interrupt, because the first group of interrupts needs
to process more events, the overall structure and interrupt handler will
be different from other groups of interrupts, so it needs to be handled
separately. The first set of interrupt handlers need to handle the
interrupt status of RXQ0 and TXQ0, TXQ4~7, while other groups of
interrupt handlers will handle the interrupt status of RXQ1&TXQ1 or
RXQ2&TXQ2 or RXQ3&TXQ3 according to the interrupt vector."
>
>
> …
> > +++ b/drivers/net/ethernet/realtek/rtase/rtase_main.c
> …
> > +static int rtase_alloc_desc(struct rtase_private *tp) {
> …
> > + netdev_err(tp->dev, "Failed to allocate dma
> memory of "
> > + "tx descriptor.\n");
> …
>
> Would you like to keep the message (from such string literals) in a single line?
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Docume
> ntation/process/coding-style.rst?h=v6.10-rc3#n116
>
Yes, I will make corrections to keep the message in a single line.
>
> …
> > +static int rtase_alloc_rx_skb(const struct rtase_ring *ring,
> …
> > +{
> …
> > + struct sk_buff *skb = NULL;
> …
> > + int ret = 0;
> …
> > + if (!page) {
> > + netdev_err(tp->dev, "failed to alloc page\n");
> > + goto err_out;
> …
> > + if (!skb) {
> …
> > + netdev_err(tp->dev, "failed to build skb\n");
> > + goto err_out;
> > + }
> …
> > + return ret;
>
> I find the following statement more appropriate.
>
> return 0;
Thank you, I will make the changes.
>
>
> > +
> > +err_out:
> > + if (skb)
> > + dev_kfree_skb(skb);
>
> Why would you like to repeat such a check after it can be determined from the
> control flow that the used variable contains still a null pointer?
Indeed, it seems unnecessary to make this judgment here, I will remove it.
>
>
> > +
> > + ret = -ENOMEM;
> > + rtase_make_unusable_by_asic(desc);
> > +
> > + return ret;
> > +}
> …
>
> It seems that the following statement can be more appropriate.
>
> return -ENOMEM;
Ok, I will modify it.
>
>
> May the local variable “ret” be omitted here?
Yes, it seems like "ret" is no longer needed.
>
>
> …
> > +static int rtase_open(struct net_device *dev) {
> …
> > + int ret;
> > +
> > + ivec = &tp->int_vector[0];
> > + tp->rx_buf_sz = RTASE_RX_BUF_SIZE;
> > +
> > + ret = rtase_alloc_desc(tp);
> > + if (ret)
> > + goto err_free_all_allocated_mem;
> …
>
> I suggest to return directly after such a resource allocation failure.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Docume
> ntation/process/coding-style.rst?h=v6.10-rc3#n532
>
>
> How do you think about to increase the application of scope-based resource
> management?
> https://elixir.bootlin.com/linux/v6.10-rc3/source/include/linux/cleanup.h#L8
Due to our tx and rx each having multiple queues that need to
allocate descriptors, if any one of the queues fails to allocate,
rtase_alloc_desc() will return an error. Therefore, using 'goto'
here rather than directly returning seems to be reasonable.
>
> Regards,
> Markus
next prev parent reply other threads:[~2024-06-17 9:26 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-07 8:43 [PATCH net-next v20 00/13] Add Realtek automotive PCIe driver Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 01/13] rtase: Add pci table supported in this module Justin Lai
2024-06-13 9:01 ` Markus Elfring
2024-06-17 8:14 ` Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 02/13] rtase: Implement the .ndo_open function Justin Lai
2024-06-13 7:50 ` Markus Elfring
2024-06-17 9:25 ` Justin Lai [this message]
2024-06-17 10:07 ` [v20 " Markus Elfring
2024-06-17 13:28 ` Justin Lai
2024-06-17 18:59 ` Simon Horman
2024-06-17 20:22 ` Markus Elfring
2024-06-18 7:51 ` Justin Lai
[not found] ` <202406181007.45IA7eWxA3305754@rtits1.realtek.com.tw>
2024-06-18 11:01 ` Justin Lai
2024-06-18 11:30 ` Markus Elfring
2024-06-07 8:43 ` [PATCH net-next v20 03/13] rtase: Implement the rtase_down function Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 04/13] rtase: Implement the interrupt routine and rtase_poll Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 05/13] rtase: Implement hardware configuration function Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 06/13] rtase: Implement .ndo_start_xmit function Justin Lai
2024-06-07 9:03 ` Hariprasad Kelam
2024-06-12 4:35 ` Justin Lai
2024-06-12 10:36 ` Hariprasad Kelam
2024-06-13 3:38 ` Justin Lai
2024-06-13 7:24 ` Hariprasad Kelam
2024-06-07 15:54 ` Ratheesh Kannoth
2024-06-12 4:20 ` Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 07/13] rtase: Implement a function to receive packets Justin Lai
2024-06-13 0:43 ` Jakub Kicinski
2024-06-17 6:44 ` Justin Lai
2024-06-17 15:02 ` Jakub Kicinski
2024-06-18 3:40 ` Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 08/13] rtase: Implement net_device_ops Justin Lai
2024-06-13 0:39 ` Jakub Kicinski
2024-06-13 3:16 ` Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 09/13] rtase: Implement pci_driver suspend and resume function Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 10/13] rtase: Implement ethtool function Justin Lai
2024-06-13 0:35 ` Jakub Kicinski
2024-06-17 6:54 ` Justin Lai
2024-06-17 14:07 ` Andrew Lunn
2024-06-18 9:56 ` Justin Lai
2024-06-17 15:10 ` Jakub Kicinski
2024-06-18 7:28 ` Justin Lai
2024-06-18 14:24 ` Jakub Kicinski
2024-06-19 3:40 ` Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 11/13] rtase: Add a Makefile in the rtase folder Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 12/13] realtek: Update the Makefile and Kconfig in the realtek folder Justin Lai
2024-06-07 8:43 ` [PATCH net-next v20 13/13] MAINTAINERS: Add the rtase ethernet driver entry Justin Lai
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=ef7c83dea1d849ad94acef81819f9430@realtek.com \
--to=justinlai0215@realtek.com \
--cc=Markus.Elfring@web.de \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkelam@marvell.com \
--cc=horms@kernel.org \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=larry.chiu@realtek.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pkshih@realtek.com \
--cc=rkannoth@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox