Skip to content

Commit

Permalink
beceem: get rid of OS dependent data structure
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stephen Hemminger committed Oct 30, 2010
1 parent 2b5e625 commit 92bc605
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 56 deletions.
14 changes: 2 additions & 12 deletions drivers/staging/bcm/Adapter.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -629,6 +618,7 @@ struct _MINI_ADAPTER
struct semaphore LowPowerModeSync;
ULONG liDrainCalculated;
UINT gpioBitMap;

S_BCM_DEBUG_STATE stDebugState;

};
Expand Down
33 changes: 15 additions & 18 deletions drivers/staging/bcm/Bcmnet.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions drivers/staging/bcm/HandleControlPacket.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
16 changes: 2 additions & 14 deletions drivers/staging/bcm/Misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++)
Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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);

Expand Down
10 changes: 4 additions & 6 deletions drivers/staging/bcm/Qos.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down Expand Up @@ -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++)
Expand Down
3 changes: 0 additions & 3 deletions drivers/staging/bcm/Transmit.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 92bc605

Please sign in to comment.