linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* prism54 regression in current -git
@ 2008-04-22  4:42 Patrick McHardy
  2008-04-22 14:36 ` Dan Williams
  0 siblings, 1 reply; 8+ messages in thread
From: Patrick McHardy @ 2008-04-22  4:42 UTC (permalink / raw)
  To: Roy Marples; +Cc: Luis R. Rodriguez, John W. Linville, linux-wireless

The patch "prism54: set carrier flags correctly" makes my
prism54 device in AP mode come up without a carrier, which
in causes IPv6 to not add a link-local address, which in
turn causes radvd (configured to announce routes on that
device) to refuse to start, breaking IPv6 for the entire
network.

I didn't check whether a carrier is detected once a client
associates, but in any case it seems to me that a device
in AP mode should always indicate a carrier.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: prism54 regression in current -git
  2008-04-22  4:42 prism54 regression in current -git Patrick McHardy
@ 2008-04-22 14:36 ` Dan Williams
  2008-04-22 14:56   ` Patrick McHardy
  0 siblings, 1 reply; 8+ messages in thread
From: Dan Williams @ 2008-04-22 14:36 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Roy Marples, Luis R. Rodriguez, John W. Linville, linux-wireless

On Tue, 2008-04-22 at 06:42 +0200, Patrick McHardy wrote:
> The patch "prism54: set carrier flags correctly" makes my
> prism54 device in AP mode come up without a carrier, which
> in causes IPv6 to not add a link-local address, which in
> turn causes radvd (configured to announce routes on that
> device) to refuse to start, breaking IPv6 for the entire
> network.
> 
> I didn't check whether a carrier is detected once a client
> associates, but in any case it seems to me that a device
> in AP mode should always indicate a carrier.

Should always indicate a carrier _when it's configured and up_.  If you
just go 'iwconfig eth1 mode master' it shouldn't, but if you do:

ifconfig eth1 up
iwconfig eth1 mode master essid foobar

then it should.

Dan



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: prism54 regression in current -git
  2008-04-22 14:36 ` Dan Williams
@ 2008-04-22 14:56   ` Patrick McHardy
  2008-04-22 17:50     ` Luis R. Rodriguez
  0 siblings, 1 reply; 8+ messages in thread
From: Patrick McHardy @ 2008-04-22 14:56 UTC (permalink / raw)
  To: Dan Williams
  Cc: Roy Marples, Luis R. Rodriguez, John W. Linville, linux-wireless

Dan Williams wrote:
> On Tue, 2008-04-22 at 06:42 +0200, Patrick McHardy wrote:
>> The patch "prism54: set carrier flags correctly" makes my
>> prism54 device in AP mode come up without a carrier, which
>> in causes IPv6 to not add a link-local address, which in
>> turn causes radvd (configured to announce routes on that
>> device) to refuse to start, breaking IPv6 for the entire
>> network.
>>
>> I didn't check whether a carrier is detected once a client
>> associates, but in any case it seems to me that a device
>> in AP mode should always indicate a carrier.
> 
> Should always indicate a carrier _when it's configured and up_.  If you
> just go 'iwconfig eth1 mode master' it shouldn't, but if you do:
> 
> ifconfig eth1 up
> iwconfig eth1 mode master essid foobar
> 
> then it should.

Yes, it was up and running of course. No carrier though.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: prism54 regression in current -git
  2008-04-22 14:56   ` Patrick McHardy
@ 2008-04-22 17:50     ` Luis R. Rodriguez
  2008-04-22 18:03       ` Luis R. Rodriguez
  0 siblings, 1 reply; 8+ messages in thread
From: Luis R. Rodriguez @ 2008-04-22 17:50 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Dan Williams, Roy Marples, John W. Linville, linux-wireless

On Tue, Apr 22, 2008 at 7:56 AM, Patrick McHardy <kaber@trash.net> wrote:
>
> Dan Williams wrote:
>
> > On Tue, 2008-04-22 at 06:42 +0200, Patrick McHardy wrote:
> >
> > > The patch "prism54: set carrier flags correctly" makes my
> > > prism54 device in AP mode come up without a carrier, which
> > > in causes IPv6 to not add a link-local address, which in
> > > turn causes radvd (configured to announce routes on that
> > > device) to refuse to start, breaking IPv6 for the entire
> > > network.
> > >
> > > I didn't check whether a carrier is detected once a client
> > > associates, but in any case it seems to me that a device
> > > in AP mode should always indicate a carrier.
> > >
> >
> > Should always indicate a carrier _when it's configured and up_.  If you
> > just go 'iwconfig eth1 mode master' it shouldn't, but if you do:
> >
> > ifconfig eth1 up
> > iwconfig eth1 mode master essid foobar
> >
> > then it should.
> >
>
>  Yes, it was up and running of course. No carrier though.

Good catch. The carrier is set upon a firmware trigger so it is
possible that when in AP mode we don't hit the trigger in firmware. I
left open the possibility for this happening and go figure it happens.
Even if we had docs this probably wouldn't be documented :) I'll try
to cook up an exception patch now.

  Luis

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: prism54 regression in current -git
  2008-04-22 17:50     ` Luis R. Rodriguez
@ 2008-04-22 18:03       ` Luis R. Rodriguez
  2008-04-22 20:51         ` Patrick McHardy
  0 siblings, 1 reply; 8+ messages in thread
From: Luis R. Rodriguez @ 2008-04-22 18:03 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: Patrick McHardy, Dan Williams, Roy Marples, John W. Linville,
	linux-wireless

On Tue, Apr 22, 2008 at 10:50:27AM -0700, Luis R. Rodriguez wrote:
> On Tue, Apr 22, 2008 at 7:56 AM, Patrick McHardy <kaber@trash.net> wrote:
> >
> > Dan Williams wrote:
> >
> > > On Tue, 2008-04-22 at 06:42 +0200, Patrick McHardy wrote:
> > >
> > > > The patch "prism54: set carrier flags correctly" makes my
> > > > prism54 device in AP mode come up without a carrier, which
> > > > in causes IPv6 to not add a link-local address, which in
> > > > turn causes radvd (configured to announce routes on that
> > > > device) to refuse to start, breaking IPv6 for the entire
> > > > network.
> > > >
> > > > I didn't check whether a carrier is detected once a client
> > > > associates, but in any case it seems to me that a device
> > > > in AP mode should always indicate a carrier.
> > > >
> > >
> > > Should always indicate a carrier _when it's configured and up_.  If you
> > > just go 'iwconfig eth1 mode master' it shouldn't, but if you do:
> > >
> > > ifconfig eth1 up
> > > iwconfig eth1 mode master essid foobar
> > >
> > > then it should.
> > >
> >
> >  Yes, it was up and running of course. No carrier though.
> 
> Good catch. The carrier is set upon a firmware trigger so it is
> possible that when in AP mode we don't hit the trigger in firmware. I
> left open the possibility for this happening and go figure it happens.
> Even if we had docs this probably wouldn't be documented :) I'll try
> to cook up an exception patch now.

Let me know if this fixes it.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>

diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c
index 04c2638..9196825 100644
--- a/drivers/net/wireless/prism54/islpci_dev.c
+++ b/drivers/net/wireless/prism54/islpci_dev.c
@@ -388,8 +388,15 @@ islpci_open(struct net_device *ndev)
 
 	netif_start_queue(ndev);
 
-	/* Turn off carrier unless we know we have associated */
-	netif_carrier_off(ndev);
+	/* Turn off carrier if in STA or Ad-hoc mode. It will be turned on
+	 * once the firmware receives a trap of being associated
+	 * (GEN_OID_LINKSTATE). In other modes (AP or WDS or monitor) we
+	 * should just leave the carrier on as its expected the firmware
+	 * won't send us a trigger. */
+	if (priv->iw_mode == IW_MODE_INFRA || priv->iw_mode == IW_MODE_ADHOC)
+		netif_carrier_off(ndev);
+	else
+		netif_carrier_on(ndev);
 
 	return 0;
 }

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: prism54 regression in current -git
  2008-04-22 18:03       ` Luis R. Rodriguez
@ 2008-04-22 20:51         ` Patrick McHardy
  2008-04-23  9:47           ` Patrick McHardy
  0 siblings, 1 reply; 8+ messages in thread
From: Patrick McHardy @ 2008-04-22 20:51 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: Luis R. Rodriguez, Dan Williams, Roy Marples, John W. Linville,
	linux-wireless

Luis R. Rodriguez wrote:
>> Good catch. The carrier is set upon a firmware trigger so it is
>> possible that when in AP mode we don't hit the trigger in firmware. I
>> left open the possibility for this happening and go figure it happens.
>> Even if we had docs this probably wouldn't be documented :) I'll try
>> to cook up an exception patch now.
> 
> Let me know if this fixes it.
> 
> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
> 
> diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c
> index 04c2638..9196825 100644
> --- a/drivers/net/wireless/prism54/islpci_dev.c
> +++ b/drivers/net/wireless/prism54/islpci_dev.c
> @@ -388,8 +388,15 @@ islpci_open(struct net_device *ndev)
>  
>  	netif_start_queue(ndev);
>  
> -	/* Turn off carrier unless we know we have associated */
> -	netif_carrier_off(ndev);
> +	/* Turn off carrier if in STA or Ad-hoc mode. It will be turned on
> +	 * once the firmware receives a trap of being associated
> +	 * (GEN_OID_LINKSTATE). In other modes (AP or WDS or monitor) we
> +	 * should just leave the carrier on as its expected the firmware
> +	 * won't send us a trigger. */
> +	if (priv->iw_mode == IW_MODE_INFRA || priv->iw_mode == IW_MODE_ADHOC)
> +		netif_carrier_off(ndev);
> +	else
> +		netif_carrier_on(ndev);
>  
>  	return 0;
>  }
> 

This will probably fix the error I'm seeing, but if I'm not
mistaken the mode can be changed while the device is UP and
this case is not handled by your patch.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: prism54 regression in current -git
  2008-04-22 20:51         ` Patrick McHardy
@ 2008-04-23  9:47           ` Patrick McHardy
  2008-05-06 10:37             ` Patrick McHardy
  0 siblings, 1 reply; 8+ messages in thread
From: Patrick McHardy @ 2008-04-23  9:47 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: Luis R. Rodriguez, Dan Williams, Roy Marples, John W. Linville,
	linux-wireless

Patrick McHardy wrote:
> Luis R. Rodriguez wrote:
>>> Good catch. The carrier is set upon a firmware trigger so it is
>>> possible that when in AP mode we don't hit the trigger in firmware. I
>>> left open the possibility for this happening and go figure it happens.
>>> Even if we had docs this probably wouldn't be documented :) I'll try
>>> to cook up an exception patch now.
>>
>> Let me know if this fixes it.
>> [...]
> 
> This will probably fix the error I'm seeing, but if I'm not
> mistaken the mode can be changed while the device is UP and
> this case is not handled by your patch.

I've verified that is fixes the bug if the device is already
configured for AP mode when set UP.

It appears to also be working correctly when configuring
the device for master mode after bringing it up, but I
don't understand why.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: prism54 regression in current -git
  2008-04-23  9:47           ` Patrick McHardy
@ 2008-05-06 10:37             ` Patrick McHardy
  0 siblings, 0 replies; 8+ messages in thread
From: Patrick McHardy @ 2008-05-06 10:37 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: Luis R. Rodriguez, Dan Williams, Roy Marples, John W. Linville,
	linux-wireless

Patrick McHardy wrote:
> Patrick McHardy wrote:
>> Luis R. Rodriguez wrote:
>>>> Good catch. The carrier is set upon a firmware trigger so it is
>>>> possible that when in AP mode we don't hit the trigger in firmware. I
>>>> left open the possibility for this happening and go figure it happens.
>>>> Even if we had docs this probably wouldn't be documented :) I'll try
>>>> to cook up an exception patch now.
>>>
>>> Let me know if this fixes it.
>>> [...]
>>
>> This will probably fix the error I'm seeing, but if I'm not
>> mistaken the mode can be changed while the device is UP and
>> this case is not handled by your patch.
>
> I've verified that is fixes the bug if the device is already
> configured for AP mode when set UP.
>
> It appears to also be working correctly when configuring
> the device for master mode after bringing it up, but I
> don't understand why. 


Just to make sure this doesn't get lost, this fix hasn't made it to
Linus' tree yet and appears to be still needed.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-05-06 10:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-22  4:42 prism54 regression in current -git Patrick McHardy
2008-04-22 14:36 ` Dan Williams
2008-04-22 14:56   ` Patrick McHardy
2008-04-22 17:50     ` Luis R. Rodriguez
2008-04-22 18:03       ` Luis R. Rodriguez
2008-04-22 20:51         ` Patrick McHardy
2008-04-23  9:47           ` Patrick McHardy
2008-05-06 10:37             ` Patrick McHardy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).