diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-10-29 11:22:10 -0400 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-10-29 23:45:01 -0400 |
commit | 92bc60580e55d18494a23ba8ae642a464ebfd7a6 (patch) | |
tree | 2a31b00fec8ac0d1c381e84078af33fd7d9f642b | |
parent | 2b5e625882a7130c339e4ad2ac2b8f0422f11919 (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.h | 14 | ||||
-rw-r--r-- | drivers/staging/bcm/Bcmnet.c | 33 | ||||
-rw-r--r-- | drivers/staging/bcm/HandleControlPacket.c | 3 | ||||
-rw-r--r-- | drivers/staging/bcm/Misc.c | 16 | ||||
-rw-r--r-- | drivers/staging/bcm/Qos.c | 10 | ||||
-rw-r--r-- | drivers/staging/bcm/Transmit.c | 3 |
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; | |||
43 | typedef BCM_CB BCM_RCB, *PBCM_RCB; | 43 | typedef BCM_CB BCM_RCB, *PBCM_RCB; |
44 | typedef BCM_CB BCM_TCB, *PBCM_TCB; | 44 | typedef BCM_CB BCM_TCB, *PBCM_TCB; |
45 | 45 | ||
46 | /* This is to be stored in the "pvOsDepData" of ADAPTER */ | ||
47 | typedef 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 | |||
57 | struct _LEADER | 46 | struct _LEADER |
58 | { | 47 | { |
59 | USHORT Vcid; | 48 | USHORT Vcid; |
@@ -429,7 +418,7 @@ Driver adapter data structure | |||
429 | struct _MINI_ADAPTER | 418 | struct _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 | ||
45 | static struct net_device_stats *bcm_get_stats(struct net_device *dev) | 45 | static 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) | |||
1969 | void flush_queue(PMINI_ADAPTER Adapter, UINT iQIndex) | 1959 | void 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; |