[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <90A7E81AE28BAE4CBDDB3B35F187D2644071E1A9@CHN-SV-EXMX02.mchp-main.com>
Date: Mon, 26 Feb 2018 05:41:22 +0000
From: <Bryan.Whitehead@...rochip.com>
To: <andrew@...n.ch>
CC: <f.fainelli@...il.com>, <davem@...emloft.net>,
<UNGLinuxDriver@...rochip.com>, <netdev@...r.kernel.org>
Subject: RE: [PATCH v2 net-next 1/2] lan743x: Add main source files for new
lan743x driver
> > Ok, but it seems to me that what I have is an example of "specific
> > book keeping private information". Can you clarify the style you prefer?
> >
> > In cases of allocation where I can just compare a pointer to null, I
> > can easily remove the flags. But in other cases I need a record of
> > which steps completed in order to clean up properly. In cases where I
> > need some sort of a flag would you prefer I avoid a bit mask, and have a
> standalone variable for each flag?
>
> Hi Bryan
>
> Often you know some thing has been done, because if it had not been
> done, you would of bombed out with an error. In the release function you
> can assume everything done in probe has been done, otherwise the probe
> would not be successful. In close, you can assume everything done in open
> was successful, otherwise the open would of failed....
>
> So probe does not need any flags. open does not need any flags.
>
> Andrew
Hi Andrew,
OK, so there are two cases where clean-up is necessary. One is through call to remove or ndo_stop. For these cases I agree with you. Everything must have been set up correctly, so everything should be cleaned up, no flags required.
But the other case is when things fail anywhere during probe, or open. In these cases things are partially initialized and I assumed I needed to clean up whatever was initialized successfully before returning an error. I used flags so I could share a common clean up function for all possible error cases as well as the fully successful case. Without flags I would need to customize a clean-up sequence for each possible error point.
Or are you suggesting that I don't need to worry about clean up if an error happens during probe or open?
Bryan
Powered by blists - more mailing lists