14 May, 2013

3 commits

  • Pull networking fixes from David Miller:
    "Several small bug fixes all over:

    1) be2net driver uses wrong payload length when submitting MAC list
    get requests to the chip. From Sathya Perla.

    2) Fix mwifiex memory leak on driver unload, from Amitkumar Karwar.

    3) Prevent random memory access in batman-adv, from Marek Lindner.

    4) batman-adv doesn't check for pskb_trim_rcsum() errors, also from
    Marek Lindner.

    5) Fix fec crashes on rapid link up/down, from Frank Li.

    6) Fix inner protocol grovelling in GSO, from Pravin B Shelar.

    7) Link event validation fix in qlcnic from Rajesh Borundia.

    8) Not all FEC chips can support checksum offload, fix from Shawn
    Guo.

    9) EXPORT_SYMBOL + inline doesn't make any sense, from Denis Efremov.

    10) Fix race in passthru mode during device removal in macvlan, from
    Jiri Pirko.

    11) Fix RCU hash table lookup socket state race in ipv6, leading to
    NULL pointer derefs, from Eric Dumazet.

    12) Add several missing HAS_DMA kconfig dependencies, from Geert
    Uyttterhoeven.

    13) Fix bogus PCI resource management in 3c59x driver, from Sergei
    Shtylyov.

    14) Fix info leak in ipv6 GRE tunnel driver, from Amerigo Wang.

    15) Fix device leak in ipv6 IPSEC policy layer, from Cong Wang.

    16) DMA mapping leak fix in qlge from Thadeu Lima de Souza Cascardo.

    17) Missing iounmap on probe failure in bna driver, from Wei Yongjun."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (40 commits)
    bna: add missing iounmap() on error in bnad_init()
    qlge: fix dma map leak when the last chunk is not allocated
    xfrm6: release dev before returning error
    ipv6,gre: do not leak info to user-space
    virtio_net: use default napi weight by default
    emac: Fix EMAC soft reset on 460EX/GT
    3c59x: fix PCI resource management
    caif: CAIF_VIRTIO should depend on HAS_DMA
    net/ethernet: MACB should depend on HAS_DMA
    net/ethernet: ARM_AT91_ETHER should depend on HAS_DMA
    net/wireless: ATH9K should depend on HAS_DMA
    net/ethernet: STMMAC_ETH should depend on HAS_DMA
    net/ethernet: NET_CALXEDA_XGMAC should depend on HAS_DMA
    ipv6: do not clear pinet6 field
    macvlan: fix passthru mode race between dev removal and rx path
    ipv4: ip_output: remove inline marking of EXPORT_SYMBOL functions
    net/mlx4: Strengthen VLAN tags/priorities enforcement in VST mode
    net/mlx4_core: Add missing report on VST and spoof-checking dev caps
    net: fec: enable hardware checksum only on imx6q-fec
    qlcnic: Fix validation of link event command.
    ...

    Linus Torvalds
     
  • Add the missing iounmap() before return from bnad_init()
    in the error handling case.
    Introduced by commit 01b54b1451853593739816a392485c4e2bee7dda
    (bna: tx rx cleanup fix).

    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • 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 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 2fb80000 40de0048 80120050
    ---[ end trace 4294f9abdb01031d ]---
    Mapped at:
    [] .ql_update_lbq+0x384/0x580 [qlge]
    [] .ql_clean_inbound_rx_ring+0x300/0xc60 [qlge]
    [] .ql_napi_poll_msix+0x39c/0x5a0 [qlge]
    [] .net_rx_action+0x170/0x300
    [] .__do_softirq+0x170/0x300

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Acked-by: Jitendra Kalsaria
    Signed-off-by: David S. Miller

    Thadeu Lima de Souza Cascardo
     

13 May, 2013

11 commits

  • Pull spi updates from Mark Brown:
    "A few driver specific fixes plus improved error handling in the
    generic DT GPIO chipselect handling - not exciting but useful."

    * tag 'spi-v3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi/spi-atmel: BUG: fix doesn' support 16 bits transfers using PIO
    spi/davinci: fix module build error
    spi: Return error from of_spi_register_master on bad "cs-gpios" property
    spi: Initialize cs_gpio and cs_gpios with -ENOENT
    spi/atmel: fix speed_hz check in atmel_spi_transfer()

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Just a few straggling fixes I hoovered up, and an intel fixes pull
    from Daniel which fixes some regressions, and some mgag200 fixes from
    Matrox."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux:
    drm/mgag200: Fix framebuffer base address programming
    drm/mgag200: Convert counter delays to jiffies
    drm/mgag200: Fix writes into MGA1064_PIX_CLK_CTL register
    drm/mgag200: Don't change unrelated registers during modeset
    drm: Only print a debug message when the polled connector has changed
    drm: Make the HPD status updates debug logs more readable
    drm: Use names of ioctls in debug traces
    drm: Remove pointless '-' characters from drm_fb_helper documentation
    drm: Add kernel-doc for drm_fb_helper_funcs->initial_config
    drm: refactor call to request_module
    drm: Don't prune modes loudly when a connector is disconnected
    drm: Add missing break in the command line mode parsing code
    drm/i915: clear the stolen fb before resuming
    Revert "drm/i915: Calculate correct stolen size for GEN7+"
    drm/i915: hsw: fix link training for eDP on port-A
    Revert "drm/i915: revert eDP bpp clamping code changes"
    drm: don't check modeset locks in panic handler
    drm/i915: Fix pipe enabled mask for pipe C in WM calculations
    drm/mm: fix dump table BUG
    drm/i915: Always normalize return timeout for wait_timeout_ioctl

    Linus Torvalds
     
  • Pull virtio/lguest fixes from Rusty Russell:
    "Missing license tag and some fallout from the lguest pagetable rework"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    lguest: clear cached last cpu when guest_set_pgd() called.
    Add missing module license tag to vring helpers.

    Linus Torvalds
     
  • Mark Brown
     
  • Mark Brown
     
  • Higher bits of the base address of framebuffers weren't being
    programmed properly. This caused framebuffers that didn't happen to be
    allocated at a low enough address to not be displayed properly.

    Signed-off-by: Christopher Harvey
    Signed-off-by: Mathieu Larouche
    Acked-by: Julia Lemire
    Tested-by: Julia Lemire
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Christopher Harvey
     
  • Signed-off-by: Christopher Harvey
    Acked-by: Julia Lemire
    Tested-by: Julia Lemire
    Acked-by: Mathieu Larouche
    Signed-off-by: Dave Airlie

    Christopher Harvey
     
  • The original line,
    WREG_DAC(MGA1064_PIX_CLK_CTL_CLK_DIS, tmp);
    wrote tmp into MGA1064_PIX_CLK_CTL_CLK_DIS, where
    MGA1064_PIX_CLK_CTL_CLK_DIS is an offset into
    MGA1064_PIX_CLK_CTL. Change the line to write properly into
    MGA1064_PIX_CLK_CTL. There were other chunks of code nearby that use
    the same pattern (but work correctly), so this patch updates them all
    to use this new (slightly more efficient) write pattern. The WREG_DAC
    macro was causing the DAC_INDEX register to be set to the same value
    twice. WREG8(DAC_DATA, foo) takes advantage of the fact that DAC_INDEX
    is already at the value we want.

    Signed-off-by: Christopher Harvey
    Acked-by: Julia Lemire
    Tested-by: Julia Lemire
    Acked-by: Mathieu Larouche
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Christopher Harvey
     
  • Registers in indices below 0x18 are totally unrelated to modesetting,
    so don't write 0's, or anything else into them on modeset. Most of
    these registers are hardware cursor related, so this existing code
    interferes with hardware cursor development.

    Signed-off-by: Christopher Harvey
    Tested-by: Julia Lemire
    Acked-by: Julia Lemire
    Acked-by: Mathieu Larouche
    Signed-off-by: Dave Airlie

    Christopher Harvey
     
  • Suggested-by: Chris Wilson
    Signed-off-by: Damien Lespiau
    Signed-off-by: Dave Airlie

    Lespiau, Damien
     
  • Instead of just printing "status updated from 1 to 2", make those enum
    numbers immediately readable.

    v2: Also patch output_poll_execute() (Daniel Vetter)
    v3: Use drm_get_connector_status_name (Ville Syrjälä)

    Signed-off-by: Damien Lespiau
    Reviewed-by: Jesse Barnes (for v1)
    Signed-off-by: Dave Airlie

    Lespiau, Damien
     

12 May, 2013

25 commits

  • Since commit 82dc3c63c692b1e1d5937 ("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"
    Cc: Eric Dumazet
    Cc: David S. Miller
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Amerigo Wang
     
  • 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: Petri Gynther
    Signed-off-by: David S. Miller

    Petri Gynther
     
  • 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: Sergei Shtylyov
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     
  • 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: Geert Uytterhoeven
    Cc: Dmitry Tarnyagin
    Cc: David S. Miller
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     
  • 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: Geert Uytterhoeven
    Cc: Nicolas Ferre
    Cc: David S. Miller
    Cc: netdev@vger.kernel.org
    Acked-by: Nicolas Ferre
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     
  • 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: Geert Uytterhoeven
    Cc: Nicolas Ferre
    Cc: David S. Miller
    Cc: netdev@vger.kernel.org
    Acked-by: Nicolas Ferre
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     
  • 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: Geert Uytterhoeven
    Cc: Luis R. Rodriguez
    Cc: John W. Linville
    Cc: linux-wireless@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     
  • 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: Geert Uytterhoeven
    Cc: Giuseppe Cavallaro
    Cc: David S. Miller
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     
  • 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: Geert Uytterhoeven
    Cc: Rob Herring
    Cc: David S. Miller
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     
  • 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: [] macvlan_handle_frame+0x153/0x1f7 [macvlan]

    I'm using following script to trigger this:

    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 eb06acdc85585f2 "macvlan: Introduce 'passthru' mode to takeover the underlying device"

    Signed-off-by: Jiri Pirko
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • …nux/kernel/git/konrad/xen

    Pull Xen bug-fixes from Konrad Rzeszutek Wilk:
    - More fixes in the vCPU PVHVM hotplug path.
    - Add more documentation.
    - Fix various ARM related issues in the Xen generic drivers.
    - Updates in the xen-pciback driver per Bjorn's updates.
    - Mask the x2APIC feature for PV guests.

    * tag 'stable/for-linus-3.10-rc0-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/pci: Used cached MSI-X capability offset
    xen/pci: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK
    xen: clear IRQ_NOAUTOEN and IRQ_NOREQUEST
    xen: mask x2APIC feature in PV
    xen: SWIOTLB is only used on x86
    xen/spinlock: Fix check from greater than to be also be greater or equal to.
    xen/smp/pvhvm: Don't point per_cpu(xen_vpcu, 33 and larger) to shared_info
    xen/vcpu: Document the xen_vcpu_info and xen_vcpu
    xen/vcpu/pvhvm: Fix vcpu hotplugging hanging.

    Linus Torvalds
     
  • 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: Rony Efraim
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Rony Efraim
     
  • Commits e6b6a23 "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: Rony Efraim
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Or Gerlitz
     
  • Commit 4c09eed (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: Shawn Guo
    Reviewed-by: Jim Baxter
    Signed-off-by: David S. Miller

    Shawn Guo
     
  • 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: Pratik Pujar
    Signed-off-by: Rajesh Borundia
    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Rajesh Borundia
     
  • 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: Jitendra Kalsaria
    Signed-off-by: Rajesh Borundia
    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Rajesh Borundia
     
  • 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: Manish Chopra
    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Manish Chopra
     
  • 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: Sony Chacko
    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Sony Chacko
     
  • o Fix display for interface while using 'ethtool ' for 83xx adapter

    Signed-off-by: Himanshu Madhani
    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Himanshu Madhani
     
  • Signed-off-by: Himanshu Madhani
    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Himanshu Madhani
     
  • o Add missing information in ethtool statistics information array.
    o Fix the typo in the statistics information string.

    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Shahed Shaikh
     
  • o Delete previous unicast MAC which is already programmed
    in adapter before setting new unicast MAC

    Signed-off-by: Manish Chopra
    Signed-off-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Manish Chopra
     
  • Pull second SCSI update from James "Jaj B" Bottomley:
    "This is the final round of SCSI patches for the merge window. It
    consists mostly of driver updates (bnx2fc, ibmfc, fnic, lpfc,
    be2iscsi, pm80xx, qla4x and ipr).

    There's also the power management updates that complete the patches in
    Jens' tree, an iscsi refcounting problem fix from the last pull, some
    dif handling in scsi_debug fixes, a few nice code cleanups and an
    error handling busy bug fix."

    * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (92 commits)
    [SCSI] qla2xxx: Update firmware link in Kconfig file.
    [SCSI] iscsi class, qla4xxx: fix sess/conn refcounting when find fns are used
    [SCSI] sas: unify the pointlessly separated enums sas_dev_type and sas_device_type
    [SCSI] pm80xx: thermal, sas controller config and error handling update
    [SCSI] pm80xx: NCQ error handling changes
    [SCSI] pm80xx: WWN Modification for PM8081/88/89 controllers
    [SCSI] pm80xx: Changed module name and debug messages update
    [SCSI] pm80xx: Firmware flash memory free fix, with addition of new memory region for it
    [SCSI] pm80xx: SPC new firmware changes for device id 0x8081 alone
    [SCSI] pm80xx: Added SPCv/ve specific hardware functionalities and relevant changes in common files
    [SCSI] pm80xx: MSI-X implementation for using 64 interrupts
    [SCSI] pm80xx: Updated common functions common for SPC and SPCv/ve
    [SCSI] pm80xx: Multiple inbound/outbound queue configuration
    [SCSI] pm80xx: Added SPCv/ve specific ids, variables and modify for SPC
    [SCSI] lpfc: fix up Kconfig dependencies
    [SCSI] Handle MLQUEUE busy response in scsi_send_eh_cmnd
    [SCSI] sd: change to auto suspend mode
    [SCSI] sd: use REQ_PM in sd's runtime suspend operation
    [SCSI] qla4xxx: Fix iocb_cnt calculation in qla4xxx_send_mbox_iocb()
    [SCSI] ufs: Correct the expected data transfersize
    ...

    Linus Torvalds
     
  • Pull idle update from Len Brown:
    "Add support for new Haswell-ULT CPU idle power states"

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
    intel_idle: initial C8, C9, C10 support
    tools/power turbostat: display C8, C9, C10 residency

    Linus Torvalds
     
  • Pull audit changes from Eric Paris:
    "Al used to send pull requests every couple of years but he told me to
    just start pushing them to you directly.

    Our touching outside of core audit code is pretty straight forward. A
    couple of interface changes which hit net/. A simple argument bug
    calling audit functions in namei.c and the removal of some assembly
    branch prediction code on ppc"

    * git://git.infradead.org/users/eparis/audit: (31 commits)
    audit: fix message spacing printing auid
    Revert "audit: move kaudit thread start from auditd registration to kaudit init"
    audit: vfs: fix audit_inode call in O_CREAT case of do_last
    audit: Make testing for a valid loginuid explicit.
    audit: fix event coverage of AUDIT_ANOM_LINK
    audit: use spin_lock in audit_receive_msg to process tty logging
    audit: do not needlessly take a lock in tty_audit_exit
    audit: do not needlessly take a spinlock in copy_signal
    audit: add an option to control logging of passwords with pam_tty_audit
    audit: use spin_lock_irqsave/restore in audit tty code
    helper for some session id stuff
    audit: use a consistent audit helper to log lsm information
    audit: push loginuid and sessionid processing down
    audit: stop pushing loginid, uid, sessionid as arguments
    audit: remove the old depricated kernel interface
    audit: make validity checking generic
    audit: allow checking the type of audit message in the user filter
    audit: fix build break when AUDIT_DEBUG == 2
    audit: remove duplicate export of audit_enabled
    Audit: do not print error when LSMs disabled
    ...

    Linus Torvalds
     

11 May, 2013

1 commit

  • Pull x86 platform drivers from Matthew Garrett:
    "Small set of updates, mainly trivial bugfixes and some small updates
    to deal with newer hardware.

    There's also a new driver that allows qemu guests to notify the
    hypervisor that they've just paniced, which seems useful."

    * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
    Add support for fan button on Ideapad Z580
    pvpanic: pvpanic device driver
    asus-nb-wmi: set wapf=4 for ASUSTeK COMPUTER INC. X75A
    drivers: platform: x86: Use PTR_RET function
    sony-laptop: SVS151290S kbd backlight and gfx switch support
    hp-wmi: add more definitions for new event_id's
    dell-laptop: Fix krealloc() misuse in parse_da_table()
    hp_accel: Ignore the error from lis3lv02d_poweron() at resume
    dell: add new dell WMI format for the AIO machines

    Linus Torvalds