1. 11 Nov, 2015 1 commit
    • Dan Carpenter's avatar
      asus-wmi: fix error handling in store_sys_wmi() · b8298340
      Dan Carpenter authored
      The asus_wmi_get_devstate_simple() returns 0-1 on success.  In theory
      according to static checkers, it can return either -EIO or -ENODEV on
      failure.  Currently the error handling code only handles -ENODEV and
      -EIO is treated as success.  Let's make it handle the -EIO error as
      well.
      
      It's possible that it can't actually return -EIO and this patch is not
      needed but in that case this patch is harmless and silences a static
      checker warning so it's still worth it.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      b8298340
  2. 09 Nov, 2015 3 commits
    • Hans de Goede's avatar
      ideapad-laptop: Add Lenovo Yoga 900 to no_hw_rfkill dmi list · f71c882d
      Hans de Goede authored
      Like some of the other Yoga models the Lenovo Yoga 900 does not have a
      hw rfkill switch, and trying to read the hw rfkill switch through the
      ideapad module causes it to always reported blocking breaking wifi.
      
      This commit adds the Lenovo Yoga 900 to the no_hw_rfkill dmi list, fixing
      the wifi breakage.
      
      BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1275490
      Cc: stable@vger.kernel.org
      Reported-and-tested-by: default avatarKevin Fenzi <kevin@scrye.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      f71c882d
    • Arnd Bergmann's avatar
      ideapad-laptop: include Yoga 3 1170 in add rfkill whitelist · c789fffc
      Arnd Bergmann authored
      This changes the entry to the whitelist of machines that do not have
      a physical rfkill switch. Unfortunately, the Yoga 3 generation seems
      to use upper-case letters for the YOGA 3 Pro-1370, while it uses normal
      capitalization for its Yoga 3 1170 and 1470 siblings.
      
      In order to catch all variants of the Yoga 3, I'm changing both
      the entry for the 1470 (using "Yoga" as the name) and the entry for
      the Pro 1370 (using all-caps "YOGA") to not match the exact model number
      but only the generation. This way, the 1170 and 1470 models share one
      entry, but if the firmware changes from one format to the other, it will
      still work.
      
      The second entry for Yoga 2 Pro that was recently added for some
      reason ended up not being added in alphanumeric order, and I'm
      moving the Yoga 3 1470 entry down while making the change, so they
      are sorted more logically.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      c789fffc
    • Arnd Bergmann's avatar
      ideapad-laptop: add support for Yoga 3 ESC key · 74caab99
      Arnd Bergmann authored
      The ideapad-laptop handles most special keys on various Lenovo Laptops
      including the Yoga line. Unfortunately, the Yoga 3 11/13/14 models have
      one important exception, which is the Fn-ESC combination.
      
      On other Lenovo Laptops, this is FnLock, which switches the function keys
      between the primary (Mute, Vol down, Vol up, ...) and the secondary (F1,
      F2, F3, ...) behavior. On the new machines, FnLock is only available
      through BIOS setup (possibly through a yet-to-be-implemented feature
      in this driver) but not through Fn-ESC, but instead the ESC key itself
      switched between ESC and a "Paper Display" app for Windows.
      
      Unfortunately, that means that you can never have both ESC *and* the
      function keys working at the same time without needing to press Fn on
      one of them.
      As pointed out in the official Lenovo Forum by dozens of users, this
      makes the machine rather useless for any serious work [1].
      
      I have now studied the ACPI DSDT one more time and found the event
      that is generated for the ESC key. Unlike all other key events on this
      machine, it is actually a WMI, while the other ones are read from the
      embedded controller.
      
      I am now installing a WMI notifier that uses the event number from the
      WMI subsystem as the scancode. The only event number generated here is
      '128', and that fits in nicely with the two existing ranges of scancodes
      used by the EC: 0-15 for the 16-bit VPCCMD_R_VPC register, 16-17 for
      the VPCCMD_R_NOVO register and 64-67 for VPCCMD_R_SPECIAL_BUTTONS.
      
      The only sane way to handle this button (in absence of the Windows Paper
      Display driver) seems to be to have it emit KEY_ESC, so that is what
      I use as the default. Should any user ever want to overwrite the default,
      they can install their own keymap.
      
      To ensure that we can still build the driver without adding a CONFIG_WMI
      dependency, all new code is enclosed in #ifdef.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      
      [1] https://forums.lenovo.com/t5/Lenovo-Yoga-Series-Notebooks/YOGA-3-14-How-to-reclaim-my-Esc-key-and-permanently-disable/td-p/2070816Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      74caab99
  3. 06 Nov, 2015 2 commits
  4. 15 Oct, 2015 5 commits
  5. 06 Oct, 2015 3 commits
  6. 03 Oct, 2015 9 commits
  7. 27 Sep, 2015 15 commits
    • Linus Torvalds's avatar
      Linux 4.3-rc3 · 9ffecb10
      Linus Torvalds authored
      9ffecb10
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 162e6df4
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "Two bugfixes from Andy addressing at least some of the subtle NMI
        related wreckage which has been reported by Sasha Levin"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/nmi/64: Fix a paravirt stack-clobbering bug in the NMI code
        x86/paravirt: Replace the paravirt nop with a bona fide empty function
      162e6df4
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5a6bdf06
      Linus Torvalds authored
      Pull irq fix from Thomass Gleixner:
       "A bugfix for the atmel aic5 irq chip driver which caches the wrong
        data and thereby breaking resume"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/atmel-aic5: Use per chip mask caches in mask/unmask()
      5a6bdf06
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · c905929a
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Just two fixes: wire up the new system calls added during the last
        merge window, and fix another user access site"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: alignment: fix alignment handling for uaccess changes
        ARM: wire up new syscalls
      c905929a
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 685b5f1d
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Our first real batch of fixes this release cycle.  Nothing really
        concerning, and diffstat is a bit inflated due to some DT contents
        moving around on STi platforms.
      
        There's a collection of them here:
      
         - A fixup for a build breakage that hits on arm64 allmodconfig in
           QCOM SCM firmware drivers
         - MMC fixes for OMAP that had quite a bit of breakage this merge
           window.
         - Misc build/warning fixes on PXA and OMAP
         - A couple of minor fixes for Beagleboard X15 which is now starting
           to see a few more users in the wild"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
        ARM: sti: dt: adapt DT to fix probe/bind issues in DRM driver
        ARM: dts: fix omap2+ address translation for pbias
        firmware: qcom: scm: Add function stubs for ARM64
        ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2
        ARM: omap2plus_defconfig: enable GPIO_PCA953X
        ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
        ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late
        ARM: dts: am57xx-beagle-x15: Update Phy supplies
        ARM: pxa: balloon3: Fix build error
        ARM: dts: Fixup model name for HP t410 dts
        ARM: dts: DRA7: fix a typo in ethernet
        ARM: omap2plus_defconfig: make PCF857x built-in
        ARM: dts: Use ti,pbias compatible string for pbias
        ARM: OMAP5: Cleanup options for SoC only build
        ARM: DRA7: Select missing options for SoC only build
        ARM: OMAP2+: board-generic: Remove stale of_irq macros
        ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well
        ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi
        ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410
        ARM: dts: am335x-phycore-som: Fix mpu voltage
        ...
      685b5f1d
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 69ea8b85
      Linus Torvalds authored
      Pull CIFS fixes from Steve French:
       "Four fixes from testing at the recent SMB3 Plugfest including two
        important authentication ones (one fixes authentication problems to
        some popular servers when clock times differ more than two hours
        between systems, the other fixes Kerberos authentication for SMB3)"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        fix encryption error checks on mount
        [SMB3] Fix sec=krb5 on smb3 mounts
        cifs: use server timestamp for ntlmv2 authentication
        disabling oplocks/leases via module parm enable_oplocks broken for SMB3
      69ea8b85
    • Olof Johansson's avatar
      Merge tag 'pxa-fixes-v4.3' of https://github.com/rjarzmik/linux into fixes · e46fc90e
      Olof Johansson authored
      ARM: pxa: fixes for v4.3
      
      These fixes are mainly regression fixes triggered by irq changes,
      common clock framework introduction and sound side-effect of
      other platforms.
      
      * tag 'pxa-fixes-v4.3' of https://github.com/rjarzmik/linux:
        ARM: pxa: balloon3: Fix build error
        ARM: pxa: ssp: Fix build error by removing originally incorrect DT binding
        ARM: pxa: fix DFI bus lockups on startup
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      e46fc90e
    • Olof Johansson's avatar
      Merge tag 'omap-for-v4.3/fixes-rc2' of... · b8ba826f
      Olof Johansson authored
      Merge tag 'omap-for-v4.3/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Fixes for omaps for v4.3-rc cycle:
      
      - Two more patches to fix most of the MMC regressions with the
        PBIAS regulator changes. At least two MMC driver related issues
        still seems to remain for omap3 legacy booting and omap4 duovero.
        Note that the dts changes depend on a recent regulator fix, and
        are based on the regulator commit now in mainline kernel
      
      - Enable autoidle for am43xx clocks to prevent clocks from staying
        always on
      
      - Fix i2c5 pinctrl offsets for omap5-uevm
      
      - Enable PCA953X as that's needed for HDMI to work on omap5
      
      - Update phy supplies for beagle x15 beta board
      
      - Use palmas-usb for on beagle x15 to start using the related
        driver that recently got merged
      
      * tag 'omap-for-v4.3/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: dts: fix omap2+ address translation for pbias
        ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2
        ARM: omap2plus_defconfig: enable GPIO_PCA953X
        ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
        ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late
        ARM: dts: am57xx-beagle-x15: Update Phy supplies
        regulator: pbias: program pbias register offset in pbias driver
        ARM: omap2plus_defconfig: Enable MUSB DMA support
        ARM: DRA752: Add ID detect for ES2.0
        ARM: OMAP3: vc: fix 'or' always true warning
        ARM: OMAP2+: Fix booting if no timer parent clock is available
        ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      b8ba826f
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · d8cc3972
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes the following issues:
      
         - check the return value of platform_get_irq as signed int in xgene.
      
         - skip adf_dev_restore on virtual functions in qat.
      
         - fix double-free with backlogged requests in marvell_cesa"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        hwrng: xgene - fix handling platform_get_irq
        crypto: qat - VF should never trigger SBR on PH
        crypto: marvell - properly handle CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests
      d8cc3972
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · c91d7072
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "This includes a iser-target series from Jenny + Sagi @ Mellanox that
        addresses the few remaining active I/O shutdown bugs, along with a
        patch to support zero-copy for immediate data payloads that gives a
        nice performance improvement for small block WRITEs.
      
        Also included are some recent >= v4.2 regression bug-fixes.  The most
        notable is a RCU conversion regression for SPC-3 PR registrations, and
        recent removal of obsolete RFC-3720 markers that introduced a login
        regression bug with MSFT iSCSI initiators.
      
        Thanks to everyone who has been testing + reporting bugs for v4.x"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        iscsi-target: Avoid OFMarker + IFMarker negotiation
        target: Make TCM_WRITE_PROTECT failure honor D_SENSE bit
        target: Fix target_sense_desc_format NULL pointer dereference
        target: Propigate backend read-only to core_tpg_add_lun
        target: Fix PR registration + APTPL RCU conversion regression
        iser-target: Skip data copy if all the command data comes as immediate
        iser-target: Change the recv buffers posting logic
        iser-target: Fix pending connections handling in target stack shutdown sequnce
        iser-target: Remove np_ prefix from isert_np members
        iser-target: Remove unused variables
        iser-target: Put the reference on commands waiting for unsol data
        iser-target: remove command with state ISTATE_REMOVE
      c91d7072
    • Linus Torvalds's avatar
      Merge tag 'usb-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · bcba282a
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some USB driver fixes for 4.3-rc3.
      
        There's the usual assortment of new device ids, combined with xhci and
        gadget driver fixes.  Full details in the shortlog.  All of these have
        been in linux-next with no reported problems"
      
      * tag 'usb-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (34 commits)
        MAINTAINERS: remove amd5536udc USB gadget driver maintainer
        USB: whiteheat: fix potential null-deref at probe
        xhci: init command timeout timer earlier to avoid deleting it uninitialized
        xhci: change xhci 1.0 only restrictions to support xhci 1.1
        usb: xhci: exit early in xhci_setup_device() if we're halted or dying
        usb: xhci: stop everything on the first call to xhci_stop
        usb: xhci: Clear XHCI_STATE_DYING on start
        usb: xhci: lock mutex on xhci_stop
        xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM
        xhci: give command abortion one more chance before killing xhci
        usb: Use the USB_SS_MULT() macro to get the burst multiplier.
        usb: dwc3: gadget: Fix BUG in RT config
        usb: musb: fix cppi channel teardown for isoch transfer
        usb: phy: isp1301: Export I2C module alias information
        usb: gadget: drop null test before destroy functions
        usb: gadget: dummy_hcd: in transfer(), return data sent, not limit
        usb: gadget: dummy_hcd: fix rescan logic for transfer
        usb: gadget: dummy_hcd: fix unneeded else-if condition
        usb: gadget: dummy_hcd: emulate sending zlp in packet logic
        usb: musb: dsps: fix polling in device-only mode
        ...
      bcba282a
    • Linus Torvalds's avatar
      Merge tag 'tty-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · fb740f9b
      Linus Torvalds authored
      Pull serial driver fix from Greg KH:
       "Here is one serial driver fix for 4.3-rc3 that resolves a module
        loading issue due to splitting up of the 8250 driver into smaller
        pieces.  It's been in linux-next with no reported problems"
      
      * tag 'tty-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: serial: Add missing module license for 8250_base.ko
      fb740f9b
    • Linus Torvalds's avatar
      Merge tag 'staging-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · b11e7b81
      Linus Torvalds authored
      Pull staging driver fixes from Greg KH:
       "Here are some tiny staging driver and documentation fixes for 4.3-rc3.
      
        All of these resolve reported issues that people have found and have
        been in the linux-next tree for a while with no problems"
      
      * tag 'staging-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        MAINTAINERS: Update email address for Martyn Welch
        staging: ion: fix corruption of ion_import_dma_buf
        staging: dgap: Remove myself from the MAINTAINERS file
        staging: most: Add dependency to HAS_IOMEM
        staging: unisys: remove reference of visorutil
        staging: unisys: visornic: handle error return from device registration
        staging: unisys: stop device registration before visorbus registration
        staging: unisys: visorbus: Unregister driver on error
        staging: unisys: visornic: Fix receive bytes statistics
        staging: unisys: unregister netdev when create debugfs fails
        staging: fbtft: replace master->setup() with spi_setup()
        staging: fbtft: fix 9-bit SPI support detection
        staging/lustre: change Lustre URLs and mailing list
        staging/android: Update ION TODO per LPC discussion
        Staging: most: MOST and MOSTCORE should depend on HAS_DMA
        staging: most: fix HDM_USB dependencies and build errors
      b11e7b81
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 7c1efeae
      Linus Torvalds authored
      Pull driver core fix from Greg KH:
       "Here is one driver core fix for 4.3-rc3 that resolves a reported oops"
      
      * tag 'driver-core-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        cpu/cacheinfo: Fix teardown path
      7c1efeae
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 64b796e2
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here's some tiny char and misc driver fixes that resolve some reported
        errors for 4.3-rc3.
      
        All of these have been in linux-next with no problems for a while"
      
      * tag 'char-misc-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        extcon: Fix attached value returned by is_extcon_changed
        Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
        mei: fix debugfs files leak on error path
        thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller
      64b796e2
  8. 26 Sep, 2015 2 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 518a7cb6
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) When we run a tap on netlink sockets, we have to copy mmap'd SKBs
          instead of cloning them.  From Daniel Borkmann.
      
       2) When converting classical BPF into eBPF, fix the setting of the
          source reg to BPF_REG_X.  From Tycho Andersen.
      
       3) Fix igmpv3/mldv2 report parsing in the bridge multicast code, from
          Linus Lussing.
      
       4) Fix dst refcounting for ipv6 tunnels, from Martin KaFai Lau.
      
       5) Set NLM_F_REPLACE flag properly when replacing ipv6 routes, from
          Roopa Prabhu.
      
       6) Add some new cxgb4 PCI device IDs, from Hariprasad Shenai.
      
       7) Fix headroom tests and SKB leaks in ipv6 fragmentation code, from
          Florian Westphal.
      
       8) Check DMA mapping errors in bna driver, from Ivan Vecera.
      
       9) Several 8139cp bug fixes (dev_kfree_skb_any in interrupt context,
          misclearing of interrupt status in TX timeout handler, etc.) from
          David Woodhouse.
      
      10) In tipc, reset SKB header pointer after skb_linearize(), from Erik
          Hugne.
      
      11) Fix autobind races et al. in netlink code, from Herbert Xu with
          help from Tejun Heo and others.
      
      12) Missing SET_NETDEV_DEV in sunvnet driver, from Sowmini Varadhan.
      
      13) Fix various races in timewait timer and reqsk_queue_hadh_req, from
          Eric Dumazet.
      
      14) Fix array overruns in mac80211, from Johannes Berg and Dan
          Carpenter.
      
      15) Fix data race in rhashtable_rehash_one(), from Dmitriy Vyukov.
      
      16) Fix race between poll_one_napi and napi_disable, from Neil Horman.
      
      17) Fix byte order in geneve tunnel port config, from John W Linville.
      
      18) Fix handling of ARP replies over lightweight tunnels, from Jiri
          Benc.
      
      19) We can loop when fib rule dumps cross multiple SKBs, fix from Wilson
          Kok and Roopa Prabhu.
      
      20) Several reference count handling bug fixes in the PHY/MDIO layer
          from Russel King.
      
      21) Fix lockdep splat in ppp_dev_uninit(), from Guillaume Nault.
      
      22) Fix crash in icmp_route_lookup(), from David Ahern.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (116 commits)
        net: Fix panic in icmp_route_lookup
        net: update docbook comment for __mdiobus_register()
        ppp: fix lockdep splat in ppp_dev_uninit()
        net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected
        phy: marvell: add link partner advertised modes
        net: fix net_device refcounting
        phy: add phy_device_remove()
        phy: fixed-phy: properly validate phy in fixed_phy_update_state()
        net: fix phy refcounting in a bunch of drivers
        of_mdio: fix MDIO phy device refcounting
        phy: add proper phy struct device refcounting
        phy: fix mdiobus module safety
        net: dsa: fix of_mdio_find_bus() device refcount leak
        phy: fix of_mdio_find_bus() device refcount leak
        ip6_tunnel: Reduce log level in ip6_tnl_err() to debug
        ip6_gre: Reduce log level in ip6gre_err() to debug
        fib_rules: fix fib rule dumps across multiple skbs
        bnx2x: byte swap rss_key to comply to Toeplitz specs
        net: revert "net_sched: move tp->root allocation into fw_init()"
        lwtunnel: remove source and destination UDP port config option
        ...
      518a7cb6
    • David Ahern's avatar
      net: Fix panic in icmp_route_lookup · bdb06cbf
      David Ahern authored
      Andrey reported a panic:
      
      [ 7249.865507] BUG: unable to handle kernel pointer dereference at 000000b4
      [ 7249.865559] IP: [<c16afeca>] icmp_route_lookup+0xaa/0x320
      [ 7249.865598] *pdpt = 0000000030f7f001 *pde = 0000000000000000
      [ 7249.865637] Oops: 0000 [#1]
      ...
      [ 7249.866811] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
      4.3.0-999-generic #201509220155
      [ 7249.866876] Hardware name: MSI MS-7250/MS-7250, BIOS 080014  08/02/2006
      [ 7249.866916] task: c1a5ab00 ti: c1a52000 task.ti: c1a52000
      [ 7249.866949] EIP: 0060:[<c16afeca>] EFLAGS: 00210246 CPU: 0
      [ 7249.866981] EIP is at icmp_route_lookup+0xaa/0x320
      [ 7249.867012] EAX: 00000000 EBX: f483ba48 ECX: 00000000 EDX: f2e18a00
      [ 7249.867045] ESI: 000000c0 EDI: f483ba70 EBP: f483b9ec ESP: f483b974
      [ 7249.867077]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      [ 7249.867108] CR0: 8005003b CR2: 000000b4 CR3: 36ee07c0 CR4: 000006f0
      [ 7249.867141] Stack:
      [ 7249.867165]  320310ee 00000000 00000042 320310ee 00000000 c1aeca00
      f3920240 f0c69180
      [ 7249.867268]  f483ba04 f855058b a89b66cd f483ba44 f8962f4b 00000000
      e659266c f483ba54
      [ 7249.867361]  8004753c f483ba5c f8962f4b f2031140 000003c1 ffbd8fa0
      c16b0e00 00000064
      [ 7249.867448] Call Trace:
      [ 7249.867494]  [<f855058b>] ? e1000_xmit_frame+0x87b/0xdc0 [e1000e]
      [ 7249.867534]  [<f8962f4b>] ? tcp_in_window+0xeb/0xb10 [nf_conntrack]
      [ 7249.867576]  [<f8962f4b>] ? tcp_in_window+0xeb/0xb10 [nf_conntrack]
      [ 7249.867615]  [<c16b0e00>] ? icmp_send+0xa0/0x380
      [ 7249.867648]  [<c16b102f>] icmp_send+0x2cf/0x380
      [ 7249.867681]  [<f89c8126>] nf_send_unreach+0xa6/0xc0 [nf_reject_ipv4]
      [ 7249.867714]  [<f89cd0da>] reject_tg+0x7a/0x9f [ipt_REJECT]
      [ 7249.867746]  [<f88c29a7>] ipt_do_table+0x317/0x70c [ip_tables]
      [ 7249.867780]  [<f895e0a6>] ? __nf_conntrack_find_get+0x166/0x3b0
      [nf_conntrack]
      [ 7249.867838]  [<f895eea8>] ? nf_conntrack_in+0x398/0x600 [nf_conntrack]
      [ 7249.867889]  [<f84c0035>] iptable_filter_hook+0x35/0x80 [iptable_filter]
      [ 7249.867933]  [<c16776a1>] nf_iterate+0x71/0x80
      [ 7249.867970]  [<c1677715>] nf_hook_slow+0x65/0xc0
      [ 7249.868002]  [<c1681811>] __ip_local_out_sk+0xc1/0xd0
      [ 7249.868034]  [<c1680f30>] ? ip_forward_options+0x1a0/0x1a0
      [ 7249.868066]  [<c1681836>] ip_local_out_sk+0x16/0x30
      [ 7249.868097]  [<c1684054>] ip_send_skb+0x14/0x80
      [ 7249.868129]  [<c16840f4>] ip_push_pending_frames+0x34/0x40
      [ 7249.868163]  [<c16844a2>] ip_send_unicast_reply+0x282/0x310
      [ 7249.868196]  [<c16a0863>] tcp_v4_send_reset+0x1b3/0x380
      [ 7249.868227]  [<c16a1b63>] tcp_v4_rcv+0x323/0x990
      [ 7249.868257]  [<c16776a1>] ? nf_iterate+0x71/0x80
      [ 7249.868289]  [<c167dc2b>] ip_local_deliver_finish+0x8b/0x230
      [ 7249.868322]  [<c167df4c>] ip_local_deliver+0x4c/0xa0
      [ 7249.868353]  [<c167dba0>] ? ip_rcv_finish+0x390/0x390
      [ 7249.868384]  [<c167d88c>] ip_rcv_finish+0x7c/0x390
      [ 7249.868415]  [<c167e280>] ip_rcv+0x2e0/0x420
      ...
      
      Prior to the VRF change the oif was not set in the flow struct, so the
      VRF support should really have only added the vrf_master_ifindex lookup.
      
      Fixes: 613d09b3 ("net: Use VRF device index for lookups on TX")
      Cc: Andrey Melnikov <temnota.am@gmail.com>
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bdb06cbf