1. 13 May, 2013 2 commits
    • Wei Yongjun's avatar
      bna: add missing iounmap() on error in bnad_init() · ba21fc69
      Wei Yongjun authored
      Add the missing iounmap() before return from bnad_init()
      in the error handling case.
      Introduced by commit 01b54b14
      (bna: tx rx cleanup fix).
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ba21fc69
    • Thadeu Lima de Souza Cascardo's avatar
      qlge: fix dma map leak when the last chunk is not allocated · ef380794
      Thadeu Lima de Souza Cascardo authored
      qlge allocates chunks from a page that it maps and unmaps that page when
      the last chunk is released. When the driver is unloaded or the card is
      removed, all chunks are released and the page is unmapped for the last
      chunk.
      
      However, when the last chunk of a page is not allocated and the device
      is removed, that page is not unmapped. In fact, its last reference is
      not put and there's also a page leak. This bug prevents a device from
      being properly hotplugged.
      
      When the DMA API debug option is enabled, the following messages show
      the pending DMA allocation after we remove the driver.
      
      This patch fixes the bug by unmapping and putting the page from the ring
      if its last chunk has not been allocated.
      
      pci 0005:98:00.0: DMA-API: device driver has pending DMA allocations while released from device [count=1]
      One of leaked entries details: [device address=0x0000000060a80000] [size=65536 bytes] [mapped with DMA_FROM_DEVICE] [mapped as page]
      ------------[ cut here ]------------
      WARNING: at lib/dma-debug.c:746
      Modules linked in: qlge(-) rpadlpar_io rpaphp pci_hotplug fuse [last unloaded: qlge]
      NIP: c0000000003fc3ec LR: c0000000003fc3e8 CTR: c00000000054de60
      REGS: c0000003ee9c74e0 TRAP: 0700   Tainted: G           O  (3.7.2)
      MSR: 8000000000029032 <SF,EE,ME,IR,DR,RI>  CR: 28002424  XER: 00000001
      SOFTE: 1
      CFAR: c0000000007a39c8
      TASK = c0000003ee8d5c90[8406] 'rmmod' THREAD: c0000003ee9c4000 CPU: 31
      GPR00: c0000000003fc3e8 c0000003ee9c7760 c000000000c789f8 00000000000000ee
      GPR04: 0000000000000000 00000000000000ef 0000000000004000 0000000000010000
      GPR08: 00000000000000be c000000000b22088 c000000000c4c218 00000000007c0000
      GPR12: 0000000028002422 c00000000ff26c80 0000000000000000 000001001b0f1b40
      GPR16: 00000000100cb9d8 0000000010093088 c000000000cdf910 0000000000000001
      GPR20: 0000000000000000 c000000000dbfc00 0000000000000000 c000000000dbfb80
      GPR24: c0000003fafc9d80 0000000000000001 000000000001ff80 c0000003f38f7888
      GPR28: c000000000ddfc00 0000000000000400 c000000000bd7790 c000000000ddfb80
      NIP [c0000000003fc3ec] .dma_debug_device_change+0x22c/0x2b0
      LR [c0000000003fc3e8] .dma_debug_device_change+0x228/0x2b0
      Call Trace:
      [c0000003ee9c7760] [c0000000003fc3e8] .dma_debug_device_change+0x228/0x2b0 (unreliable)
      [c0000003ee9c7840] [c00000000079a098] .notifier_call_chain+0x78/0xf0
      [c0000003ee9c78e0] [c0000000000acc20] .__blocking_notifier_call_chain+0x70/0xb0
      [c0000003ee9c7990] [c0000000004a9580] .__device_release_driver+0x100/0x140
      [c0000003ee9c7a20] [c0000000004a9708] .driver_detach+0x148/0x150
      [c0000003ee9c7ac0] [c0000000004a8144] .bus_remove_driver+0xc4/0x150
      [c0000003ee9c7b60] [c0000000004aa58c] .driver_unregister+0x8c/0xe0
      [c0000003ee9c7bf0] [c0000000004090b4] .pci_unregister_driver+0x34/0xf0
      [c0000003ee9c7ca0] [d000000002231194] .qlge_exit+0x1c/0x34 [qlge]
      [c0000003ee9c7d20] [c0000000000e36d8] .SyS_delete_module+0x1e8/0x290
      [c0000003ee9c7e30] [c0000000000098d4] syscall_exit+0x0/0x94
      Instruction dump:
      7f26cb78 e818003a e87e81a0 e8f80028 e9180030 796b1f24 78001f24 7d6a5a14
      7d2a002a e94b0020 483a7595 60000000 <0fe00000> 2fb80000 40de0048 80120050
      ---[ end trace 4294f9abdb01031d ]---
      Mapped at:
       [<d000000002222f54>] .ql_update_lbq+0x384/0x580 [qlge]
       [<d000000002227bd0>] .ql_clean_inbound_rx_ring+0x300/0xc60 [qlge]
       [<d0000000022288cc>] .ql_napi_poll_msix+0x39c/0x5a0 [qlge]
       [<c0000000006b3c50>] .net_rx_action+0x170/0x300
       [<c000000000081840>] .__do_softirq+0x170/0x300
      Signed-off-by: default avatarThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
      Acked-by: default avatarJitendra Kalsaria <Jitendra.kalsaria@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ef380794
  2. 12 May, 2013 5 commits
    • Cong Wang's avatar
      xfrm6: release dev before returning error · 84c4a9df
      Cong Wang authored
      We forget to call dev_put() on error path in xfrm6_fill_dst(),
      its caller doesn't handle this.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      84c4a9df
    • Amerigo Wang's avatar
      ipv6,gre: do not leak info to user-space · 5dbd5068
      Amerigo Wang authored
      There is a hole in struct ip6_tnl_parm2, so we have to
      zero the struct on stack before copying it to user-space.
      
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5dbd5068
    • Amerigo Wang's avatar
      virtio_net: use default napi weight by default · d34710e3
      Amerigo Wang authored
      Since commit 82dc3c63 ("net: introduce NAPI_POLL_WEIGHT")
      we warn drivers when they use napi weight higher than NAPI_POLL_WEIGHT,
      but virtio_net still uses 128 by default. This patch makes its default
      value to NAPI_POLL_WEIGHT.
      
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarCong Wang <amwang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d34710e3
    • Petri Gynther's avatar
      emac: Fix EMAC soft reset on 460EX/GT · 23fbb5a8
      Petri Gynther authored
      Fix EMAC soft reset on 460EX/GT to select the right PHY clock source
      before and after the soft reset.
      
      EMAC with PHY should use the clock from PHY during soft reset.
      EMAC without PHY should use the internal clock during soft reset.
      
      PPC460EX/GT Embedded Processor Advanced User's Manual
      section 28.10.1 Mode Register 0 (EMACx_MR0) states:
      Note: The PHY must provide a TX Clk in order to perform a soft reset
      of the EMAC. If none is present, select the internal clock
      (SDR0_ETH_CFG[EMACx_PHY_CLK] = 1).
      After a soft reset, select the external clock.
      
      Without the fix, 460EX/GT-based boards with RGMII PHYs attached to
      EMACs experience EMAC interrupt storm and system watchdog reset when
      issuing "ifconfig eth0 down" + "ifconfig eth0 up" a few times.
      The system enters endless loop of serving emac_irq() with EMACx_ISR
      register stuck at value 0x10000000 (Rx parity error).
      
      With the fix, the above issue is no longer observed.
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      23fbb5a8
    • Sergei Shtylyov's avatar
      3c59x: fix PCI resource management · 4b264a16
      Sergei Shtylyov authored
      The driver wrongly claimed I/O ports at an address returned by pci_iomap() --
      even if it was passed an MMIO address.  Fix this by claiming/releasing all PCI
      resources in the PCI driver's probe()/remove() methods instead and get rid of
      'must_free_region' flag weirdness (why would Cardbus claim anything for us?).
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4b264a16
  3. 11 May, 2013 22 commits
    • Geert Uytterhoeven's avatar
      caif: CAIF_VIRTIO should depend on HAS_DMA · 79e0c19e
      Geert Uytterhoeven authored
      If NO_DMA=y:
      
      drivers/built-in.o: In function `cfv_destroy_genpool':
      drivers/net/caif/caif_virtio.c:364: undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `cfv_create_genpool':
      drivers/net/caif/caif_virtio.c:397: undefined reference to `dma_alloc_coherent'
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79e0c19e
    • Geert Uytterhoeven's avatar
      net/ethernet: MACB should depend on HAS_DMA · 822bc329
      Geert Uytterhoeven authored
      If NO_DMA=y:
      
      drivers/built-in.o: In function `macb_free_consistent':
      drivers/net/ethernet/cadence/macb.c:878: undefined reference to `dma_free_coherent'
      drivers/net/ethernet/cadence/macb.c:883: undefined reference to `dma_free_coherent'
      drivers/net/ethernet/cadence/macb.c:888: undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `macb_alloc_consistent':
      drivers/net/ethernet/cadence/macb.c:905: undefined reference to `dma_alloc_coherent'
      drivers/built-in.o: In function `macb_tx_interrupt':
      drivers/net/ethernet/cadence/macb.c:515: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `macb_tx_error_task':
      drivers/net/ethernet/cadence/macb.c:457: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `macb_start_xmit':
      drivers/net/ethernet/cadence/macb.c:838: undefined reference to `dma_map_single'
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      822bc329
    • Geert Uytterhoeven's avatar
      net/ethernet: ARM_AT91_ETHER should depend on HAS_DMA · d914ae80
      Geert Uytterhoeven authored
      If NO_DMA=y:
      
      drivers/built-in.o: In function `at91ether_start':
      drivers/net/ethernet/cadence/at91_ether.c:49: undefined reference to `dma_alloc_coherent'
      drivers/net/ethernet/cadence/at91_ether.c:60: undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `at91ether_interrupt':
      drivers/net/ethernet/cadence/at91_ether.c:250: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `at91ether_start_xmit':
      drivers/net/ethernet/cadence/at91_ether.c:169: undefined reference to `dma_map_single'
      drivers/built-in.o: In function `at91ether_close':
      drivers/net/ethernet/cadence/at91_ether.c:145: undefined reference to `dma_free_coherent'
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d914ae80
    • Geert Uytterhoeven's avatar
      net/wireless: ATH9K should depend on HAS_DMA · 4837ef42
      Geert Uytterhoeven authored
      If NO_DMA=y:
      
      drivers/built-in.o: In function `ath9k_beacon_generate':
      drivers/net/wireless/ath/ath9k/beacon.c:146: undefined reference to `dma_unmap_single'
      drivers/net/wireless/ath/ath9k/beacon.c:174: undefined reference to `dma_map_single'
      drivers/net/wireless/ath/ath9k/beacon.c:176: undefined reference to `dma_mapping_error'
      drivers/built-in.o: In function `ath9k_beacon_remove_slot':
      drivers/net/wireless/ath/ath9k/beacon.c:252: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `ath_descdma_setup':
      drivers/net/wireless/ath/ath9k/init.c:382: undefined reference to `dmam_alloc_coherent'
      drivers/built-in.o: In function `ath_edma_get_buffers':
      drivers/net/wireless/ath/ath9k/recv.c:616: undefined reference to `dma_sync_single_for_cpu'
      drivers/built-in.o: In function `ath_get_next_rx_buf':
      drivers/net/wireless/ath/ath9k/recv.c:740: undefined reference to `dma_sync_single_for_cpu'
      drivers/built-in.o: In function `ath_rx_edma_cleanup':
      drivers/net/wireless/ath/ath9k/recv.c:176: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `ath_rx_cleanup':
      drivers/net/wireless/ath/ath9k/recv.c:340: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `ath_rx_edma_buf_link':
      drivers/net/wireless/ath/ath9k/recv.c:122: undefined reference to `dma_sync_single_for_cpu'
      drivers/built-in.o: In function `ath_rx_tasklet':
      drivers/net/wireless/ath/ath9k/recv.c:1275: undefined reference to `dma_map_single'
      drivers/net/wireless/ath/ath9k/recv.c:1277: undefined reference to `dma_mapping_error'
      drivers/net/wireless/ath/ath9k/recv.c:1283: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `ath_rx_edma_init':
      drivers/net/wireless/ath/ath9k/recv.c:226: undefined reference to `dma_map_single'
      drivers/net/wireless/ath/ath9k/recv.c:229: undefined reference to `dma_mapping_error'
      drivers/built-in.o: In function `ath_rx_init':
      drivers/net/wireless/ath/ath9k/recv.c:303: undefined reference to `dma_map_single'
      drivers/net/wireless/ath/ath9k/recv.c:306: undefined reference to `dma_mapping_error'
      drivers/built-in.o: In function `ath_tx_complete_buf':
      drivers/net/wireless/ath/ath9k/xmit.c:2088: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `ath_txstatus_setup':
      drivers/net/wireless/ath/ath9k/xmit.c:2344: undefined reference to `dmam_alloc_coherent'
      drivers/built-in.o: In function `ath_tx_set_retry':
      drivers/net/wireless/ath/ath9k/xmit.c:307: undefined reference to `dma_sync_single_for_cpu'
      drivers/built-in.o: In function `ath_tx_setup_buffer':
      drivers/net/wireless/ath/ath9k/xmit.c:1887: undefined reference to `dma_map_single'
      drivers/net/wireless/ath/ath9k/xmit.c:1889: undefined reference to `dma_mapping_error'
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
      Cc: John W. Linville <linville@tuxdriver.com>
      Cc: linux-wireless@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4837ef42
    • Geert Uytterhoeven's avatar
      net/ethernet: STMMAC_ETH should depend on HAS_DMA · fd1eb9e6
      Geert Uytterhoeven authored
      If NO_DMA=y:
      
      drivers/built-in.o: In function `dma_free_tx_skbufs':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:1141: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `dma_free_rx_skbufs':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:1120: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `free_dma_desc_resources':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:1159: undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `stmmac_init_rx_buffers':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:980: undefined reference to `dma_map_single'
      drivers/built-in.o: In function `init_dma_desc_rings':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:1015: undefined reference to `dma_alloc_coherent'
      drivers/built-in.o: In function `stmmac_tx_clean':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:1250: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `stmmac_rx':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:2044: undefined reference to `dma_unmap_single'
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:2082: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `stmmac_rx_refill':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:1967: undefined reference to `dma_map_single'
      drivers/built-in.o: In function `stmmac_xmit':
      drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:1845: undefined reference to `dma_map_single'
      drivers/built-in.o: In function `skb_frag_dma_map':
      include/linux/skbuff.h:2184: undefined reference to `dma_map_page'
      drivers/built-in.o: In function `stmmac_jumbo_frm':
      drivers/net/ethernet/stmicro/stmmac/ring_mode.c:40: undefined reference to `dma_map_single'
      drivers/built-in.o: In function `stmmac_jumbo_frm':
      drivers/net/ethernet/stmicro/stmmac/chain_mode.c:48: undefined reference to `dma_map_single'
      drivers/net/ethernet/stmicro/stmmac/chain_mode.c:55: undefined reference to `dma_map_single'
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fd1eb9e6
    • Geert Uytterhoeven's avatar
      net/ethernet: NET_CALXEDA_XGMAC should depend on HAS_DMA · 3b76b3c3
      Geert Uytterhoeven authored
      If NO_DMA=y:
      
      drivers/built-in.o: In function `xgmac_xmit':
      drivers/net/ethernet/calxeda/xgmac.c:1102: undefined reference to `dma_mapping_error'
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3b76b3c3
    • Eric Dumazet's avatar
      ipv6: do not clear pinet6 field · f77d6021
      Eric Dumazet authored
      We have seen multiple NULL dereferences in __inet6_lookup_established()
      
      After analysis, I found that inet6_sk() could be NULL while the
      check for sk_family == AF_INET6 was true.
      
      Bug was added in linux-2.6.29 when RCU lookups were introduced in UDP
      and TCP stacks.
      
      Once an IPv6 socket, using SLAB_DESTROY_BY_RCU is inserted in a hash
      table, we no longer can clear pinet6 field.
      
      This patch extends logic used in commit fcbdf09d
      ("net: fix nulls list corruptions in sk_prot_alloc")
      
      TCP/UDP/UDPLite IPv6 protocols provide their own .clear_sk() method
      to make sure we do not clear pinet6 field.
      
      At socket clone phase, we do not really care, as cloning the parent (non
      NULL) pinet6 is not adding a fatal race.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f77d6021
    • Jiri Pirko's avatar
      macvlan: fix passthru mode race between dev removal and rx path · 233c7df0
      Jiri Pirko authored
      Currently, if macvlan in passthru mode is created and data are rxed and
      you remove this device, following panic happens:
      
      NULL pointer dereference at 0000000000000198
      IP: [<ffffffffa0196058>] macvlan_handle_frame+0x153/0x1f7 [macvlan]
      
      I'm using following script to trigger this:
      <script>
      while [ 1 ]
      do
      	ip link add link e1 name macvtap0 type macvtap mode passthru
      	ip link set e1 up
      	ip link set macvtap0 up
      	IFINDEX=`ip link |grep macvtap0 | cut -f 1 -d ':'`
      	cat /dev/tap$IFINDEX  >/dev/null &
      	ip link del dev macvtap0
      done
      </script>
      
      I run this script while "ping -f" is running on another machine to send
      packets to e1 rx.
      
      Reason of the panic is that list_first_entry() is blindly called in
      macvlan_handle_frame() even if the list was empty. vlan is set to
      incorrect pointer which leads to the crash.
      
      I'm fixing this by protecting port->vlans list by rcu and by preventing
      from getting incorrect pointer in case the list is empty.
      
      Introduced by: commit eb06acdc "macvlan: Introduce 'passthru' mode to takeover the underlying device"
      Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      233c7df0
    • David S. Miller's avatar
      Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge · fb863b8b
      David S. Miller authored
      Included changes:
      - fix parsing of user typed protocol string to avoid random memory access in
        some cases
      - check pskb_trim_rcsum() return value
      - prevent DAT from sending ARP replies when not needed
      - reorder the main clean up routine to prevent race conditions
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fb863b8b
    • Denis Efremov's avatar
      ipv4: ip_output: remove inline marking of EXPORT_SYMBOL functions · 2fbd9679
      Denis Efremov authored
      EXPORT_SYMBOL and inline directives are contradictory to each other.
      The patch fixes this inconsistency.
      
      Found by Linux Driver Verification project (linuxtesting.org).
      Signed-off-by: default avatarDenis Efremov <yefremov.denis@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2fbd9679
    • Rony Efraim's avatar
      net/mlx4: Strengthen VLAN tags/priorities enforcement in VST mode · 7677fc96
      Rony Efraim authored
      Make sure that the following steps are taken:
      
      - drop packets sent by the VF with vlan tag
      - block packets with vlan tag which are steered to the VF
      - drop/block tagged packets when the policy is priority-tagged
      - make sure VLAN stripping for received packets is set
      - make sure force UP bit for the VF QP is set
      
      Use enum values for all the above instead of numerical bit offsets.
      Signed-off-by: default avatarRony Efraim <ronye@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7677fc96
    • Or Gerlitz's avatar
      net/mlx4_core: Add missing report on VST and spoof-checking dev caps · 4e8cf5b8
      Or Gerlitz authored
      Commits e6b6a231 "net/mlx4: Add VF MAC spoof checking support" and
      3f7fb021 "net/mlx4: Add set VF default vlan ID and priority support"
      missed reporting in the device capabilities dump when these features
      are actually supported. Also two too noisy debug messages which produce
      message on every QP opened by a VF, were left in the code, fix that.
      Signed-off-by: default avatarRony Efraim <ronye@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4e8cf5b8
    • Shawn Guo's avatar
      net: fec: enable hardware checksum only on imx6q-fec · 48496255
      Shawn Guo authored
      Commit 4c09eed9 (net: fec: Enable imx6 enet checksum acceleration.)
      enables hardware checksum acceleration unconditionally for all fec
      variants.  This is inappropriate, because some variants like imx5 have
      no such support on hardware.  Consequently, fec is broken on these
      platforms.  Fix it by enabling hardware checksum only on imx6q-fec type
      of controllers.
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Reviewed-by: default avatarJim Baxter <jim_baxter@mentor.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48496255
    • David S. Miller's avatar
      Merge branch 'qlcnic' · 1e9e9901
      David S. Miller authored
      Shahed Shaikh says:
      
      ====================
      This patch series has following bug fixes:
      * Fix a bug in unicast MAC address setting in adapter.
        Driver was not deleting older unicast MAC while adding new one.
      * Fix an ethtool stats string array by adding missing string entry
        and fix a typo.
      * Fix module paramter description. Bracket ')' was missing.
      * Fix port status provided though 'ethtool <device>' for 83xx adapter.
      * Fix reset recovery path in case of transmit timeout.
      * Fix reset recovery during diagnostic tests by preserving
        current device status information.
      * Fix mailbox response handling. Driver was not maintaining poll time properly.
      * Fix validation of link event command.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e9e9901
    • Rajesh Borundia's avatar
      qlcnic: Fix validation of link event command. · cbccb18f
      Rajesh Borundia authored
      o VF driver that has enabled asynchronous link events
        may not set BIT_8 in the request, if it does not require
        link state in the response.
      Signed-off-by: default avatarPratik Pujar <pratik.pujar@qlogic.com>
      Signed-off-by: default avatarRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cbccb18f
    • Rajesh Borundia's avatar
      qlcnic: Fix mailbox response handling. · 9106e5db
      Rajesh Borundia authored
      o Fix mailbox response poll time to maximum 5 seconds which
        includes mailbox response time as well as time required for
        processing AEN if any.
      o Driver need to read firmware control mailbox register instead
        of host control mailbox register.
      Signed-off-by: default avatarJitendra Kalsaria <jitendra.kalsaria@qlogic.com>
      Signed-off-by: default avatarRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9106e5db
    • Manish Chopra's avatar
      qlcnic: Fix bug in diagnostics test reset recovery path · 13a82b44
      Manish Chopra authored
      o In order to perform reset recovery during diagnostics tests,
        current device status information need to be preserved.
        This patch makes the required changes in diagnostics routines
      Signed-off-by: default avatarManish Chopra <manish.chopra@qlogic.com>
      Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13a82b44
    • Sony Chacko's avatar
      qlcnic: Fix reset recovery after transmit timeout · 536faa61
      Sony Chacko authored
      o When transmit timeout happens, recovery attempt should start with
        adapter soft reset. If soft reset fails to resume traffic, firmware
        dump will be collected and driver will perform a hard reset of the
        adapter. Reset recovery on 83xx was failing after a hard reset.
        This patch fixes that issue.
      Signed-off-by: default avatarSony Chacko <sony.chacko@qlogic.com>
      Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      536faa61
    • Himanshu Madhani's avatar
      qlcnic: Fix ethtool supported port status for 83xx · b938662d
      Himanshu Madhani authored
      o Fix display for interface while using 'ethtool <device>' for 83xx adapter
      Signed-off-by: default avatarHimanshu Madhani <himanshu.madhani@qlogic.com>
      Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b938662d
    • Himanshu Madhani's avatar
    • Shahed Shaikh's avatar
      qlcnic: Fix ethtool strings · 8c046410
      Shahed Shaikh authored
      o Add missing information in ethtool statistics information array.
      o Fix  the typo in the statistics information string.
      Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8c046410
    • Manish Chopra's avatar
      qlcnic: Fix setting MAC address · cffe52f3
      Manish Chopra authored
      o Delete previous unicast MAC which is already programmed
        in adapter before setting new unicast MAC
      Signed-off-by: default avatarManish Chopra <manish.chopra@qlogic.com>
      Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cffe52f3
  4. 10 May, 2013 2 commits
    • David S. Miller's avatar
      Merge branch 'wireless' · 61f15982
      David S. Miller authored
      John W. Linville says:
      
      ====================
      Here is a batch of fixes intended for the 3.10 stream.
      
      Amitkumar Karwar provides an mwifiex fix to plug a memory leak when
      the driver is unloaded.
      
      Bing Zhao brings an mwifiex fix for some flag handling that leads to
      log spam and an unusable interface.
      
      Daniel Drake offers an mwifiex fix for multicast filter setup, to
      correctly implement wakeup behaviour for multicast WOL.
      
      Felix Fietkau fixes an ath9k problem that produces logspam and keycache
      errors due to a bad return code.
      
      Stanislaw Gruszka produces an fix for a WARNING from ath5k, and an
      iwl4965 workaround to stop advertising a feature that doesn't work with
      the current mac80211 implementation.
      
      Sujith Manoharan gives us an ath9k fix to reprogram the HW beacon timers
      after a TSF update, and an initvals fix for the AR9565 device.
      
      Thommy Jakobsson fixes an rx descriptor underrun on b43.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61f15982
    • John W. Linville's avatar
      Merge branch 'master' of... · 4f81d715
      John W. Linville authored
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
      4f81d715
  5. 09 May, 2013 9 commits
    • Linus Torvalds's avatar
      Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 70eba422
      Linus Torvalds authored
      Pull trivial pstore update from Tony Luck:
       "Couple of pstore cleanups"
      
      It turns out that the kmemdup() conversion ends up being undone by the
      fact that the memory block also needed the ecc information (see commit
      bd08ec33: "pstore/ram: Restore ecc information block"), so all that
      remains after merging is the error return code change.
      
      * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        pstore/ram: fix error return code in ramoops_probe()
        fs: pstore: Replaced calls to kmalloc and memcpy with kmemdup
      70eba422
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/willy/linux-nvme · 2d4fe278
      Linus Torvalds authored
      Pull NVMe driver update from Matthew Wilcox:
       "Lots of exciting new features in the NVM Express driver this time,
        including support for emulating SCSI commands, discard support and the
        ability to submit per-sector metadata with I/Os.
      
        It's still mostly bugfixes though!"
      
      * git://git.infradead.org/users/willy/linux-nvme: (27 commits)
        NVMe: Use user defined admin ioctl timeout
        NVMe: Simplify Firmware Activate code slightly
        NVMe: Only clear the enable bit when disabling controller
        NVMe: Wait for device to acknowledge shutdown
        NVMe: Schedule timeout for sync commands
        NVMe: Meta-data support in NVME_IOCTL_SUBMIT_IO
        NVMe: Device specific stripe size handling
        NVMe: Split non-mergeable bio requests
        NVMe: Remove dead code in nvme_dev_add
        NVMe: Check for NULL memory in nvme_dev_add
        NVMe: Fix error clean-up on nvme_alloc_queue
        NVMe: Free admin queue on request_irq error
        NVMe: Add scsi unmap to SG_IO
        NVMe: queue usage fixes in nvme-scsi
        NVMe: Set TASK_INTERRUPTIBLE before processing queues
        NVMe: Add a character device for each nvme device
        NVMe: Fix endian-related problems in user I/O submission path
        NVMe: Fix I/O cancellation status on big-endian machines
        NVMe: Fix sparse warnings in scsi emulation
        NVMe: Don't fail initialisation unnecessarily
        ...
      2d4fe278
    • Linus Torvalds's avatar
      Merge tag 'acpi-fixes-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2e99f3a1
      Linus Torvalds authored
      Pull ACPICA fixes from Rafael Wysocki:
      
       - _INI regression fix from Tomasz Nowicki.
      
       - Fix for a possible memory leak in _OSI support routine from Jung-uk
         Kim.
      
       - Fix for a possible buffer overflow during field unit read operation
         from Bob Moore.
      
      * tag 'acpi-fixes-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPICA: ACPICA: Fix for _INI regression
        ACPICA: _OSI support: Fix possible memory leak
        ACPICA: Fix possible buffer overflow during a field unit read operation
      2e99f3a1
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fc72053b
      Linus Torvalds authored
      Pull ARM SoC fixes and straggler patches from Olof Johansson:
       "A collection of fixes for fall out from 3.10 merge window, some build
        fixes and warning cleanups and a small handful of patches that were
        small and contained and made sense to still include in 3.10 (some of
        these have also been in -next since the merge window opened).
      
        Largest continous series is for OMAP, but there's a handful for other
        platforms.
      
        For i.MX, one of the patches are framebuffer fixups due to fallout
        during the merge window, and the other removes some stale and broken
        code."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (34 commits)
        ARM: exynos: dts: Fixed vbus-gpios
        ARM: EXYNOS5: Fix kernel dump in AFTR idle mode
        ARM: ux500: Rid ignored return value of regulator_enable() compiler warning
        ARM: ux500: read the correct soc_id number
        ARM: exynos: dts: cros5250: add cyapa trackpad
        video: mxsfb: Adapt to new videomode API
        ARM: imx: Select GENERIC_ALLOCATOR
        ARM: imx: compile fix for hotplug.c
        ARM: dts: don't assume boards are using twl4030 for omap3
        ARM: OMAP2+: Remove bogus IS_ERR_OR_NULL checking from id.c
        ARM: dts: Configure and fix the McSPI pins for 4430sdp
        ARM: dts: AM33XX: Add GPMC node
        ARM: dts: OMAP4460: Fix CPU OPP voltages
        ARM: dts: OMAP36xx: Fix CPU OPP voltages
        ARM: OMAP4+: omap2plus_defconfig: Enable audio via TWL6040 as module
        ARM: OMAP2: AM33XX: id: Add support for new AM335x PG2.1 Si
        omap: mux: add AM/DM37x gpios
        ARM: OMAP1: DMA: fix error handling in omap1_system_dma_init()
        ARM: OMAP2+: omap_device: use late_initcall_sync
        ARM: OMAP: RX-51: change probe order of touchscreen and panel SPI devices
        ...
      fc72053b
    • Linus Torvalds's avatar
      Merge tag 'xtensa-next-20130508' of git://github.com/czankel/xtensa-linux · c61c48df
      Linus Torvalds authored
      Pull xtensa updates from Chris Zankel:
       "Support for the latest MMU architecture that allows for a larger
        accessible memory region, and various bug-fixes"
      
      * tag 'xtensa-next-20130508' of git://github.com/czankel/xtensa-linux:
        xtensa: Switch to asm-generic/linkage.h
        xtensa: fix redboot load address
        xtensa: ISS: fix timer_lock usage in rs_open
        xtensa: disable IRQs while IRQ handler is running
        xtensa: enable lockdep support
        xtensa: fix arch_irqs_disabled_flags implementation
        xtensa: add irq flags trace support
        xtensa: provide custom CALLER_ADDR* implementations
        xtensa: add stacktrace support
        xtensa: clean up stpill_registers
        xtensa: don't use a7 in simcalls
        xtensa: don't attempt to use unconfigured timers
        xtensa: provide default platform_pcibios_init implementation
        xtensa: remove KCORE_ELF again
        xtensa: document MMUv3 setup sequence
        xtensa: add MMU v3 support
        xtensa: fix ibreakenable register update
        xtensa: fix oprofile building as module
      c61c48df
    • Linus Torvalds's avatar
      Merge tag 'arc-v3.10-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · e30f4192
      Linus Torvalds authored
      Pull ARC port updates from Vineet Gupta:
       "Support for two new platforms based on ARC700:
         - Abilis TB10x SoC [Chritisian/Pierrick]
         - Simulator only System-C Model [Mischa]
      
        ARC specific MM improvements:
         - Avoid full TLB flush (ASID increment) on munmap (even single page)
         - VIPT Cache Flushing improvements
           + Delayed dcache flush for non-aliasing dcache (big performance boost)
           + icache flush aliasing agnostic (no need to kill all possible aliases)
      
        Others:
         - Avoid needless rebuild of DTB files for every kernel build
         - Remove builtin cmdline as that is already provided by DeviceTree/bootargs
         - Fixing unaligned access emulation corner case
         - checkpatch fixes [Sachin]
         - Various fixlets [Noam]
         - Minor build failures/cleanups"
      
      * tag 'arc-v3.10-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (35 commits)
        ARC: [mm] Lazy D-cache flush (non aliasing VIPT)
        ARC: [mm] micro-optimize page size icache invalidate
        ARC: [mm] remove the pessimistic all-alias-invalidate icache helpers
        ARC: [mm] consolidate icache/dcache sync code
        ARC: [mm] optimise icache flush for kernel mappings
        ARC: [mm] optimise icache flush for user mappings
        ARC: [mm] optimize needless full mm TLB flush on munmap
        ARC: Add support for nSIM OSCI System C model
        ARC: [TB10x] Adapt device tree to new compatible string
        ARC: [TB10x] Add support for TB10x platform
        ARC: [TB10x] Device tree of TB100 and TB101 Development Kits
        ARC: Prepare interrupt code for external controllers
        ARC: Allow embedded arc-intc to be properly placed in DT intc hierarchy
        ARC: [cmdline] Don't overwrite u-boot provided bootargs
        ARC: [cmdline] Remove CONFIG_CMDLINE
        ARC: [plat-arcfpga] defconfig update
        ARC: unaligned access emulation broken if callee-reg dest of LD/ST
        ARC: unaligned access emulation error handling consolidation
        ARC: Debug/crash-printing Improvements
        ARC: fix typo with clock speed
        ...
      e30f4192
    • Linus Torvalds's avatar
      Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · b32729b1
      Linus Torvalds authored
      Pull tile update from Chris Metcalf:
       "The interesting bug fix is support for the upcoming "4.2" release of
        the Tilera hypervisor, which by default launches Linux at privilege
        level 2 instead of 1.  The fix lets new and old hypervisors and
        Linuxes interoperate more smoothly, so I've tagged it for
        stable@kernel.org so that older Linuxes will be able to boot under the
        newer hypervisor."
      
      * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        usb: tilegx: fix memleak when create hcd fail
        arch/tile: remove inline marking of EXPORT_SYMBOL functions
        rtc: rtc-tile: add missing platform_device_unregister() when module exit
        tile: support new Tilera hypervisor
      b32729b1
    • Li Zefan's avatar
      shm: fix null pointer deref when userspace specifies invalid hugepage size · 091d0d55
      Li Zefan authored
      Dave reported an oops triggered by trinity:
      
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
        IP: newseg+0x10d/0x390
        PGD cf8c1067 PUD cf8c2067 PMD 0
        Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
        CPU: 2 PID: 7636 Comm: trinity-child2 Not tainted 3.9.0+#67
        ...
        Call Trace:
          ipcget+0x182/0x380
          SyS_shmget+0x5a/0x60
          tracesys+0xdd/0xe2
      
      This bug was introduced by commit af73e4d9 ("hugetlbfs: fix mmap
      failure in unaligned size request").
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarLi Zefan <lizfan@huawei.com>
      Reviewed-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Acked-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      091d0d55
    • Rik van Riel's avatar
      ipc,sem: fix semctl(..., GETNCNT) · de2657f9
      Rik van Riel authored
      The semctl GETNCNT returns the number of semops waiting for the
      specified semaphore to become nonzero.  After commit 9f1bc2c9
      ("ipc,sem: have only one list in struct sem_queue"), the semops waiting
      on just one semaphore are waiting on that semaphore's list.
      
      In order to return the correct count, we have to walk that list too, in
      addition to the sem_array's list for complex operations.
      Signed-off-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      de2657f9