Re: [PATCH 1/3] bnx2x: remove TPA_ENABLE_FLAG

Michał Mirosław
2011-08-31T18:05:41Z

2011/8/31 Vladislav Zolotarov <vladz@broadcom.com>:
>> -----Original Message-----
>> From: Michal Schmidt [mailto:mschmidt@redhat.com]
>> Sent: Wednesday, August 31, 2011 6:59 PM
>> To: Vladislav Zolotarov
>> Cc: netdev@vger.kernel.org; Dmitry Kravkov; Eilon Greenstein;
>> mirqus@gmail.com
>> Subject: Re: [PATCH 1/3] bnx2x: remove TPA_ENABLE_FLAG
>>
>> On Wed, 31 Aug 2011 18:16:30 +0300 Vlad Zolotarov wrote:
>> > On Wednesday 31 August 2011 18:00:34 Michal Schmidt wrote:
>> > >   if (bnx2x_reload) {
>> > > -         if (bp->recovery_state == BNX2X_RECOVERY_DONE)
>> > > +         if (bp->recovery_state == BNX2X_RECOVERY_DONE) {
>> > > +                 /*
>> > > +                  * Cheat! Normally dev->features will be
>> > > set after we
>> > > +                  * return, but that's too late. We need to
>> > > know how to
>> > > +                  * configure the NIC when reloading it, so
>> > > update
>> > > +                  * the features early.
>> > > +                  */
>> > > +                 dev->features = features;
>> > >                   return bnx2x_reload_if_running(dev);
>> >
>> > NACK
>> >
>> > This is bogus - what if bnx2x_reload_if_running(dev)
>> > (bnx2x_nic_load()) failes? The original dev->features would be
>> > lost...
>>
>> Well, yes, but since the NIC would be now not working, do we really
>> care about its features? :-)
>
> U r kidding, right? ;)
> We care about the consistency in the netdev features state - if we failed
> to configure the requested feature and returned an error on e.g. "ethtool -K ethX lro on"
> call, it's expected that a subsequent ethtool -k ethX call won't report the requested
> feature (LRO) as set.

If bnx2x_reload_if_running() failure means that NIC is disabled, then
Michal is right that there's no point in caring about dev->features,
sice 'load' operation (NIC configuration) needs to be done again
anyway.

Best Regards,
Michał Mirosław