Messages in this thread | | | Subject | Re: [PATCH 04/29] memstick: core: rework state machines | From | Maxim Levitsky <> | Date | Tue, 26 Oct 2010 03:34:23 +0200 |
| |
On Mon, 2010-10-25 at 08:01 -0700, Alex Dubov wrote: > --- On Fri, 22/10/10, Maxim Levitsky <maximlevitsky@gmail.com> wrote: > > > From: Maxim Levitsky <maximlevitsky@gmail.com> > > Subject: [PATCH 04/29] memstick: core: rework state machines > > To: "Alex Dubov" <oakad@yahoo.com> > > Cc: "Andrew Morton" <akpm@linux-foundation.org>, "LKML" <linux-kernel@vger.kernel.org>, "Maxim Levitsky" <maximlevitsky@gmail.com> > > Received: Friday, 22 October, 2010, 4:53 PM > > Make state machines in memstick core > > follow the > > new style. > > > > 1. This is an important functional patch. At present, "new style" exists > only in your head. You should make an effort to justify it to everybody > else by providing a rationale in patch description. I already explained that. Ok. I add that explanation to patch header.
> > 2. You are using an integer state variable (instead of function pointers > which were self-describing by virtue of the referred function names). > Please, define an enumerated type for this state variable, giving states > human-readable, descriptive names. If you need to do state variable > arithmetic, you can provide a couple of simple, descriptive macros to > do so: > > #define NEXT_STATE(s) (s + 1) Do we have a corporate policy of no magic numbers? Like this: http://thedailywtf.com/Articles/Avoiding-Magic-Constants.aspx
The issue here (I explained it already) is that I often use card-state ++; to get to next state; Other the enforcing the policy the suggested #define it won't help.
card->state++ allows me for example to fallback through switch states and go by default to next state by default without additional code. If I bury state numbers with #defines or enums, the assumptions that states appear in switch in ascending order won't be obvious anymore and nether that adding 1 to state will bring me to next switch case.
> > or something along the line. > > 3. Coding style. Passed checkpatch.pl. Could you show me the lines affected?
Best regards, Maxim Levitsky
| |