From: Andrew Lunn <andrew@lunn.ch>
To: Lukasz Stelmach <l.stelmach@samsung.com>
Cc: devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
b.zolnierkie@samsung.com, netdev@vger.kernel.org,
Russell King <linux@armlinux.org.uk>,
Krzysztof Kozlowski <krzk@kernel.org>,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Kukjin Kim <kgene@kernel.org>, Jakub Kicinski <kuba@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
linux-arm-kernel@lists.infradead.org, m.szyprowski@samsung.com
Subject: Re: [PATCH 1/3] net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver
Date: Tue, 8 Sep 2020 20:22:20 +0200 [thread overview]
Message-ID: <20200908182220.GA3290129@lunn.ch> (raw)
In-Reply-To: <dleftj8sdkqhun.fsf%l.stelmach@samsung.com>
On Tue, Sep 08, 2020 at 07:49:20PM +0200, Lukasz Stelmach wrote:
> It was <2020-09-07 pon 20:18>, when Andrew Lunn wrote:
> >> > On Tue, Aug 25, 2020 at 07:03:09PM +0200, Łukasz Stelmach wrote:
> >> >> +++ b/drivers/net/ethernet/asix/ax88796c_ioctl.c
> >> >
> >> > This is an odd filename. The ioctl code is wrong anyway, but there is
> >> > a lot more than ioctl in here. I suggest you give it a new name.
> >> >
> >>
> >> Sure, any suggestions?
> >
> > Sorry, i have forgotten what is actually contained.
>
> IOCTL handler (.ndo_do_ioctl), ethtool ops, and a bunch of hw control
> functions.
>
> > Does it even need to be a separate file?
>
> It doesn't need, but I think it makes sense to keep ioctl and ethtool
> stuff in a separate file. Some of the hw control function look like they
> might change after using phylib.
<driver>_ethtool.c is a common file name.
> Good point. I need to figure out how to do it. Can you point (from the
> top fou your head) a driver which does it for a simmilarly integrated
> device?
Being integrated or not makes no difference. The API usage is the
same. drivers/net/usb/smsc95xx.c has an integrated PHY i think.
> I am not arguing to keep the parameter at any cost, but I would really
> like to know if there is a viable alternative for DT and ACPI. This chip
> is for smaller systems which not necessarily implement advanced
> bootloaders (and DT).
What bootload is being used, if not uboot or bearbox?
> According to module.h
>
> /*
> * Author(s), use "Name <email>" or just "Name", for multiple
> * authors use multiple MODULE_AUTHOR() statements/lines.
> */
Thanks, did not know that.
> >> >> + struct net_device *ndev = ax_local->ndev;
> >> >> + int status;
> >> >> +
> >> >> + do {
> >> >> + if (!(ax_local->checksum & AX_RX_CHECKSUM))
> >> >> + break;
> >> >> +
> >> >> + /* checksum error bit is set */
> >> >> + if ((rxhdr->flags & RX_HDR3_L3_ERR) ||
> >> >> + (rxhdr->flags & RX_HDR3_L4_ERR))
> >> >> + break;
> >> >> +
> >> >> + if ((rxhdr->flags & RX_HDR3_L4_TYPE_TCP) ||
> >> >> + (rxhdr->flags & RX_HDR3_L4_TYPE_UDP)) {
> >> >> + skb->ip_summed = CHECKSUM_UNNECESSARY;
> >> >> + }
> >> >> + } while (0);
> >> >
> >> >
> >> > ??
> >> >
> >>
> >> if() break; Should I use goto?
> >
> > Sorry, i was too ambiguous. Why:
> >
> > do {
> > } while (0);
> >
> > It is an odd construct.
>
> As to "why" — you have correctly spotted, this is a vendor driver I am
> porting. Although it's not like I am trying to avoid any changes, but
> because this driver worked for us on older kernels (v3.10.9) I am trying
> not to touch pieces which IMHO are good enough.
My experience with vendor drivers is you nearly end up rewriting it to
bring it up to mainline standards. I would suggest first setting up
some automated tests, and then make lots of small changes, committed
to git. You can then go backwards and find where regressions have been
introduced and found by the automated tests. And then every so often
squash it all together, ready for submission.
> To avoid using do{}while(0) it requires either goto (instead of breaks),
> nesting those if()s in one another or a humongous single if(). Neither
> looks pretty and the last one is even less readable than
> do()while.
I removed too much context. Does anything useful happen afterwards?
Maybe you can just use return? Or put that code into a helper which
can use return rather than break?
Andrew
next prev parent reply other threads:[~2020-09-08 18:25 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20200825170322eucas1p2c6619aa3e02d2762e07da99640a2451c@eucas1p2.samsung.com>
2020-08-25 17:03 ` [PATCH 1/3] net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver Łukasz Stelmach
[not found] ` <CGME20200825170323eucas1p2d299a6ac365e6a70d802757d439bc77c@eucas1p2.samsung.com>
2020-08-25 17:03 ` [PATCH 2/3] ARM: dts: Add ethernet Łukasz Stelmach
2020-08-25 18:03 ` Andrew Lunn
2020-08-25 18:49 ` Krzysztof Kozlowski
[not found] ` <CGME20200825170323eucas1p15f2bbfa460f7ef787069dd3459dd77b3@eucas1p1.samsung.com>
2020-08-25 17:03 ` [PATCH 3/3] ARM: defconfig: Enable ax88796c driver Łukasz Stelmach
2020-08-25 18:51 ` Krzysztof Kozlowski
[not found] ` <CGME20200826051134eucas1p23a1c91b2179678eecc5dd5eeb2d0e4c9@eucas1p2.samsung.com>
2020-08-26 5:11 ` Lukasz Stelmach
2020-08-26 6:46 ` Krzysztof Kozlowski
2020-08-25 17:19 ` [PATCH 1/3] net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver Randy Dunlap
[not found] ` <CGME20200825173041eucas1p29cb450a15648e0ecb1e896fcbe0f9126@eucas1p2.samsung.com>
2020-08-25 17:30 ` Lukasz Stelmach
2020-08-25 17:55 ` Randy Dunlap
2020-08-25 18:01 ` Andrew Lunn
2020-08-26 7:13 ` Geert Uytterhoeven
[not found] ` <CGME20200907174710eucas1p1b06f854222c255719a63c72b043ecda2@eucas1p1.samsung.com>
2020-09-07 17:47 ` Lukasz Stelmach
[not found] ` <CGME20200907173945eucas1p240c0d7ebff3010a3bf752eaf8e619eb1@eucas1p2.samsung.com>
2020-09-07 17:39 ` Lukasz Stelmach
2020-09-07 18:18 ` Andrew Lunn
[not found] ` <CGME20200908174935eucas1p2f24d79b234152148b060c45863e3efeb@eucas1p2.samsung.com>
2020-09-08 17:49 ` Lukasz Stelmach
2020-09-08 18:22 ` Andrew Lunn [this message]
2020-09-14 22:29 ` jim.cromie
2020-08-25 18:44 ` Krzysztof Kozlowski
[not found] ` <CGME20200826145929eucas1p1367c260edb8fa003869de1da527039c0@eucas1p1.samsung.com>
2020-08-26 14:59 ` Lukasz Stelmach
2020-08-26 15:06 ` David Laight
2020-08-26 16:07 ` Andrew Lunn
[not found] ` <CGME20200907180715eucas1p1c1e41bb1ddb5a401a4d9c8cb6117e1f6@eucas1p1.samsung.com>
2020-09-07 18:06 ` Lukasz Stelmach
2020-08-26 16:02 ` Andrew Lunn
2020-08-26 16:45 ` Krzysztof Kozlowski
2020-08-26 16:52 ` Krzysztof Kozlowski
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=20200908182220.GA3290129@lunn.ch \
--to=andrew@lunn.ch \
--cc=b.zolnierkie@samsung.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=kgene@kernel.org \
--cc=krzk@kernel.org \
--cc=kuba@kernel.org \
--cc=l.stelmach@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=netdev@vger.kernel.org \
--cc=robh+dt@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).