1. 11 4月, 2016 4 次提交
    • P
      net: stmmac: socfgpa: Ensure emac bit set in System Manger for PTP · 734e00fa
      Phil Reid 提交于
      When using the PTP fpga to hps clock source for the stmmac module
      the appropriate bit in the System Manager FPGA Interface Group register
      needs to be set. This is not set by the bootloader setup  when the
      HPS emac pins are being for this emac module.
      
      This allows the PTP clock to be sourced from the FPGA and also connects
      the PTP pps and ext trig signals to the stmmac PTP hardware.
      
      Patch proposed by Phil Collins.
      Signed-off-by: NPhil Reid <preid@electromag.com.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      734e00fa
    • D
      netlink: don't send NETLINK_URELEASE for unbound sockets · e2726020
      Dmitry Ivanov 提交于
      All existing users of NETLINK_URELEASE use it to clean up resources that
      were previously allocated to a socket via some command. As a result, no
      users require getting this notification for unbound sockets.
      
      Sending it for unbound sockets, however, is a problem because any user
      (including unprivileged users) can create a socket that uses the same ID
      as an existing socket. Binding this new socket will fail, but if the
      NETLINK_URELEASE notification is generated for such sockets, the users
      thereof will be tricked into thinking the socket that they allocated the
      resources for is closed.
      
      In the nl80211 case, this will cause destruction of virtual interfaces
      that still belong to an existing hostapd process; this is the case that
      Dmitry noticed. In the NFC case, it will cause a poll abort. In the case
      of netlink log/queue it will cause them to stop reporting events, as if
      NFULNL_CFG_CMD_UNBIND/NFQNL_CFG_CMD_UNBIND had been called.
      
      Fix this problem by checking that the socket is bound before generating
      the NETLINK_URELEASE notification.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NDmitry Ivanov <dima@ubnt.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e2726020
    • D
      decnet: Do not build routes to devices without decnet private data. · a36a0d40
      David S. Miller 提交于
      In particular, make sure we check for decnet private presence
      for loopback devices.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a36a0d40
    • M
      sctp: avoid refreshing heartbeat timer too often · ba6f5e33
      Marcelo Ricardo Leitner 提交于
      Currently on high rate SCTP streams the heartbeat timer refresh can
      consume quite a lot of resources as timer updates are costly and it
      contains a random factor, which a) is also costly and b) invalidates
      mod_timer() optimization for not editing a timer to the same value.
      It may even cause the timer to be slightly advanced, for no good reason.
      
      As suggested by David Laight this patch now removes this timer update
      from hot path by leaving the timer on and re-evaluating upon its
      expiration if the heartbeat is still needed or not, similarly to what is
      done for TCP. If it's not needed anymore the timer is re-scheduled to
      the new timeout, considering the time already elapsed.
      
      For this, we now record the last tx timestamp per transport, updated in
      the same spots as hb timer was restarted on tx. Also split up
      sctp_transport_reset_timers into sctp_transport_reset_t3_rtx and
      sctp_transport_reset_hb_timer, so we can re-arm T3 without re-arming the
      heartbeat one.
      
      On loopback with MTU of 65535 and data chunks with 1636, so that we
      have a considerable amount of chunks without stressing system calls,
      netperf -t SCTP_STREAM -l 30, perf looked like this before:
      
      Samples: 103K of event 'cpu-clock', Event count (approx.): 25833000000
        Overhead  Command  Shared Object      Symbol
      +    6,15%  netperf  [kernel.vmlinux]   [k] copy_user_enhanced_fast_string
      -    5,43%  netperf  [kernel.vmlinux]   [k] _raw_write_unlock_irqrestore
         - _raw_write_unlock_irqrestore
            - 96,54% _raw_spin_unlock_irqrestore
               - 36,14% mod_timer
                  + 97,24% sctp_transport_reset_timers
                  + 2,76% sctp_do_sm
               + 33,65% __wake_up_sync_key
               + 28,77% sctp_ulpq_tail_event
               + 1,40% del_timer
            - 1,84% mod_timer
               + 99,03% sctp_transport_reset_timers
               + 0,97% sctp_do_sm
            + 1,50% sctp_ulpq_tail_event
      
      And after this patch, now with netperf -l 60:
      
      Samples: 230K of event 'cpu-clock', Event count (approx.): 57707250000
        Overhead  Command  Shared Object      Symbol
      +    5,65%  netperf  [kernel.vmlinux]   [k] memcpy_erms
      +    5,59%  netperf  [kernel.vmlinux]   [k] copy_user_enhanced_fast_string
      -    5,05%  netperf  [kernel.vmlinux]   [k] _raw_spin_unlock_irqrestore
         - _raw_spin_unlock_irqrestore
            + 49,89% __wake_up_sync_key
            + 45,68% sctp_ulpq_tail_event
            - 2,85% mod_timer
               + 76,51% sctp_transport_reset_t3_rtx
               + 23,49% sctp_do_sm
            + 1,55% del_timer
      +    2,50%  netperf  [sctp]             [k] sctp_datamsg_from_user
      +    2,26%  netperf  [sctp]             [k] sctp_sendmsg
      
      Throughput-wise, from 6800mbps without the patch to 7050mbps with it,
      ~3.7%.
      Signed-off-by: NMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ba6f5e33
  2. 10 4月, 2016 11 次提交
    • S
      sh_eth: re-enable-E-MAC interrupts in sh_eth_set_ringparam() · 49dd48da
      Sergei Shtylyov 提交于
      The E-MAC interrupts are left disabled when the ring parameters are changed
      via 'ethtool'. In order to fix this, it's enough to call sh_eth_dev_init()
      with 'true' instead of 'false' for the second argument (which conveniently
      allows us to remove the following code re-enabling E-DMAC interrupts and
      reception).
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      49dd48da
    • L
      Merge tag 'tty-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 183c948a
      Linus Torvalds 提交于
      Pull tty fixes from Greg KH:
       "Here are two tty fixes for issues found.
      
        One was due to a merge error in 4.6-rc1, and the other a regression
        fix for UML consoles that broke in 4.6-rc1.
      
        Both have been in linux-next for a while"
      
      * tag 'tty-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: Fix merge of "tty: Refactor tty_open()"
        tty: Fix UML console breakage
      183c948a
    • L
      Merge tag 'usb-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · ffb927d1
      Linus Torvalds 提交于
      Pull USB fixes from Greg KH:
       "Here are some USB fixes and new device ids for 4.6-rc3.
      
        Nothing major, the normal USB gadget fixes and usb-serial driver ids,
        along with some other fixes mixed in.  All except the USB serial ids
        have been tested in linux-next, the id additions should be fine as
        they are 'trivial'"
      
      * tag 'usb-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (25 commits)
        USB: option: add "D-Link DWM-221 B1" device id
        USB: serial: cp210x: Adding GE Healthcare Device ID
        USB: serial: ftdi_sio: Add support for ICP DAS I-756xU devices
        usb: dwc3: keystone: drop dma_mask configuration
        usb: gadget: udc-core: remove manual dma configuration
        usb: dwc3: pci: add ID for one more Intel Broxton platform
        usb: renesas_usbhs: fix to avoid using a disabled ep in usbhsg_queue_done()
        usb: dwc2: do not override forced dr_mode in gadget setup
        usb: gadget: f_midi: unlock on error
        USB: digi_acceleport: do sanity checking for the number of ports
        USB: cypress_m8: add endpoint sanity check
        USB: mct_u232: add sanity checking in probe
        usb: fix regression in SuperSpeed endpoint descriptor parsing
        USB: usbip: fix potential out-of-bounds write
        usb: renesas_usbhs: disable TX IRQ before starting TX DMAC transfer
        usb: renesas_usbhs: avoid NULL pointer derefernce in usbhsf_pkt_handler()
        usb: gadget: f_midi: Fixed a bug when buflen was smaller than wMaxPacketSize
        usb: phy: qcom-8x16: fix regulator API abuse
        usb: ch9: Fix SSP Device Cap wFunctionalitySupport type
        usb: gadget: composite: Access SSP Dev Cap fields properly
        ...
      ffb927d1
    • L
      Merge tag 'staging-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · c6e6e58c
      Linus Torvalds 提交于
      Pull staging and IIO driver fixes from Greg KH:
       "Here are some IIO driver fixes, along with two staging driver fixes
        for 4.6-rc3.
      
        One staging driver patch reverts the deletion of a driver that
        happened in 4.6-rc1.  We thought that laptop.org was dead, but it's
        still alive and kicking, and has users that were mad we broke their
        hardware by deleting a driver for their machines.  So that driver is
        added back and everyone is happy again.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        Revert "Staging: olpc_dcon: Remove obsolete driver"
        staging/rdma/hfi1: select CRC32
        iio: gyro: bmg160: fix buffer read values
        iio: gyro: bmg160: fix endianness when reading axes
        iio: accel: bmc150: fix endianness when reading axes
        iio: st_magn: always define ST_MAGN_TRIGGER_SET_STATE
        iio: fix config watermark initial value
        iio: health: max30100: correct FIFO check condition
        iio: imu: Fix inv_mpu6050 dependencies
        iio: adc: Fix build error of missing devm_ioremap_resource on UM
        iio: light: apds9960: correct FIFO check condition
        iio: adc: max1363: correct reference voltage
        iio: adc: max1363: add missing adc to max1363_id
      c6e6e58c
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · fb41b4be
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "This is a set of eight fixes.
      
        Two are trivial gcc-6 updates (brace additions and unused variable
        removal).  There's a couple of cxlflash regressions, a correction for
        sd being overly chatty on revalidation (causing excess log increases).
        A VPD issue which could crash USB devices because they seem very
        intolerant to VPD inquiries, an ALUA deadlock fix and a mpt3sas buffer
        overrun fix"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: Do not attach VPD to devices that don't support it
        sd: Fix excessive capacity printing on devices with blocks bigger than 512 bytes
        scsi_dh_alua: Fix a recently introduced deadlock
        scsi: Declare local symbols static
        cxlflash: Move to exponential back-off when cmd_room is not available
        cxlflash: Fix regression issue with re-ordering patch
        mpt3sas: Don't overreach ioc->reply_post[] during initialization
        aacraid: add missing curly braces
      fb41b4be
    • L
      Merge tag 'md/4.6-rc2-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md · 63b106a8
      Linus Torvalds 提交于
      Pull MD fixes from Shaohua Li:
       "This update mainly fixes bugs:
      
         - fix error handling (Guoqing)
         - fix a crash when a disk is hotremoved (me)
         - fix a dead loop (Wei Fang)"
      
      * tag 'md/4.6-rc2-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
        md/bitmap: clear bitmap if bitmap_create failed
        MD: add rdev reference for super write
        md: fix a trivial typo in comments
        md:raid1: fix a dead loop when read from a WriteMostly disk
      63b106a8
    • L
      Merge tag 'pm+acpi-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 40bca9db
      Linus Torvalds 提交于
      Pull power management and ACPI fixes from Rafael Wysocki:
       "Fixes for some issues discovered after recent changes and for some
        that have just been found lately regardless of those changes
        (intel_pstate, intel_idle, PM core, mailbox/pcc, turbostat) plus
        support for some new CPU models (intel_idle, Intel RAPL driver,
        turbostat) and documentation updates (intel_pstate, PM core).
      
        Specifics:
      
         - intel_pstate fixes for two issues exposed by the recent switch over
           from using timers and for one issue introduced during the 4.4 cycle
           plus new comments describing data structures used by the driver
           (Rafael Wysocki, Srinivas Pandruvada).
      
         - intel_idle fixes related to CPU offline/online (Richard Cochran).
      
         - intel_idle support (new CPU IDs and state definitions mostly) for
           Skylake-X and Kabylake processors (Len Brown).
      
         - PCC mailbox driver fix for an out-of-bounds memory access that may
           cause the kernel to panic() (Shanker Donthineni).
      
         - New (missing) CPU ID for one apparently overlooked Haswell model in
           the Intel RAPL power capping driver (Srinivas Pandruvada).
      
         - Fix for the PM core's wakeup IRQs framework to make it work after
           wakeup settings reconfiguration from sysfs (Grygorii Strashko).
      
         - Runtime PM documentation update to make it describe what needs to
           be done during device removal more precisely (Krzysztof Kozlowski).
      
         - Stale comment removal cleanup in the cpufreq-dt driver (Viresh
           Kumar).
      
         - turbostat utility fixes and support for Broxton, Skylake-X and
           Kabylake processors (Len Brown)"
      
      * tag 'pm+acpi-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (28 commits)
        PM / wakeirq: fix wakeirq setting after wakup re-configuration from sysfs
        tools/power turbostat: work around RC6 counter wrap
        tools/power turbostat: initial KBL support
        tools/power turbostat: initial SKX support
        tools/power turbostat: decode BXT TSC frequency via CPUID
        tools/power turbostat: initial BXT support
        tools/power turbostat: print IRTL MSRs
        tools/power turbostat: SGX state should print only if --debug
        intel_idle: Add KBL support
        intel_idle: Add SKX support
        intel_idle: Clean up all registered devices on exit.
        intel_idle: Propagate hot plug errors.
        intel_idle: Don't overreact to a cpuidle registration failure.
        intel_idle: Setup the timer broadcast only on successful driver load.
        intel_idle: Avoid a double free of the per-CPU data.
        intel_idle: Fix dangling registration on error path.
        intel_idle: Fix deallocation order on the driver exit path.
        intel_idle: Remove redundant initialization calls.
        intel_idle: Fix a helper function's return value.
        intel_idle: remove useless return from void function.
        ...
      40bca9db
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 9ef11ceb
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Stale SKB data pointer access across pskb_may_pull() calls in L2TP,
          from Haishuang Yan.
      
       2) Fix multicast frame handling in mac80211 AP code, from Felix
          Fietkau.
      
       3) mac80211 station hashtable insert errors not handled properly, fix
          from Johannes Berg.
      
       4) Fix TX descriptor count limit handling in e1000, from Alexander
          Duyck.
      
       5) Revert a buggy netdev refcount fix in netpoll, from Bjorn Helgaas.
      
       6) Must assign rtnl_link_ops of the device before registering it, fix
          in ip6_tunnel from Thadeu Lima de Souza Cascardo.
      
       7) Memory leak fix in tc action net exit, from WANG Cong.
      
       8) Add missing AF_KCM entries to name tables, from Dexuan Cui.
      
       9) Fix regression in GRE handling of csums wrt.  FOU, from Alexander
          Duyck.
      
      10) Fix memory allocation alignment and congestion map corruption in
          RDS, from Shamir Rabinovitch.
      
      11) Fix default qdisc regression in tuntap driver, from Jason Wang.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (44 commits)
        bridge, netem: mark mailing lists as moderated
        tuntap: restore default qdisc
        mpls: find_outdev: check for err ptr in addition to NULL check
        ipv6: Count in extension headers in skb->network_header
        RDS: fix congestion map corruption for PAGE_SIZE > 4k
        RDS: memory allocated must be align to 8
        GRE: Disable segmentation offloads w/ CSUM and we are encapsulated via FOU
        net: add the AF_KCM entries to family name tables
        MAINTAINERS: intel-wired-lan list is moderated
        lib/test_bpf: Add additional BPF_ADD tests
        lib/test_bpf: Add test to check for result of 32-bit add that overflows
        lib/test_bpf: Add tests for unsigned BPF_JGT
        lib/test_bpf: Fix JMP_JSET tests
        VSOCK: Detach QP check should filter out non matching QPs.
        stmmac: fix adjust link call in case of a switch is attached
        af_packet: tone down the Tx-ring unsupported spew.
        net_sched: fix a memory leak in tc action
        samples/bpf: Enable powerpc support
        samples/bpf: Use llc in PATH, rather than a hardcoded value
        samples/bpf: Fix build breakage with map_perf_test_user.c
        ...
      9ef11ceb
    • L
      Merge branch 'for-linus-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 839a3f76
      Linus Torvalds 提交于
      Pull btrfs fixes from Chris Mason:
       "These are bug fixes, including a really old fsync bug, and a few trace
        points to help us track down problems in the quota code"
      
      * 'for-linus-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: fix file/data loss caused by fsync after rename and new inode
        btrfs: Reset IO error counters before start of device replacing
        btrfs: Add qgroup tracing
        Btrfs: don't use src fd for printk
        btrfs: fallback to vmalloc in btrfs_compare_tree
        btrfs: handle non-fatal errors in btrfs_qgroup_inherit()
        btrfs: Output more info for enospc_debug mount option
        Btrfs: fix invalid reference in replace_path
        Btrfs: Improve FL_KEEP_SIZE handling in fallocate
      839a3f76
    • L
      Merge tag 'for-linus-4.6-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · 67592126
      Linus Torvalds 提交于
      Pull orangefs fixes from Mike Marshall:
       "Orangefs cleanups and a strncpy vulnerability fix.
      
        Cleanups:
         - remove an unused variable from orangefs_readdir.
         - clean up printk wrapper used for ofs "gossip" debugging.
         - clean up truncate ctime and mtime setting in inode.c
         - remove a useless null check found by coccinelle.
         - optimize some memcpy/memset boilerplate code.
         - remove some useless sanity checks from xattr.c
      
        Fix:
         - fix a potential strncpy vulnerability"
      
      * tag 'for-linus-4.6-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: remove unused variable
        orangefs: Add KERN_<LEVEL> to gossip_<level> macros
        orangefs: strncpy -> strscpy
        orangefs: clean up truncate ctime and mtime setting
        Orangefs: fix ifnullfree.cocci warnings
        Orangefs: optimize boilerplate code.
        Orangefs: xattr.c cleanup
      67592126
    • L
      Merge tag 'iommu-fixes-v4.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 1a59c539
      Linus Torvalds 提交于
      Pull IOMMU fixes from Joerg Roedel:
      
       - compile-time fixes (warnings and failures)
      
       - a bug in iommu core code which could cause the group->domain pointer
         to be falsly cleared
      
       - fix in scatterlist handling of the ARM common DMA-API code
      
       - stall detection fix for the Rockchip IOMMU driver
      
      * tag 'iommu-fixes-v4.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Silence an uninitialized variable warning
        iommu/rockchip: Fix "is stall active" check
        iommu: Don't overwrite domain pointer when there is no default_domain
        iommu/dma: Restore scatterlist offsets correctly
        iommu: provide of_xlate pointer unconditionally
      1a59c539
  3. 09 4月, 2016 14 次提交
    • G
      Merge tag 'usb-serial-4.6-rc3' of... · 636c8a8d
      Greg Kroah-Hartman 提交于
      Merge tag 'usb-serial-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial fixes for v4.6-rc3
      
      Here are some new device ids.
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      636c8a8d
    • D
      Merge tag 'mac80211-for-davem-2016-04-06' of... · 30d237a6
      David S. Miller 提交于
      Merge tag 'mac80211-for-davem-2016-04-06' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
      
      Johannes Berg says:
      
      ====================
      For the current RC series, we have the following fixes:
       * TDLS fixes from Arik and Ilan
       * rhashtable fixes from Ben and myself
       * documentation fixes from Luis
       * U-APSD fixes from Emmanuel
       * a TXQ fix from Felix
       * and a compiler warning suppression from Jeff
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      30d237a6
    • S
      bridge, netem: mark mailing lists as moderated · 3430284f
      stephen hemminger 提交于
      I moderate these (lightly loaded) lists to block spam.
      Signed-off-by: NStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3430284f
    • J
      tuntap: restore default qdisc · 016adb72
      Jason Wang 提交于
      After commit f84bb1ea ("net: fix IFF_NO_QUEUE for drivers using
      alloc_netdev"), default qdisc was changed to noqueue because
      tuntap does not set tx_queue_len during .setup(). This patch restores
      default qdisc by setting tx_queue_len in tun_setup().
      
      Fixes: f84bb1ea ("net: fix IFF_NO_QUEUE for drivers using alloc_netdev")
      Cc: Phil Sutter <phil@nwl.cc>
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Acked-by: NPhil Sutter <phil@nwl.cc>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      016adb72
    • M
      orangefs: remove unused variable · e56f4981
      Martin Brandenburg 提交于
      Signed-off-by: NMartin Brandenburg <martin@omnibond.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      e56f4981
    • R
      Merge branches 'pm-core', 'powercap' and 'pm-tools' · 73659be7
      Rafael J. Wysocki 提交于
      * pm-core:
        PM / wakeirq: fix wakeirq setting after wakup re-configuration from sysfs
        PM / runtime: Document steps for device removal
      
      * powercap:
        powercap: intel_rapl: Add missing Haswell model
      
      * pm-tools:
        tools/power turbostat: work around RC6 counter wrap
        tools/power turbostat: initial KBL support
        tools/power turbostat: initial SKX support
        tools/power turbostat: decode BXT TSC frequency via CPUID
        tools/power turbostat: initial BXT support
        tools/power turbostat: print IRTL MSRs
        tools/power turbostat: SGX state should print only if --debug
      73659be7
    • R
      Merge branches 'pm-cpufreq', 'pm-cpuidle' and 'acpi-cppc' · fa81e66e
      Rafael J. Wysocki 提交于
      * pm-cpufreq:
        cpufreq: dt: Drop stale comment
        cpufreq: intel_pstate: Documenation for structures
        cpufreq: intel_pstate: fix inconsistency in setting policy limits
        intel_pstate: Avoid extra invocation of intel_pstate_sample()
        intel_pstate: Do not set utilization update hook too early
      
      * pm-cpuidle:
        intel_idle: Add KBL support
        intel_idle: Add SKX support
        intel_idle: Clean up all registered devices on exit.
        intel_idle: Propagate hot plug errors.
        intel_idle: Don't overreact to a cpuidle registration failure.
        intel_idle: Setup the timer broadcast only on successful driver load.
        intel_idle: Avoid a double free of the per-CPU data.
        intel_idle: Fix dangling registration on error path.
        intel_idle: Fix deallocation order on the driver exit path.
        intel_idle: Remove redundant initialization calls.
        intel_idle: Fix a helper function's return value.
        intel_idle: remove useless return from void function.
      
      * acpi-cppc:
        mailbox: pcc: Don't access an unmapped memory address space
      fa81e66e
    • J
      orangefs: Add KERN_<LEVEL> to gossip_<level> macros · 1917a693
      Joe Perches 提交于
      Emit the logging messages at the appropriate levels.
      
      Miscellanea:
      
      o Change format to fmt
      o Use the more common ##__VA_ARGS__
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      1917a693
    • M
      orangefs: strncpy -> strscpy · 2eacea74
      Martin Brandenburg 提交于
      It would have been possible for a rogue client-core to send in a symlink
      target which is not NUL terminated. This returns EIO if the client-core
      gives us corrupt data.
      
      Leave debugfs and superblock code as is for now.
      
      Other dcache.c and namei.c strncpy instances are safe because
      ORANGEFS_NAME_MAX = NAME_MAX + 1; there is always enough space for a
      name plus a NUL byte.
      Signed-off-by: NMartin Brandenburg <martin@omnibond.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      2eacea74
    • M
      orangefs: clean up truncate ctime and mtime setting · f83140c1
      Martin Brandenburg 提交于
      The ctime and mtime are always updated on a successful ftruncate and
      only updated on a successful truncate where the size changed.
      
      We handle the ``if the size changed'' bit.
      
      This matches FUSE's behavior.
      Signed-off-by: NMartin Brandenburg <martin@omnibond.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      f83140c1
    • K
      Orangefs: fix ifnullfree.cocci warnings · 2fa37fd7
      kbuild test robot 提交于
      fs/orangefs/orangefs-debugfs.c:130:2-26: WARNING: NULL check before freeing functions like kfree, debugfs_remove, debugfs_remove_recursive or usb_free_urb is not needed. Maybe consider reorganizing relevant code to avoid passing NULL values.
      
       NULL check before some freeing functions is not needed.
      
       Based on checkpatch warning
       "kfree(NULL) is safe this check is probably not required"
       and kfreeaddr.cocci by Julia Lawall.
      
      Generated by: scripts/coccinelle/free/ifnullfree.cocci
      Signed-off-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      2fa37fd7
    • M
      Orangefs: optimize boilerplate code. · a9bb3ba8
      Mike Marshall 提交于
      Suggested by David Binderman <dcb314@hotmail.com>
      The former can potentially be a performance win over the latter.
      
      memcpy(d, s, len);
      memset(d+len, c, size-len);
      
      memset(d, c, size);
      memcpy(d, s, len);
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      a9bb3ba8
    • M
      Orangefs: xattr.c cleanup · 2d09a2ca
      Mike Marshall 提交于
      1. It is nonsense to test for negative size_t, suggested by
         David Binderman <dcb314@hotmail.com>
      
      2. By the time Orangefs gets called, the vfs has ensured that
         name != NULL, and that buffer and size are sane.
      Signed-off-by: NMike Marshall <hubcap@omnibond.com>
      2d09a2ca
    • R
      mpls: find_outdev: check for err ptr in addition to NULL check · 94a57f1f
      Roopa Prabhu 提交于
      find_outdev calls inet{,6}_fib_lookup_dev() or dev_get_by_index() to
      find the output device. In case of an error, inet{,6}_fib_lookup_dev()
      returns error pointer and dev_get_by_index() returns NULL. But the function
      only checks for NULL and thus can end up calling dev_put on an ERR_PTR.
      This patch adds an additional check for err ptr after the NULL check.
      
      Before: Trying to add an mpls route with no oif from user, no available
      path to 10.1.1.8 and no default route:
      $ip -f mpls route add 100 as 200 via inet 10.1.1.8
      [  822.337195] BUG: unable to handle kernel NULL pointer dereference at
      00000000000003a3
      [  822.340033] IP: [<ffffffff8148781e>] mpls_nh_assign_dev+0x10b/0x182
      [  822.340033] PGD 1db38067 PUD 1de9e067 PMD 0
      [  822.340033] Oops: 0000 [#1] SMP
      [  822.340033] Modules linked in:
      [  822.340033] CPU: 0 PID: 11148 Comm: ip Not tainted 4.5.0-rc7+ #54
      [  822.340033] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
      BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org
      04/01/2014
      [  822.340033] task: ffff88001db82580 ti: ffff88001dad4000 task.ti:
      ffff88001dad4000
      [  822.340033] RIP: 0010:[<ffffffff8148781e>]  [<ffffffff8148781e>]
      mpls_nh_assign_dev+0x10b/0x182
      [  822.340033] RSP: 0018:ffff88001dad7a88  EFLAGS: 00010282
      [  822.340033] RAX: ffffffffffffff9b RBX: ffffffffffffff9b RCX:
      0000000000000002
      [  822.340033] RDX: 00000000ffffff9b RSI: 0000000000000008 RDI:
      0000000000000000
      [  822.340033] RBP: ffff88001ddc9ea0 R08: ffff88001e9f1768 R09:
      0000000000000000
      [  822.340033] R10: ffff88001d9c1100 R11: ffff88001e3c89f0 R12:
      ffffffff8187e0c0
      [  822.340033] R13: ffffffff8187e0c0 R14: ffff88001ddc9e80 R15:
      0000000000000004
      [  822.340033] FS:  00007ff9ed798700(0000) GS:ffff88001fc00000(0000)
      knlGS:0000000000000000
      [  822.340033] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  822.340033] CR2: 00000000000003a3 CR3: 000000001de89000 CR4:
      00000000000006f0
      [  822.340033] Stack:
      [  822.340033]  0000000000000000 0000000100000000 0000000000000000
      0000000000000000
      [  822.340033]  0000000000000000 0801010a00000000 0000000000000000
      0000000000000000
      [  822.340033]  0000000000000004 ffffffff8148749b ffffffff8187e0c0
      000000000000001c
      [  822.340033] Call Trace:
      [  822.340033]  [<ffffffff8148749b>] ? mpls_rt_alloc+0x2b/0x3e
      [  822.340033]  [<ffffffff81488e66>] ? mpls_rtm_newroute+0x358/0x3e2
      [  822.340033]  [<ffffffff810e7bbc>] ? get_page+0x5/0xa
      [  822.340033]  [<ffffffff813b7d94>] ? rtnetlink_rcv_msg+0x17e/0x191
      [  822.340033]  [<ffffffff8111794e>] ? __kmalloc_track_caller+0x8c/0x9e
      [  822.340033]  [<ffffffff813c9393>] ?
      rht_key_hashfn.isra.20.constprop.57+0x14/0x1f
      [  822.340033]  [<ffffffff813b7c16>] ? __rtnl_unlock+0xc/0xc
      [  822.340033]  [<ffffffff813cb794>] ? netlink_rcv_skb+0x36/0x82
      [  822.340033]  [<ffffffff813b4507>] ? rtnetlink_rcv+0x1f/0x28
      [  822.340033]  [<ffffffff813cb2b1>] ? netlink_unicast+0x106/0x189
      [  822.340033]  [<ffffffff813cb5b3>] ? netlink_sendmsg+0x27f/0x2c8
      [  822.340033]  [<ffffffff81392ede>] ? sock_sendmsg_nosec+0x10/0x1b
      [  822.340033]  [<ffffffff81393df1>] ? ___sys_sendmsg+0x182/0x1e3
      [  822.340033]  [<ffffffff810e4f35>] ?
      __alloc_pages_nodemask+0x11c/0x1e4
      [  822.340033]  [<ffffffff8110619c>] ? PageAnon+0x5/0xd
      [  822.340033]  [<ffffffff811062fe>] ? __page_set_anon_rmap+0x45/0x52
      [  822.340033]  [<ffffffff810e7bbc>] ? get_page+0x5/0xa
      [  822.340033]  [<ffffffff810e85ab>] ? __lru_cache_add+0x1a/0x3a
      [  822.340033]  [<ffffffff81087ea9>] ? current_kernel_time64+0x9/0x30
      [  822.340033]  [<ffffffff813940c4>] ? __sys_sendmsg+0x3c/0x5a
      [  822.340033]  [<ffffffff8148f597>] ?
      entry_SYSCALL_64_fastpath+0x12/0x6a
      [  822.340033] Code: 83 08 04 00 00 65 ff 00 48 8b 3c 24 e8 40 7c f2 ff
      eb 13 48 c7 c3 9f ff ff ff eb 0f 89 ce e8 f1 ae f1 ff 48 89 c3 48 85 db
      74 15 <48> 8b 83 08 04 00 00 65 ff 08 48 81 fb 00 f0 ff ff 76 0d eb 07
      [  822.340033] RIP  [<ffffffff8148781e>] mpls_nh_assign_dev+0x10b/0x182
      [  822.340033]  RSP <ffff88001dad7a88>
      [  822.340033] CR2: 00000000000003a3
      [  822.435363] ---[ end trace 98cc65e6f6b8bf11 ]---
      
      After patch:
      $ip -f mpls route add 100 as 200 via inet 10.1.1.8
      RTNETLINK answers: Network is unreachable
      Signed-off-by: NRoopa Prabhu <roopa@cumulusnetworks.com>
      Reported-by: NDavid Miller <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      94a57f1f
  4. 08 4月, 2016 11 次提交
    • J
      ipv6: Count in extension headers in skb->network_header · 3ba3458f
      Jakub Sitnicki 提交于
      When sending a UDPv6 message longer than MTU, account for the length
      of fragmentable IPv6 extension headers in skb->network_header offset.
      Same as we do in alloc_new_skb path in __ip6_append_data().
      
      This ensures that later on __ip6_make_skb() will make space in
      headroom for fragmentable extension headers:
      
      	/* move skb->data to ip header from ext header */
      	if (skb->data < skb_network_header(skb))
      		__skb_pull(skb, skb_network_offset(skb));
      
      Prevents a splat due to skb_under_panic:
      
      skbuff: skb_under_panic: text:ffffffff8143397b len:2126 put:14 \
      head:ffff880005bacf50 data:ffff880005bacf4a tail:0x48 end:0xc0 dev:lo
      ------------[ cut here ]------------
      kernel BUG at net/core/skbuff.c:104!
      invalid opcode: 0000 [#1] KASAN
      CPU: 0 PID: 160 Comm: reproducer Not tainted 4.6.0-rc2 #65
      [...]
      Call Trace:
       [<ffffffff813eb7b9>] skb_push+0x79/0x80
       [<ffffffff8143397b>] eth_header+0x2b/0x100
       [<ffffffff8141e0d0>] neigh_resolve_output+0x210/0x310
       [<ffffffff814eab77>] ip6_finish_output2+0x4a7/0x7c0
       [<ffffffff814efe3a>] ip6_output+0x16a/0x280
       [<ffffffff815440c1>] ip6_local_out+0xb1/0xf0
       [<ffffffff814f1115>] ip6_send_skb+0x45/0xd0
       [<ffffffff81518836>] udp_v6_send_skb+0x246/0x5d0
       [<ffffffff8151985e>] udpv6_sendmsg+0xa6e/0x1090
      [...]
      Reported-by: NJi Jianwen <jiji@redhat.com>
      Signed-off-by: NJakub Sitnicki <jkbs@redhat.com>
      Acked-by: NHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ba3458f
    • B
      Revert "ib_srpt: Convert to percpu_ida tag allocation" · 3c968887
      Bart Van Assche 提交于
      This reverts commit 0fd10721.
      
      That patch causes the ib_srpt driver to crash as soon as the first SCSI
      command is received:
      
        kernel BUG at drivers/infiniband/ulp/srpt/ib_srpt.c:1439!
        invalid opcode: 0000 [#1] SMP
        Workqueue: target_completion target_complete_ok_work [target_core_mod]
        RIP: srpt_queue_response+0x437/0x4a0 [ib_srpt]
        Call Trace:
          srpt_queue_data_in+0x9/0x10 [ib_srpt]
          target_complete_ok_work+0x152/0x2b0 [target_core_mod]
          process_one_work+0x197/0x480
          worker_thread+0x49/0x490
          kthread+0xea/0x100
          ret_from_fork+0x22/0x40
      
      Aside from the crash, the shortcomings of that patch are as follows:
      
       - It makes the ib_srpt driver use I/O contexts allocated by
         transport_alloc_session_tags() but it does not initialize these I/O
         contexts properly.  All the initializations performed by
         srpt_alloc_ioctx() are skipped.
      
       - It swaps the order of the send ioctx allocation and the transition to
         RTR mode which is wrong.
      
       - The amount of memory that is needed for I/O contexts is doubled.
      
       - srpt_rdma_ch.free_list is no longer used but is not removed.
      Signed-off-by: NBart Van Assche <bart.vanassche@sandisk.com>
      Cc: Nicholas Bellinger <nab@linux-iscsi.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3c968887
    • L
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 93061f39
      Linus Torvalds 提交于
      Pull ext4 bugfixes from Ted Ts'o:
       "These changes contains a fix for overlayfs interacting with some
        (badly behaved) dentry code in various file systems.  These have been
        reviewed by Al and the respective file system mtinainers and are going
        through the ext4 tree for convenience.
      
        This also has a few ext4 encryption bug fixes that were discovered in
        Android testing (yes, we will need to get these sync'ed up with the
        fs/crypto code; I'll take care of that).  It also has some bug fixes
        and a change to ignore the legacy quota options to allow for xfstests
        regression testing of ext4's internal quota feature and to be more
        consistent with how xfs handles this case"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: ignore quota mount options if the quota feature is enabled
        ext4 crypto: fix some error handling
        ext4: avoid calling dquot_get_next_id() if quota is not enabled
        ext4: retry block allocation for failed DIO and DAX writes
        ext4: add lockdep annotations for i_data_sem
        ext4: allow readdir()'s of large empty directories to be interrupted
        btrfs: fix crash/invalid memory access on fsync when using overlayfs
        ext4 crypto: use dget_parent() in ext4_d_revalidate()
        ext4: use file_dentry()
        ext4: use dget_parent() in ext4_file_open()
        nfs: use file_dentry()
        fs: add file_dentry()
        ext4 crypto: don't let data integrity writebacks fail with ENOMEM
        ext4: check if in-inode xattr is corrupted in ext4_expand_extra_isize_ea()
      93061f39
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 1c915b3a
      Linus Torvalds 提交于
      Pull Ceph fix from Sage Weil:
       "This just fixes a few remaining memory allocations in RBD to use
        GFP_NOIO instead of GFP_ATOMIC"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        rbd: use GFP_NOIO consistently for request allocations
      1c915b3a
    • L
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · d3436a1d
      Linus Torvalds 提交于
      Pull virtio/qemu fixes from Michael S Tsirkin:
       "A couple of fixes for virtio and for the new QEMU fw cfg driver"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio: add VIRTIO_CONFIG_S_NEEDS_RESET device status bit
        MAINTAINERS: add entry for QEMU
        firmware: qemu_fw_cfg.c: hold ACPI global lock during device access
        virtio: virtio 1.0 cs04 spec compliance for reset
        qemu_fw_cfg: don't leak kobj on init error
      d3436a1d
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 741f37b8
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "This is mostly amdgpu/radeon fixes, and imx related fixes.
      
        There is also one one TTM fix, one nouveau fix, and one hdlcd fix.
      
        The AMD ones are some fixes for power management after suspend/resume
        one some GPUs, and some vblank fixes.
      
        The IMX ones are for more stricter plane checks and some cleanups.
      
        I'm off until Monday, so therre might be some fixes early next week if
        anyone missed me"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (34 commits)
        drm/nouveau/tegra: acquire and enable reference clock if needed
        drm/amdgpu: total vram size also reduces pin size
        drm/amd/powerplay: add uvd/vce dpm enabling flag default.
        drm/amd/powerplay: fix issue that resume back, dpm can't work on FIJI.
        drm/amdgpu: save and restore the firwmware cache part when suspend resume
        drm/amdgpu: save and restore UVD context with suspend and resume
        drm/ttm: use phys_addr_t for ttm_bus_placement
        drm: ARM HDLCD - fix an error code
        drm: ARM HDLCD - get rid of devm_clk_put()
        drm/radeon: Only call drm_vblank_on/off between drm_vblank_init/cleanup
        drm/amdgpu: fence wait old rcu slot
        drm/amdgpu: fix leaking fence in the pageflip code
        drm/amdgpu: print vram type rather than just DDR
        drm/amdgpu/gmc: use proper register for vram type on Fiji
        drm/amdgpu/gmc: move vram type fetching into sw_init
        drm/amdgpu: Set vblank_disable_allowed = true
        drm/radeon: Set vblank_disable_allowed = true
        drm/amd/powerplay: Need to change boot to performance state in resume.
        drm/amd/powerplay: add new Fiji function for not setting same ps.
        drm/amdgpu: check dpm state before pm system fs initialized.
        ...
      741f37b8
    • S
      RDS: fix congestion map corruption for PAGE_SIZE > 4k · 579ba855
      shamir rabinovitch 提交于
      When PAGE_SIZE > 4k single page can contain 2 RDS fragments. If
      'rds_ib_cong_recv' ignore the RDS fragment offset in to the page it
      then read the data fragment as far congestion map update and lead to
      corruption of the RDS connection far congestion map.
      Signed-off-by: NShamir Rabinovitch <shamir.rabinovitch@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      579ba855
    • S
      RDS: memory allocated must be align to 8 · e98499ac
      shamir rabinovitch 提交于
      Fix issue in 'rds_ib_cong_recv' when accessing unaligned memory
      allocated by 'rds_page_remainder_alloc' using uint64_t pointer.
      Signed-off-by: NShamir Rabinovitch <shamir.rabinovitch@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e98499ac
    • A
      GRE: Disable segmentation offloads w/ CSUM and we are encapsulated via FOU · a0ca153f
      Alexander Duyck 提交于
      This patch fixes an issue I found in which we were dropping frames if we
      had enabled checksums on GRE headers that were encapsulated by either FOU
      or GUE.  Without this patch I was barely able to get 1 Gb/s of throughput.
      With this patch applied I am now at least getting around 6 Gb/s.
      
      The issue is due to the fact that with FOU or GUE applied we do not provide
      a transport offset pointing to the GRE header, nor do we offload it in
      software as the GRE header is completely skipped by GSO and treated like a
      VXLAN or GENEVE type header.  As such we need to prevent the stack from
      generating it and also prevent GRE from generating it via any interface we
      create.
      
      Fixes: c3483384 ("gro: Allow tunnel stacking in the case of FOU/GUE")
      Signed-off-by: NAlexander Duyck <aduyck@mirantis.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a0ca153f
    • S
      PM / wakeirq: fix wakeirq setting after wakup re-configuration from sysfs · 16669bef
      Strashko, Grygorii 提交于
      Now wakeirq stops working for device if wakeup option for
      this device will be reconfigured through sysfs, like:
      
      echo disabled > /sys/devices/platform/extcon_usb1/power/wakeup
      echo enabled > /sys/devices/platform/extcon_usb1/power/wakeup
      
      Once above set of commands is executed the device's wakeup_source
      opject will be recreated and dev->power.wakeup->wakeirq field will
      contain NULL. As result, device_wakeup_arm_wake_irqs() will not arm
      wakeirq for the affected device.
      
      Hece, lets try to fix it in the following way:
        check for dev->wakeirq field when device_wakeup_attach() is called
        and if !NULL re-attach wakeirq to the device
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      16669bef
    • L
      tools/power turbostat: work around RC6 counter wrap · 9185e988
      Len Brown 提交于
      Sometimes the rc6 sysfs counter spontaneously resets,
      causing turbostat prints a very large number
      as it tries to calcuate % = 100 * (old - new) / interval
      
      When we see (old > new), print ***.**% instead
      of a bogus huge number.
      
      Note that this detection is not fool-proof, as the counter
      could reset several times and still result in new > old.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9185e988