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:
parent
61838261ed
commit
f36d83a8cb
|
@ -264,8 +264,12 @@ HwHSSIThreeWire(
|
||||||
|
|
||||||
udelay(10);
|
udelay(10);
|
||||||
}
|
}
|
||||||
if (TryCnt == TC_3W_POLL_MAX_TRY_CNT)
|
if (TryCnt == TC_3W_POLL_MAX_TRY_CNT) {
|
||||||
panic("HwThreeWire(): CmdReg: %#X RE|WE bits are not clear!!\n", u1bTmp);
|
printk(KERN_ERR "rtl8187se: HwThreeWire(): CmdReg:"
|
||||||
|
" %#X RE|WE bits are not clear!!\n", u1bTmp);
|
||||||
|
dump_stack();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* RTL8187S HSSI Read/Write Function */
|
/* RTL8187S HSSI Read/Write Function */
|
||||||
u1bTmp = read_nic_byte(dev, RF_SW_CONFIG);
|
u1bTmp = read_nic_byte(dev, RF_SW_CONFIG);
|
||||||
|
@ -298,13 +302,23 @@ HwHSSIThreeWire(
|
||||||
int idx;
|
int idx;
|
||||||
int ByteCnt = nDataBufBitCnt / 8;
|
int ByteCnt = nDataBufBitCnt / 8;
|
||||||
/* printk("%d\n",nDataBufBitCnt); */
|
/* printk("%d\n",nDataBufBitCnt); */
|
||||||
if ((nDataBufBitCnt % 8) != 0)
|
if ((nDataBufBitCnt % 8) != 0) {
|
||||||
panic("HwThreeWire(): nDataBufBitCnt(%d) should be multiple of 8!!!\n",
|
printk(KERN_ERR "rtl8187se: "
|
||||||
nDataBufBitCnt);
|
"HwThreeWire(): nDataBufBitCnt(%d)"
|
||||||
|
" should be multiple of 8!!!\n",
|
||||||
|
nDataBufBitCnt);
|
||||||
|
dump_stack();
|
||||||
|
nDataBufBitCnt += 8;
|
||||||
|
nDataBufBitCnt &= ~7;
|
||||||
|
}
|
||||||
|
|
||||||
if (nDataBufBitCnt > 64)
|
if (nDataBufBitCnt > 64) {
|
||||||
panic("HwThreeWire(): nDataBufBitCnt(%d) should <= 64!!!\n",
|
printk(KERN_ERR "rtl8187se: HwThreeWire():"
|
||||||
nDataBufBitCnt);
|
" nDataBufBitCnt(%d) should <= 64!!!\n",
|
||||||
|
nDataBufBitCnt);
|
||||||
|
dump_stack();
|
||||||
|
nDataBufBitCnt = 64;
|
||||||
|
}
|
||||||
|
|
||||||
for (idx = 0; idx < ByteCnt; idx++)
|
for (idx = 0; idx < ByteCnt; idx++)
|
||||||
write_nic_byte(dev, (SW_3W_DB0+idx), *(pDataBuf+idx));
|
write_nic_byte(dev, (SW_3W_DB0+idx), *(pDataBuf+idx));
|
||||||
|
|
Loading…
Reference in New Issue