aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-10-29 11:22:10 -0400
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-10-29 23:45:01 -0400
commit92bc60580e55d18494a23ba8ae642a464ebfd7a6 (patch)
tree2a31b00fec8ac0d1c381e84078af33fd7d9f642b
parent2b5e625882a7130c339e4ad2ac2b8f0422f11919 (diff)
beceem: get rid of OS dependent data structure
The only part of this structure still used was the network device stats, and in recent kernel these are available in network device itself. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
-rw-r--r--drivers/staging/bcm/Adapter.h14
-rw-r--r--drivers/staging/bcm/Bcmnet.c33
-rw-r--r--drivers/staging/bcm/HandleControlPacket.c3
-rw-r--r--drivers/staging/bcm/Misc.c16
-rw-r--r--drivers/staging/bcm/Qos.c10
-rw-r--r--drivers/staging/bcm/Transmit.c3
6 files changed, 23 insertions, 56 deletions
diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h
index 055ff1cb39d..9c9dff3e0da 100644
--- a/drivers/staging/bcm/Adapter.h
+++ b/drivers/staging/bcm/Adapter.h
@@ -43,17 +43,6 @@ typedef struct _BCM_CB BCM_CB,*PBCM_CB;
43typedef BCM_CB BCM_RCB, *PBCM_RCB; 43typedef BCM_CB BCM_RCB, *PBCM_RCB;
44typedef BCM_CB BCM_TCB, *PBCM_TCB; 44typedef BCM_CB BCM_TCB, *PBCM_TCB;
45 45
46/* This is to be stored in the "pvOsDepData" of ADAPTER */
47typedef struct LINUX_DEP_DATA
48{
49 struct net_device *virtualdev; /* Our Interface (veth0) */
50 struct net_device *actualdev; /* True Interface (eth0) */
51 struct net_device_stats netstats; /* Net statistics */
52 struct fasync_struct *async_queue; /* For asynchronus notification */
53
54} LINUX_DEP_DATA, *PLINUX_DEP_DATA;
55
56
57struct _LEADER 46struct _LEADER
58{ 47{
59 USHORT Vcid; 48 USHORT Vcid;
@@ -429,7 +418,7 @@ Driver adapter data structure
429struct _MINI_ADAPTER 418struct _MINI_ADAPTER
430{ 419{
431 struct _MINI_ADAPTER *next; 420 struct _MINI_ADAPTER *next;
432 PVOID pvOsDepData; 421
433 CHAR *caDsxReqResp; 422 CHAR *caDsxReqResp;
434 atomic_t ApplicationRunning; 423 atomic_t ApplicationRunning;
435 volatile INT CtrlQueueLen; 424 volatile INT CtrlQueueLen;
@@ -629,6 +618,7 @@ struct _MINI_ADAPTER
629 struct semaphore LowPowerModeSync; 618 struct semaphore LowPowerModeSync;
630 ULONG liDrainCalculated; 619 ULONG liDrainCalculated;
631 UINT gpioBitMap; 620 UINT gpioBitMap;
621
632 S_BCM_DEBUG_STATE stDebugState; 622 S_BCM_DEBUG_STATE stDebugState;
633 623
634}; 624};
diff --git a/drivers/staging/bcm/Bcmnet.c b/drivers/staging/bcm/Bcmnet.c
index 4785d25874b..670a7a4df36 100644
--- a/drivers/staging/bcm/Bcmnet.c
+++ b/drivers/staging/bcm/Bcmnet.c
@@ -44,24 +44,21 @@ static INT bcm_close(struct net_device *dev)
44 44
45static struct net_device_stats *bcm_get_stats(struct net_device *dev) 45static struct net_device_stats *bcm_get_stats(struct net_device *dev)
46{ 46{
47 PLINUX_DEP_DATA pLinuxData=NULL; 47 PMINI_ADAPTER Adapter = GET_BCM_ADAPTER(dev);
48 PMINI_ADAPTER Adapter = NULL ;// gpadapter ; 48 struct net_device_stats* netstats = &dev->stats;
49 Adapter = GET_BCM_ADAPTER(dev); 49
50 pLinuxData = (PLINUX_DEP_DATA)(Adapter->pvOsDepData); 50 netstats->rx_packets = atomic_read(&Adapter->RxRollOverCount)*64*1024
51 51 + Adapter->PrevNumRecvDescs;
52 //BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, DRV_ENTRY, DBG_LVL_ALL, "Dev = %p, pLinuxData = %p", dev, pLinuxData); 52 netstats->rx_bytes = atomic_read(&Adapter->GoodRxByteCount)
53 pLinuxData->netstats.rx_packets=atomic_read(&Adapter->RxRollOverCount)*64*1024+Adapter->PrevNumRecvDescs; 53 + atomic_read(&Adapter->BadRxByteCount);
54 pLinuxData->netstats.rx_bytes=atomic_read(&Adapter->GoodRxByteCount)+atomic_read(&Adapter->BadRxByteCount); 54
55 pLinuxData->netstats.rx_dropped=atomic_read(&Adapter->RxPacketDroppedCount); 55 netstats->rx_dropped = atomic_read(&Adapter->RxPacketDroppedCount);
56 pLinuxData->netstats.rx_errors=atomic_read(&Adapter->RxPacketDroppedCount); 56 netstats->rx_errors = atomic_read(&Adapter->RxPacketDroppedCount);
57 pLinuxData->netstats.rx_length_errors=0; 57 netstats->tx_bytes = atomic_read(&Adapter->GoodTxByteCount);
58 pLinuxData->netstats.rx_frame_errors=0; 58 netstats->tx_packets = atomic_read(&Adapter->TxTotalPacketCount);
59 pLinuxData->netstats.rx_crc_errors=0; 59 netstats->tx_dropped = atomic_read(&Adapter->TxDroppedPacketCount);
60 pLinuxData->netstats.tx_bytes=atomic_read(&Adapter->GoodTxByteCount); 60
61 pLinuxData->netstats.tx_packets=atomic_read(&Adapter->TxTotalPacketCount); 61 return netstats;
62 pLinuxData->netstats.tx_dropped=atomic_read(&Adapter->TxDroppedPacketCount);
63
64 return &(pLinuxData->netstats);
65} 62}
66/** 63/**
67@ingroup init_functions 64@ingroup init_functions
diff --git a/drivers/staging/bcm/HandleControlPacket.c b/drivers/staging/bcm/HandleControlPacket.c
index 7b2ec28a4bc..5dd88f98caa 100644
--- a/drivers/staging/bcm/HandleControlPacket.c
+++ b/drivers/staging/bcm/HandleControlPacket.c
@@ -185,9 +185,6 @@ int control_packet_handler (PMINI_ADAPTER Adapter /**< pointer to adapter obje
185 { 185 {
186 DEQUEUEPACKET(Adapter->RxControlHead,Adapter->RxControlTail); 186 DEQUEUEPACKET(Adapter->RxControlHead,Adapter->RxControlTail);
187// Adapter->RxControlHead=ctrl_packet->next; 187// Adapter->RxControlHead=ctrl_packet->next;
188 ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.rx_packets++;
189 ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.rx_bytes+=
190 ((PLEADER)ctrl_packet->data)->PLength;
191 } 188 }
192 #if 0 //Idle mode debug profiling... 189 #if 0 //Idle mode debug profiling...
193 if(*(PUSHORT)ctrl_packet->data == IDLE_MODE_STATUS) 190 if(*(PUSHORT)ctrl_packet->data == IDLE_MODE_STATUS)
diff --git a/drivers/staging/bcm/Misc.c b/drivers/staging/bcm/Misc.c
index cedeb8c3723..351a8aee88f 100644
--- a/drivers/staging/bcm/Misc.c
+++ b/drivers/staging/bcm/Misc.c
@@ -60,15 +60,6 @@ InitAdapter(PMINI_ADAPTER psAdapter)
60 //init_waitqueue_head(&psAdapter->device_wake_queue); 60 //init_waitqueue_head(&psAdapter->device_wake_queue);
61 psAdapter->fw_download_done=FALSE; 61 psAdapter->fw_download_done=FALSE;
62 62
63 psAdapter->pvOsDepData = (PLINUX_DEP_DATA) kmalloc(sizeof(LINUX_DEP_DATA),
64 GFP_KERNEL);
65
66 if(psAdapter->pvOsDepData == NULL)
67 {
68 BCM_DEBUG_PRINT(psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Linux Specific Data allocation failed");
69 return -ENOMEM;
70 }
71 memset(psAdapter->pvOsDepData, 0, sizeof(LINUX_DEP_DATA));
72 63
73 default_wimax_protocol_initialize(psAdapter); 64 default_wimax_protocol_initialize(psAdapter);
74 for (i=0;i<MAX_CNTRL_PKTS;i++) 65 for (i=0;i<MAX_CNTRL_PKTS;i++)
@@ -149,8 +140,7 @@ VOID AdapterFree(PMINI_ADAPTER Adapter)
149 bcm_kfree(Adapter->txctlpacket[count]); 140 bcm_kfree(Adapter->txctlpacket[count]);
150 } 141 }
151 FreeAdapterDsxBuffer(Adapter); 142 FreeAdapterDsxBuffer(Adapter);
152 if(Adapter->pvOsDepData) 143
153 bcm_kfree (Adapter->pvOsDepData);
154 if(Adapter->pvInterfaceAdapter) 144 if(Adapter->pvInterfaceAdapter)
155 bcm_kfree(Adapter->pvInterfaceAdapter); 145 bcm_kfree(Adapter->pvInterfaceAdapter);
156 146
@@ -1969,9 +1959,7 @@ void update_per_sf_desc_cnts( PMINI_ADAPTER Adapter)
1969void flush_queue(PMINI_ADAPTER Adapter, UINT iQIndex) 1959void flush_queue(PMINI_ADAPTER Adapter, UINT iQIndex)
1970{ 1960{
1971 struct sk_buff* PacketToDrop=NULL; 1961 struct sk_buff* PacketToDrop=NULL;
1972 struct net_device_stats* netstats=NULL; 1962 struct net_device_stats* netstats = &Adapter->dev->stats;
1973
1974 netstats = &((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats;
1975 1963
1976 spin_lock_bh(&Adapter->PackInfo[iQIndex].SFQueueLock); 1964 spin_lock_bh(&Adapter->PackInfo[iQIndex].SFQueueLock);
1977 1965
diff --git a/drivers/staging/bcm/Qos.c b/drivers/staging/bcm/Qos.c
index 75b2b879633..a86a38c33f2 100644
--- a/drivers/staging/bcm/Qos.c
+++ b/drivers/staging/bcm/Qos.c
@@ -362,18 +362,18 @@ VOID PruneQueue(PMINI_ADAPTER Adapter,/**<Pointer to the driver control structur
362 ) 362 )
363{ 363{
364 struct sk_buff* PacketToDrop=NULL; 364 struct sk_buff* PacketToDrop=NULL;
365 struct net_device_stats* netstats=NULL; 365 struct net_device_stats *netstats;
366 366
367 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, PRUNE_QUEUE, DBG_LVL_ALL, "=====> Index %d",iIndex); 367 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, PRUNE_QUEUE, DBG_LVL_ALL, "=====> Index %d",iIndex);
368 368
369 if(iIndex == HiPriority) 369 if(iIndex == HiPriority)
370 return; 370 return;
371 371
372 if(!Adapter || (iIndex < 0) || (iIndex > HiPriority)) 372 if(!Adapter || (iIndex < 0) || (iIndex > HiPriority))
373 return; 373 return;
374 374
375 /* To Store the netdevice statistic */ 375 /* To Store the netdevice statistic */
376 netstats = &((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats; 376 netstats = &Adapter->dev->stats;
377 377
378 spin_lock_bh(&Adapter->PackInfo[iIndex].SFQueueLock); 378 spin_lock_bh(&Adapter->PackInfo[iIndex].SFQueueLock);
379 379
@@ -431,11 +431,9 @@ VOID flush_all_queues(PMINI_ADAPTER Adapter)
431 INT iQIndex; 431 INT iQIndex;
432 UINT uiTotalPacketLength; 432 UINT uiTotalPacketLength;
433 struct sk_buff* PacketToDrop=NULL; 433 struct sk_buff* PacketToDrop=NULL;
434 struct net_device_stats* netstats=NULL; 434 struct net_device_stats* netstats=&Adapter->dev->stats;
435 435
436 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_OTHERS, DUMP_INFO, DBG_LVL_ALL, "=====>"); 436 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_OTHERS, DUMP_INFO, DBG_LVL_ALL, "=====>");
437 /* To Store the netdevice statistic */
438 netstats = &((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats;
439 437
440// down(&Adapter->data_packet_queue_lock); 438// down(&Adapter->data_packet_queue_lock);
441 for(iQIndex=LowPriority; iQIndex<HiPriority; iQIndex++) 439 for(iQIndex=LowPriority; iQIndex<HiPriority; iQIndex++)
diff --git a/drivers/staging/bcm/Transmit.c b/drivers/staging/bcm/Transmit.c
index 597786a0678..9848a6a95fb 100644
--- a/drivers/staging/bcm/Transmit.c
+++ b/drivers/staging/bcm/Transmit.c
@@ -212,9 +212,6 @@ INT SendControlPacket(PMINI_ADAPTER Adapter, /**<Logical Adapter*/
212 Adapter->interface_transmit(Adapter->pvInterfaceAdapter, 212 Adapter->interface_transmit(Adapter->pvInterfaceAdapter,
213 pControlPacket, (PLeader->PLength + LEADER_SIZE)); 213 pControlPacket, (PLeader->PLength + LEADER_SIZE));
214 214
215 ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.tx_packets++;
216 ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.tx_bytes+=
217 PLeader->PLength;
218 atomic_dec(&Adapter->CurrNumFreeTxDesc); 215 atomic_dec(&Adapter->CurrNumFreeTxDesc);
219 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, TX_CONTROL, DBG_LVL_ALL, "<========="); 216 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, TX_CONTROL, DBG_LVL_ALL, "<=========");
220 return STATUS_SUCCESS; 217 return STATUS_SUCCESS;