Commit d7fbeba6 authored by Jeff Garzik's avatar Jeff Garzik

[netdrvr ibmlana, ibmveth] trim trailing whitespace

parent 860f242e
/* /*
net-3-driver for the IBM LAN Adapter/A net-3-driver for the IBM LAN Adapter/A
This is an extension to the Linux operating system, and is covered by the This is an extension to the Linux operating system, and is covered by the
...@@ -11,9 +11,9 @@ This driver is based both on the SK_MCA driver, which is itself based on the ...@@ -11,9 +11,9 @@ This driver is based both on the SK_MCA driver, which is itself based on the
SK_G16 and 3C523 driver. SK_G16 and 3C523 driver.
paper sources: paper sources:
'PC Hardware: Aufbau, Funktionsweise, Programmierung' by 'PC Hardware: Aufbau, Funktionsweise, Programmierung' by
Hans-Peter Messmer for the basic Microchannel stuff Hans-Peter Messmer for the basic Microchannel stuff
'Linux Geraetetreiber' by Allesandro Rubini, Kalle Dalheimer 'Linux Geraetetreiber' by Allesandro Rubini, Kalle Dalheimer
for help on Ethernet driver programming for help on Ethernet driver programming
...@@ -27,14 +27,14 @@ paper sources: ...@@ -27,14 +27,14 @@ paper sources:
special acknowledgements to: special acknowledgements to:
- Bob Eager for helping me out with documentation from IBM - Bob Eager for helping me out with documentation from IBM
- Jim Shorney for his endless patience with me while I was using - Jim Shorney for his endless patience with me while I was using
him as a beta tester to trace down the address filter bug ;-) him as a beta tester to trace down the address filter bug ;-)
Missing things: Missing things:
-> set debug level via ioctl instead of compile-time switches -> set debug level via ioctl instead of compile-time switches
-> I didn't follow the development of the 2.1.x kernels, so my -> I didn't follow the development of the 2.1.x kernels, so my
assumptions about which things changed with which kernel version assumptions about which things changed with which kernel version
are probably nonsense are probably nonsense
History: History:
...@@ -275,7 +275,7 @@ static void InitDscrs(struct net_device *dev) ...@@ -275,7 +275,7 @@ static void InitDscrs(struct net_device *dev)
priv->rrastart = raddr = priv->txbufstart + (TXBUFCNT * PKTSIZE); priv->rrastart = raddr = priv->txbufstart + (TXBUFCNT * PKTSIZE);
priv->rdastart = addr = priv->rrastart + (priv->rxbufcnt * sizeof(rra_t)); priv->rdastart = addr = priv->rrastart + (priv->rxbufcnt * sizeof(rra_t));
priv->rxbufstart = baddr = priv->rdastart + (priv->rxbufcnt * sizeof(rda_t)); priv->rxbufstart = baddr = priv->rdastart + (priv->rxbufcnt * sizeof(rda_t));
for (z = 0; z < priv->rxbufcnt; z++) { for (z = 0; z < priv->rxbufcnt; z++) {
rra.startlo = baddr; rra.startlo = baddr;
rra.starthi = 0; rra.starthi = 0;
...@@ -570,7 +570,7 @@ static void irqrx_handler(struct net_device *dev) ...@@ -570,7 +570,7 @@ static void irqrx_handler(struct net_device *dev)
lrdaaddr = priv->rdastart + (priv->lastrxdescr * sizeof(rda_t)); lrdaaddr = priv->rdastart + (priv->lastrxdescr * sizeof(rda_t));
memcpy_fromio(&rda, priv->base + rdaaddr, sizeof(rda_t)); memcpy_fromio(&rda, priv->base + rdaaddr, sizeof(rda_t));
/* iron out upper word halves of fields we use - SONIC will duplicate /* iron out upper word halves of fields we use - SONIC will duplicate
bits 0..15 to 16..31 */ bits 0..15 to 16..31 */
rda.status &= 0xffff; rda.status &= 0xffff;
...@@ -836,9 +836,9 @@ static int ibmlana_tx(struct sk_buff *skb, struct net_device *dev) ...@@ -836,9 +836,9 @@ static int ibmlana_tx(struct sk_buff *skb, struct net_device *dev)
baddr = priv->txbufstart + (priv->nexttxdescr * PKTSIZE); baddr = priv->txbufstart + (priv->nexttxdescr * PKTSIZE);
memcpy_toio(priv->base + baddr, skb->data, skb->len); memcpy_toio(priv->base + baddr, skb->data, skb->len);
/* copy filler into RAM - in case we're filling up... /* copy filler into RAM - in case we're filling up...
we're filling a bit more than necessary, but that doesn't harm we're filling a bit more than necessary, but that doesn't harm
since the buffer is far larger... since the buffer is far larger...
Sorry Linus for the filler string but I couldn't resist ;-) */ Sorry Linus for the filler string but I couldn't resist ;-) */
if (tmplen > skb->len) { if (tmplen > skb->len) {
...@@ -952,7 +952,7 @@ static int ibmlana_probe(struct net_device *dev) ...@@ -952,7 +952,7 @@ static int ibmlana_probe(struct net_device *dev)
priv->realirq = irq; priv->realirq = irq;
priv->medium = medium; priv->medium = medium;
spin_lock_init(&priv->lock); spin_lock_init(&priv->lock);
/* set base + irq for this device (irq not allocated so far) */ /* set base + irq for this device (irq not allocated so far) */
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
/* media enumeration - defined in a way that it fits onto the LAN/A's /* media enumeration - defined in a way that it fits onto the LAN/A's
POS registers... */ POS registers... */
typedef enum { typedef enum {
Media_10BaseT, Media_10Base5, Media_10BaseT, Media_10Base5,
Media_Unknown, Media_10Base2, Media_Count Media_Unknown, Media_10Base2, Media_Count
} ibmlana_medium; } ibmlana_medium;
...@@ -27,7 +27,7 @@ typedef enum { ...@@ -27,7 +27,7 @@ typedef enum {
typedef struct { typedef struct {
unsigned int slot; /* MCA-Slot-# */ unsigned int slot; /* MCA-Slot-# */
struct net_device_stats stat; /* packet statistics */ struct net_device_stats stat; /* packet statistics */
int realirq; /* memorizes actual IRQ, even when int realirq; /* memorizes actual IRQ, even when
currently not allocated */ currently not allocated */
ibmlana_medium medium; /* physical cannector */ ibmlana_medium medium; /* physical cannector */
u32 tdastart, txbufstart, /* addresses */ u32 tdastart, txbufstart, /* addresses */
...@@ -41,7 +41,7 @@ typedef struct { ...@@ -41,7 +41,7 @@ typedef struct {
spinlock_t lock; spinlock_t lock;
} ibmlana_priv; } ibmlana_priv;
/* this card uses quite a lot of I/O ports...luckily the MCA bus decodes /* this card uses quite a lot of I/O ports...luckily the MCA bus decodes
a full 64K I/O range... */ a full 64K I/O range... */
#define IBM_LANA_IORANGE 0xa0 #define IBM_LANA_IORANGE 0xa0
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
/* for use with IBM i/pSeries LPAR Linux. It utilizes the logical LAN */ /* for use with IBM i/pSeries LPAR Linux. It utilizes the logical LAN */
/* option of the RS/6000 Platform Architechture to interface with virtual */ /* option of the RS/6000 Platform Architechture to interface with virtual */
/* ethernet NICs that are presented to the partition by the hypervisor. */ /* ethernet NICs that are presented to the partition by the hypervisor. */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
/* /*
TODO: TODO:
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
#else #else
#define ibmveth_debug_printk_no_adapter(fmt, args...) #define ibmveth_debug_printk_no_adapter(fmt, args...)
#define ibmveth_debug_printk(fmt, args...) #define ibmveth_debug_printk(fmt, args...)
#define ibmveth_assert(expr) #define ibmveth_assert(expr)
#endif #endif
static int ibmveth_open(struct net_device *dev); static int ibmveth_open(struct net_device *dev);
...@@ -148,13 +148,13 @@ static int ibmveth_alloc_buffer_pool(struct ibmveth_buff_pool *pool) ...@@ -148,13 +148,13 @@ static int ibmveth_alloc_buffer_pool(struct ibmveth_buff_pool *pool)
{ {
int i; int i;
pool->free_map = kmalloc(sizeof(u16) * pool->size, GFP_KERNEL); pool->free_map = kmalloc(sizeof(u16) * pool->size, GFP_KERNEL);
if(!pool->free_map) { if(!pool->free_map) {
return -1; return -1;
} }
pool->dma_addr = kmalloc(sizeof(dma_addr_t) * pool->size, GFP_KERNEL); pool->dma_addr = kmalloc(sizeof(dma_addr_t) * pool->size, GFP_KERNEL);
if(!pool->dma_addr) { if(!pool->dma_addr) {
kfree(pool->free_map); kfree(pool->free_map);
pool->free_map = NULL; pool->free_map = NULL;
...@@ -215,7 +215,7 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc ...@@ -215,7 +215,7 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc
free_index = pool->consumer_index++ % pool->size; free_index = pool->consumer_index++ % pool->size;
index = pool->free_map[free_index]; index = pool->free_map[free_index];
ibmveth_assert(index != IBM_VETH_INVALID_MAP); ibmveth_assert(index != IBM_VETH_INVALID_MAP);
ibmveth_assert(pool->skbuff[index] == NULL); ibmveth_assert(pool->skbuff[index] == NULL);
...@@ -232,10 +232,10 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc ...@@ -232,10 +232,10 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc
desc.desc = 0; desc.desc = 0;
desc.fields.valid = 1; desc.fields.valid = 1;
desc.fields.length = pool->buff_size; desc.fields.length = pool->buff_size;
desc.fields.address = dma_addr; desc.fields.address = dma_addr;
lpar_rc = h_add_logical_lan_buffer(adapter->vdev->unit_address, desc.desc); lpar_rc = h_add_logical_lan_buffer(adapter->vdev->unit_address, desc.desc);
if(lpar_rc != H_SUCCESS) { if(lpar_rc != H_SUCCESS) {
pool->free_map[free_index] = index; pool->free_map[free_index] = index;
pool->skbuff[index] = NULL; pool->skbuff[index] = NULL;
...@@ -251,13 +251,13 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc ...@@ -251,13 +251,13 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc
adapter->replenish_add_buff_success++; adapter->replenish_add_buff_success++;
} }
} }
mb(); mb();
atomic_add(buffers_added, &(pool->available)); atomic_add(buffers_added, &(pool->available));
} }
/* replenish routine */ /* replenish routine */
static void ibmveth_replenish_task(struct ibmveth_adapter *adapter) static void ibmveth_replenish_task(struct ibmveth_adapter *adapter)
{ {
int i; int i;
...@@ -265,7 +265,7 @@ static void ibmveth_replenish_task(struct ibmveth_adapter *adapter) ...@@ -265,7 +265,7 @@ static void ibmveth_replenish_task(struct ibmveth_adapter *adapter)
for(i = 0; i < IbmVethNumBufferPools; i++) for(i = 0; i < IbmVethNumBufferPools; i++)
if(adapter->rx_buff_pool[i].active) if(adapter->rx_buff_pool[i].active)
ibmveth_replenish_buffer_pool(adapter, ibmveth_replenish_buffer_pool(adapter,
&adapter->rx_buff_pool[i]); &adapter->rx_buff_pool[i]);
adapter->rx_no_buffer = *(u64*)(((char*)adapter->buffer_list_addr) + 4096 - 8); adapter->rx_no_buffer = *(u64*)(((char*)adapter->buffer_list_addr) + 4096 - 8);
...@@ -372,7 +372,7 @@ static void ibmveth_rxq_recycle_buffer(struct ibmveth_adapter *adapter) ...@@ -372,7 +372,7 @@ static void ibmveth_rxq_recycle_buffer(struct ibmveth_adapter *adapter)
desc.fields.address = adapter->rx_buff_pool[pool].dma_addr[index]; desc.fields.address = adapter->rx_buff_pool[pool].dma_addr[index];
lpar_rc = h_add_logical_lan_buffer(adapter->vdev->unit_address, desc.desc); lpar_rc = h_add_logical_lan_buffer(adapter->vdev->unit_address, desc.desc);
if(lpar_rc != H_SUCCESS) { if(lpar_rc != H_SUCCESS) {
ibmveth_debug_printk("h_add_logical_lan_buffer failed during recycle rc=%ld", lpar_rc); ibmveth_debug_printk("h_add_logical_lan_buffer failed during recycle rc=%ld", lpar_rc);
ibmveth_remove_buffer_from_pool(adapter, adapter->rx_queue.queue_addr[adapter->rx_queue.index].correlator); ibmveth_remove_buffer_from_pool(adapter, adapter->rx_queue.queue_addr[adapter->rx_queue.index].correlator);
...@@ -407,7 +407,7 @@ static void ibmveth_cleanup(struct ibmveth_adapter *adapter) ...@@ -407,7 +407,7 @@ static void ibmveth_cleanup(struct ibmveth_adapter *adapter)
} }
free_page((unsigned long)adapter->buffer_list_addr); free_page((unsigned long)adapter->buffer_list_addr);
adapter->buffer_list_addr = NULL; adapter->buffer_list_addr = NULL;
} }
if(adapter->filter_list_addr != NULL) { if(adapter->filter_list_addr != NULL) {
if(!dma_mapping_error(adapter->filter_list_dma)) { if(!dma_mapping_error(adapter->filter_list_dma)) {
...@@ -434,7 +434,7 @@ static void ibmveth_cleanup(struct ibmveth_adapter *adapter) ...@@ -434,7 +434,7 @@ static void ibmveth_cleanup(struct ibmveth_adapter *adapter)
for(i = 0; i<IbmVethNumBufferPools; i++) for(i = 0; i<IbmVethNumBufferPools; i++)
if (adapter->rx_buff_pool[i].active) if (adapter->rx_buff_pool[i].active)
ibmveth_free_buffer_pool(adapter, ibmveth_free_buffer_pool(adapter,
&adapter->rx_buff_pool[i]); &adapter->rx_buff_pool[i]);
} }
...@@ -452,10 +452,10 @@ static int ibmveth_open(struct net_device *netdev) ...@@ -452,10 +452,10 @@ static int ibmveth_open(struct net_device *netdev)
for(i = 0; i<IbmVethNumBufferPools; i++) for(i = 0; i<IbmVethNumBufferPools; i++)
rxq_entries += adapter->rx_buff_pool[i].size; rxq_entries += adapter->rx_buff_pool[i].size;
adapter->buffer_list_addr = (void*) get_zeroed_page(GFP_KERNEL); adapter->buffer_list_addr = (void*) get_zeroed_page(GFP_KERNEL);
adapter->filter_list_addr = (void*) get_zeroed_page(GFP_KERNEL); adapter->filter_list_addr = (void*) get_zeroed_page(GFP_KERNEL);
if(!adapter->buffer_list_addr || !adapter->filter_list_addr) { if(!adapter->buffer_list_addr || !adapter->filter_list_addr) {
ibmveth_error_printk("unable to allocate filter or buffer list pages\n"); ibmveth_error_printk("unable to allocate filter or buffer list pages\n");
ibmveth_cleanup(adapter); ibmveth_cleanup(adapter);
...@@ -503,7 +503,7 @@ static int ibmveth_open(struct net_device *netdev) ...@@ -503,7 +503,7 @@ static int ibmveth_open(struct net_device *netdev)
ibmveth_debug_printk("filter list @ 0x%p\n", adapter->filter_list_addr); ibmveth_debug_printk("filter list @ 0x%p\n", adapter->filter_list_addr);
ibmveth_debug_printk("receive q @ 0x%p\n", adapter->rx_queue.queue_addr); ibmveth_debug_printk("receive q @ 0x%p\n", adapter->rx_queue.queue_addr);
lpar_rc = h_register_logical_lan(adapter->vdev->unit_address, lpar_rc = h_register_logical_lan(adapter->vdev->unit_address,
adapter->buffer_list_dma, adapter->buffer_list_dma,
rxq_desc.desc, rxq_desc.desc,
...@@ -518,7 +518,7 @@ static int ibmveth_open(struct net_device *netdev) ...@@ -518,7 +518,7 @@ static int ibmveth_open(struct net_device *netdev)
rxq_desc.desc, rxq_desc.desc,
mac_address); mac_address);
ibmveth_cleanup(adapter); ibmveth_cleanup(adapter);
return -ENONET; return -ENONET;
} }
for(i = 0; i<IbmVethNumBufferPools; i++) { for(i = 0; i<IbmVethNumBufferPools; i++) {
...@@ -557,7 +557,7 @@ static int ibmveth_close(struct net_device *netdev) ...@@ -557,7 +557,7 @@ static int ibmveth_close(struct net_device *netdev)
{ {
struct ibmveth_adapter *adapter = netdev->priv; struct ibmveth_adapter *adapter = netdev->priv;
long lpar_rc; long lpar_rc;
ibmveth_debug_printk("close starting\n"); ibmveth_debug_printk("close starting\n");
if (!adapter->pool_config) if (!adapter->pool_config)
...@@ -705,7 +705,7 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev) ...@@ -705,7 +705,7 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
desc[5].desc, desc[5].desc,
correlator); correlator);
} while ((lpar_rc == H_BUSY) && (retry_count--)); } while ((lpar_rc == H_BUSY) && (retry_count--));
if(lpar_rc != H_SUCCESS && lpar_rc != H_DROPPED) { if(lpar_rc != H_SUCCESS && lpar_rc != H_DROPPED) {
int i; int i;
ibmveth_error_printk("tx: h_send_logical_lan failed with rc=%ld\n", lpar_rc); ibmveth_error_printk("tx: h_send_logical_lan failed with rc=%ld\n", lpar_rc);
...@@ -791,7 +791,7 @@ static int ibmveth_poll(struct net_device *netdev, int *budget) ...@@ -791,7 +791,7 @@ static int ibmveth_poll(struct net_device *netdev, int *budget)
/* more work to do - return that we are not done yet */ /* more work to do - return that we are not done yet */
netdev->quota -= frames_processed; netdev->quota -= frames_processed;
*budget -= frames_processed; *budget -= frames_processed;
return 1; return 1;
} }
/* we think we are done - reenable interrupts, then check once more to make sure we are done */ /* we think we are done - reenable interrupts, then check once more to make sure we are done */
...@@ -817,7 +817,7 @@ static int ibmveth_poll(struct net_device *netdev, int *budget) ...@@ -817,7 +817,7 @@ static int ibmveth_poll(struct net_device *netdev, int *budget)
} }
static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance, struct pt_regs *regs) static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance, struct pt_regs *regs)
{ {
struct net_device *netdev = dev_instance; struct net_device *netdev = dev_instance;
struct ibmveth_adapter *adapter = netdev->priv; struct ibmveth_adapter *adapter = netdev->priv;
unsigned long lpar_rc; unsigned long lpar_rc;
...@@ -873,7 +873,7 @@ static void ibmveth_set_multicast_list(struct net_device *netdev) ...@@ -873,7 +873,7 @@ static void ibmveth_set_multicast_list(struct net_device *netdev)
ibmveth_error_printk("h_multicast_ctrl rc=%ld when adding an entry to the filter table\n", lpar_rc); ibmveth_error_printk("h_multicast_ctrl rc=%ld when adding an entry to the filter table\n", lpar_rc);
} }
} }
/* re-enable filtering */ /* re-enable filtering */
lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address, lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address,
IbmVethMcastEnableFiltering, IbmVethMcastEnableFiltering,
...@@ -915,7 +915,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_ ...@@ -915,7 +915,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
unsigned int *mcastFilterSize_p; unsigned int *mcastFilterSize_p;
ibmveth_debug_printk_no_adapter("entering ibmveth_probe for UA 0x%x\n", ibmveth_debug_printk_no_adapter("entering ibmveth_probe for UA 0x%x\n",
dev->unit_address); dev->unit_address);
mac_addr_p = (unsigned char *) vio_get_attribute(dev, VETH_MAC_ADDR, 0); mac_addr_p = (unsigned char *) vio_get_attribute(dev, VETH_MAC_ADDR, 0);
...@@ -924,7 +924,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_ ...@@ -924,7 +924,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
"attribute\n", __FILE__, __LINE__); "attribute\n", __FILE__, __LINE__);
return 0; return 0;
} }
mcastFilterSize_p= (unsigned int *) vio_get_attribute(dev, VETH_MCAST_FILTER_SIZE, 0); mcastFilterSize_p= (unsigned int *) vio_get_attribute(dev, VETH_MCAST_FILTER_SIZE, 0);
if(!mcastFilterSize_p) { if(!mcastFilterSize_p) {
printk(KERN_ERR "(%s:%3.3d) ERROR: Can't find " printk(KERN_ERR "(%s:%3.3d) ERROR: Can't find "
...@@ -932,7 +932,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_ ...@@ -932,7 +932,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
__FILE__, __LINE__); __FILE__, __LINE__);
return 0; return 0;
} }
netdev = alloc_etherdev(sizeof(struct ibmveth_adapter)); netdev = alloc_etherdev(sizeof(struct ibmveth_adapter));
if(!netdev) if(!netdev)
...@@ -948,13 +948,13 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_ ...@@ -948,13 +948,13 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
adapter->netdev = netdev; adapter->netdev = netdev;
adapter->mcastFilterSize= *mcastFilterSize_p; adapter->mcastFilterSize= *mcastFilterSize_p;
adapter->pool_config = 0; adapter->pool_config = 0;
/* Some older boxes running PHYP non-natively have an OF that /* Some older boxes running PHYP non-natively have an OF that
returns a 8-byte local-mac-address field (and the first returns a 8-byte local-mac-address field (and the first
2 bytes have to be ignored) while newer boxes' OF return 2 bytes have to be ignored) while newer boxes' OF return
a 6-byte field. Note that IEEE 1275 specifies that a 6-byte field. Note that IEEE 1275 specifies that
local-mac-address must be a 6-byte field. local-mac-address must be a 6-byte field.
The RPA doc specifies that the first byte must be 10b, so The RPA doc specifies that the first byte must be 10b, so
we'll just look for it to solve this 8 vs. 6 byte field issue */ we'll just look for it to solve this 8 vs. 6 byte field issue */
if ((*mac_addr_p & 0x3) != 0x02) if ((*mac_addr_p & 0x3) != 0x02)
...@@ -964,7 +964,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_ ...@@ -964,7 +964,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
memcpy(&adapter->mac_addr, mac_addr_p, 6); memcpy(&adapter->mac_addr, mac_addr_p, 6);
adapter->liobn = dev->iommu_table->it_index; adapter->liobn = dev->iommu_table->it_index;
netdev->irq = dev->irq; netdev->irq = dev->irq;
netdev->open = ibmveth_open; netdev->open = ibmveth_open;
netdev->poll = ibmveth_poll; netdev->poll = ibmveth_poll;
...@@ -977,15 +977,15 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_ ...@@ -977,15 +977,15 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
netdev->ethtool_ops = &netdev_ethtool_ops; netdev->ethtool_ops = &netdev_ethtool_ops;
netdev->change_mtu = ibmveth_change_mtu; netdev->change_mtu = ibmveth_change_mtu;
SET_NETDEV_DEV(netdev, &dev->dev); SET_NETDEV_DEV(netdev, &dev->dev);
netdev->features |= NETIF_F_LLTX; netdev->features |= NETIF_F_LLTX;
spin_lock_init(&adapter->stats_lock); spin_lock_init(&adapter->stats_lock);
memcpy(&netdev->dev_addr, &adapter->mac_addr, netdev->addr_len); memcpy(&netdev->dev_addr, &adapter->mac_addr, netdev->addr_len);
for(i = 0; i<IbmVethNumBufferPools; i++) { for(i = 0; i<IbmVethNumBufferPools; i++) {
struct kobject *kobj = &adapter->rx_buff_pool[i].kobj; struct kobject *kobj = &adapter->rx_buff_pool[i].kobj;
ibmveth_init_buffer_pool(&adapter->rx_buff_pool[i], i, ibmveth_init_buffer_pool(&adapter->rx_buff_pool[i], i,
pool_count[i], pool_size[i], pool_count[i], pool_size[i],
pool_active[i]); pool_active[i]);
kobj->parent = &dev->dev.kobj; kobj->parent = &dev->dev.kobj;
sprintf(kobj->name, "pool%d", i); sprintf(kobj->name, "pool%d", i);
...@@ -1047,7 +1047,7 @@ static void ibmveth_proc_unregister_driver(void) ...@@ -1047,7 +1047,7 @@ static void ibmveth_proc_unregister_driver(void)
remove_proc_entry(IBMVETH_PROC_DIR, NULL); remove_proc_entry(IBMVETH_PROC_DIR, NULL);
} }
static void *ibmveth_seq_start(struct seq_file *seq, loff_t *pos) static void *ibmveth_seq_start(struct seq_file *seq, loff_t *pos)
{ {
if (*pos == 0) { if (*pos == 0) {
return (void *)1; return (void *)1;
...@@ -1062,18 +1062,18 @@ static void *ibmveth_seq_next(struct seq_file *seq, void *v, loff_t *pos) ...@@ -1062,18 +1062,18 @@ static void *ibmveth_seq_next(struct seq_file *seq, void *v, loff_t *pos)
return NULL; return NULL;
} }
static void ibmveth_seq_stop(struct seq_file *seq, void *v) static void ibmveth_seq_stop(struct seq_file *seq, void *v)
{ {
} }
static int ibmveth_seq_show(struct seq_file *seq, void *v) static int ibmveth_seq_show(struct seq_file *seq, void *v)
{ {
struct ibmveth_adapter *adapter = seq->private; struct ibmveth_adapter *adapter = seq->private;
char *current_mac = ((char*) &adapter->netdev->dev_addr); char *current_mac = ((char*) &adapter->netdev->dev_addr);
char *firmware_mac = ((char*) &adapter->mac_addr) ; char *firmware_mac = ((char*) &adapter->mac_addr) ;
seq_printf(seq, "%s %s\n\n", ibmveth_driver_string, ibmveth_driver_version); seq_printf(seq, "%s %s\n\n", ibmveth_driver_string, ibmveth_driver_version);
seq_printf(seq, "Unit Address: 0x%x\n", adapter->vdev->unit_address); seq_printf(seq, "Unit Address: 0x%x\n", adapter->vdev->unit_address);
seq_printf(seq, "LIOBN: 0x%lx\n", adapter->liobn); seq_printf(seq, "LIOBN: 0x%lx\n", adapter->liobn);
seq_printf(seq, "Current MAC: %02X:%02X:%02X:%02X:%02X:%02X\n", seq_printf(seq, "Current MAC: %02X:%02X:%02X:%02X:%02X:%02X\n",
...@@ -1082,7 +1082,7 @@ static int ibmveth_seq_show(struct seq_file *seq, void *v) ...@@ -1082,7 +1082,7 @@ static int ibmveth_seq_show(struct seq_file *seq, void *v)
seq_printf(seq, "Firmware MAC: %02X:%02X:%02X:%02X:%02X:%02X\n", seq_printf(seq, "Firmware MAC: %02X:%02X:%02X:%02X:%02X:%02X\n",
firmware_mac[0], firmware_mac[1], firmware_mac[2], firmware_mac[0], firmware_mac[1], firmware_mac[2],
firmware_mac[3], firmware_mac[4], firmware_mac[5]); firmware_mac[3], firmware_mac[4], firmware_mac[5]);
seq_printf(seq, "\nAdapter Statistics:\n"); seq_printf(seq, "\nAdapter Statistics:\n");
seq_printf(seq, " TX: skbuffs linearized: %ld\n", adapter->tx_linearized); seq_printf(seq, " TX: skbuffs linearized: %ld\n", adapter->tx_linearized);
seq_printf(seq, " multi-descriptor sends: %ld\n", adapter->tx_multidesc_send); seq_printf(seq, " multi-descriptor sends: %ld\n", adapter->tx_multidesc_send);
...@@ -1094,7 +1094,7 @@ static int ibmveth_seq_show(struct seq_file *seq, void *v) ...@@ -1094,7 +1094,7 @@ static int ibmveth_seq_show(struct seq_file *seq, void *v)
seq_printf(seq, " add buffer failures: %ld\n", adapter->replenish_add_buff_failure); seq_printf(seq, " add buffer failures: %ld\n", adapter->replenish_add_buff_failure);
seq_printf(seq, " invalid buffers: %ld\n", adapter->rx_invalid_buffer); seq_printf(seq, " invalid buffers: %ld\n", adapter->rx_invalid_buffer);
seq_printf(seq, " no buffers: %ld\n", adapter->rx_no_buffer); seq_printf(seq, " no buffers: %ld\n", adapter->rx_no_buffer);
return 0; return 0;
} }
static struct seq_operations ibmveth_seq_ops = { static struct seq_operations ibmveth_seq_ops = {
...@@ -1152,11 +1152,11 @@ static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter) ...@@ -1152,11 +1152,11 @@ static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter)
} }
#else /* CONFIG_PROC_FS */ #else /* CONFIG_PROC_FS */
static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter) static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter)
{ {
} }
static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter) static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter)
{ {
} }
static void ibmveth_proc_register_driver(void) static void ibmveth_proc_register_driver(void)
...@@ -1175,7 +1175,7 @@ static struct attribute veth_size_attr; ...@@ -1175,7 +1175,7 @@ static struct attribute veth_size_attr;
static ssize_t veth_pool_show(struct kobject * kobj, static ssize_t veth_pool_show(struct kobject * kobj,
struct attribute * attr, char * buf) struct attribute * attr, char * buf)
{ {
struct ibmveth_buff_pool *pool = container_of(kobj, struct ibmveth_buff_pool *pool = container_of(kobj,
struct ibmveth_buff_pool, struct ibmveth_buff_pool,
kobj); kobj);
...@@ -1191,10 +1191,10 @@ static ssize_t veth_pool_show(struct kobject * kobj, ...@@ -1191,10 +1191,10 @@ static ssize_t veth_pool_show(struct kobject * kobj,
static ssize_t veth_pool_store(struct kobject * kobj, struct attribute * attr, static ssize_t veth_pool_store(struct kobject * kobj, struct attribute * attr,
const char * buf, size_t count) const char * buf, size_t count)
{ {
struct ibmveth_buff_pool *pool = container_of(kobj, struct ibmveth_buff_pool *pool = container_of(kobj,
struct ibmveth_buff_pool, struct ibmveth_buff_pool,
kobj); kobj);
struct net_device *netdev = struct net_device *netdev =
container_of(kobj->parent, struct device, kobj)->driver_data; container_of(kobj->parent, struct device, kobj)->driver_data;
struct ibmveth_adapter *adapter = netdev->priv; struct ibmveth_adapter *adapter = netdev->priv;
long value = simple_strtol(buf, NULL, 10); long value = simple_strtol(buf, NULL, 10);
...@@ -1323,7 +1323,7 @@ static void __exit ibmveth_module_exit(void) ...@@ -1323,7 +1323,7 @@ static void __exit ibmveth_module_exit(void)
{ {
vio_unregister_driver(&ibmveth_driver); vio_unregister_driver(&ibmveth_driver);
ibmveth_proc_unregister_driver(); ibmveth_proc_unregister_driver();
} }
module_init(ibmveth_module_init); module_init(ibmveth_module_init);
module_exit(ibmveth_module_exit); module_exit(ibmveth_module_exit);
...@@ -139,7 +139,7 @@ struct ibmveth_adapter { ...@@ -139,7 +139,7 @@ struct ibmveth_adapter {
spinlock_t stats_lock; spinlock_t stats_lock;
}; };
struct ibmveth_buf_desc_fields { struct ibmveth_buf_desc_fields {
u32 valid : 1; u32 valid : 1;
u32 toggle : 1; u32 toggle : 1;
u32 reserved : 6; u32 reserved : 6;
...@@ -148,7 +148,7 @@ struct ibmveth_buf_desc_fields { ...@@ -148,7 +148,7 @@ struct ibmveth_buf_desc_fields {
}; };
union ibmveth_buf_desc { union ibmveth_buf_desc {
u64 desc; u64 desc;
struct ibmveth_buf_desc_fields fields; struct ibmveth_buf_desc_fields fields;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment