staging: rtl8187se: Change panic to warn when RF switch turned off
This driver issues a kernel panic over conditions that do not justify such drastic action. Change these to log entries with a stack dump. This patch fixes the system crash reported in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/674285. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Reported-and-Tested-by: Robie Basik <rb-oss-3@justgohome.co.uk> Cc: Stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
61838261ed
Коммит
f36d83a8cb
|
@ -264,8 +264,12 @@ HwHSSIThreeWire(
|
|||
|
||||
udelay(10);
|
||||
}
|
||||
if (TryCnt == TC_3W_POLL_MAX_TRY_CNT)
|
||||
panic("HwThreeWire(): CmdReg: %#X RE|WE bits are not clear!!\n", u1bTmp);
|
||||
if (TryCnt == TC_3W_POLL_MAX_TRY_CNT) {
|
||||
printk(KERN_ERR "rtl8187se: HwThreeWire(): CmdReg:"
|
||||
" %#X RE|WE bits are not clear!!\n", u1bTmp);
|
||||
dump_stack();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* RTL8187S HSSI Read/Write Function */
|
||||
u1bTmp = read_nic_byte(dev, RF_SW_CONFIG);
|
||||
|
@ -298,13 +302,23 @@ HwHSSIThreeWire(
|
|||
int idx;
|
||||
int ByteCnt = nDataBufBitCnt / 8;
|
||||
/* printk("%d\n",nDataBufBitCnt); */
|
||||
if ((nDataBufBitCnt % 8) != 0)
|
||||
panic("HwThreeWire(): nDataBufBitCnt(%d) should be multiple of 8!!!\n",
|
||||
nDataBufBitCnt);
|
||||
if ((nDataBufBitCnt % 8) != 0) {
|
||||
printk(KERN_ERR "rtl8187se: "
|
||||
"HwThreeWire(): nDataBufBitCnt(%d)"
|
||||
" should be multiple of 8!!!\n",
|
||||
nDataBufBitCnt);
|
||||
dump_stack();
|
||||
nDataBufBitCnt += 8;
|
||||
nDataBufBitCnt &= ~7;
|
||||
}
|
||||
|
||||
if (nDataBufBitCnt > 64)
|
||||
panic("HwThreeWire(): nDataBufBitCnt(%d) should <= 64!!!\n",
|
||||
nDataBufBitCnt);
|
||||
if (nDataBufBitCnt > 64) {
|
||||
printk(KERN_ERR "rtl8187se: HwThreeWire():"
|
||||
" nDataBufBitCnt(%d) should <= 64!!!\n",
|
||||
nDataBufBitCnt);
|
||||
dump_stack();
|
||||
nDataBufBitCnt = 64;
|
||||
}
|
||||
|
||||
for (idx = 0; idx < ByteCnt; idx++)
|
||||
write_nic_byte(dev, (SW_3W_DB0+idx), *(pDataBuf+idx));
|
||||
|
|
Загрузка…
Ссылка в новой задаче