mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 10:13:57 +08:00
staging: vt6656: 64bit fixes: vCommandTimerWait change calculation of timer.
The timer appears to run too fast/race on 64 bit systems. Using msecs_to_jiffies seems to cause a deadlock on 64 bit. A calculation of (MSecond * HZ) / 1000 appears to run satisfactory. Change BSSIDInfoCount to u32. After this patch the driver can be successfully connect on little endian 64/32 bit systems. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1d651be13f
commit
70e227790d
@ -316,17 +316,19 @@ s_MgrMakeProbeRequest(
|
|||||||
return pTxPacket;
|
return pTxPacket;
|
||||||
}
|
}
|
||||||
|
|
||||||
void vCommandTimerWait(void *hDeviceContext, unsigned int MSecond)
|
void vCommandTimerWait(void *hDeviceContext, unsigned long MSecond)
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
|
||||||
init_timer(&pDevice->sTimerCommand);
|
init_timer(&pDevice->sTimerCommand);
|
||||||
pDevice->sTimerCommand.data = (unsigned long)pDevice;
|
|
||||||
pDevice->sTimerCommand.function = (TimerFunction)vRunCommand;
|
pDevice->sTimerCommand.data = (unsigned long)pDevice;
|
||||||
// RUN_AT :1 msec ~= (HZ/1024)
|
pDevice->sTimerCommand.function = (TimerFunction)vRunCommand;
|
||||||
pDevice->sTimerCommand.expires = (unsigned int)RUN_AT((MSecond * HZ) >> 10);
|
pDevice->sTimerCommand.expires = RUN_AT((MSecond * HZ) / 1000);
|
||||||
add_timer(&pDevice->sTimerCommand);
|
|
||||||
return;
|
add_timer(&pDevice->sTimerCommand);
|
||||||
|
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void vRunCommand(void *hDeviceContext)
|
void vRunCommand(void *hDeviceContext)
|
||||||
|
@ -45,8 +45,8 @@ typedef struct tagsPMKIDInfo {
|
|||||||
} PMKIDInfo, *PPMKIDInfo;
|
} PMKIDInfo, *PPMKIDInfo;
|
||||||
|
|
||||||
typedef struct tagSPMKIDCache {
|
typedef struct tagSPMKIDCache {
|
||||||
unsigned long BSSIDInfoCount;
|
u32 BSSIDInfoCount;
|
||||||
PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE];
|
PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE];
|
||||||
} SPMKIDCache, *PSPMKIDCache;
|
} SPMKIDCache, *PSPMKIDCache;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user