1. 19 Dec, 2016 4 commits
    • Linus Torvalds's avatar
      Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · f1e91324
      Linus Torvalds authored
      Pull dmi fix from Jean Delvare.
      
      * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        firmware: dmi_scan: Always show system identification string
      f1e91324
    • Linus Torvalds's avatar
      Merge tag 'mfd-for-linus-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · ac5a28b0
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Device Support
         - Add support for Ricoh RC5T619 PMIC to rn5t618
         - Add support for PM8821 PMIC to qcom-pm8xxx
      
        New Functionality:
         - Add support for GPIO to lpc_ich
         - Add support for GPADC to sun4i
         - Add ability for rk808 to shutdown
      
        Fix-ups:
         - Simplify/strip unnecessary code; tps65218, palmas, tps65217
         - Device Tree binding updates; tps65218, altera-a10sr
         - Provide/export device ID info; tps65218, axp20x-i2c, hi655x-pmic,
           fsl-imx25-tsadc, intel_soc_pmic_bxtwc
         - Use MFD API instead of of_platform_populate(); tps65218
         - Generalise name-space; pm8xxx
         - Supply/edit regmap configuration; axp20x, cs47l24-tables, axp20x
         - Enable compile testing; max77620, max77686, exynos-lpass,
           abx500-core
         - Coding style issues; wm8994-core, wm5102-tables
         - Supply endian support; syscon
         - Remove module support; ab3100-core, ab8500-debugfs, ab8500-gpadc,
           abx500-core
      
        Bug Fixes:
         - Fix ordering issues; wm8994
         - Fix dependencies (build-time/run-time); exynos_lpass, sun4i-gpadc
         - Fix compiler warnings; sun4i-gpadc
         - Fix leaks; mfd-core
         - Fix page fault during module unload; tps65217"
      
      * tag 'mfd-for-linus-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (49 commits)
        mfd: tps65217: Support an interrupt pin as the system wakeup
        mfd: tps65217: Make an interrupt handler simpler
        mfd: tps65217: Update register interrupt mask bits instead of writing operation
        mfd: tps65217: Specify the IRQ name
        mfd: tps65217: Fix page fault on unloading modules
        mfd: palmas: Remove redundant check in palmas_power_off
        mfd: arizona: Disable IRQs during driver remove
        mfd: pm8xxx: add support to pm8821
        mfd: intel-lpss: Try to enable Memory-Write-Invalidate
        mfd: rn5t618: Add Ricoh RC5T619 PMIC support
        mfd: axp20x: Add address extension registers for AXP806 regmap
        mfd: intel_soc_pmic_bxtwc: Fix a typo in MODULE_DEVICE_TABLE()
        mfd: core: Fix device reference leak in mfd_clone_cell
        mfd: bcm590xx: Simplify a test
        mfd: sun4i-gpadc: Select regmap-irq
        mfd: abx500-core: drop unused MODULE_ tags from non-modular code
        mfd: ab8500: make sysctrl explicitly non-modular
        mfd: ab8500-gpadc: Make it explicitly non-modular
        mfd: ab8500-debugfs: Make it explicitly non-modular
        mfd: ab8500-core: Make it explicitly non-modular
        ...
      ac5a28b0
    • Kefeng Wang's avatar
      firmware: dmi_scan: Always show system identification string · d4af49f8
      Kefeng Wang authored
      Let's keep consistent when print dmi_ids_string between SMBIOS 2.x
      and SMBIOS 3.x, and always show the system identification string,
      like Vendor, Product/Board name and BIOS infos.
      Signed-off-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      d4af49f8
    • Linus Torvalds's avatar
      Merge tag 'rtc-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · b0b3a37b
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
        "Subsystem:
         - non-modular drivers are now explicitly non-modular
      
        New driver:
          - Epson Toyocom rtc-7301sf/dg
      
        Drivers:
         - cmos: reject unsupported alarm values wrt the RTC capabilities
         - ds1307: ACPI support
         - jz4740: DT support, jz4780 handling, can now be used as a system
           power controller
         - mcp795: many fixes, in particular proper month handling
         - twl: driver is now DT only"
      
      * tag 'rtc-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (31 commits)
        rtc: mcp795: Fix whitespace and indentation.
        rtc: mcp795: Prefer using the BIT() macro.
        rtc: mcp795: fix month write resetting date to 1.
        rtc: mcp795: fix time range difference between linux and RTC chip.
        rtc: mcp795: fix bitmask value for leap year (LP).
        rtc: mcp795: use bcd2bin/bin2bcd.
        rtc: add support for EPSON TOYOCOM RTC-7301SF/DG
        rtc: ds1307: Add ACPI support
        rtc: imxdi: (trivial) fix a typo
        rtc: ds1374: Merge conditional + WARN_ON()
        rtc: twl: make driver DT only
        rtc: twl: kill static variables
        rtc: fix typos in Kconfig
        rtc: jz4740: make the driver builtin only
        rtc: jz4740: remove unused EXPORT_SYMBOL
        Documentation: bindings: fix twl-rtc documentation
        rtc: Enable compile testing for Maxim and Samsung drivers
        MIPS: jz4740: Remove obsolete code
        MIPS: qi_lb60: Probe RTC driver from DT and use it as power controller
        MIPS: jz4740: DTS: Probe the jz4740-rtc driver from devicetree
        ...
      b0b3a37b
  2. 18 Dec, 2016 36 commits
    • Emil Bartczak's avatar
      rtc: mcp795: Fix whitespace and indentation. · d3e59259
      Emil Bartczak authored
      Fix whitespace and indentation errors and the following
      checkpatch warnings:
      - line 15: Block comments use a trailing */ on a separate line
      - line 256: Line over 80 characters
      No code change.
      Signed-off-by: default avatarEmil Bartczak <emilbart@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      d3e59259
    • Emil Bartczak's avatar
      rtc: mcp795: Prefer using the BIT() macro. · a2b42997
      Emil Bartczak authored
      This patch doesn't change the code but replaces all bitmask values
      with the BIT(x) macro.
      Signed-off-by: default avatarEmil Bartczak <emilbart@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      a2b42997
    • Emil Bartczak's avatar
      rtc: mcp795: fix month write resetting date to 1. · 43d0b10f
      Emil Bartczak authored
      According to Microchip errata some combinations of date and month
      values may result in the date being reset to 1, even if the date
      is also written with the month (for example 31-07 or 31-08).
      As a workaround avoid writing date and month values within the same
      Write command. Instead, terminate the Write command after loading
      the date and begin a new command to write the month. In addition,
      disable the oscillator before loading the new values. This is done
      by ensuring both the ST and EXTOSC bits are cleared and waiting for
      the OSCON bit to clear.
      Signed-off-by: default avatarEmil Bartczak <emilbart@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      43d0b10f
    • Emil Bartczak's avatar
      rtc: mcp795: fix time range difference between linux and RTC chip. · 26eeefd5
      Emil Bartczak authored
      In linux rtc_time struct, tm_mon range is 0~11, while in RTC HW REG,
      month range is 1~12. This patch adjusts difference of them.
      Signed-off-by: default avatarEmil Bartczak <emilbart@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      26eeefd5
    • Emil Bartczak's avatar
      rtc: mcp795: fix bitmask value for leap year (LP). · e72765c6
      Emil Bartczak authored
      According the datasheet the leap year is a fifth bit in month register.
      Signed-off-by: default avatarEmil Bartczak <emilbart@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      e72765c6
    • Emil Bartczak's avatar
      rtc: mcp795: use bcd2bin/bin2bcd. · bcf18d88
      Emil Bartczak authored
      Change rtc-mcp795.c to use the bcd2bin/bin2bcd functions.
      This change fixes the wrong conversion of month value
      from binary to BCD (missing right shift operation for 10 month).
      Signed-off-by: default avatarEmil Bartczak <emilbart@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      bcf18d88
    • Akinobu Mita's avatar
      rtc: add support for EPSON TOYOCOM RTC-7301SF/DG · 0b6a8f5c
      Akinobu Mita authored
      This adds support for EPSON TOYOCOM RTC-7301SF/DG which has parallel
      interface compatible with SRAM.
      
      This driver supports basic clock, calendar and alarm functionality.
      
      Tested with Microblaze linux running on Artix7 FPGA board with my own
      custom IP for RTC-7301.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      0b6a8f5c
    • Tin Huynh's avatar
      rtc: ds1307: Add ACPI support · 9c19b893
      Tin Huynh authored
      This patch enables ACPI support for rtc-ds1307 driver.
      Signed-off-by: default avatarTin Huynh <tnhuynh@apm.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      9c19b893
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 3be134e5
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "The libnvdimm pull request is relatively small this time around due to
        some development topics being deferred to 4.11.
      
        As for this pull request the bulk of it has been in -next for several
        releases leading to one late fix being added (commit 868f036f
        ("libnvdimm: fix mishandled nvdimm_clear_poison() return value")). It
        has received a build success notification from the 0day-kbuild robot
        and passes the latest libnvdimm unit tests.
      
        Summary:
      
         - Dynamic label support: To date namespace label support has been
           limited to disambiguating cases where PMEM (direct load/store) and
           BLK (mmio aperture) accessed-capacity alias on the same DIMM. Since
           4.9 added support for multiple namespaces per PMEM-region there is
           value to support namespace labels even in the non-aliasing case.
           The presence of a valid namespace index block force-enables label
           support when the kernel would otherwise rely on region boundaries,
           and permits the region to be sub-divided.
      
         - Handle media errors in namespace metadata: Complement the error
           handling for media errors in namespace data areas with support for
           clearing errors on writes, and downgrading potential machine-check
           exceptions to simple i/o errors on read.
      
         - Device-DAX region attributes: Add 'align', 'id', and 'size' as
           attributes for device-dax regions. In particular this enables
           userspace tooling to generically size memory mapping and i/o
           operations. Prevent userspace from growing assumptions /
           dependencies about the parent device topology for a dax region. A
           libnvdimm namespace may not always be the parent device of a dax
           region.
      
         - Various cleanups and small fixes"
      
      * tag 'libnvdimm-for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: add region 'id', 'size', and 'align' attributes
        libnvdimm: fix mishandled nvdimm_clear_poison() return value
        libnvdimm: replace mutex_is_locked() warnings with lockdep_assert_held
        libnvdimm, pfn: fix align attribute
        libnvdimm, e820: use module_platform_driver
        libnvdimm, namespace: use octal for permissions
        libnvdimm, namespace: avoid multiple sector calculations
        libnvdimm: remove else after return in nsio_rw_bytes()
        libnvdimm, namespace: fix the type of name variable
        libnvdimm: use consistent naming for request_mem_region()
        nvdimm: use the right length of "pmem"
        libnvdimm: check and clear poison before writing to pmem
        tools/testing/nvdimm: dynamic label support
        libnvdimm: allow a platform to force enable label support
        libnvdimm: use generic iostat interfaces
      3be134e5
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.10-2' of... · 8421c604
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v4.10-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull more x86 platform driver updates from Darren Hart:
       "Move and add registration for the mlx-platform driver. Introduce
        button and lid drivers for the surface3 (different from the
        surface3-pro). Add BXT PMIC TMU support. Add Y700 to existing
        ideapad-laptop quirk.
      
        Summary:
      
        ideapad-laptop:
         - Add Y700 15-ACZ to no_hw_rfkill DMI list
      
        surface3_button:
         - Introduce button support for the Surface 3
      
        surface3-wmi:
         - Add custom surface3 platform device for controlling LID
         - Balance locking on error path
      
        mlx-platform:
         - Add mlxcpld-hotplug driver registration
         - Fix semicolon.cocci warnings
         - Move module from arch/x86
      
        platform/x86:
         - Add Whiskey Cove PMIC TMU support"
      
      * tag 'platform-drivers-x86-v4.10-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        platform/x86: surface3-wmi: Balance locking on error path
        platform/x86: Add Whiskey Cove PMIC TMU support
        platform/x86: ideapad-laptop: Add Y700 15-ACZ to no_hw_rfkill DMI list
        platform/x86: Introduce button support for the Surface 3
        platform/x86: Add custom surface3 platform device for controlling LID
        platform/x86: mlx-platform: Add mlxcpld-hotplug driver registration
        platform/x86: mlx-platform: Fix semicolon.cocci warnings
        platform/x86: mlx-platform: Move module from arch/x86
      8421c604
    • Andy Shevchenko's avatar
      platform/x86: surface3-wmi: Balance locking on error path · 83da6b59
      Andy Shevchenko authored
      There is a possibility that lock will be left acquired.
      Consolidate error path under out_free_unlock label.
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      83da6b59
    • Nilesh Bacchewar's avatar
      platform/x86: Add Whiskey Cove PMIC TMU support · 957ae509
      Nilesh Bacchewar authored
      This adds TMU (Time Management Unit) support for Intel BXT platform.
      It enables the alarm wake-up functionality in the TMU unit of Whiskey Cove
      PMIC.
      Signed-off-by: default avatarNilesh Bacchewar <nilesh.bacchewar@intel.com>
      Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      [andy: resolve merge conflict in Kconfig]
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      957ae509
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f7dd3b17
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "This is the last functional update from the tip tree for 4.10. It got
        delayed due to a newly reported and anlyzed variant of BIOS bug and
        the resulting wreckage:
      
         - Seperation of TSC being marked realiable and the fact that the
           platform provides the TSC frequency via CPUID/MSRs and making use
           for it for GOLDMONT.
      
         - TSC adjust MSR validation and sanitizing:
      
           The TSC adjust MSR contains the offset to the hardware counter. The
           sum of the adjust MSR and the counter is the TSC value which is
           read via RDTSC.
      
           On at least two machines from different vendors the BIOS sets the
           TSC adjust MSR to negative values. This happens on cold and warm
           boot. While on cold boot the offset is a few milliseconds, on warm
           boot it basically compensates the power on time of the system. The
           BIOSes are not even using the adjust MSR to set all CPUs in the
           package to the same offset. The offsets are different which renders
           the TSC unusable,
      
           What's worse is that the TSC deadline timer has a HW feature^Wbug.
           It malfunctions when the TSC adjust value is negative or greater
           equal 0x80000000 resulting in silent boot failures, hard lockups or
           non firing timers. This looks like some hardware internal 32/64bit
           issue with a sign extension problem. Intel has been silent so far
           on the issue.
      
           The update contains sanity checks and keeps the adjust register
           within working limits and in sync on the package.
      
           As it looks like this disease is spreading via BIOS crapware, we
           need to address this urgently as the boot failures are hard to
           debug for users"
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tsc: Limit the adjust value further
        x86/tsc: Annotate printouts as firmware bug
        x86/tsc: Force TSC_ADJUST register to value >= zero
        x86/tsc: Validate TSC_ADJUST after resume
        x86/tsc: Validate cpumask pointer before accessing it
        x86/tsc: Fix broken CONFIG_X86_TSC=n build
        x86/tsc: Try to adjust TSC if sync test fails
        x86/tsc: Prepare warp test for TSC adjustment
        x86/tsc: Move sync cleanup to a safe place
        x86/tsc: Sync test only for the first cpu in a package
        x86/tsc: Verify TSC_ADJUST from idle
        x86/tsc: Store and check TSC ADJUST MSR
        x86/tsc: Detect random warps
        x86/tsc: Use X86_FEATURE_TSC_ADJUST in detect_art()
        x86/tsc: Finalize the split of the TSC_RELIABLE flag
        x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs
        x86/tsc: Mark Intel ATOM_GOLDMONT TSC reliable
        x86/tsc: Mark TSC frequency determined by CPUID as known
        x86/tsc: Add X86_FEATURE_TSC_KNOWN_FREQ flag
      f7dd3b17
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1bbb05f5
      Linus Torvalds authored
      Pull x86 fixes and cleanups from Thomas Gleixner:
       "This set of updates contains:
      
         - Robustification for the logical package managment. Cures the AMD
           and virtualization issues.
      
         - Put the correct start_cpu() return address on the stack of the idle
           task.
      
         - Fixups for the fallout of the nodeid <-> cpuid persistent mapping
           modifciations
      
         - Move the x86/MPX specific mm_struct member to the arch specific
           mm_context where it belongs
      
         - Cleanups for C89 struct initializers and useless function
           arguments"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/floppy: Use designated initializers
        x86/mpx: Move bd_addr to mm_context_t
        x86/mm: Drop unused argument 'removed' from sync_global_pgds()
        ACPI/NUMA: Do not map pxm to node when NUMA is turned off
        x86/acpi: Use proper macro for invalid node
        x86/smpboot: Prevent false positive out of bounds cpumask access warning
        x86/boot/64: Push correct start_cpu() return address
        x86/boot/64: Use 'push' instead of 'call' in start_cpu()
        x86/smpboot: Make logical package management more robust
      1bbb05f5
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 451bb1a6
      Linus Torvalds authored
      Pull timer fix from Thomas Gleixner:
       "Prevent NULL pointer dereferencing in the tick broadcast code. Old
        bug, which got unearthed by the hotplug ordering problem"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tick/broadcast: Prevent NULL pointer dereference
      451bb1a6
    • Linus Torvalds's avatar
      Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 98da295b
      Linus Torvalds authored
      Pull SMP hotplug fixes from Thomas Gleixner:
       "Two fixlets for cpu hotplug:
      
         - Fix a subtle ordering problem with the dummy timer. This happened
           to work before the conversion by chance due to initcall ordering.
      
         - Fix the function comment for __cpuhp_setup_state()"
      
      * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Clarify description of __cpuhp_setup_state() return value
        clocksource/dummy_timer: Move hotplug callback after the real timers
      98da295b
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · eb3a3c07
      Linus Torvalds authored
      Pull irq fix from Thomas Gleixner:
       "A fix for the irq affinity spread algorithm so it handles non linear
        node numbering nicely"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/affinity: Fix node generation from cpumask
      eb3a3c07
    • Thomas Gleixner's avatar
      x86/tsc: Limit the adjust value further · 8c9b9d87
      Thomas Gleixner authored
      Adjust value 0x80000000 and other values larger than that render the TSC
      deadline timer disfunctional.
      
      We have not yet any information about this from Intel, but experimentation
      clearly proves that this is a 32/64 bit and sign extension issue.
      
      If adjust values larger than that are actually required, which might be the
      case for physical CPU hotplug, then we need to disable the deadline timer
      on the affected package/CPUs and use the local APIC timer instead.
      
      That requires some surgery in the APIC setup code, so we just limit the
      ADJUST register value into the known to work range for now and revisit this
      when Intel comes forth with proper information.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
      Cc: Bruce Schlobohm <bruce.schlobohm@intel.com>
      Cc: Kevin Stanton <kevin.b.stanton@intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Borislav Petkov <bp@alien8.de>
      8c9b9d87
    • Thomas Gleixner's avatar
      x86/tsc: Annotate printouts as firmware bug · 16588f65
      Thomas Gleixner authored
      Make it more obvious that the BIOS is screwed up.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
      Cc: Bruce Schlobohm <bruce.schlobohm@intel.com>
      Cc: Kevin Stanton <kevin.b.stanton@intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Borislav Petkov <bp@alien8.de>
      16588f65
    • Kees Cook's avatar
      x86/floppy: Use designated initializers · ffc7dc8d
      Kees Cook authored
      Prepare to mark sensitive kernel structures for randomization by making
      sure they're using designated initializers. These were identified during
      allyesconfig builds of x86, arm, and arm64, with most initializer fixes
      extracted from grsecurity.
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/20161217213705.GA1248@beastSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      ffc7dc8d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 52f40e9d
      Linus Torvalds authored
      Pull networking fixes and cleanups from David Miller:
      
       1) Revert bogus nla_ok() change, from Alexey Dobriyan.
      
       2) Various bpf validator fixes from Daniel Borkmann.
      
       3) Add some necessary SET_NETDEV_DEV() calls to hsis_femac and hip04
          drivers, from Dongpo Li.
      
       4) Several ethtool ksettings conversions from Philippe Reynes.
      
       5) Fix bugs in inet port management wrt. soreuseport, from Tom Herbert.
      
       6) XDP support for virtio_net, from John Fastabend.
      
       7) Fix NAT handling within a vrf, from David Ahern.
      
       8) Endianness fixes in dpaa_eth driver, from Claudiu Manoil
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (63 commits)
        net: mv643xx_eth: fix build failure
        isdn: Constify some function parameters
        mlxsw: spectrum: Mark split ports as such
        cgroup: Fix CGROUP_BPF config
        qed: fix old-style function definition
        net: ipv6: check route protocol when deleting routes
        r6040: move spinlock in r6040_close as SOFTIRQ-unsafe lock order detected
        irda: w83977af_ir: cleanup an indent issue
        net: sfc: use new api ethtool_{get|set}_link_ksettings
        net: davicom: dm9000: use new api ethtool_{get|set}_link_ksettings
        net: cirrus: ep93xx: use new api ethtool_{get|set}_link_ksettings
        net: chelsio: cxgb3: use new api ethtool_{get|set}_link_ksettings
        net: chelsio: cxgb2: use new api ethtool_{get|set}_link_ksettings
        bpf: fix mark_reg_unknown_value for spilled regs on map value marking
        bpf: fix overflow in prog accounting
        bpf: dynamically allocate digest scratch buffer
        gtp: Fix initialization of Flags octet in GTPv1 header
        gtp: gtp_check_src_ms_ipv4() always return success
        net/x25: use designated initializers
        isdn: use designated initializers
        ...
      52f40e9d
    • Linus Torvalds's avatar
      Merge uncontroversial parts of branch 'readlink' of... · 231753ef
      Linus Torvalds authored
      Merge uncontroversial parts of branch 'readlink' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs
      
      Pull partial readlink cleanups from Miklos Szeredi.
      
      This is the uncontroversial part of the readlink cleanup patch-set that
      simplifies the default readlink handling.
      
      Miklos and Al are still discussing the rest of the series.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        vfs: make generic_readlink() static
        vfs: remove ".readlink = generic_readlink" assignments
        vfs: default to generic_readlink()
        vfs: replace calling i_op->readlink with vfs_readlink()
        proc/self: use generic_readlink
        ecryptfs: use vfs_get_link()
        bad_inode: add missing i_op initializers
      231753ef
    • Sudip Mukherjee's avatar
      net: mv643xx_eth: fix build failure · 3e3397e7
      Sudip Mukherjee authored
      The build of sparc allmodconfig fails with the error:
      "of_irq_to_resource" [drivers/net/ethernet/marvell/mv643xx_eth.ko]
      	undefined!
      
      of_irq_to_resource() is defined when CONFIG_OF_IRQ is defined. And also
      CONFIG_OF_IRQ can only be defined if CONFIG_IRQ is defined. So we can
      safely use #if defined(CONFIG_OF_IRQ) in the code.
      Signed-off-by: default avatarSudip Mukherjee <sudip.mukherjee@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3e3397e7
    • Emese Revfy's avatar
      isdn: Constify some function parameters · a6b3c483
      Emese Revfy authored
      The coming initify gcc plugin expects const pointer types, and caught
      some __printf arguments that weren't const yet. This fixes those.
      Signed-off-by: default avatarEmese Revfy <re.emese@gmail.com>
      [kees: expanded commit message]
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a6b3c483
    • Ido Schimmel's avatar
      mlxsw: spectrum: Mark split ports as such · 9a60c907
      Ido Schimmel authored
      When a port is split we should mark it as such, as otherwise the split
      ports aren't renamed correctly (e.g. sw1p3 -> sw1p3s1) and the unsplit
      operation fails:
      
      $ devlink port split sw1p3 count 4
      $ devlink port unsplit eth0
      devlink answers: Invalid argument
      [  598.565307] mlxsw_spectrum 0000:03:00.0 eth0: Port wasn't split
      
      Fixes: 67963a33 ("mlxsw: Make devlink port instances independent of spectrum/switchx2 port instances")
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Reported-by: default avatarTamir Winetroub <tamirw@mellanox.com>
      Reviewed-by: default avatarElad Raz <eladr@mellanox.com>
      Tested-by: default avatarTamir Winetroub <tamirw@mellanox.com>
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9a60c907
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 0110c350
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "In this pile:
      
         - autofs-namespace series
         - dedupe stuff
         - more struct path constification"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (40 commits)
        ocfs2: implement the VFS clone_range, copy_range, and dedupe_range features
        ocfs2: charge quota for reflinked blocks
        ocfs2: fix bad pointer cast
        ocfs2: always unlock when completing dio writes
        ocfs2: don't eat io errors during _dio_end_io_write
        ocfs2: budget for extent tree splits when adding refcount flag
        ocfs2: prohibit refcounted swapfiles
        ocfs2: add newlines to some error messages
        ocfs2: convert inode refcount test to a helper
        simple_write_end(): don't zero in short copy into uptodate
        exofs: don't mess with simple_write_{begin,end}
        9p: saner ->write_end() on failing copy into non-uptodate page
        fix gfs2_stuffed_write_end() on short copies
        fix ceph_write_end()
        nfs_write_end(): fix handling of short copies
        vfs: refactor clone/dedupe_file_range common functions
        fs: try to clone files first in vfs_copy_file_range
        vfs: misc struct path constification
        namespace.c: constify struct path passed to a bunch of primitives
        quota: constify struct path in quota_on
        ...
      0110c350
    • Andy Lutomirski's avatar
      cgroup: Fix CGROUP_BPF config · 483c4933
      Andy Lutomirski authored
      CGROUP_BPF depended on SOCK_CGROUP_DATA which can't be manually
      enabled, making it rather challenging to turn CGROUP_BPF on.
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      483c4933
    • David S. Miller's avatar
      Merge tag 'mac80211-for-davem-2016-12-16' of... · 67a72a58
      David S. Miller authored
      Merge tag 'mac80211-for-davem-2016-12-16' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
      
      Johannes Berg says:
      
      ====================
      Three fixes:
       * avoid a WARN_ON() when trying to use WEP with AP_VLANs
       * ensure enough headroom on mesh forwarding packets
       * don't report unknown/invalid rates to userspace
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67a72a58
    • Arnd Bergmann's avatar
      qed: fix old-style function definition · 7729bad4
      Arnd Bergmann authored
      The newly added file causes a harmless warning, with "make W=1":
      
      drivers/net/ethernet/qlogic/qed/qed_iscsi.c: In function 'qed_get_iscsi_ops':
      drivers/net/ethernet/qlogic/qed/qed_iscsi.c:1268:29: warning: old-style function definition [-Wold-style-definition]
      
      This makes it a proper prototype.
      
      Fixes: fc831825 ("qed: Add support for hardware offloaded iSCSI.")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7729bad4
    • Mantas M's avatar
      net: ipv6: check route protocol when deleting routes · c2ed1880
      Mantas M authored
      The protocol field is checked when deleting IPv4 routes, but ignored for
      IPv6, which causes problems with routing daemons accidentally deleting
      externally set routes (observed by multiple bird6 users).
      
      This can be verified using `ip -6 route del <prefix> proto something`.
      Signed-off-by: default avatarMantas Mikulėnas <grawity@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c2ed1880
    • Manuel Bessler's avatar
      r6040: move spinlock in r6040_close as SOFTIRQ-unsafe lock order detected · c762eaa7
      Manuel Bessler authored
      'ifconfig eth0 down' makes r6040_close() trigger:
       INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
      
      Fixed by moving calls to phy_stop(), napi_disable(), netif_stop_queue()
      to outside of the module's private spin_lock_irq block.
      
      Found on a Versalogic Tomcat SBC with a Vortex86 SoC
      
      s1660e_5150:~# sudo ifconfig eth0 down
      [   61.306415] ======================================================
      [   61.306415] [ INFO: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected ]
      [   61.306415] 4.9.0-gb898d2d-manuel #1 Not tainted
      [   61.306415] ------------------------------------------------------
      [   61.306415] ifconfig/449 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
      [   61.306415]  (&dev->lock){+.+...}, at: [<c1336276>] phy_stop+0x16/0x80
      
      [   61.306415] and this task is already holding:
      [   61.306415]  (&(&lp->lock)->rlock){+.-...}, at: [<d0934c84>] r6040_close+0x24/0x230 [r6040]
      which would create a new lock dependency:
      [   61.306415]  (&(&lp->lock)->rlock){+.-...} -> (&dev->lock){+.+...}
      
      [   61.306415] but this new dependency connects a SOFTIRQ-irq-safe lock:
      [   61.306415]  (&(&lp->lock)->rlock){+.-...}
      [   61.306415] ... which became SOFTIRQ-irq-safe at:
      [   61.306415]   [   61.306415] [<c1075bc5>] __lock_acquire+0x555/0x1770
      [   61.306415]   [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]   [   61.306415] [<c14bb334>] _raw_spin_lock_irqsave+0x24/0x40
      [   61.306415]   [   61.306415] [<d0934ac0>] r6040_start_xmit+0x30/0x1d0 [r6040]
      [   61.306415]   [   61.306415] [<c13a7d4d>] dev_hard_start_xmit+0x9d/0x2d0
      [   61.306415]   [   61.306415] [<c13c8a38>] sch_direct_xmit+0xa8/0x140
      [   61.306415]   [   61.306415] [<c13a8436>] __dev_queue_xmit+0x416/0x780
      [   61.306415]   [   61.306415] [<c13a87aa>] dev_queue_xmit+0xa/0x10
      [   61.306415]   [   61.306415] [<c13b4837>] neigh_resolve_output+0x147/0x220
      [   61.306415]   [   61.306415] [<c144541b>] ip6_finish_output2+0x2fb/0x910
      [   61.306415]   [   61.306415] [<c14494e6>] ip6_finish_output+0xa6/0x1a0
      [   61.306415]   [   61.306415] [<c1449635>] ip6_output+0x55/0x320
      [   61.306415]   [   61.306415] [<c146f4d2>] mld_sendpack+0x352/0x560
      [   61.306415]   [   61.306415] [<c146fe55>] mld_ifc_timer_expire+0x155/0x280
      [   61.306415]   [   61.306415] [<c108b081>] call_timer_fn+0x81/0x270
      [   61.306415]   [   61.306415] [<c108b331>] expire_timers+0xc1/0x180
      [   61.306415]   [   61.306415] [<c108b4f7>] run_timer_softirq+0x77/0x150
      [   61.306415]   [   61.306415] [<c1043d04>] __do_softirq+0xb4/0x3d0
      [   61.306415]   [   61.306415] [<c101a15c>] do_softirq_own_stack+0x1c/0x30
      [   61.306415]   [   61.306415] [<c104416e>] irq_exit+0x8e/0xa0
      [   61.306415]   [   61.306415] [<c1019d31>] do_IRQ+0x51/0x100
      [   61.306415]   [   61.306415] [<c14bc176>] common_interrupt+0x36/0x40
      [   61.306415]   [   61.306415] [<c1134928>] set_root+0x68/0xf0
      [   61.306415]   [   61.306415] [<c1136120>] path_init+0x400/0x640
      [   61.306415]   [   61.306415] [<c11386bf>] path_lookupat+0xf/0xe0
      [   61.306415]   [   61.306415] [<c1139ebc>] filename_lookup+0x6c/0x100
      [   61.306415]   [   61.306415] [<c1139fd5>] user_path_at_empty+0x25/0x30
      [   61.306415]   [   61.306415] [<c11298c6>] SyS_faccessat+0x86/0x1e0
      [   61.306415]   [   61.306415] [<c1129a30>] SyS_access+0x10/0x20
      [   61.306415]   [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]   [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]
      [   61.306415] to a SOFTIRQ-irq-unsafe lock:
      [   61.306415]  (&dev->lock){+.+...}
      [   61.306415] ... which became SOFTIRQ-irq-unsafe at:
      [   61.306415] ...[   61.306415]
      [   61.306415] [<c1075c0c>] __lock_acquire+0x59c/0x1770
      [   61.306415]   [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]   [   61.306415] [<c14b7add>] mutex_lock_nested+0x2d/0x4a0
      [   61.306415]   [   61.306415] [<c133747d>] phy_probe+0x4d/0xc0
      [   61.306415]   [   61.306415] [<c1338afe>] phy_attach_direct+0xbe/0x190
      [   61.306415]   [   61.306415] [<c1338ca7>] phy_connect_direct+0x17/0x60
      [   61.306415]   [   61.306415] [<c1338d23>] phy_connect+0x33/0x70
      [   61.306415]   [   61.306415] [<d09357a0>] r6040_init_one+0x3a0/0x500 [r6040]
      [   61.306415]   [   61.306415] [<c12a78c7>] pci_device_probe+0x77/0xd0
      [   61.306415]   [   61.306415] [<c12f5e15>] driver_probe_device+0x145/0x280
      [   61.306415]   [   61.306415] [<c12f5fd9>] __driver_attach+0x89/0x90
      [   61.306415]   [   61.306415] [<c12f43ef>] bus_for_each_dev+0x4f/0x80
      [   61.306415]   [   61.306415] [<c12f5954>] driver_attach+0x14/0x20
      [   61.306415]   [   61.306415] [<c12f55b7>] bus_add_driver+0x197/0x210
      [   61.306415]   [   61.306415] [<c12f6a21>] driver_register+0x51/0xd0
      [   61.306415]   [   61.306415] [<c12a6955>] __pci_register_driver+0x45/0x50
      [   61.306415]   [   61.306415] [<d0938017>] 0xd0938017
      [   61.306415]   [   61.306415] [<c100043f>] do_one_initcall+0x2f/0x140
      [   61.306415]   [   61.306415] [<c10e48c0>] do_init_module+0x4a/0x19b
      [   61.306415]   [   61.306415] [<c10a680e>] load_module+0x1b2e/0x2070
      [   61.306415]   [   61.306415] [<c10a6eb9>] SyS_finit_module+0x69/0x80
      [   61.306415]   [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]   [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]
      [   61.306415] other info that might help us debug this:
      [   61.306415]
      [   61.306415]  Possible interrupt unsafe locking scenario:
      [   61.306415]
      [   61.306415]        CPU0                    CPU1
      [   61.306415]        ----                    ----
      [   61.306415]   lock(&dev->lock);
      [   61.306415]                                local_irq_disable();
      [   61.306415]                                lock(&(&lp->lock)->rlock);
      [   61.306415]                                lock(&dev->lock);
      [   61.306415]   <Interrupt>
      [   61.306415]     lock(&(&lp->lock)->rlock);
      [   61.306415]
      [   61.306415]  *** DEADLOCK ***
      [   61.306415]
      [   61.306415] 2 locks held by ifconfig/449:
      [   61.306415]  #0:  (rtnl_mutex){+.+.+.}, at: [<c13b68ef>] rtnl_lock+0xf/0x20
      [   61.306415]  #1:  (&(&lp->lock)->rlock){+.-...}, at: [<d0934c84>] r6040_close+0x24/0x230 [r6040]
      [   61.306415]
      [   61.306415] the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
      [   61.306415] -> (&(&lp->lock)->rlock){+.-...} ops: 3049 {
      [   61.306415]    HARDIRQ-ON-W at:
      [   61.306415]                     [   61.306415] [<c1075be7>] __lock_acquire+0x577/0x1770
      [   61.306415]                     [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]                     [   61.306415] [<c14bb21b>] _raw_spin_lock+0x1b/0x30
      [   61.306415]                     [   61.306415] [<d09343cc>] r6040_poll+0x2c/0x330 [r6040]
      [   61.306415]                     [   61.306415] [<c13a5577>] net_rx_action+0x197/0x340
      [   61.306415]                     [   61.306415] [<c1043d04>] __do_softirq+0xb4/0x3d0
      [   61.306415]                     [   61.306415] [<c1044037>] run_ksoftirqd+0x17/0x40
      [   61.306415]                     [   61.306415] [<c105fe91>] smpboot_thread_fn+0x141/0x180
      [   61.306415]                     [   61.306415] [<c105c84e>] kthread+0xde/0x110
      [   61.306415]                     [   61.306415] [<c14bb949>] ret_from_fork+0x19/0x30
      [   61.306415]    IN-SOFTIRQ-W at:
      [   61.306415]                     [   61.306415] [<c1075bc5>] __lock_acquire+0x555/0x1770
      [   61.306415]                     [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]                     [   61.306415] [<c14bb334>] _raw_spin_lock_irqsave+0x24/0x40
      [   61.306415]                     [   61.306415] [<d0934ac0>] r6040_start_xmit+0x30/0x1d0 [r6040]
      [   61.306415]                     [   61.306415] [<c13a7d4d>] dev_hard_start_xmit+0x9d/0x2d0
      [   61.306415]                     [   61.306415] [<c13c8a38>] sch_direct_xmit+0xa8/0x140
      [   61.306415]                     [   61.306415] [<c13a8436>] __dev_queue_xmit+0x416/0x780
      [   61.306415]                     [   61.306415] [<c13a87aa>] dev_queue_xmit+0xa/0x10
      [   61.306415]                     [   61.306415] [<c13b4837>] neigh_resolve_output+0x147/0x220
      [   61.306415]                     [   61.306415] [<c144541b>] ip6_finish_output2+0x2fb/0x910
      [   61.306415]                     [   61.306415] [<c14494e6>] ip6_finish_output+0xa6/0x1a0
      [   61.306415]                     [   61.306415] [<c1449635>] ip6_output+0x55/0x320
      [   61.306415]                     [   61.306415] [<c146f4d2>] mld_sendpack+0x352/0x560
      [   61.306415]                     [   61.306415] [<c146fe55>] mld_ifc_timer_expire+0x155/0x280
      [   61.306415]                     [   61.306415] [<c108b081>] call_timer_fn+0x81/0x270
      [   61.306415]                     [   61.306415] [<c108b331>] expire_timers+0xc1/0x180
      [   61.306415]                     [   61.306415] [<c108b4f7>] run_timer_softirq+0x77/0x150
      [   61.306415]                     [   61.306415] [<c1043d04>] __do_softirq+0xb4/0x3d0
      [   61.306415]                     [   61.306415] [<c101a15c>] do_softirq_own_stack+0x1c/0x30
      [   61.306415]                     [   61.306415] [<c104416e>] irq_exit+0x8e/0xa0
      [   61.306415]                     [   61.306415] [<c1019d31>] do_IRQ+0x51/0x100
      [   61.306415]                     [   61.306415] [<c14bc176>] common_interrupt+0x36/0x40
      [   61.306415]                     [   61.306415] [<c1134928>] set_root+0x68/0xf0
      [   61.306415]                     [   61.306415] [<c1136120>] path_init+0x400/0x640
      [   61.306415]                     [   61.306415] [<c11386bf>] path_lookupat+0xf/0xe0
      [   61.306415]                     [   61.306415] [<c1139ebc>] filename_lookup+0x6c/0x100
      [   61.306415]                     [   61.306415] [<c1139fd5>] user_path_at_empty+0x25/0x30
      [   61.306415]                     [   61.306415] [<c11298c6>] SyS_faccessat+0x86/0x1e0
      [   61.306415]                     [   61.306415] [<c1129a30>] SyS_access+0x10/0x20
      [   61.306415]                     [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]                     [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]    INITIAL USE at:
      [   61.306415]                    [   61.306415] [<c107586e>] __lock_acquire+0x1fe/0x1770
      [   61.306415]                    [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]                    [   61.306415] [<c14bb334>] _raw_spin_lock_irqsave+0x24/0x40
      [   61.306415]                    [   61.306415] [<d093474e>] r6040_get_stats+0x1e/0x60 [r6040]
      [   61.306415]                    [   61.306415] [<c139fb16>] dev_get_stats+0x96/0xc0
      [   61.306415]                    [   61.306415] [<c14b416e>] rtnl_fill_stats+0x36/0xfd
      [   61.306415]                    [   61.306415] [<c13b7b3c>] rtnl_fill_ifinfo+0x47c/0xce0
      [   61.306415]                    [   61.306415] [<c13bc08e>] rtmsg_ifinfo_build_skb+0x4e/0xd0
      [   61.306415]                    [   61.306415] [<c13bc120>] rtmsg_ifinfo.part.20+0x10/0x40
      [   61.306415]                    [   61.306415] [<c13bc16b>] rtmsg_ifinfo+0x1b/0x20
      [   61.306415]                    [   61.306415] [<c13a9d19>] register_netdevice+0x409/0x550
      [   61.306415]                    [   61.306415] [<c13a9e72>] register_netdev+0x12/0x20
      [   61.306415]                    [   61.306415] [<d09357e8>] r6040_init_one+0x3e8/0x500 [r6040]
      [   61.306415]                    [   61.306415] [<c12a78c7>] pci_device_probe+0x77/0xd0
      [   61.306415]                    [   61.306415] [<c12f5e15>] driver_probe_device+0x145/0x280
      [   61.306415]                    [   61.306415] [<c12f5fd9>] __driver_attach+0x89/0x90
      [   61.306415]                    [   61.306415] [<c12f43ef>] bus_for_each_dev+0x4f/0x80
      [   61.306415]                    [   61.306415] [<c12f5954>] driver_attach+0x14/0x20
      [   61.306415]                    [   61.306415] [<c12f55b7>] bus_add_driver+0x197/0x210
      [   61.306415]                    [   61.306415] [<c12f6a21>] driver_register+0x51/0xd0
      [   61.306415]                    [   61.306415] [<c12a6955>] __pci_register_driver+0x45/0x50
      [   61.306415]                    [   61.306415] [<d0938017>] 0xd0938017
      [   61.306415]                    [   61.306415] [<c100043f>] do_one_initcall+0x2f/0x140
      [   61.306415]                    [   61.306415] [<c10e48c0>] do_init_module+0x4a/0x19b
      [   61.306415]                    [   61.306415] [<c10a680e>] load_module+0x1b2e/0x2070
      [   61.306415]                    [   61.306415] [<c10a6eb9>] SyS_finit_module+0x69/0x80
      [   61.306415]                    [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]                    [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]  }
      [   61.306415]  ... key      at: [<d0936280>] __key.45893+0x0/0xfffff739 [r6040]
      [   61.306415]  ... acquired at:
      [   61.306415]    [   61.306415] [<c1074a32>] check_irq_usage+0x42/0xb0
      [   61.306415]    [   61.306415] [<c107677c>] __lock_acquire+0x110c/0x1770
      [   61.306415]    [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]    [   61.306415] [<c14b7add>] mutex_lock_nested+0x2d/0x4a0
      [   61.306415]    [   61.306415] [<c1336276>] phy_stop+0x16/0x80
      [   61.306415]    [   61.306415] [<d0934ce9>] r6040_close+0x89/0x230 [r6040]
      [   61.306415]    [   61.306415] [<c13a0a91>] __dev_close_many+0x61/0xa0
      [   61.306415]    [   61.306415] [<c13a0bbf>] __dev_close+0x1f/0x30
      [   61.306415]    [   61.306415] [<c13a9127>] __dev_change_flags+0x87/0x150
      [   61.306415]    [   61.306415] [<c13a9213>] dev_change_flags+0x23/0x60
      [   61.306415]    [   61.306415] [<c1416238>] devinet_ioctl+0x5f8/0x6f0
      [   61.306415]    [   61.306415] [<c1417f75>] inet_ioctl+0x65/0x90
      [   61.306415]    [   61.306415] [<c1389b54>] sock_ioctl+0x124/0x2b0
      [   61.306415]    [   61.306415] [<c113cf7c>] do_vfs_ioctl+0x7c/0x790
      [   61.306415]    [   61.306415] [<c113d6b8>] SyS_ioctl+0x28/0x50
      [   61.306415]    [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]    [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]
      [   61.306415]
      the dependencies between the lock to be acquired[   61.306415]  and SOFTIRQ-irq-unsafe lock:
      [   61.306415] -> (&dev->lock){+.+...} ops: 56 {
      [   61.306415]    HARDIRQ-ON-W at:
      [   61.306415]                     [   61.306415] [<c1075be7>] __lock_acquire+0x577/0x1770
      [   61.306415]                     [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]                     [   61.306415] [<c14b7add>] mutex_lock_nested+0x2d/0x4a0
      [   61.306415]                     [   61.306415] [<c133747d>] phy_probe+0x4d/0xc0
      [   61.306415]                     [   61.306415] [<c1338afe>] phy_attach_direct+0xbe/0x190
      [   61.306415]                     [   61.306415] [<c1338ca7>] phy_connect_direct+0x17/0x60
      [   61.306415]                     [   61.306415] [<c1338d23>] phy_connect+0x33/0x70
      [   61.306415]                     [   61.306415] [<d09357a0>] r6040_init_one+0x3a0/0x500 [r6040]
      [   61.306415]                     [   61.306415] [<c12a78c7>] pci_device_probe+0x77/0xd0
      [   61.306415]                     [   61.306415] [<c12f5e15>] driver_probe_device+0x145/0x280
      [   61.306415]                     [   61.306415] [<c12f5fd9>] __driver_attach+0x89/0x90
      [   61.306415]                     [   61.306415] [<c12f43ef>] bus_for_each_dev+0x4f/0x80
      [   61.306415]                     [   61.306415] [<c12f5954>] driver_attach+0x14/0x20
      [   61.306415]                     [   61.306415] [<c12f55b7>] bus_add_driver+0x197/0x210
      [   61.306415]                     [   61.306415] [<c12f6a21>] driver_register+0x51/0xd0
      [   61.306415]                     [   61.306415] [<c12a6955>] __pci_register_driver+0x45/0x50
      [   61.306415]                     [   61.306415] [<d0938017>] 0xd0938017
      [   61.306415]                     [   61.306415] [<c100043f>] do_one_initcall+0x2f/0x140
      [   61.306415]                     [   61.306415] [<c10e48c0>] do_init_module+0x4a/0x19b
      [   61.306415]                     [   61.306415] [<c10a680e>] load_module+0x1b2e/0x2070
      [   61.306415]                     [   61.306415] [<c10a6eb9>] SyS_finit_module+0x69/0x80
      [   61.306415]                     [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]                     [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]    SOFTIRQ-ON-W at:
      [   61.306415]                     [   61.306415] [<c1075c0c>] __lock_acquire+0x59c/0x1770
      [   61.306415]                     [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]                     [   61.306415] [<c14b7add>] mutex_lock_nested+0x2d/0x4a0
      [   61.306415]                     [   61.306415] [<c133747d>] phy_probe+0x4d/0xc0
      [   61.306415]                     [   61.306415] [<c1338afe>] phy_attach_direct+0xbe/0x190
      [   61.306415]                     [   61.306415] [<c1338ca7>] phy_connect_direct+0x17/0x60
      [   61.306415]                     [   61.306415] [<c1338d23>] phy_connect+0x33/0x70
      [   61.306415]                     [   61.306415] [<d09357a0>] r6040_init_one+0x3a0/0x500 [r6040]
      [   61.306415]                     [   61.306415] [<c12a78c7>] pci_device_probe+0x77/0xd0
      [   61.306415]                     [   61.306415] [<c12f5e15>] driver_probe_device+0x145/0x280
      [   61.306415]                     [   61.306415] [<c12f5fd9>] __driver_attach+0x89/0x90
      [   61.306415]                     [   61.306415] [<c12f43ef>] bus_for_each_dev+0x4f/0x80
      [   61.306415]                     [   61.306415] [<c12f5954>] driver_attach+0x14/0x20
      [   61.306415]                     [   61.306415] [<c12f55b7>] bus_add_driver+0x197/0x210
      [   61.306415]                     [   61.306415] [<c12f6a21>] driver_register+0x51/0xd0
      [   61.306415]                     [   61.306415] [<c12a6955>] __pci_register_driver+0x45/0x50
      [   61.306415]                     [   61.306415] [<d0938017>] 0xd0938017
      [   61.306415]                     [   61.306415] [<c100043f>] do_one_initcall+0x2f/0x140
      [   61.306415]                     [   61.306415] [<c10e48c0>] do_init_module+0x4a/0x19b
      [   61.306415]                     [   61.306415] [<c10a680e>] load_module+0x1b2e/0x2070
      [   61.306415]                     [   61.306415] [<c10a6eb9>] SyS_finit_module+0x69/0x80
      [   61.306415]                     [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]                     [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]    INITIAL USE at:
      [   61.306415]                    [   61.306415] [<c107586e>] __lock_acquire+0x1fe/0x1770
      [   61.306415]                    [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]                    [   61.306415] [<c14b7add>] mutex_lock_nested+0x2d/0x4a0
      [   61.306415]                    [   61.306415] [<c133747d>] phy_probe+0x4d/0xc0
      [   61.306415]                    [   61.306415] [<c1338afe>] phy_attach_direct+0xbe/0x190
      [   61.306415]                    [   61.306415] [<c1338ca7>] phy_connect_direct+0x17/0x60
      [   61.306415]                    [   61.306415] [<c1338d23>] phy_connect+0x33/0x70
      [   61.306415]                    [   61.306415] [<d09357a0>] r6040_init_one+0x3a0/0x500 [r6040]
      [   61.306415]                    [   61.306415] [<c12a78c7>] pci_device_probe+0x77/0xd0
      [   61.306415]                    [   61.306415] [<c12f5e15>] driver_probe_device+0x145/0x280
      [   61.306415]                    [   61.306415] [<c12f5fd9>] __driver_attach+0x89/0x90
      [   61.306415]                    [   61.306415] [<c12f43ef>] bus_for_each_dev+0x4f/0x80
      [   61.306415]                    [   61.306415] [<c12f5954>] driver_attach+0x14/0x20
      [   61.306415]                    [   61.306415] [<c12f55b7>] bus_add_driver+0x197/0x210
      [   61.306415]                    [   61.306415] [<c12f6a21>] driver_register+0x51/0xd0
      [   61.306415]                    [   61.306415] [<c12a6955>] __pci_register_driver+0x45/0x50
      [   61.306415]                    [   61.306415] [<d0938017>] 0xd0938017
      [   61.306415]                    [   61.306415] [<c100043f>] do_one_initcall+0x2f/0x140
      [   61.306415]                    [   61.306415] [<c10e48c0>] do_init_module+0x4a/0x19b
      [   61.306415]                    [   61.306415] [<c10a680e>] load_module+0x1b2e/0x2070
      [   61.306415]                    [   61.306415] [<c10a6eb9>] SyS_finit_module+0x69/0x80
      [   61.306415]                    [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]                    [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]  }
      [   61.306415]  ... key      at: [<c1f28f39>] __key.43998+0x0/0x8
      [   61.306415]  ... acquired at:
      [   61.306415]    [   61.306415] [<c1074a32>] check_irq_usage+0x42/0xb0
      [   61.306415]    [   61.306415] [<c107677c>] __lock_acquire+0x110c/0x1770
      [   61.306415]    [   61.306415] [<c107717c>] lock_acquire+0x7c/0x150
      [   61.306415]    [   61.306415] [<c14b7add>] mutex_lock_nested+0x2d/0x4a0
      [   61.306415]    [   61.306415] [<c1336276>] phy_stop+0x16/0x80
      [   61.306415]    [   61.306415] [<d0934ce9>] r6040_close+0x89/0x230 [r6040]
      [   61.306415]    [   61.306415] [<c13a0a91>] __dev_close_many+0x61/0xa0
      [   61.306415]    [   61.306415] [<c13a0bbf>] __dev_close+0x1f/0x30
      [   61.306415]    [   61.306415] [<c13a9127>] __dev_change_flags+0x87/0x150
      [   61.306415]    [   61.306415] [<c13a9213>] dev_change_flags+0x23/0x60
      [   61.306415]    [   61.306415] [<c1416238>] devinet_ioctl+0x5f8/0x6f0
      [   61.306415]    [   61.306415] [<c1417f75>] inet_ioctl+0x65/0x90
      [   61.306415]    [   61.306415] [<c1389b54>] sock_ioctl+0x124/0x2b0
      [   61.306415]    [   61.306415] [<c113cf7c>] do_vfs_ioctl+0x7c/0x790
      [   61.306415]    [   61.306415] [<c113d6b8>] SyS_ioctl+0x28/0x50
      [   61.306415]    [   61.306415] [<c100179f>] do_int80_syscall_32+0x3f/0x110
      [   61.306415]    [   61.306415] [<c14bba3f>] restore_all+0x0/0x61
      [   61.306415]
      [   61.306415]
      [   61.306415] stack backtrace:
      [   61.306415] CPU: 0 PID: 449 Comm: ifconfig Not tainted 4.9.0-gb898d2d-manuel #1
      [   61.306415] Call Trace:
      [   61.306415]  dump_stack+0x16/0x19
      [   61.306415]  check_usage+0x3f6/0x550
      [   61.306415]  ? check_usage+0x4d/0x550
      [   61.306415]  check_irq_usage+0x42/0xb0
      [   61.306415]  __lock_acquire+0x110c/0x1770
      [   61.306415]  lock_acquire+0x7c/0x150
      [   61.306415]  ? phy_stop+0x16/0x80
      [   61.306415]  mutex_lock_nested+0x2d/0x4a0
      [   61.306415]  ? phy_stop+0x16/0x80
      [   61.306415]  ? r6040_close+0x24/0x230 [r6040]
      [   61.306415]  ? __delay+0x9/0x10
      [   61.306415]  phy_stop+0x16/0x80
      [   61.306415]  r6040_close+0x89/0x230 [r6040]
      [   61.306415]  __dev_close_many+0x61/0xa0
      [   61.306415]  __dev_close+0x1f/0x30
      [   61.306415]  __dev_change_flags+0x87/0x150
      [   61.306415]  dev_change_flags+0x23/0x60
      [   61.306415]  devinet_ioctl+0x5f8/0x6f0
      [   61.306415]  inet_ioctl+0x65/0x90
      [   61.306415]  sock_ioctl+0x124/0x2b0
      [   61.306415]  ? dlci_ioctl_set+0x30/0x30
      [   61.306415]  do_vfs_ioctl+0x7c/0x790
      [   61.306415]  ? trace_hardirqs_on+0xb/0x10
      [   61.306415]  ? call_rcu_sched+0xd/0x10
      [   61.306415]  ? __put_cred+0x32/0x50
      [   61.306415]  ? SyS_faccessat+0x178/0x1e0
      [   61.306415]  SyS_ioctl+0x28/0x50
      [   61.306415]  do_int80_syscall_32+0x3f/0x110
      [   61.306415]  entry_INT80_32+0x2f/0x2f
      [   61.306415] EIP: 0xb764d364
      [   61.306415] EFLAGS: 00000286 CPU: 0
      [   61.306415] EAX: ffffffda EBX: 00000004 ECX: 00008914 EDX: bfa99d7c
      [   61.306415] ESI: bfa99e4c EDI: fffffffe EBP: 00000004 ESP: bfa99d58
      [   61.306415]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
      [   63.836607] r6040 0000:00:08.0 eth0: Link is Down
      Signed-off-by: default avatarManuel Bessler <manuel.bessler@sensus.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c762eaa7
    • Dan Carpenter's avatar
      irda: w83977af_ir: cleanup an indent issue · 3a7f0762
      Dan Carpenter authored
      In commit 99d8d215 ("irda: w83977af_ir: Neaten logging"), we
      accidentally added an extra tab to these lines.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a7f0762
    • Philippe Reynes's avatar
      net: sfc: use new api ethtool_{get|set}_link_ksettings · 7cafe8f8
      Philippe Reynes authored
      The ethtool api {get|set}_settings is deprecated.
      We move this driver to new api {get|set}_link_ksettings.
      Signed-off-by: default avatarPhilippe Reynes <tremyfr@gmail.com>
      Tested-by: default avatarBert Kenward <bkenward@solarflare.com>
      Acked-by: default avatarBert Kenward <bkenward@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7cafe8f8
    • Philippe Reynes's avatar
      net: davicom: dm9000: use new api ethtool_{get|set}_link_ksettings · 99bff5ee
      Philippe Reynes authored
      The ethtool api {get|set}_settings is deprecated.
      We move this driver to new api {get|set}_link_ksettings.
      Signed-off-by: default avatarPhilippe Reynes <tremyfr@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      99bff5ee
    • Philippe Reynes's avatar
      net: cirrus: ep93xx: use new api ethtool_{get|set}_link_ksettings · 93dfe6c2
      Philippe Reynes authored
      The ethtool api {get|set}_settings is deprecated.
      We move this driver to new api {get|set}_link_ksettings.
      Signed-off-by: default avatarPhilippe Reynes <tremyfr@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93dfe6c2
    • Philippe Reynes's avatar
      net: chelsio: cxgb3: use new api ethtool_{get|set}_link_ksettings · b7b44fd2
      Philippe Reynes authored
      The ethtool api {get|set}_settings is deprecated.
      We move this driver to new api {get|set}_link_ksettings.
      Signed-off-by: default avatarPhilippe Reynes <tremyfr@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b7b44fd2