Re: [PATCH] staging: r8712u: Fix driver to support ad-hoc mode

From: clemens fischer
Date: Fri Apr 29 2011 - 20:36:17 EST


> Larry Finger:

> On 04/28/2011 10:08 AM, clemens fischer wrote:
> >>Larry Finger:
> >
> >>From: Jeff Chua<jeff.chua.linux@xxxxxxxxx>
> >>
> >>Driver r8712u is unable to handle ad-hoc mode. The issue is that when
> >>the driver first starts, there will not be an SSID for association.
> >>The fix is to always call the "select and join from scan" routine when
> >>in ad-hoc mode.
> >>
> >>Note: Ad-hoc mode worked intermittently before. If the driver had
> >>previously been associated, then things were OK.
> >>
> >>Signed-off-by: Jeff Chua<jeff.chua.linux@xxxxxxxxx>
> >>Signed-off-by: Larry Finger<Larry.Finger@xxxxxxxxxxxx>
> >>Cc: Stable<stable@xxxxxxxxxx>
> >>---
> >>
> >>Index: linux-2.6/drivers/staging/rtl8712/rtl871x_ioctl_set.c
> >>===================================================================
> >>--- linux-2.6.orig/drivers/staging/rtl8712/rtl871x_ioctl_set.c
> >>+++ linux-2.6/drivers/staging/rtl8712/rtl871x_ioctl_set.c
> >>@@ -68,7 +68,10 @@ static u8 do_join(struct _adapter *padap
> >> pmlmepriv->fw_state |= _FW_UNDER_LINKING;
> >> pmlmepriv->pscanned = plist;
> >> pmlmepriv->to_join = true;
> >>- if (_queue_empty(queue) == true) {
> >>+
> >>+ /* adhoc mode will start with an empty queue, but skip checking */
> >>+ if (!check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)&&
> >>+ _queue_empty(queue)) {
> >> if (pmlmepriv->fw_state& _FW_UNDER_LINKING)
> >> pmlmepriv->fw_state ^= _FW_UNDER_LINKING;
> >> /* when set_ssid/set_bssid for do_join(), but scanning queue
> >
> >Thanks for CC'ing me.
> >
> >This patch doesn't solve my problem[1], unfortunately. I am using
> >iwconfig(8) to setup things, and it is still impossible to set the ESSID
> >and the power saving mode. In my case it was even possible to get into
> >Ad-hoc mode without the patch and without ever beeing associated.
> >
> >[1] https://bugzilla.kernel.org/show_bug.cgi?id=33352
>
> Does this one help? It should be in addition to the previous patch.
>
> Larry

> Index: linux-2.6/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> ===================================================================
> --- linux-2.6.orig/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> +++ linux-2.6/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
> @@ -990,8 +990,6 @@ static int r8711_wx_set_wap(struct net_d
> struct wlan_network *pnetwork = NULL;
> enum NDIS_802_11_AUTHENTICATION_MODE authmode;
>
> - if (padapter->bup == false)
> - return -1;
> if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true)
> return -1;
> if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true)
> @@ -1182,8 +1180,6 @@ static int r8711_wx_set_essid(struct net
> struct list_head *phead;
> u32 len;
>
> - if (padapter->bup == false)
> - return -1;
> if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY))
> return -1;
> if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING))

BTW, which version is this patch against? I applied both of them to the
one tagged "v2.6.38.4", and they applied with a negative offset of about
-5 lines.

Should I rather use [1]?

[1] git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git


regards, clemens
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/