From 43d620c82985b19008d87a437b4cf83f356264f7 Mon Sep 17 00:00:00 2001 From: Joe Perches Date: Thu, 16 Jun 2011 19:08:06 +0000 Subject: drivers/net: Remove casts of void * MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unnecessary casts of void * clutter the code. These are the remainder casts after several specific patches to remove netdev_priv and dev_priv. Done via coccinelle script (and a little editing): $ cat cast_void_pointer.cocci @@ type T; T *pt; void *pv; @@ - pt = (T *)pv; + pt = pv; Signed-off-by: Joe Perches Acked-by: Sjur Brændeland Acked-By: Chris Snook Acked-by: Jon Mason Acked-by: Geert Uytterhoeven Acked-by: David Dillow Signed-off-by: David S. Miller --- drivers/net/bna/bfa_cee.c | 2 +- drivers/net/bna/cna.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/net/bna') diff --git a/drivers/net/bna/bfa_cee.c b/drivers/net/bna/bfa_cee.c index f7b789a3b21..dcfbf08bcf4 100644 --- a/drivers/net/bna/bfa_cee.c +++ b/drivers/net/bna/bfa_cee.c @@ -236,7 +236,7 @@ static void bfa_cee_hbfail(void *arg) { struct bfa_cee *cee; - cee = (struct bfa_cee *) arg; + cee = arg; if (cee->get_attr_pending == true) { cee->get_attr_status = BFA_STATUS_FAILED; diff --git a/drivers/net/bna/cna.h b/drivers/net/bna/cna.h index bbd39dc6597..3c47dc52b42 100644 --- a/drivers/net/bna/cna.h +++ b/drivers/net/bna/cna.h @@ -74,7 +74,7 @@ typedef struct mac { u8 mac[MAC_ADDRLEN]; } mac_t; bfa_q_next(_q) = bfa_q_next(*((struct list_head **) _qe)); \ bfa_q_qe_init(*((struct list_head **) _qe)); \ } else { \ - *((struct list_head **) (_qe)) = (struct list_head *) NULL; \ + *((struct list_head **)(_qe)) = NULL; \ } \ } -- cgit v1.2.3-70-g09d2 From 95cb3656c09fcf6577138337216c27744ebc91e2 Mon Sep 17 00:00:00 2001 From: Jesper Juhl Date: Fri, 24 Jun 2011 02:40:08 -0700 Subject: net: Remove unneeded version.h includes from drivers/net/ It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/net/. This patch removes them. Signed-off-by: Jesper Juhl Signed-off-by: David S. Miller --- drivers/net/atl1c/atl1c.h | 1 - drivers/net/atl1e/atl1e.h | 1 - drivers/net/benet/be.h | 1 - drivers/net/bna/cna.h | 1 - drivers/net/caif/caif_serial.c | 1 - drivers/net/caif/caif_shm_u5500.c | 1 - drivers/net/caif/caif_spi.c | 1 - drivers/net/caif/caif_spi_slave.c | 1 - drivers/net/can/c_can/c_can.c | 1 - drivers/net/can/c_can/c_can_platform.c | 1 - drivers/net/can/softing/softing_main.c | 1 - drivers/net/cxgb4vf/cxgb4vf_main.c | 1 - drivers/net/cxgb4vf/t4vf_hw.c | 1 - drivers/net/davinci_emac.c | 1 - drivers/net/pptp.c | 1 - drivers/net/sfc/net_driver.h | 1 - drivers/net/usb/cdc_ncm.c | 1 - drivers/net/wireless/rtlwifi/wifi.h | 1 - 18 files changed, 18 deletions(-) (limited to 'drivers/net/bna') diff --git a/drivers/net/atl1c/atl1c.h b/drivers/net/atl1c/atl1c.h index dfe4370ccc9..0f481b983bc 100644 --- a/drivers/net/atl1c/atl1c.h +++ b/drivers/net/atl1c/atl1c.h @@ -22,7 +22,6 @@ #ifndef _ATL1C_H_ #define _ATL1C_H_ -#include #include #include #include diff --git a/drivers/net/atl1e/atl1e.h b/drivers/net/atl1e/atl1e.h index 9ac37e3ec8f..8c8181b5328 100644 --- a/drivers/net/atl1e/atl1e.h +++ b/drivers/net/atl1e/atl1e.h @@ -23,7 +23,6 @@ #ifndef _ATL1E_H_ #define _ATL1E_H_ -#include #include #include #include diff --git a/drivers/net/benet/be.h b/drivers/net/benet/be.h index a36f5a6a846..9aa1534c7d8 100644 --- a/drivers/net/benet/be.h +++ b/drivers/net/benet/be.h @@ -20,7 +20,6 @@ #include #include -#include #include #include #include diff --git a/drivers/net/bna/cna.h b/drivers/net/bna/cna.h index 3c47dc52b42..01b4af73302 100644 --- a/drivers/net/bna/cna.h +++ b/drivers/net/bna/cna.h @@ -19,7 +19,6 @@ #ifndef __CNA_H__ #define __CNA_H__ -#include #include #include #include diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c index 1cd0b59d13c..23406e62c0b 100644 --- a/drivers/net/caif/caif_serial.c +++ b/drivers/net/caif/caif_serial.c @@ -6,7 +6,6 @@ #include #include -#include #include #include #include diff --git a/drivers/net/caif/caif_shm_u5500.c b/drivers/net/caif/caif_shm_u5500.c index 5f771ab712c..89d76b7b325 100644 --- a/drivers/net/caif/caif_shm_u5500.c +++ b/drivers/net/caif/caif_shm_u5500.c @@ -7,7 +7,6 @@ #define pr_fmt(fmt) KBUILD_MODNAME ":" fmt -#include #include #include #include diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c index 57e63937381..0f8defc7330 100644 --- a/drivers/net/caif/caif_spi.c +++ b/drivers/net/caif/caif_spi.c @@ -5,7 +5,6 @@ * License terms: GNU General Public License (GPL) version 2. */ -#include #include #include #include diff --git a/drivers/net/caif/caif_spi_slave.c b/drivers/net/caif/caif_spi_slave.c index b009e03cda9..e139e133fc7 100644 --- a/drivers/net/caif/caif_spi_slave.c +++ b/drivers/net/caif/caif_spi_slave.c @@ -4,7 +4,6 @@ * Author: Daniel Martensson / Daniel.Martensson@stericsson.com * License terms: GNU General Public License (GPL) version 2. */ -#include #include #include #include diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c index 7e5cc0bd913..80adc83f796 100644 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c @@ -26,7 +26,6 @@ */ #include -#include #include #include #include diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c index cc90824f2c9..0e300cf840b 100644 --- a/drivers/net/can/c_can/c_can_platform.c +++ b/drivers/net/can/c_can/c_can_platform.c @@ -20,7 +20,6 @@ */ #include -#include #include #include #include diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c index 954b2959b6b..a79925e72d6 100644 --- a/drivers/net/can/softing/softing_main.c +++ b/drivers/net/can/softing/softing_main.c @@ -17,7 +17,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include #include #include #include diff --git a/drivers/net/cxgb4vf/cxgb4vf_main.c b/drivers/net/cxgb4vf/cxgb4vf_main.c index e71c08e547e..8a6f8911bc5 100644 --- a/drivers/net/cxgb4vf/cxgb4vf_main.c +++ b/drivers/net/cxgb4vf/cxgb4vf_main.c @@ -33,7 +33,6 @@ * SOFTWARE. */ -#include #include #include #include diff --git a/drivers/net/cxgb4vf/t4vf_hw.c b/drivers/net/cxgb4vf/t4vf_hw.c index 192db226ec7..fe3fd3dad6f 100644 --- a/drivers/net/cxgb4vf/t4vf_hw.c +++ b/drivers/net/cxgb4vf/t4vf_hw.c @@ -33,7 +33,6 @@ * SOFTWARE. */ -#include #include #include "t4vf_common.h" diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 55c8245b0cd..acef7e96c9f 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c @@ -48,7 +48,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/net/pptp.c b/drivers/net/pptp.c index 1286fe212dc..eae542a7e98 100644 --- a/drivers/net/pptp.c +++ b/drivers/net/pptp.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h index e8d5f03a89f..1affbf4d708 100644 --- a/drivers/net/sfc/net_driver.h +++ b/drivers/net/sfc/net_driver.h @@ -17,7 +17,6 @@ #define DEBUG #endif -#include #include #include #include diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index f33ca6aa29e..fd622a66ebb 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -47,7 +47,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h index 9d003e0864f..75dff1e095f 100644 --- a/drivers/net/wireless/rtlwifi/wifi.h +++ b/drivers/net/wireless/rtlwifi/wifi.h @@ -32,7 +32,6 @@ #include #include -#include #include #include #include -- cgit v1.2.3-70-g09d2 From 0a0e2344a62ce9e7fac6129d6292e59aecfceced Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Fri, 8 Jul 2011 05:29:30 +0000 Subject: bna: use netdev_alloc_skb_ip_align() Some workloads need some headroom (NET_SKB_PAD) to avoid expensive reallocations. Using netdev_alloc_skb_ip_align() instead of bare skb_alloc() brings the NET_IP_ALIGN and the NET_SKB_PAD headroom. Signed-off-by: Eric Dumazet CC: Rasesh Mody CC: Debashis Dutt Signed-off-by: David S. Miller --- drivers/net/bna/bnad.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'drivers/net/bna') diff --git a/drivers/net/bna/bnad.c b/drivers/net/bna/bnad.c index 44e219c910d..795b93b73b1 100644 --- a/drivers/net/bna/bnad.c +++ b/drivers/net/bna/bnad.c @@ -386,14 +386,12 @@ bnad_alloc_n_post_rxbufs(struct bnad *bnad, struct bna_rcb *rcb) BNA_RXQ_QPGE_PTR_GET(unmap_prod, rcb->sw_qpt, rxent, wi_range); } - skb = alloc_skb(rcb->rxq->buffer_size + NET_IP_ALIGN, - GFP_ATOMIC); + skb = netdev_alloc_skb_ip_align(bnad->netdev, + rcb->rxq->buffer_size); if (unlikely(!skb)) { BNAD_UPDATE_CTR(bnad, rxbuf_alloc_failed); goto finishing; } - skb->dev = bnad->netdev; - skb_reserve(skb, NET_IP_ALIGN); unmap_array[unmap_prod].skb = skb; dma_addr = dma_map_single(&bnad->pcidev->dev, skb->data, rcb->rxq->buffer_size, -- cgit v1.2.3-70-g09d2 From 8279171a5fe95902be12f4018907f246d51616d4 Mon Sep 17 00:00:00 2001 From: Shyam Iyer Date: Thu, 14 Jul 2011 15:00:32 +0000 Subject: Separate handling of irq type flags variable from the irq_flags request_irq variable Commit 5f77898de17ff983ff0e2988b73a6bdf4b6f9f8b does not completely fix the problem of handling allocations with irqs disabled.. The below patch on top of it fixes the problem completely. Based on review by "Ivan Vecera" .. " Small note, the root of the problem was that non-atomic allocation was requested with IRQs disabled. Your patch description does not contain wwhy were the IRQs disabled. The function bnad_mbox_irq_alloc incorrectly uses 'flags' var for two different things, 1) to save current CPU flags and 2) for request_irq call. First the spin_lock_irqsave disables the IRQs and saves _all_ CPU flags (including one that enables/disables interrupts) to 'flags'. Then the 'flags' is overwritten by 0 or 0x80 (IRQF_SHARED). Finally the spin_unlock_irqrestore should restore saved flags, but these flags are now either 0x00 or 0x80. The interrupt bit value in flags register on x86 arch is 0x100. This means that the interrupt bit is zero (IRQs disabled) after spin_unlock_irqrestore so the request_irq function is called with disabled interrupts. " Signed-off-by: Shyam Iyer Signed-off-by: David S. Miller --- drivers/net/bna/bnad.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'drivers/net/bna') diff --git a/drivers/net/bna/bnad.c b/drivers/net/bna/bnad.c index 795b93b73b1..fa997bfc2e5 100644 --- a/drivers/net/bna/bnad.c +++ b/drivers/net/bna/bnad.c @@ -1109,7 +1109,7 @@ bnad_mbox_irq_alloc(struct bnad *bnad, struct bna_intr_info *intr_info) { int err = 0; - unsigned long irq_flags = 0, flags; + unsigned long irq_flags, flags; u32 irq; irq_handler_t irq_handler; @@ -1123,6 +1123,7 @@ bnad_mbox_irq_alloc(struct bnad *bnad, if (bnad->cfg_flags & BNAD_CF_MSIX) { irq_handler = (irq_handler_t)bnad_msix_mbox_handler; irq = bnad->msix_table[bnad->msix_num - 1].vector; + irq_flags = 0; intr_info->intr_type = BNA_INTR_T_MSIX; intr_info->idl[0].vector = bnad->msix_num - 1; } else { @@ -1133,7 +1134,6 @@ bnad_mbox_irq_alloc(struct bnad *bnad, /* intr_info->idl.vector = 0 ? */ } spin_unlock_irqrestore(&bnad->bna_lock, flags); - flags = irq_flags; sprintf(bnad->mbox_irq_name, "%s", BNAD_NAME); /* @@ -1144,7 +1144,7 @@ bnad_mbox_irq_alloc(struct bnad *bnad, BNAD_UPDATE_CTR(bnad, mbox_intr_disabled); - err = request_irq(irq, irq_handler, flags, + err = request_irq(irq, irq_handler, irq_flags, bnad->mbox_irq_name, bnad); if (err) { -- cgit v1.2.3-70-g09d2 From f859d7cb7967efaedae194dd90a23a7a72fb216d Mon Sep 17 00:00:00 2001 From: Jiri Pirko Date: Wed, 20 Jul 2011 04:54:14 +0000 Subject: bnad: do vlan cleanup - unify vlan and nonvlan rx path - kill bnad->vlan_grp and bnad_vlan_rx_register Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller --- drivers/net/bna/bnad.c | 55 ++++++++++++++++---------------------------------- drivers/net/bna/bnad.h | 3 ++- 2 files changed, 19 insertions(+), 39 deletions(-) (limited to 'drivers/net/bna') diff --git a/drivers/net/bna/bnad.c b/drivers/net/bna/bnad.c index fa997bfc2e5..c89c9b28cb7 100644 --- a/drivers/net/bna/bnad.c +++ b/drivers/net/bna/bnad.c @@ -15,6 +15,7 @@ * All rights reserved * www.brocade.com */ +#include #include #include #include @@ -24,6 +25,7 @@ #include #include #include +#include #include "bnad.h" #include "bna.h" @@ -514,24 +516,16 @@ bnad_poll_cq(struct bnad *bnad, struct bna_ccb *ccb, int budget) rcb->rxq->rx_bytes += skb->len; skb->protocol = eth_type_trans(skb, bnad->netdev); - if (bnad->vlan_grp && (flags & BNA_CQ_EF_VLAN)) { - struct bnad_rx_ctrl *rx_ctrl = - (struct bnad_rx_ctrl *)ccb->ctrl; - if (skb->ip_summed == CHECKSUM_UNNECESSARY) - vlan_gro_receive(&rx_ctrl->napi, bnad->vlan_grp, - ntohs(cmpl->vlan_tag), skb); - else - vlan_hwaccel_receive_skb(skb, - bnad->vlan_grp, - ntohs(cmpl->vlan_tag)); - - } else { /* Not VLAN tagged/stripped */ - struct bnad_rx_ctrl *rx_ctrl = - (struct bnad_rx_ctrl *)ccb->ctrl; - if (skb->ip_summed == CHECKSUM_UNNECESSARY) - napi_gro_receive(&rx_ctrl->napi, skb); - else - netif_receive_skb(skb); + if (flags & BNA_CQ_EF_VLAN) + __vlan_hwaccel_put_tag(skb, ntohs(cmpl->vlan_tag)); + + if (skb->ip_summed == CHECKSUM_UNNECESSARY) { + struct bnad_rx_ctrl *rx_ctrl; + + rx_ctrl = (struct bnad_rx_ctrl *) ccb->ctrl; + napi_gro_receive(&rx_ctrl->napi, skb); + } else { + netif_receive_skb(skb); } next: @@ -1981,19 +1975,14 @@ bnad_enable_default_bcast(struct bnad *bnad) static void bnad_restore_vlans(struct bnad *bnad, u32 rx_id) { - u16 vlan_id; + u16 vid; unsigned long flags; - if (!bnad->vlan_grp) - return; - BUG_ON(!(VLAN_N_VID == (BFI_MAX_VLAN + 1))); - for (vlan_id = 0; vlan_id < VLAN_N_VID; vlan_id++) { - if (!vlan_group_get_device(bnad->vlan_grp, vlan_id)) - continue; + for_each_set_bit(vid, bnad->active_vlans, VLAN_N_VID) { spin_lock_irqsave(&bnad->bna_lock, flags); - bna_rx_vlan_add(bnad->rx_info[rx_id].rx, vlan_id); + bna_rx_vlan_add(bnad->rx_info[rx_id].rx, vid); spin_unlock_irqrestore(&bnad->bna_lock, flags); } } @@ -2795,17 +2784,6 @@ bnad_change_mtu(struct net_device *netdev, int new_mtu) return err; } -static void -bnad_vlan_rx_register(struct net_device *netdev, - struct vlan_group *vlan_grp) -{ - struct bnad *bnad = netdev_priv(netdev); - - mutex_lock(&bnad->conf_mutex); - bnad->vlan_grp = vlan_grp; - mutex_unlock(&bnad->conf_mutex); -} - static void bnad_vlan_rx_add_vid(struct net_device *netdev, unsigned short vid) @@ -2820,6 +2798,7 @@ bnad_vlan_rx_add_vid(struct net_device *netdev, spin_lock_irqsave(&bnad->bna_lock, flags); bna_rx_vlan_add(bnad->rx_info[0].rx, vid); + set_bit(vid, bnad->active_vlans); spin_unlock_irqrestore(&bnad->bna_lock, flags); mutex_unlock(&bnad->conf_mutex); @@ -2838,6 +2817,7 @@ bnad_vlan_rx_kill_vid(struct net_device *netdev, mutex_lock(&bnad->conf_mutex); spin_lock_irqsave(&bnad->bna_lock, flags); + clear_bit(vid, bnad->active_vlans); bna_rx_vlan_del(bnad->rx_info[0].rx, vid); spin_unlock_irqrestore(&bnad->bna_lock, flags); @@ -2887,7 +2867,6 @@ static const struct net_device_ops bnad_netdev_ops = { .ndo_validate_addr = eth_validate_addr, .ndo_set_mac_address = bnad_set_mac_address, .ndo_change_mtu = bnad_change_mtu, - .ndo_vlan_rx_register = bnad_vlan_rx_register, .ndo_vlan_rx_add_vid = bnad_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = bnad_vlan_rx_kill_vid, #ifdef CONFIG_NET_POLL_CONTROLLER diff --git a/drivers/net/bna/bnad.h b/drivers/net/bna/bnad.h index ccdabad0a40..7aa550b6182 100644 --- a/drivers/net/bna/bnad.h +++ b/drivers/net/bna/bnad.h @@ -24,6 +24,7 @@ #include #include #include +#include /* Fix for IA64 */ #include @@ -216,7 +217,7 @@ struct bnad { struct bnad_tx_info tx_info[BNAD_MAX_TXS]; struct bnad_rx_info rx_info[BNAD_MAX_RXS]; - struct vlan_group *vlan_grp; + unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)]; /* * These q numbers are global only because * they are used to calculate MSIx vectors. -- cgit v1.2.3-70-g09d2