netdev
[Top] [All Lists]

Re: [PATCH 2.6.11 1/8] tg3: add 5705_plus flag

To: Jeff Garzik <jgarzik@xxxxxxxxx>
Subject: Re: [PATCH 2.6.11 1/8] tg3: add 5705_plus flag
From: Matt Mackall <mpm@xxxxxxxxxxx>
Date: Wed, 23 Mar 2005 17:51:52 -0800
Cc: Michael Chan <mchan@xxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <4240858B.5080209@xxxxxxxxx>
References: <B1508D50A0692F42B217C22C02D84972020F3E21@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <4240858B.5080209@xxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.6+20040907i
On Tue, Mar 22, 2005 at 03:52:27PM -0500, Jeff Garzik wrote:
> Michael Chan wrote:
> >Add a 5705_plus flag to indicate the device is 5705, 5750, or future chips
> >that all share the same basic architecture. This makes it easier to add
> >support for future devices.
> >
> >
> >Signed-off-by: Michael Chan <mchan@xxxxxxxxxxxx
> 
> ACK, and two comments:
> 
> 1) In general, I encourage changes like this, for both tg3 and other net 
> drivers.  It is -much- better to define a feature flag, and test the 
> feature flag in the source code, than to define a list of affected 
> [chips | arches].  Changes like this
> 
> -       if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 ||
> -           GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750) {
> +       if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS) {
> 
> can be an example to others for future changes.

Except this isn't really a feature flag, per se. That would be
something like TG3_HAS_FOO, in other words "what particular feature
this if statement actually cares about". What is currently 5705_PLUS
would then be a bunch of flags HAS_SENSIBLE_X | HAS_FAST_Y | HAS_WORKING_Z.

The "family flag" approach is fine until you run into something that
has X and Y but not Z.

-- 
Mathematics is the supreme nostalgia of our time.

<Prev in Thread] Current Thread [Next in Thread>