rt2860: Fix iwpriv oops

Triggered by powertop, iwpriv -a oops this driver when the interface is 
down.



git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5370 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Samuel Ortiz
2008-10-01 15:15:41 +00:00
parent f36ea090d1
commit 9b52d24754
2 changed files with 67 additions and 4 deletions

View File

@@ -0,0 +1,62 @@
---
src/cmm_info.c | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
Index: rt2860-1.7.0.0/src/cmm_info.c
===================================================================
--- rt2860-1.7.0.0.orig/src/cmm_info.c 2008-10-01 16:16:04.000000000 +0200
+++ rt2860-1.7.0.0/src/cmm_info.c 2008-10-01 17:03:10.000000000 +0200
@@ -808,33 +808,39 @@ INT Show_DescInfo_Proc(
#ifdef RT2860
INT i, QueIdx=0;
PRT28XX_RXD_STRUC pRxD;
- PTXD_STRUC pTxD;
+ PTXD_STRUC pTxD;
PRTMP_TX_RING pTxRing = &pAd->TxRing[QueIdx];
PRTMP_MGMT_RING pMgmtRing = &pAd->MgmtRing;
- PRTMP_RX_RING pRxRing = &pAd->RxRing;
-
+ PRTMP_RX_RING pRxRing = &pAd->RxRing;
+
for(i=0;i<TX_RING_SIZE;i++)
{
pTxD = (PTXD_STRUC) pTxRing->Cell[i].AllocVa;
- printk("Desc #%d\n",i);
- hex_dump("Tx Descriptor", (char *)pTxD, 16);
- printk("pTxD->DMADONE = %x\n", pTxD->DMADONE);
+ if (pTxD) {
+ printk("Desc #%d\n",i);
+ hex_dump("Tx Descriptor", (char *)pTxD, 16);
+ printk("pTxD->DMADONE = %x\n", pTxD->DMADONE);
+ }
}
- printk("---------------------------------------------------\n");
+
for(i=0;i<MGMT_RING_SIZE;i++)
{
pTxD = (PTXD_STRUC) pMgmtRing->Cell[i].AllocVa;
- printk("Desc #%d\n",i);
- hex_dump("Mgmt Descriptor", (char *)pTxD, 16);
- printk("pMgmt->DMADONE = %x\n", pTxD->DMADONE);
+ if (pTxD) {
+ printk("Desc #%d\n",i);
+ hex_dump("Mgmt Descriptor", (char *)pTxD, 16);
+ printk("pMgmt->DMADONE = %x\n", pTxD->DMADONE);
+ }
}
- printk("---------------------------------------------------\n");
+
for(i=0;i<RX_RING_SIZE;i++)
{
pRxD = (PRT28XX_RXD_STRUC) pRxRing->Cell[i].AllocVa;
- printk("Desc #%d\n",i);
- hex_dump("Rx Descriptor", (char *)pRxD, 16);
- printk("pRxD->DDONE = %x\n", pRxD->DDONE);
+ if (pRxD) {
+ printk("Desc #%d\n",i);
+ hex_dump("Rx Descriptor", (char *)pRxD, 16);
+ printk("pRxD->DDONE = %x\n", pRxD->DDONE);
+ }
}
#endif // RT2860 //

View File

@@ -2,13 +2,14 @@ DESCRIPTION = "Driver for the 802.11n RaLink rt2860 chipset"
PRIORITY = "optional"
SECTION = "kernel/modules"
LICENSE = "GPL"
PR = "r0"
PR = "r1"
SRC_URI = "http://folks.o-hand.com/sameo/rt2860/rt2860-1.7.0.0.tar.bz2 \
file://01_dev_get_by_name.patch;patch=1 \
file://02_wpa-fix.patch;patch=1" \
file://03-iwe_stream_add.patch;patch=1" \
file://04-pci_name.patch;patch=1"
file://02_wpa-fix.patch;patch=1 \
file://03-iwe_stream_add.patch;patch=1 \
file://04-pci_name.patch;patch=1 \
file://05-iwpriv.patch;patch=1"
S = "${WORKDIR}/rt2860-1.7.0.0"