beceem: get rid of OS dependent data structure
authorStephen Hemminger <stephen.hemminger@vyatta.com>
Fri, 29 Oct 2010 15:22:10 +0000 (08:22 -0700)
committerStephen Hemminger <stephen.hemminger@vyatta.com>
Sat, 30 Oct 2010 03:45:01 +0000 (20:45 -0700)
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>
drivers/staging/bcm/Adapter.h
drivers/staging/bcm/Bcmnet.c
drivers/staging/bcm/HandleControlPacket.c
drivers/staging/bcm/Misc.c
drivers/staging/bcm/Qos.c
drivers/staging/bcm/Transmit.c

index 055ff1c..9c9dff3 100644 (file)
@@ -43,17 +43,6 @@ typedef struct _BCM_CB BCM_CB,*PBCM_CB;
 typedef BCM_CB BCM_RCB, *PBCM_RCB;
 typedef BCM_CB BCM_TCB, *PBCM_TCB;
 
-/* This is to be stored in the "pvOsDepData" of ADAPTER */
-typedef struct LINUX_DEP_DATA
-{
-       struct net_device               *virtualdev;    /* Our Interface (veth0) */
-       struct net_device               *actualdev;     /* True Interface (eth0) */
-       struct net_device_stats netstats;       /* Net statistics */
-       struct fasync_struct    *async_queue;   /* For asynchronus notification */
-
-} LINUX_DEP_DATA, *PLINUX_DEP_DATA;
-
-
 struct _LEADER
 {
        USHORT  Vcid;
@@ -429,7 +418,7 @@ Driver adapter data structure
 struct _MINI_ADAPTER
 {
        struct _MINI_ADAPTER *next;
-       PVOID                       pvOsDepData;
+
        CHAR                *caDsxReqResp;
        atomic_t                        ApplicationRunning;
        volatile INT            CtrlQueueLen;
@@ -629,6 +618,7 @@ struct _MINI_ADAPTER
        struct semaphore        LowPowerModeSync;
        ULONG   liDrainCalculated;
        UINT gpioBitMap;
+
     S_BCM_DEBUG_STATE stDebugState;
 
 };
index 4785d25..670a7a4 100644 (file)
@@ -44,24 +44,21 @@ static INT bcm_close(struct net_device *dev)
 
 static struct net_device_stats *bcm_get_stats(struct net_device *dev)
 {
-    PLINUX_DEP_DATA pLinuxData=NULL;
-       PMINI_ADAPTER Adapter = NULL ;// gpadapter ;
-       Adapter = GET_BCM_ADAPTER(dev);
-    pLinuxData = (PLINUX_DEP_DATA)(Adapter->pvOsDepData);
-
-    //BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, DRV_ENTRY, DBG_LVL_ALL, "Dev = %p, pLinuxData = %p", dev, pLinuxData);
-       pLinuxData->netstats.rx_packets=atomic_read(&Adapter->RxRollOverCount)*64*1024+Adapter->PrevNumRecvDescs;
-       pLinuxData->netstats.rx_bytes=atomic_read(&Adapter->GoodRxByteCount)+atomic_read(&Adapter->BadRxByteCount);
-       pLinuxData->netstats.rx_dropped=atomic_read(&Adapter->RxPacketDroppedCount);
-       pLinuxData->netstats.rx_errors=atomic_read(&Adapter->RxPacketDroppedCount);
-       pLinuxData->netstats.rx_length_errors=0;
-       pLinuxData->netstats.rx_frame_errors=0;
-       pLinuxData->netstats.rx_crc_errors=0;
-       pLinuxData->netstats.tx_bytes=atomic_read(&Adapter->GoodTxByteCount);
-       pLinuxData->netstats.tx_packets=atomic_read(&Adapter->TxTotalPacketCount);
-       pLinuxData->netstats.tx_dropped=atomic_read(&Adapter->TxDroppedPacketCount);
-
-    return &(pLinuxData->netstats);
+       PMINI_ADAPTER Adapter = GET_BCM_ADAPTER(dev);
+       struct net_device_stats*        netstats = &dev->stats;
+
+       netstats->rx_packets = atomic_read(&Adapter->RxRollOverCount)*64*1024
+               + Adapter->PrevNumRecvDescs;
+       netstats->rx_bytes = atomic_read(&Adapter->GoodRxByteCount)
+               + atomic_read(&Adapter->BadRxByteCount);
+
+       netstats->rx_dropped = atomic_read(&Adapter->RxPacketDroppedCount);
+       netstats->rx_errors  = atomic_read(&Adapter->RxPacketDroppedCount);
+       netstats->tx_bytes   = atomic_read(&Adapter->GoodTxByteCount);
+       netstats->tx_packets = atomic_read(&Adapter->TxTotalPacketCount);
+       netstats->tx_dropped = atomic_read(&Adapter->TxDroppedPacketCount);
+
+       return netstats;
 }
 /**
 @ingroup init_functions
index 7b2ec28..5dd88f9 100644 (file)
@@ -185,9 +185,6 @@ int control_packet_handler  (PMINI_ADAPTER Adapter  /**< pointer to adapter obje
                        {
                                DEQUEUEPACKET(Adapter->RxControlHead,Adapter->RxControlTail);
 //                             Adapter->RxControlHead=ctrl_packet->next;
-                               ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.rx_packets++;
-                               ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.rx_bytes+=
-                               ((PLEADER)ctrl_packet->data)->PLength;
                        }
                        #if 0  //Idle mode debug profiling...
                        if(*(PUSHORT)ctrl_packet->data == IDLE_MODE_STATUS)
index cedeb8c..351a8ae 100644 (file)
@@ -60,15 +60,6 @@ InitAdapter(PMINI_ADAPTER psAdapter)
     //init_waitqueue_head(&psAdapter->device_wake_queue);
     psAdapter->fw_download_done=FALSE;
 
-    psAdapter->pvOsDepData = (PLINUX_DEP_DATA) kmalloc(sizeof(LINUX_DEP_DATA),
-                 GFP_KERNEL);
-
-    if(psAdapter->pvOsDepData == NULL)
-       {
-        BCM_DEBUG_PRINT(psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Linux Specific Data allocation failed");
-        return -ENOMEM;
-    }
-    memset(psAdapter->pvOsDepData, 0, sizeof(LINUX_DEP_DATA));
 
        default_wimax_protocol_initialize(psAdapter);
        for (i=0;i<MAX_CNTRL_PKTS;i++)
@@ -149,8 +140,7 @@ VOID AdapterFree(PMINI_ADAPTER Adapter)
                        bcm_kfree(Adapter->txctlpacket[count]);
        }
        FreeAdapterDsxBuffer(Adapter);
-       if(Adapter->pvOsDepData)
-               bcm_kfree (Adapter->pvOsDepData);
+
        if(Adapter->pvInterfaceAdapter)
                bcm_kfree(Adapter->pvInterfaceAdapter);
 
@@ -1969,9 +1959,7 @@ void update_per_sf_desc_cnts( PMINI_ADAPTER Adapter)
 void flush_queue(PMINI_ADAPTER Adapter, UINT iQIndex)
 {
        struct sk_buff*                         PacketToDrop=NULL;
-       struct net_device_stats*                netstats=NULL;
-
-       netstats = &((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats;
+       struct net_device_stats*                netstats = &Adapter->dev->stats;
 
        spin_lock_bh(&Adapter->PackInfo[iQIndex].SFQueueLock);
 
index 75b2b87..a86a38c 100644 (file)
@@ -362,18 +362,18 @@ VOID PruneQueue(PMINI_ADAPTER Adapter,/**<Pointer to the driver control structur
                                        )
 {
        struct sk_buff* PacketToDrop=NULL;
-       struct net_device_stats*  netstats=NULL;
+       struct net_device_stats *netstats;
 
        BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, PRUNE_QUEUE, DBG_LVL_ALL, "=====> Index %d",iIndex);
 
        if(iIndex == HiPriority)
-               return;
+               return;
 
        if(!Adapter || (iIndex < 0) || (iIndex > HiPriority))
                return;
 
        /* To Store the netdevice statistic */
-       netstats = &((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats;
+       netstats = &Adapter->dev->stats;
 
        spin_lock_bh(&Adapter->PackInfo[iIndex].SFQueueLock);
 
@@ -431,11 +431,9 @@ VOID flush_all_queues(PMINI_ADAPTER Adapter)
        INT             iQIndex;
        UINT    uiTotalPacketLength;
        struct sk_buff*                         PacketToDrop=NULL;
-       struct net_device_stats*        netstats=NULL;
+       struct net_device_stats*        netstats=&Adapter->dev->stats;
 
        BCM_DEBUG_PRINT(Adapter,DBG_TYPE_OTHERS, DUMP_INFO, DBG_LVL_ALL, "=====>");
-       /* To Store the netdevice statistic */
-       netstats = &((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats;
 
 //     down(&Adapter->data_packet_queue_lock);
        for(iQIndex=LowPriority; iQIndex<HiPriority; iQIndex++)
index 597786a..9848a6a 100644 (file)
@@ -212,9 +212,6 @@ INT SendControlPacket(PMINI_ADAPTER Adapter, /**<Logical Adapter*/
        Adapter->interface_transmit(Adapter->pvInterfaceAdapter,
                                        pControlPacket, (PLeader->PLength + LEADER_SIZE));
 
-       ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.tx_packets++;
-       ((PLINUX_DEP_DATA)Adapter->pvOsDepData)->netstats.tx_bytes+=
-                       PLeader->PLength;
        atomic_dec(&Adapter->CurrNumFreeTxDesc);
        BCM_DEBUG_PRINT(Adapter,DBG_TYPE_TX, TX_CONTROL, DBG_LVL_ALL, "<=========");
        return STATUS_SUCCESS;