forked from Minki/linux
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;
|
||||
}
|
||||
|
||||
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);
|
||||
pDevice->sTimerCommand.data = (unsigned long)pDevice;
|
||||
pDevice->sTimerCommand.function = (TimerFunction)vRunCommand;
|
||||
// RUN_AT :1 msec ~= (HZ/1024)
|
||||
pDevice->sTimerCommand.expires = (unsigned int)RUN_AT((MSecond * HZ) >> 10);
|
||||
add_timer(&pDevice->sTimerCommand);
|
||||
return;
|
||||
init_timer(&pDevice->sTimerCommand);
|
||||
|
||||
pDevice->sTimerCommand.data = (unsigned long)pDevice;
|
||||
pDevice->sTimerCommand.function = (TimerFunction)vRunCommand;
|
||||
pDevice->sTimerCommand.expires = RUN_AT((MSecond * HZ) / 1000);
|
||||
|
||||
add_timer(&pDevice->sTimerCommand);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void vRunCommand(void *hDeviceContext)
|
||||
|
@ -45,8 +45,8 @@ typedef struct tagsPMKIDInfo {
|
||||
} PMKIDInfo, *PPMKIDInfo;
|
||||
|
||||
typedef struct tagSPMKIDCache {
|
||||
unsigned long BSSIDInfoCount;
|
||||
PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE];
|
||||
u32 BSSIDInfoCount;
|
||||
PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE];
|
||||
} SPMKIDCache, *PSPMKIDCache;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user