staging: wilc1000: fix the bug on copying bssid
authorTony Cho <tony.cho@atmel.com>
Tue, 20 Oct 2015 08:10:46 +0000 (17:10 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 25 Oct 2015 01:15:40 +0000 (18:15 -0700)
This patch reverts the commit, d79fd35b8c5d927695b48fa35aa586919818cce9.

The WID_JOIN_REQ_EXTENDED among WIDs needs two parameters for the request to
be sent to the firmware, which are the SA and the BSSID. For this case, both
is the same bssid in the handle_connect function. So, it's required to be
copied twice.

Signed-off-by: Tony Cho <tony.cho@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/host_interface.c

index 646e7e9..4c7e1e4 100644 (file)
@@ -1127,6 +1127,10 @@ static s32 Handle_Connect(struct host_if_drv *hif_drv,
                memcpy(pu8CurrByte, pstrHostIFconnectAttr->bssid, 6);
        pu8CurrByte += 6;
 
+       if (pstrHostIFconnectAttr->bssid)
+               memcpy(pu8CurrByte, pstrHostIFconnectAttr->bssid, 6);
+       pu8CurrByte += 6;
+
        *(pu8CurrByte++)  = (ptstrJoinBssParam->beacon_period) & 0xFF;
        *(pu8CurrByte++)  = ((ptstrJoinBssParam->beacon_period) >> 8) & 0xFF;
        PRINT_D(HOSTINF_DBG, "* Beacon Period %d*\n", (*(pu8CurrByte - 2) | ((*(pu8CurrByte - 1)) << 8)));