1. 22 11月, 2014 40 次提交
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 14591433
      David S. Miller 提交于
      Conflicts:
      	drivers/net/ieee802154/fakehard.c
      
      A bug fix went into 'net' for ieee802154/fakehard.c, which is removed
      in 'net-next'.
      
      Add build fix into the merge from Stephen Rothwell in openvswitch, the
      logging macros take a new initial 'log' argument, a new call was added
      in 'net' so when we merge that in here we have to explicitly add the
      new 'log' arg to it else the build fails.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      14591433
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 8a84e01e
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix BUG when decrypting empty packets in mac80211, from Ronald Wahl.
      
       2) nf_nat_range is not fully initialized and this is copied back to
          userspace, from Daniel Borkmann.
      
       3) Fix read past end of b uffer in netfilter ipset, also from Dan
          Carpenter.
      
       4) Signed integer overflow in ipv4 address mask creation helper
          inet_make_mask(), from Vincent BENAYOUN.
      
       5) VXLAN, be2net, mlx4_en, and qlcnic need ->ndo_gso_check() methods to
          properly describe the device's capabilities, from Joe Stringer.
      
       6) Fix memory leaks and checksum miscalculations in openvswitch, from
          Pravin B SHelar and Jesse Gross.
      
       7) FIB rules passes back ambiguous error code for unreachable routes,
          making behavior confusing for userspace.  Fix from Panu Matilainen.
      
       8) ieee802154fake_probe() doesn't release resources properly on error,
          from Alexey Khoroshilov.
      
       9) Fix skb_over_panic in add_grhead(), from Daniel Borkmann.
      
      10) Fix access of stale slave pointers in bonding code, from Nikolay
          Aleksandrov.
      
      11) Fix stack info leak in PPP pptp code, from Mathias Krause.
      
      12) Cure locking bug in IPX stack, from Jiri Bohac.
      
      13) Revert SKB fclone memory freeing optimization that is racey and can
          allow accesses to freed up memory, from Eric Dumazet.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (71 commits)
        tcp: Restore RFC5961-compliant behavior for SYN packets
        net: Revert "net: avoid one atomic operation in skb_clone()"
        virtio-net: validate features during probe
        cxgb4 : Fix DCB priority groups being returned in wrong order
        ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg
        openvswitch: Don't validate IPv6 label masks.
        pptp: fix stack info leak in pptp_getname()
        brcmfmac: don't include linux/unaligned/access_ok.h
        cxgb4i : Don't block unload/cxgb4 unload when remote closes TCP connection
        ipv6: delete protocol and unregister rtnetlink when cleanup
        net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too
        bonding: fix curr_active_slave/carrier with loadbalance arp monitoring
        mac80211: minstrel_ht: fix a crash in rate sorting
        vxlan: Inline vxlan_gso_check().
        can: m_can: update to support CAN FD features
        can: m_can: fix incorrect error messages
        can: m_can: add missing delay after setting CCCR_INIT bit
        can: m_can: fix not set can_dlc for remote frame
        can: m_can: fix possible sleep in napi poll
        can: m_can: add missing message RAM initialization
        ...
      8a84e01e
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 928352e9
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "Just two radeon and two intel fixes: endian and regression fixes"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon: fix endian swapping in vbios fetch for tdp table
        drm/radeon: disable native backlight control on pre-r6xx asics (v2)
        drm/i915: Kick fbdev before vgacon
        drm/i915: drop WaSetupGtModeTdRowDispatch:snb
      928352e9
    • L
      Merge tag 'sound-3.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 9a7e4f56
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "This batch ended up as a relatively high volume due to pending ASoC
        fixes.  But most of fixes there are trivial and/or device- specific
        fixes and quirks, so safe to apply.  The only (ASoC) core fixes are
        the DPCM race fix and the machine-driver matching fix for
        componentization"
      
      * tag 'sound-3.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - fix the mic mute led problem for Latitude E5550
        ALSA: hda - move DELL_WMI_MIC_MUTE_LED to the tail in the quirk chain
        ASoC: wm_adsp: Avoid attempt to free buffers that might still be in use
        ALSA: usb-audio: Set the Control Selector to SU_SELECTOR_CONTROL for UAC2
        ALSA: usb-audio: Add ctrl message delay quirk for Marantz/Denon devices
        ASoC: sgtl5000: Fix SMALL_POP bit definition
        ASoC: cs42l51: re-hook of_match_table pointer
        ASoC: rt5670: change dapm routes of PLL connection
        ASoC: rt5670: correct the incorrect default values
        ASoC: samsung: Add MODULE_DEVICE_TABLE for Snow
        ASoC: max98090: Correct pclk divisor settings
        ASoC: dpcm: Fix race between FE/BE updates and trigger
        ASoC: Fix snd_soc_find_dai() matching component by name
        ASoC: rsnd: remove unsupported PAUSE flag
        ASoC: fsi: remove unsupported PAUSE flag
        ASoC: rt5645: Mark RT5645_TDM_CTRL_3 as readable
        ASoC: rockchip-i2s: fix infinite loop in rockchip_snd_rxctrl
        ASoC: es8328-i2c: Fix i2c_device_id name field in es8328_id
        ASoC: fsl_asrc: Add reg_defaults for regmap to fix kernel dump
      9a7e4f56
    • L
      Merge tag 'pm+acpi-3.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f100a746
      Linus Torvalds 提交于
      Pull ACPI power management fix from Rafael Wysocki:
       "This is just a one-liner fixing a regression introduced in 3.13 that
        broke system suspend on some Chromebooks.
      
        On those machines there are ACPI device objects for some I2C devices
        that can wake up the system from sleep states, but that is done via a
        platform-specific mechanism and the ACPI objects don't contain any
        wakeup-related information.  When we started to use ACPI power
        management with those devices (which happened during the 3.13 cycle),
        their configuration confused the ACPI PM layer that returned error
        codes from suspend callbacks for them causing system suspend to fail.
      
        However, the ACPI PM layer can safely ignore the wakeup setting from a
        device driver if the ACPI object corresponding to the device in
        question doesn't contain wakeup information in which case the driver
        itself is responsible for setting up the device for system wakeup"
      
      * tag 'pm+acpi-3.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up
      f100a746
    • L
      Merge tag 'devicetree-fixes-for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 2e29a6d0
      Linus Torvalds 提交于
      Pull devicetree fixes from Rob Herring:
       "DeviceTree fixes for 3.18:
      
         - two fixes for OF selftest code
         - fix for PowerPC address parsing to disable work-around except on
           old PowerMACs
         - fix a crash when earlycon is enabled, but no device is found
         - DT documentation fixes and missing vendor prefixes
      
        All but the doc updates are also for stable"
      
      * tag 'devicetree-fixes-for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of/selftest: Fix testing when /aliases is missing
        of/selftest: Fix off-by-one error in removal path
        documentation: pinctrl bindings: Fix trivial typo 'abitrary'
        devicetree: bindings: Add vendor prefix for Micron Technology, Inc.
        of: Add vendor prefix for Chips&Media, Inc.
        of/base: Fix PowerPC address parsing hack
        devicetree: vendor-prefixes.txt: fix whitespace
        of: Fix crash if an earlycon driver is not found
        of/irq: Drop obsolete 'interrupts' vs 'interrupts-extended' text
        of: Spelling s/stucture/structure/
        devicetree: bindings: add sandisk to the vendor prefixes
      2e29a6d0
    • L
      Merge tag 'pci-v3.18-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 08685897
      Linus Torvalds 提交于
      Pull PCI fixes from Bjorn Helgaas:
       "These are fixes for an issue with 64-bit PCI bus addresses on 32-bit
        PAE kernels, an APM X-Gene problem (it depended on a generic change we
        removed before merging), a fix for my hotplug device configuration
        changes, and a devicetree documentation update.
      
        Resource management:
          - Support 64-bit bridge windows if we have 64-bit dma_addr_t (Yinghai Lu)
      
        PCI device hotplug:
          - Apply _HPX Link Control settings to all devices with a link (Yinghai Lu)
      
        Generic host bridge driver:
          - Add DT binding for "linux,pci-domain" property (Lucas Stach)
      
        APM X-Gene:
          - Assign resources to bus before adding new devices (Duc Dang)"
      
      * tag 'pci-v3.18-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Support 64-bit bridge windows if we have 64-bit dma_addr_t
        PCI: Apply _HPX Link Control settings to all devices with a link
        PCI: Add missing DT binding for "linux,pci-domain" property
        PCI: xgene: Assign resources to bus before adding new devices
      08685897
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · a46171d0
      Linus Torvalds 提交于
      Pull SCSI target fixes from Nicholas Bellinger:
       "Here are the target-pending fixes queued for v3.18-rc6.
      
        The highlights include:
      
         - target-core OOPs fix with tcm_qla2xxx + vxworks FC initiators +
           zero length SCSI commands having a transfer direction set.  (Roland
           + Craig Watson)
      
         - vhost-scsi OOPs fix to explicitly prevent WWPN endpoint configfs
           group removal while qemu still has an active reference.  (Paolo +
           nab)
      
         - ib_srpt fix for RDMA hardware with lower srp_sq_size limits.
           (Bart)
      
         - two ib_isert work-arounds for running on ocrdma hardware (Or + Sagi
           + Chris)
      
         - iscsi-target discovery portal typo + SPC-3 PR Preempt SA key
           matching fix (Steve)"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        IB/isert: Adjust CQ size to HW limits
        target: return CONFLICT only when SA key unmatched
        iser-target: Handle DEVICE_REMOVAL event on network portal listener correctly
        ib_isert: Add max_send_sge=2 minimum for control PDU responses
        srp-target: Retry when QP creation fails with ENOMEM
        iscsi-target: return the correct port in SendTargets
        vhost-scsi: Take configfs group dependency during VHOST_SCSI_SET_ENDPOINT
        target: Don't call TFO->write_pending if data_length == 0
      a46171d0
    • L
      Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma · 4ec69c7e
      Linus Torvalds 提交于
      Pull dmaengine fixes from Vinod Koul:
       "We have couple of fixes for dmaengine queued up:
         - dma mempcy fix for dma configuration of sun6i by Maxime
         - pl330 fixes: First the fixing allocation for data buffers by Liviu
           and then Jon's fixe for fifo width and usage"
      
      * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: Fix allocation size for PL330 data buffer depth.
        dmaengine: pl330: Limit MFIFO usage for memcpy to avoid exhausting entries
        dmaengine: pl330: Align DMA memcpy operations to MFIFO width
        dmaengine: sun6i: Fix memcpy operation
      4ec69c7e
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · e6a588d0
      Linus Torvalds 提交于
      Pull MIPS fixes from Ralf Baechle:
       "More 3.18 fixes for MIPS:
      
         - backtraces were not quite working on on 64-bit kernels
         - loongson needs a different cache coherency setting
         - Loongson 3 is a MIPS64 R2 version but due to erratum we treat is an
           older architecture revision.
         - fix build errors due to undefined references to __node_distances
           for certain configurations.
         - fix instruction decodig in the jump label code.
         - for certain configurations copy_{from,to}_user destroy the content
           of $3 so that register needs to be marked as clobbed by the calling
           code.
         - Hardware Table Walker fixes.
         - fill the delay slot of the last instruction of memcpy otherwise
           whatever ends up there randomly might have undesirable effects.
         - ensure get_user/__get_user always zero the variable to be read even
           in case of an error"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: jump_label.c: Handle the microMIPS J instruction encoding
        MIPS: jump_label.c: Correct the span of the J instruction
        MIPS: Zero variable read by get_user / __get_user in case of an error.
        MIPS: lib: memcpy: Restore NOP on delay slot before returning to caller
        MIPS: tlb-r4k: Add missing HTW stop/start sequences
        MIPS: asm: uaccess: Add v1 register to clobber list on EVA
        MIPS: oprofile: Fix backtrace on 64-bit kernel
        MIPS: Loongson: Set Loongson-3's ISA level to MIPS64R1
        MIPS: Loongson: Fix the write-combine CCA value setting
        MIPS: IP27: Fix __node_distances undefined error
        MIPS: Loongson3: Fix __node_distances undefined error
      e6a588d0
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux · 4fc82c0a
      Linus Torvalds 提交于
      Pull powerpc fix from Michael Ellerman:
       "One fix from Scott, he says:
      
        This patch fixes a crash (introduced in v3.18-rc1) in the FSL MSI driver
        when threaded IRQs are enabled"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
        powerpc/fsl_msi: mark the msi cascade handler IRQF_NO_THREAD
      4fc82c0a
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c6c9161d
      Linus Torvalds 提交于
      Pull x86 fixes from Thomas Gleixner:
       "Misc fixes:
         - gold linker build fix
         - noxsave command line parsing fix
         - bugfix for NX setup
         - microcode resume path bug fix
         - _TIF_NOHZ versus TIF_NOHZ bugfix as discussed in the mysterious
           lockup thread"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, syscall: Fix _TIF_NOHZ handling in syscall_trace_enter_phase1
        x86, kaslr: Handle Gold linker for finding bss/brk
        x86, mm: Set NX across entire PMD at boot
        x86, microcode: Update BSPs microcode on resume
        x86: Require exact match for 'noxsave' command line option
      c6c9161d
    • L
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8b2ed21e
      Linus Torvalds 提交于
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixes: two NUMA fixes, two cputime fixes and an RCU/lockdep fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/cputime: Fix clock_nanosleep()/clock_gettime() inconsistency
        sched/cputime: Fix cpu_timer_sample_group() double accounting
        sched/numa: Avoid selecting oneself as swap target
        sched/numa: Fix out of bounds read in sched_init_numa()
        sched: Remove lockdep check in sched_move_task()
      8b2ed21e
    • L
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 13f5004c
      Linus Torvalds 提交于
      Pull perf fixes from Ingo Molnar:
       "Misc fixes: two Intel uncore driver fixes, a CPU-hotplug fix and a
        build dependencies fix"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/uncore: Fix boot crash on SBOX PMU on Haswell-EP
        perf/x86/intel/uncore: Fix IRP uncore register offsets on Haswell EP
        perf: Fix corruption of sibling list with hotplug
        perf/x86: Fix embarrasing typo
      13f5004c
    • L
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a64bb02f
      Linus Torvalds 提交于
      Pull core fix from Ingo Molnar:
       "Fix GENMASK macro shift overflow"
      
      Nobody seems to currently use GENMASK() to fill every single last bit
      (which is what overflows) in-tree, and gcc would warn about it, so we
      have that going for us.  But apparently there are pending changes that
      want this.
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        bitops: Fix shift overflow in GENMASK macros
      a64bb02f
    • D
      Merge tag 'master-2014-11-20' of... · 53b15ef3
      David S. Miller 提交于
      Merge tag 'master-2014-11-20' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
      
      John W. Linville says:
      
      ====================
      pull request: wireless-next 2014-11-21
      
      Please pull this batch of updates intended for the 3.19 stream...
      
      For the mac80211 bits, Johannes says:
      
      "It has been a while since my last pull request, so we accumulated
      another relatively large set of changes:
       * TDLS off-channel support set from Arik/Liad, with some support
         patches I did
       * custom regulatory fixes from Arik
       * minstrel VHT fix (and a small optimisation) from Felix
       * add back radiotap vendor namespace support (myself)
       * random MAC address scanning for cfg80211/mac80211/hwsim (myself)
       * CSA improvements (Luca)
       * WoWLAN Net Detect (wake on network found) support (Luca)
       * and lots of other smaller changes from many people"
      
      For the Bluetooth bits, Johan says:
      
      "Here's another set of patches for 3.19. Most of it is again fixes and
      cleanups to ieee802154 related code from Alexander Aring. We've also got
      better handling of hardware error events along with a proper API for HCI
      drivers to notify the HCI core of such situations. There's also a minor
      fix for mgmt events as well as a sparse warning fix. The code for
      sending HCI commands synchronously also gets a fix where we might loose
      the completion event in the case of very fast HW (particularly easily
      reproducible with an emulated HCI device)."
      
      And...
      
      "Here's another bluetooth-next pull request for 3.19. We've got:
      
       - Various fixes, cleanups and improvements to ieee802154/mac802154
       - Support for a Broadcom BCM20702A1 variant
       - Lots of lockdep fixes
       - Fixed handling of LE CoC errors that should trigger SMP"
      
      For the Atheros bits, Kalle says:
      
      "One ath6kl patch and rest for ath10k, but nothing really major which
      stands out. Most notable:
      
      o fix resume (Bartosz)
      
      o firmware restart is now faster and more reliable (Michal)
      
      o it's now possible to test hardware restart functionality without
        crashing the firmware using hw-restart parameter with
        simulate_fw_crash debugfs file (Michal)"
      
      On top of that...both ath9k and mwifiex get their usual level of
      updates.  Of note is the ath9k spectral scan work from Oleksij Rempel.
      
      I also pulled from the wireless tree in order to avoid some merge issues.
      
      Please let me know if there are problems!
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      53b15ef3
    • D
      Merge branch 'defxx-next' · b48c5ec5
      David S. Miller 提交于
      Maciej W. Rozycki says:
      
      ====================
      defxx: Assorted fixes, mainly for EISA
      
       This is another small series fixing issues with the defxx driver,
      mainly for EISA boards, but there's one patch for PCI as well.
      
       In the end, with the inexistent second IDE channel forcefully disabled
      in the IDE driver, I wasn't able to retrigger spurious IRQ 15 interrupts
      I previously saw and suspected the DEFEA to be the cause.  So it looks
      to me these were real noise on IRQ 15 rather than the latency in
      interrupt acknowledge in the DEFEA board causing the slave 8259A to
      issue the spurious interrupt vector.  In any case not an issue with the
      defxx driver, so nothing to do here unless the problem resurfaces.
      
       I haven't seen your announcement about opening net-next since the
      closure on Oct 6th, but from the patch traffic and the policy described
      in Documentation/networking/netdev-FAQ.txt I gather your tree is open.
      And these are bug fixes anyway, not new features, so please apply.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b48c5ec5
    • M
      defxx: Clean up DEFEA resource management · 4d0438e5
      Maciej W. Rozycki 提交于
      Reserve DEFEA resources according to actual use.  There are three
      regions, for the ESIC ASIC's CSRs, for the discrete Burst Holdoff
      register, and for the PDQ ASIC's CSRs.  The latter is mapped in the
      memory or port I/O address space depending on configuration.  The two
      formers are hardwired and always mapped in the port I/O address space.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4d0438e5
    • M
      defxx: Disable DEFEA's ESIC I/O decoding on shutdown · 6a931423
      Maciej W. Rozycki 提交于
      Make sure the option card does not respond after shutdown by disabling
      it via ESIC's Expansion Board Control register.  Also disable memory and
      port I/O decoders, the latter in particular to disable slot-specific I/O
      decoding that otherwise remains active even in the board is disabled.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6a931423
    • M
      defxx: Correct DEFEA's ESIC MMIO decoding · fef85fc4
      Maciej W. Rozycki 提交于
      Use ESIC's memory area 1 (MEMCS1) and its Memory Address High Compare
      and Memory Address Low Compare registers to set up the MMIO range for
      decoding accesses to PDQ ASIC registers.  Previously the PDQ ASIC was
      thought to be addressable with the memory area 0 (MEMCS0) and its Memory
      Address Compare and Memory Address Mask registers.
      
      The MMIO range allocated for the option card is preset via ECU (EISA
      Configuration Utility) and can be disabled, so handle such a case
      gracefully too.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fef85fc4
    • M
      defxx: Fix DEFPA enable error propagation · a65da0c3
      Maciej W. Rozycki 提交于
      Correctly propagate the error code from `pci_enable_device' if non zero.
      Currently a failure of this function is correctly recognized and device
      initialization abandoned, however a successful completion code returned.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a65da0c3
    • R
      vlan: Pass ethtool get_ts_info queries to real device. · 37dd9255
      Richard Cochran 提交于
      Commit a6111d3c "vlan: Pass SIOC[SG]HWTSTAMP ioctls to real device"
      intended to enable hardware time stamping on VLAN interfaces, but
      passing SIOCSHWTSTAMP is only half of the story. This patch adds
      the second half, by letting user space find out the time stamping
      capabilities of the device backing a VLAN interface.
      Signed-off-by: NRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37dd9255
    • C
      tcp: Restore RFC5961-compliant behavior for SYN packets · 0c228e83
      Calvin Owens 提交于
      Commit c3ae62af ("tcp: should drop incoming frames without ACK
      flag set") was created to mitigate a security vulnerability in which a
      local attacker is able to inject data into locally-opened sockets by
      using TCP protocol statistics in procfs to quickly find the correct
      sequence number.
      
      This broke the RFC5961 requirement to send a challenge ACK in response
      to spurious RST packets, which was subsequently fixed by commit
      7b514a88 ("tcp: accept RST without ACK flag").
      
      Unfortunately, the RFC5961 requirement that spurious SYN packets be
      handled in a similar manner remains broken.
      
      RFC5961 section 4 states that:
      
         ... the handling of the SYN in the synchronized state SHOULD be
         performed as follows:
      
         1) If the SYN bit is set, irrespective of the sequence number, TCP
            MUST send an ACK (also referred to as challenge ACK) to the remote
            peer:
      
            <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>
      
            After sending the acknowledgment, TCP MUST drop the unacceptable
            segment and stop processing further.
      
         By sending an ACK, the remote peer is challenged to confirm the loss
         of the previous connection and the request to start a new connection.
         A legitimate peer, after restart, would not have a TCB in the
         synchronized state.  Thus, when the ACK arrives, the peer should send
         a RST segment back with the sequence number derived from the ACK
         field that caused the RST.
      
         This RST will confirm that the remote peer has indeed closed the
         previous connection.  Upon receipt of a valid RST, the local TCP
         endpoint MUST terminate its connection.  The local TCP endpoint
         should then rely on SYN retransmission from the remote end to
         re-establish the connection.
      
      This patch lets SYN packets through the discard added in c3ae62af,
      so that spurious SYN packets are properly dealt with as per the RFC.
      
      The challenge ACK is sent unconditionally and is rate-limited, so the
      original vulnerability is not reintroduced by this patch.
      Signed-off-by: NCalvin Owens <calvinowens@fb.com>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Acked-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0c228e83
    • E
      net: Revert "net: avoid one atomic operation in skb_clone()" · e7820e39
      Eric Dumazet 提交于
      Not sure what I was thinking, but doing anything after
      releasing a refcount is suicidal or/and embarrassing.
      
      By the time we set skb->fclone to SKB_FCLONE_FREE, another cpu
      could have released last reference and freed whole skb.
      
      We potentially corrupt memory or trap if CONFIG_DEBUG_PAGEALLOC is set.
      Reported-by: NChris Mason <clm@fb.com>
      Fixes: ce1a4ea3 ("net: avoid one atomic operation in skb_clone()")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Sabrina Dubroca <sd@queasysnail.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e7820e39
    • D
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next · cd91a88b
      David S. Miller 提交于
      Jeff Kirsher says:
      
      ====================
      Intel Wired LAN Driver Updates 2014-11-20
      
      This series contains updates to ixgbevf, i40e and i40evf.
      
      Emil updates ixgbevf with much of the work that Alex Duyck did while at
      Intel.  First updates the driver to clear the status bits on allocation
      instead of in the cleanup routine, this way we can leave the recieve
      descriptor rings as a read only memory block until we actually have
      buffers to give back to the hardware.  Clean up ixgbevf_clean_rx_irq()
      by creating ixgbevf_process_skb_field() to merge several similar
      operations into this new function.  Cleanup temporary variables within
      the receive hot-path and reducing the scope of variables that do not
      need to exist outside the main loop.  Save on stack space by just
      storing our updated values back in next_to_clean instead of using
      a stack variable, which also collapses the size the function.  Improve
      performace on IOMMU enabled systems and reduce cache misses by changing
      the basic receive patch for ixgbevf so that instead of receiving the
      data into an skb, it is received into a double buffered page.  Add
      netpoll support by creating ixgbevf_netpoll(), which is a callback for
      .ndo_poll_controller to allow for the VF interface to be used with
      netconsole.
      
      Mitch provides several cleanups and trivial fixes for i40e and i40evf.
      First is a fix the overloading of the msg_size field in the
      arq_event_info struct by splitting the field into two and renaming to
      indicate the actual function of each field.  Updates code comments
      to match the actual function.  Cleanup several checkpatch.pl warnings
      by adding or removing blank lines, aligning function parameters, and
      correcting over-long lines (which makes the code more readable).
      
      Shannon provides a patch for i40e to write the extra bits that will
      turn off the ITR wait for the interrupt, since we want the SW INT to
      go off as soon as possible.
      
      v2: updated patch 07 based on feedback from Alex Duyck by
       - adding pfmemalloc check to a new function for reusable page
       - moved atomic_inc outside of #if/else in ixgbevf_add_rx_frag()
       - reverted the removal of the API check in ixgbevf_change_mtu()
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cd91a88b
    • D
      Merge branch 'amd-xgbe-next' · 7d7a1079
      David S. Miller 提交于
      Tom Lendacky says:
      
      ====================
      amd-xgbe: AMD XGBE driver updates 2014-11-20
      
      The following series of patches includes functional updates to the
      driver as well as some trivial changes.
      
      - Add a read memory barrier in the Tx and Rx path after checking the
        descriptor ownership bit
      - Wait for the Tx engine to stop/suspend before issuing a stop command
      - Implement a smatch tool suggestion to simplify an if statement
      - Separate out Tx and Rx ring data fields into their own structures
      - Add BQL support
      - Remove an unused variable
      - Change Tx coalescing support to operate on packet basis instead of
        a descriptor basis
      - Add support for the skb->xmit_more flag
      
      This patch series is based on net-next.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d7a1079
    • L
      amd-xgbe: Add support for the skb->xmit_more flag · 16958a2b
      Lendacky, Thomas 提交于
      Add support to delay telling the hardware about data that is ready to
      be transmitted if the skb->xmit_more flag is set.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      16958a2b
    • L
      amd-xgbe: Perform Tx coalescing on a packet basis · eb79e640
      Lendacky, Thomas 提交于
      The current form of Tx coalescing works on a descriptor basis instead
      of on a packet basis and doesn't take into account TSO packets. Update
      the Tx coalescing support to work on a packet basis, taking into
      account the number of packets associated with a TSO transmit. Also,
      only activate the Tx timer if a timer value is set.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb79e640
    • L
      amd-xgbe: Remove unused variable · 16978eb7
      Lendacky, Thomas 提交于
      The tso_header variable in the xgbe_tx_ring_data structure is not used,
      remove it.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      16978eb7
    • L
      amd-xgbe: Add BQL support · 5fb4b86a
      Lendacky, Thomas 提交于
      Call the appropriate BQL functions to track the number of bytes queued
      during Tx processing and to track the number of packets and bytes
      that have been transmitted during Tx complete processing.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5fb4b86a
    • L
      amd-xgbe: Separate Tx/Rx ring data fields into new structs · c9f140eb
      Lendacky, Thomas 提交于
      Move the Tx and Rx related fields within the xgbe_ring_data struct into
      their own structs in order to more easily see what fields are used for
      each operation.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c9f140eb
    • L
      amd-xgbe: Incorporate Smatch coding suggestion · 7bba35bd
      Lendacky, Thomas 提交于
      The Smatch tool indicated that one of the if statements in xgbe-dev.c
      could be rewritten to remove a redundant check for the 'err' variable
      in an if statement.
      
      Change the statement as suggested and add a comment to help clarify.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7bba35bd
    • L
      amd-xgbe: Tx engine must not be active before stopping it · 16edd34e
      Lendacky, Thomas 提交于
      If the Tx engine is told to stop while it is actively processing Tx
      descriptors it is possible that the Tx descriptor(s) will not be closed
      out properly. When the Tx engine is restarted this could result in the
      driver being stuck on the improperly closed descriptor.
      
      Update the driver to wait for the Tx engine to be in a stopped or
      suspended state before issuing the stop command.
      
      This has not been an issue to date, but it's a good safe-guard to have.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      16edd34e
    • L
      amd-xgbe: Add a read memory barrier to Tx/Rx path · 5449e271
      Lendacky, Thomas 提交于
      Add a read memory barrier to the Tx and Rx paths where the ownership
      bit is checked to be sure that all descriptor fields are read after
      having read the ownership bit for the descriptor.
      
      This has not been an issue to date, but it's a good safe-guard to have.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5449e271
    • M
      net: USB: Deletion of unnecessary checks before the function call "kfree" · 91ecee68
      Markus Elfring 提交于
      The kfree() function tests whether its argument is NULL and then
      returns immediately. Thus the test around the call is not needed.
      
      This issue was detected by using the Coccinelle software.
      Signed-off-by: NMarkus Elfring <elfring@users.sourceforge.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      91ecee68
    • M
      net: Xilinx: Deletion of unnecessary checks before two function calls · 38a90e7c
      Markus Elfring 提交于
      The functions kfree() and of_node_put() test whether their argument is NULL
      and then return immediately. Thus the test around the call is not needed.
      
      This issue was detected by using the Coccinelle software.
      Signed-off-by: NMarkus Elfring <elfring@users.sourceforge.net>
      Reviewed-by: NSoren Brinkmann <soren.brinkmann@xilinx.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      38a90e7c
    • M
      IBM-EMAC: Deletion of unnecessary checks before the function call "of_dev_put" · 5ac0fd00
      Markus Elfring 提交于
      The of_dev_put() function tests whether its argument is NULL and then
      returns immediately. Thus the test around the call is not needed.
      
      This issue was detected by using the Coccinelle software.
      Signed-off-by: NMarkus Elfring <elfring@users.sourceforge.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ac0fd00
    • S
      net/mlx4_en: mlx4_en_set_settings() always fails when autoneg is set · 312df74c
      Saeed Mahameed 提交于
      Fix ethtool set settings to not check AUTONEG_ENABLE
      
      mlx4_en_set_settings should not check if cmd->autoneg == AUTONEG_ENABLE,
      cmd->autoneg can be enabled by default and this check will fail other settings requests.
      mlx4_en driver doesn't support changing autoneg value, but shouldn't fail the request
      in case cmd->autoneg was set.
      
      Fixes: d48b3ab4 ("net/mlx4_en: Use PTYS register to set ethtool settings (Speed)")
      Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      312df74c
    • T
      drivers: atm: eni: Add pci_dma_mapping_error() call · 54167558
      Tina Johnson 提交于
      Added a pci_dma_mapping_error() call to check for mapping errors before
      further using the dma handle. In case of error, control goes to a new label
      where the incoming skb is freed. Unchecked dma handles were found using
      Coccinelle:
      
      @rule1@
      expression e1;
      identifier x;
      @@
      
      *x = pci_map_single(...);
       ... when != pci_dma_mapping_error(e1,x)
      Signed-off-by: NTina Johnson <tinajohnson.1234@gmail.com>
      Acked-by: NJulia Lawall <julia.lawall@lip6.fr>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      54167558
    • D
      Merge branch 'tipc-next' · 49ed2617
      David S. Miller 提交于
      Richard Alpe says:
      
      ====================
      tipc: new netlink API
      
      v3
      The old API is not removed.
      
      The new API is separated from the old because of a bug in the old
      tipc-config utility using it. When adding commands to the existing
      genl_ops struct the get-family response message grows to a point where
      it overflows the small receive buffer in tipc-config, subsequently
      breaking the tool. Hence the two genl_family and genl_ops structs.
      
      The new headers are placed in a new file called tipc_netlink.h rather
      than added to tipc_config.h as they where in previous versions of this
      patchset.
      /v3
      
      v2
      Redesigned "socket list command" to address David Millers comments in
      net-next v1 of this patchset.
      
      Simply put the problem is that we can have an arbitrary amount of
      sockets with an arbitrary amount of associated publications. In the
      previous patchset this was solved by nesting as many publications as
      possible into a socket. If all didn't fit it sent the same socket again
      with the remaining publications. As David Miller pointed out this makes
      each message malformed as the receiver cannot by the data itself know if
      it has received a complete set or not. This was flagged outside of the
      data and the client did the reassembly.
      
      o socket 1
        o publ 1
        o publ 2
      o socket 1
        o publ 3
        o publ 4
      
      In this patchset this is divided into socket listing and publication
      listing to avoid having nested data of arbitrary size.
      
      TIPC_NL_SOCK_GET now dumps all sockets with any nested connection
      information. However, it no longer include publication information,
      only a HAS_PUBL flag to indicate whether the socket has publications or
      not. To compliment this there is a new command TIPC_NL_PUBL_GET which
      takes a socket as argument and dumps all associated publications.
      
      This means that on "top-level" the data is always complete. In the case
      of "tipc socket list" (new tipc-config -p) it first queries all sockets
      with TIPC_NL_SOCK_GET and if the socket is published it fetches the
      publications using TIPC_NL_PUBL_GET. This is slow for large amount of
      sockets with a low publication count (worst case). However, the
      integrity is preserved and there is no malformed messages.
      /v2
      
      This is a new netlink API for TIPC. It's intended to replace the
      existing ASCII API. It utilizes many of the standard netlink
      functionalities in the kernel, such as attribute nesting and
      input polices.
      
      There are a couple of reasons for this rewrite. The main and most
      easily justifiable is that the existing API doesn't scale.  Meaning
      that a TIPC cluster with a larger amount of nodes, publications or
      ports will rapidly exceed what the exiting API can handle. Resulting
      in truncated or corrupt responses. In addition to this, the existing
      ASCII API rarely uses "standard" kernel functions and has several
      tipc specific functions for sanity checking and string formating.
      
      The new API utilizes standard function for pushing data to socket
      buffers and netlink attribute nesting to logically group data.
      The new API can handle an arbitrary amount of data for things that
      are likely to scale up as the TIPC usage and/or cluster size
      increases.
      
      A new user-space tool has been developed to work with this new API.
      It is called "tipc" and is part of the "tipc-utils" package that
      comes with many Linux distributions.  The new "tipc" tool utilizes
      standard functions from libnl to format, send, receive and process
      messages. The tool has borrowed design philosophies from git and the
      ip tool. Making the syntax resemble that of ip whiles its strong
      modularity resembles that of git.
      
      The existing tool for managing TIPC, "tipc-config" remains in the
      package, but when built for kernels that has this new API it is
      replaced by a script-based wrapper that maps the old syntax to the
      new tool. This way, backwards compatibility is mostly preserved.
      
      MORE ABOUT THE CODE
      
      The main challenge here is to handle the case where the data is of
      arbitrary size. This was largely neglected in the old API design.
      For example when there is a lot of sockets that has a large amount of
      associated publications. In this specific case we can't assume that
      all ports nor for that matter all the publications can fit inside a
      single netlink message. Sending everything in one batch isn't an
      option as we need to yield for the socket layer to cope.
      
      This is solved by using the standard netlink callback for dumping
      data and releasing the locks when the netlink message is full. The
      dumping mechanism gets us back and we keep a reference (logical) to
      where we where when the message became full. This means that we are
      not "atomic", what is retrieved by user-space isn't a snapshot at a
      certain time but rather a continuously updated data set. In the case
      where we can't find our way back i.e. our logical reference are gone
      we set a standard flag (NLM_F_DUMP_INTR) to tell user-space that the
      dump was interrupted.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      49ed2617