Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92bc6058 authored by Stephen Hemminger's avatar Stephen Hemminger
Browse files

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: default avatarStephen Hemminger <shemminger@vyatta.com>
parent 2b5e6258
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -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;

};
+15 −18
Original line number Diff line number Diff line
@@ -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
+0 −3
Original line number Diff line number Diff line
@@ -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)
+2 −14
Original line number Diff line number Diff line
@@ -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);

+4 −6
Original line number Diff line number Diff line
@@ -362,7 +362,7 @@ 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);

@@ -373,7 +373,7 @@ VOID PruneQueue(PMINI_ADAPTER Adapter,/**<Pointer to the driver control structur
		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++)
Loading