Picon

orinoco_cs: errors "information frame lost", "callbacks suppressed"

Hi,

I'm using the orinoco_cs module with a Microsoft MN-520 card. It is
functional. I can use the internet and access network shares. The problem is
that my dmesg log is totally overrun with errors that look like:

[ 4929.294727] __ratelimit: 95 callbacks suppressed
[ 4929.294747] eth2: Information frame lost.
[ 4929.298371] eth2: Information frame lost.
[ 4929.306179] eth2: Information frame lost.
[ 4929.310624] eth2: Information frame lost.
[ 4929.313696] eth2: Information frame lost.
[ 4929.316314] eth2: Information frame lost.
[ 4929.321402] eth2: Information frame lost.
[ 4929.324642] eth2: Information frame lost.
[ 4929.332024] eth2: Information frame lost.
[ 4929.334593] eth2: Information frame lost.
[ 4974.572457] __ratelimit: 182 callbacks suppressed
[ 4974.572480] eth2: Information frame lost.
[ 4974.578034] eth2: Information frame lost.
[ 4974.579622] eth2: Information frame lost.
[ 4974.587554] eth2: Information frame lost.
[ 4974.590890] eth2: Information frame lost.
[ 4974.595090] eth2: Information frame lost.
[ 4974.606683] eth2: Information frame lost.
[ 4974.610979] eth2: Information frame lost.
[ 4974.613622] eth2: Information frame lost.
[ 4974.614599] eth2: Information frame lost.

This only happens when data is transferred on the interface; if I don't use
(Continue reading)

Pavel Roskin | 3 Nov 2008 15:08
Picon

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

On Sun, 2008-11-02 at 10:47 -0700, iskimj@... wrote:
> Hi,
> 
> I'm using the orinoco_cs module with a Microsoft MN-520 card. It is
> functional. I can use the internet and access network shares. The problem is
> that my dmesg log is totally overrun with errors that look like:
> 
> [ 4929.294727] __ratelimit: 95 callbacks suppressed
> [ 4929.294747] eth2: Information frame lost.

I believe this happens with Intersil firmware.  A workaround would be to
use hostap_cs instead on orinoco_cs.

> Any suggestions? Is there possibly a bug of some kind in the orinoco
> driver?

Maybe.  Or maybe it's a bug in the firmware.  Hostap has a workaround in
prism2_infdrop().  Looks at this comment in that function:

        /* some firmware versions seem to get stuck with
         * full CommTallies in high traffic load cases; every
         * packet will then cause INFDROP event and CommTallies
         * info frame will not be sent automatically. Try to
         * get out of this state by inquiring CommTallies. */

--

-- 
Regards,
Pavel Roskin

-------------------------------------------------------------------------
(Continue reading)

Dave | 3 Nov 2008 21:57

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

Pavel Roskin wrote:
> On Sun, 2008-11-02 at 10:47 -0700, iskimj@... wrote:
>> I'm using the orinoco_cs module with a Microsoft MN-520 card. It is
>> functional. I can use the internet and access network shares. The problem is
>> that my dmesg log is totally overrun with errors that look like:
>>
>> [ 4929.294727] __ratelimit: 95 callbacks suppressed
>> [ 4929.294747] eth2: Information frame lost.
> 
> I believe this happens with Intersil firmware.  A workaround would be to
> use hostap_cs instead on orinoco_cs.
> 
>> Any suggestions? Is there possibly a bug of some kind in the orinoco
>> driver?
> 
> Maybe.  Or maybe it's a bug in the firmware.  Hostap has a workaround in
> prism2_infdrop().  Looks at this comment in that function:
> 
>         /* some firmware versions seem to get stuck with
>          * full CommTallies in high traffic load cases; every
>          * packet will then cause INFDROP event and CommTallies
>          * info frame will not be sent automatically. Try to
>          * get out of this state by inquiring CommTallies. */

Interesting. I'd appreciate it if you could try the patch below (which
implements the prism2 workaround).

We may need to add a flag to restrict the call to particular firmwares.
To this end could you also post the firmware version your running? It
should be reported in your dmesg output.
(Continue reading)

Picon

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"


>I believe this happens with Intersil firmware.  A workaround would be to
>use hostap_cs instead on orinoco_cs.

I tried hostap_cs but wasn't able to make much progress. I believe that I
need to run in "managed" mode, when I put it in managed mode and then try to
set the essid, iwconfig just reports ESSID:" ". If I then change to "master"
mode it reports the correct ESSID. Any tips?

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
I ski MJ | 11 Nov 2008 06:46
Picon

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

Dave <kilroyd@...> wrote:
> Interesting. I'd appreciate it if you could try the patch below (which
> implements the prism2 workaround).
>
> We may need to add a flag to restrict the call to particular firmwares.
> To this end could you also post the firmware version your running? It
> should be reported in your dmesg output.

My Intersil firmware is 1.4.9. Is there a better FW version to use? If
so, what tools would I need to flash the FW to the card?

> diff --git a/drivers/net/wireless/orinoco/orinoco.c
> b/drivers/net/wireless/orinoco/orinoco.c
> index d9939d5..ac058e9 100644
> --- a/drivers/net/wireless/orinoco.c
> +++ b/drivers/net/wireless/orinoco.c
>  <at>  <at>  -2260,6 +2260,10  <at>  <at>  static void __orinoco_ev_infdrop(struct
> net_device *dev, hermes_t *hw)
>  {
>        if (net_ratelimit())
>                printk(KERN_DEBUG "%s: Information frame lost.\n",
> dev->name);
> +
> +       /* Clearing firmware tallies stops excessive numbers of these
> +        * interrupts on some firmwares */
> +       hermes_inquire(hw, HERMES_INQ_TALLIES);
>  }
>
>  /********************************************************************/
>
(Continue reading)

Dave | 11 Nov 2008 21:16

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

I ski MJ wrote:
> Dave <kilroyd@...> wrote:
> My Intersil firmware is 1.4.9. Is there a better FW version to use? If
> so, what tools would I need to flash the FW to the card?

I don't think there are linux tools to permanently flash new firmware.
The hostap driver (and userspace tools) allows you to upload newer
firmware to the cards RAM. Otherwise you're looking at windows tools.

>> diff --git a/drivers/net/wireless/orinoco/orinoco.c
>> +
>> +       /* Clearing firmware tallies stops excessive numbers of these
>> +        * interrupts on some firmwares */
>> +       hermes_inquire(hw, HERMES_INQ_TALLIES);
> 
> Well, I'm going to need a bit of help with this. Is the
> /drivers/net/wireless/orinoco/ directory from the full kernel source
> tree, or is there a better way to get it, such as sourceforge? Also,
> I'm not familiar with diff --git and I get an error that --git is an
> unrecognized option. It looks like this command is part of git-diff,
> correct?
> 
> Sorry for the n00b questions, I have limited experience with patching/compiling.

Oops. There are a couple of problems with the patch. I made a few manual
modifications and missed the path change. And my client inserted
whitespace damage. Instead, just insert the hermes_inquire line directly
into the function orinoco_infdrop (removing the +).

Otherwise you should have been able to either apply the patch by saving
(Continue reading)

Pavel Roskin | 12 Nov 2008 04:46
Picon

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

On Tue, 2008-11-11 at 20:16 +0000, Dave wrote:
> I ski MJ wrote:
> > Dave <kilroyd@...> wrote:
> > My Intersil firmware is 1.4.9. Is there a better FW version to use? If
> > so, what tools would I need to flash the FW to the card?
> 
> I don't think there are linux tools to permanently flash new firmware.
> The hostap driver (and userspace tools) allows you to upload newer
> firmware to the cards RAM. Otherwise you're looking at windows tools.

Actually, hostap can flash new firmware if it's enabled in the kernel
configuration.  prism2_srec from hostap-utils is used for that.

--

-- 
Regards,
Pavel Roskin

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
Pavel Roskin | 12 Nov 2008 04:50
Picon

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

On Mon, 2008-11-10 at 22:13 -0700, iskimj@... wrote:
> >I believe this happens with Intersil firmware.  A workaround would be to
> >use hostap_cs instead on orinoco_cs.
> 
> I tried hostap_cs but wasn't able to make much progress. I believe that I
> need to run in "managed" mode, when I put it in managed mode and then try to
> set the essid, iwconfig just reports ESSID:" ". If I then change to "master"
> mode it reports the correct ESSID. Any tips?

Please discuss hostap issues in linux-wireless@...

Don't forget to mention versions of the involved software.  In this case
it's the kernel and wireless tools.

--

-- 
Regards,
Pavel Roskin

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
Timothy Murphy | 12 Nov 2008 13:52
Favicon

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

On Wednesday 12 November 2008 03:46:55 Pavel Roskin wrote:

> > I don't think there are linux tools to permanently flash new firmware.
> > The hostap driver (and userspace tools) allows you to upload newer
> > firmware to the cards RAM. Otherwise you're looking at windows tools.
>
> Actually, hostap can flash new firmware if it's enabled in the kernel
> configuration.  prism2_srec from hostap-utils is used for that.

Apologies for a slightly ignorant (and irrelevant) question,
but I have never understood the relation between hostap and orinoco_cs.
Are they alternative drivers?
Are you (Pavel) responsible for both?
How does the kernel know which to choose if both modules are there?
Is it just a matter of an entry in /etc/modprobe.conf ?

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
Pavel Roskin | 12 Nov 2008 17:23
Picon

Re: orinoco_cs: errors "information frame lost", "callbacks suppressed"

On Wed, 2008-11-12 at 12:52 +0000, Timothy Murphy wrote:
> On Wednesday 12 November 2008 03:46:55 Pavel Roskin wrote:
> 
> > > I don't think there are linux tools to permanently flash new firmware.
> > > The hostap driver (and userspace tools) allows you to upload newer
> > > firmware to the cards RAM. Otherwise you're looking at windows tools.
> >
> > Actually, hostap can flash new firmware if it's enabled in the kernel
> > configuration.  prism2_srec from hostap-utils is used for that.
> 
> Apologies for a slightly ignorant (and irrelevant) question,
> but I have never understood the relation between hostap and orinoco_cs.
> Are they alternative drivers?

For Intersil firmware, yes.  For Agere and Symbol firmware, no.

> Are you (Pavel) responsible for both?

I'm only "responsible" for orinoco.  That is, I'm listed as its
maintainer.

> How does the kernel know which to choose if both modules are there?
> Is it just a matter of an entry in /etc/modprobe.conf ?

I believe the kernel notifies userspace of new devices and udev handles
it by running modprobe with the alias of the device (essentially its bus
type and ID).  Each module has a device table, which consists of
aliases, and modprobe is aware of them.

If several modules match the alias, modprobe would load all of them.
(Continue reading)


Gmane