1. 11 Feb, 2015 40 commits
    • David S. Miller's avatar
      Merge branch 'rco_correctness' · 777b3e93
      David S. Miller authored
      Tom Herbert says:
      
      ====================
      net: Fixes to remote checksum offload and CHECKSUM_PARTIAL
      
      This patch set fixes a correctness problem with remote checksum
      offload, clarifies the meaning of CHECKSUM_PARTIAL, and allows
      remote checksum offload to set CHECKSUM_PARTIAL instead of
      calling csum_partial and modifying the checksum.
      
      Specifically:
        - In the GRO remote checksum path, restore the checksum after
          calling lower layer GRO functions. This is needed if the
          packet is forwarded off host with the Remote Checksum Offload
          option still present.
        - Clarify meaning of CHECKSUM PARTIAL in the receive path. Only
          the checksums referred to by checksum partial and any preceding
          checksums can be considered verified.
        - Fixes to UDP tunnel GRO complete. Need to set SKB_GSO_UDP_TUNNEL_*,
          SKB_GSO_TUNNEL_REMCSUM, and skb->encapsulation for forwarding
          case.
        - Infrastructure to allow setting of CHECKSUM_PARTIAL in remote
          checksum offload. This a potential performance benefit instead
          of calling csum_partial (potentially twice, once in GRO path
          and once in normal path). The downside of using CHECKSUM_PARTIAL
          and not actually writing the checksum is that we aren't verifying
          that the sender correctly wrote the pseudo checksum into the
          checksum field, or that the start/offset values actually point
          to a checksum. If the sender did not set up these fields correctly,
          a packet might be accepted locally, but not accepted by a peer
          when the packet is forwarded off host. Verifying these fields
          seems non-trivial, and because the fields can only be incorrect
          due to sender error and not corruption (outer checksum protects
          against that) we'll make use of CHECKSUM_PARTIAL the default. This
          behavior can be reverted as an netlink option on the encapsulation
          socket.
        - Change VXLAN and GUE to set CHECKSUM_PARTIAL in remote checksum
          offload by default, configuration hooks can revert to using
          csum_partial.
      
      Testing:
      
      I ran performance numbers using netperf TCP_STREAM and TCP_RR with 200
      streams for GRE/GUE and for VXLAN. This compares before the fixes,
      the fixes with not setting checksum partial in remote checksum offload,
      and with the fixes setting checksum partial. The overall effect seems
      be that using checksum partial is a slight performance win, perf
      definitely shows a significant reduction of time in csum_partial on
      the receive CPUs.
      
      GRE/GUE
          TCP_STREAM
            Before fixes
              9.22% TX CPU utilization
              13.57% RX CPU utilization
              9133 Mbps
            Not using checksum partial
              9.59% TX CPU utilization
              14.95% RX CPU utilization
              9132 Mbps
            Using checksum partial
              9.37% TX CPU utilization
              13.89% RX CPU utilization
              9132 Mbps
          TCP_RR
            Before fixes
              CPU utilization
              159/251/447 90/95/99% latencies
              1.1462e+06 tps
            Not using checksum partial
              92.94% CPU utilization
              158/253/445 90/95/99% latencies
              1.12988e+06 tps
            Using checksum partial
              92.78% CPU utilization
              158/250/450 90/95/99% latencies
              1.15343e+06 tps
      
      VXLAN
          TCP_STREAM
            Before fixes
              9.24% TX CPU utilization
              13.74% RX CPU utilization
              9093 Mbps
            Not using checksum partial
              9.95% TX CPU utilization
              14.66% RX CPU utilization
              9094 Mbps
            Using checksum partial
              10.24% TX CPU utilization
              13.32% RX CPU utilization
              9093 Mbps
          TCP_RR
            Before fixes
              92.91% CPU utilization
              151/241/437 90/95/99% latencies
              1.15939e+06 tps
            Not using checksum partial
              93.07% CPU utilization
              156/246/425 90/95/99% latencies
              1.1451e+06 tps
            Using checksum partial
              95.51% CPU utilization
              156/249/459 90/95/99% latencies
              1.17004e+06 tps
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      777b3e93
    • Tom Herbert's avatar
      gue: Use checksum partial with remote checksum offload · fe881ef1
      Tom Herbert authored
      Change remote checksum handling to set checksum partial as default
      behavior. Added an iflink parameter to configure not using
      checksum partial (calling csum_partial to update checksum).
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fe881ef1
    • Tom Herbert's avatar
      vxlan: Use checksum partial with remote checksum offload · 0ace2ca8
      Tom Herbert authored
      Change remote checksum handling to set checksum partial as default
      behavior. Added an iflink parameter to configure not using
      checksum partial (calling csum_partial to update checksum).
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0ace2ca8
    • Tom Herbert's avatar
      net: Infrastructure for CHECKSUM_PARTIAL with remote checsum offload · 15e2396d
      Tom Herbert authored
      This patch adds infrastructure so that remote checksum offload can
      set CHECKSUM_PARTIAL instead of calling csum_partial and writing
      the modfied checksum field.
      
      Add skb_remcsum_adjust_partial function to set an skb for using
      CHECKSUM_PARTIAL with remote checksum offload.  Changed
      skb_remcsum_process and skb_gro_remcsum_process to take a boolean
      argument to indicate if checksum partial can be set or the
      checksum needs to be modified using the normal algorithm.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      15e2396d
    • Tom Herbert's avatar
      net: Use more bit fields in napi_gro_cb · baa32ff4
      Tom Herbert authored
      This patch moves the free and same_flow fields to be bit fields
      (2 and 1 bit sized respectively). This frees up some space for u16's.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      baa32ff4
    • Tom Herbert's avatar
      udp: Set SKB_GSO_UDP_TUNNEL* in UDP GRO path · 6db93ea1
      Tom Herbert authored
      Properly set GSO types and skb->encapsulation in the UDP tunnel GRO
      complete so that packets are properly represented for GSO. This sets
      SKB_GSO_UDP_TUNNEL or SKB_GSO_UDP_TUNNEL_CSUM depending on whether
      non-zero checksums were received, and sets SKB_GSO_TUNNEL_REMCSUM if
      the remote checksum option was processed.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6db93ea1
    • Tom Herbert's avatar
      net: Clarify meaning of CHECKSUM_PARTIAL for receive path · 6edec0e6
      Tom Herbert authored
      The current meaning of CHECKSUM_PARTIAL for validating checksums
      is that _all_ checksums in the packet are considered valid.
      However, in the manner that CHECKSUM_PARTIAL is set only the checksum
      at csum_start+csum_offset and any preceding checksums may
      be considered valid. If there are checksums in the packet after
      csum_offset it is possible they have not been verfied.
      
      This patch changes CHECKSUM_PARTIAL logic in skb_csum_unnecessary and
      __skb_gro_checksum_validate_needed to only considered checksums
      referring to csum_start and any preceding checksums (with starting
      offset before csum_start) to be verified.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6edec0e6
    • Tom Herbert's avatar
      net: Fix remcsum in GRO path to not change packet · 26c4f7da
      Tom Herbert authored
      Remote checksum offload processing is currently the same for both
      the GRO and non-GRO path. When the remote checksum offload option
      is encountered, the checksum field referred to is modified in
      the packet. So in the GRO case, the packet is modified in the
      GRO path and then the operation is skipped when the packet goes
      through the normal path based on skb->remcsum_offload. There is
      a problem in that the packet may be modified in the GRO path, but
      then forwarded off host still containing the remote checksum option.
      A remote host will again perform RCO but now the checksum verification
      will fail since GRO RCO already modified the checksum.
      
      To fix this, we ensure that GRO restores a packet to it's original
      state before returning. In this model, when GRO processes a remote
      checksum option it still changes the checksum per the algorithm
      but on return from lower layer processing the checksum is restored
      to its original value.
      
      In this patch we add define gro_remcsum structure which is passed
      to skb_gro_remcsum_process to save offset and delta for the checksum
      being changed. After lower layer processing, skb_gro_remcsum_cleanup
      is called to restore the checksum before returning from GRO.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      26c4f7da
    • Geert Uytterhoeven's avatar
      openvswitch: Add missing initialization in validate_and_copy_set_tun() · 13101602
      Geert Uytterhoeven authored
      net/openvswitch/flow_netlink.c: In function ‘validate_and_copy_set_tun’:
      net/openvswitch/flow_netlink.c:1749: warning: ‘err’ may be used uninitialized in this function
      
      If ipv4_tun_from_nlattr() returns a different positive value than
      OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, err will be uninitialized, and
      validate_and_copy_set_tun() may return an undefined value instead of a
      zero success indicator. Initialize err to zero to fix this.
      
      Fixes: 1dd144cf ("openvswitch: Support VXLAN Group Policy extension")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarThomas Graf <tgraf@suug.ch>
      Acked-by: default avatarPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13101602
    • Pravin B Shelar's avatar
      openvswitch: Reset key metadata for packet execution. · b35725a2
      Pravin B Shelar authored
      Userspace packet execute command pass down flow key for given
      packet. But userspace can skip some parameter with zero value.
      Therefore kernel needs to initialize key metadata to zero.
      
      Fixes: 07148121 ("openvswitch: Eliminate memset() from flow_extract.")
      Signed-off-by: default avatarPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b35725a2
    • Joe Perches's avatar
      treewide: Remove unnecessary SSB_DEVTABLE_END macro · 673e2baa
      Joe Perches authored
      Use the normal {} instead of a macro to terminate an array.
      
      Remove the macro too.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      673e2baa
    • Joe Perches's avatar
      treewide: Remove unnecessary BCMA_CORETABLE_END macro · f7219b52
      Joe Perches authored
      Use the normal {} instead of a macro to terminate an array.
      
      Remove the macro too.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7219b52
    • Sowmini Varadhan's avatar
      rds: rds_cong_queue_updates needs to defer the congestion update transmission · 80ad0d4a
      Sowmini Varadhan authored
      When the RDS transport is TCP, we cannot inline the call to rds_send_xmit
      from rds_cong_queue_update because
      (a) we are already holding the sock_lock in the recv path, and
          will deadlock when tcp_setsockopt/tcp_sendmsg try to get the sock
          lock
      (b) cong_queue_update does an irqsave on the rds_cong_lock, and this
          will trigger warnings (for a good reason) from functions called
          out of sock_lock.
      
      This patch reverts the change introduced by
      2fa57129 ("RDS: Bypass workqueue when queueing cong updates").
      
      The patch has been verified for both RDS/TCP as well as RDS/RDMA
      to ensure that there are not regressions for either transport:
       - for verification of  RDS/TCP a client-server unit-test was used,
         with the server blocked in gdb and thus unable to drain its rcvbuf,
         eventually triggering a RDS congestion update.
       - for RDS/RDMA, the standard IB regression tests were used
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      80ad0d4a
    • Vlad Yasevich's avatar
      ipv6: Partial checksum only UDP packets · bf250a1f
      Vlad Yasevich authored
      ip6_append_data is used by other protocols and some of them can't
      be partially checksummed.  Only partially checksum UDP protocol.
      
      Fixes: 32dce968 (ipv6: Allow for partial checksums on non-ufo packets)
      Reported-by: default avatarSabrina Dubroca <sd@queasysnail.net>
      Tested-by: default avatarSabrina Dubroca <sd@queasysnail.net>
      Signed-off-by: default avatarVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf250a1f
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · 4a3046d6
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter updates for net-next
      
      The following patchset contains two small Netfilter updates for your
      net-next tree, they are:
      
      1) Add ebtables support to nft_compat, from Arturo Borrero.
      
      2) Fix missing validation of the SET_ID attribute in the lookup
         expressions, from Patrick McHardy.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4a3046d6
    • Linus Torvalds's avatar
      Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6 · 73b4f63a
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "Highlights this time around include:
      
         - A thrashing of SubmittingPatches to bring it out of the "send
           everything to Linus" era of kernel development.
      
         - A new document on completions from Nicholas McGuire
      
         - Lots of typo fixes, formatting improvements, corrections, build
           fixes, and more"
      
      * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (35 commits)
        Documentation: Fix the wrong command `echo -1 > set_ftrace_pid` for cleaning the filter.
        can-doc: Fixed a wrong filepath in can.txt
        Documentation: Fix trivial typo in comment.
        kgdb,docs: Fix typo and minor style issues
        Documentation: add description for FTRACE probe status
        doc: brief user documentation for completion
        Documentation/misc-devices/mei: Fix indentation of embedded code.
        Documentation/misc-devices/mei: Fix indentation of enumeration.
        Documentation/misc-devices/mei: Fix spacing around parentheses.
        Documentation/misc-devices/mei: Fix formatting of headings.
        Documentation: devicetree: Fix double words in Doumentation/devicetree
        Documentation: mm: Fix typo in vm.txt
        lockstat: Add documentation on contention and contenting points
        Documentation: fix blackfin gptimers-example build errors
        Fixes column alignment in table of contents entry 1.9 in Documentation/filesystems/proc.txt
        CodingStyle: enable emacs display of trailing whitespace
        DocBook: Do not exceed argument list limit
        gpio: board.txt: Fix the gpio name example
        Documentation/SubmittingPatches: unify whitespace/tabs for the DCO
        MAINTAINERS: Add the docs-next git tree to the maintainer entry
        ...
      73b4f63a
    • Linus Torvalds's avatar
      Merge branch 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration · bfe9183f
      Linus Torvalds authored
      Pull mailbox framework updates from Jassi Brar.
      
      * 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: Add Altera mailbox driver
        mailbox: check for bit set before polling
        Mailbox: Fix return value check in pcc_init()
      bfe9183f
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · ce01e871
      Linus Torvalds authored
      Pull pincontrol updates from Linus Walleij:
       :This is the bulk of pin control changes for the v3.20 cycle:
      
        Framework changes and enhancements:
         - Passing -DDEBUG recursively to subdir drivers so we get debug
           messages properly turned on.
         - Infer map type from DT property in the groups parsing code in the
           generic pinconfig code.
         - Support for custom parameter passing in generic pin config.  This
           is used when you are using the generic pin config, but want to add
           a few custom properties that no other driver will use.
      
        New drivers:
         - Driver for the Xilinx Zynq
         - Driver for the AmLogic Meson SoCs
      
        New features in drivers:
         - Sleep support (suspend/resume) for the Cherryview driver
         - mvebeu a38x can now mux a UART on pins MPP19 and MPP20
         - Migrated the qualcomm driver to generic pin config handling of
           extended config options in the core code.
         - Support BUS1 and AUDIO in the Exynos pin controller.
         - Add some missing functions in the sun6i driver.
         - Add support for the A31S variant in the sun6i driver.
         - EMEv2 support in the Renesas PFC driver.
         - Add support for Qualcomm MSM8916 in the qcom driver.
      
        Deleted features
         - Drop support for the SiRF Marco that was never released to the
           market.
         - Drop SH7372 support as the support for this platform is removed
           from the kernel"
      
      * tag 'pinctrl-v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (40 commits)
        sh-pfc: emev2 - Fix mangled author name
        pinctrl: cherryview: Configure HiZ pins to be input when requested as GPIOs
        pinctrl: imx25: fix numbering for pins
        pinctrl: pinctrl-imx: don't use invalid value of conf_reg
        pinctrl: qcom: delete pin_config_get/set pinconf operations
        pinctrl: qcom: Add msm8916 pinctrl driver
        DT: pinctrl: Document Qualcomm MSM8916 pinctrl binding
        pinctrl: qcom: increase variable size for register offsets
        pinctrl: hide PCONFDUMP in #ifdef
        pinctrl: rockchip: Only mask interrupts; never disable
        pinctrl: zynq: Fix usb0 pins
        pinctrl: sh-pfc: sh7372: Remove DT binding documentation
        pinctrl: sh-pfc: sh7372: Remove PFC support
        sh-pfc: Add emev2 pinmux support
        sh-pfc: add macro to define pinmux without function
        pinctrl: add driver for Amlogic Meson SoCs
        staging: drivers: pinctrl: Fixed checkpatch.pl warnings
        pinctrl: exynos: Add AUDIO pin controller for exynos7
        sh-pfc: r8a7790: add MLB+ pin group
        sh-pfc: r8a7791: add MLB+ pin group
        ...
      ce01e871
    • Linus Torvalds's avatar
      Merge tag 'gpio-v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · a1df7efe
      Linus Torvalds authored
      Pull GPIO changes from Linus Walleij:
       "This is the GPIO bulk changes for the v3.20 series:
      
        GPIOLIB core changes:
         - Create and use of_mm_gpiochip_remove() for removing memory-mapped
           OF GPIO chips
         - GPIO MMIO library suppports bgpio_set_multiple for switching
           several lines at once, a feature merged in the last cycle.
      
        New drivers:
         - New driver for the APM X-gene standby GPIO controller
         - New driver for the Fujitsu MB86S7x GPIO controller
      
        Cleanups:
         - Moved rcar driver to use gpiolib irqchip
         - Moxart converted to the GPIO MMIO library
         - GE driver converted to GPIO MMIO library
         - Move sx150x to irqdomain
         - Move max732x to irqdomain
         - Move vx855 to use managed resources
         - Move dwapb to use managed resources
         - Clean tc3589x from platform data
         - Clean stmpe driver to use device tree only probe
      
        New subtypes:
         - sx1506 support in the sx150x driver
         - Quark 1000 SoC support in the SCH driver
         - Support X86 in the Xilinx driver
         - Support PXA1928 in the PXA driver
      
        Extended drivers:
         - max732x supports device tree probe
         - sx150x supports device tree probe
      
        Various minor cleanups and bug fixes"
      
      * tag 'gpio-v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (61 commits)
        gpio: kconfig: replace PPC_OF with PPC
        gpio: pxa: add PXA1928 gpio type support
        dt/bindings: gpio: add compatible string for marvell,pxa1928-gpio
        gpio: pxa: remove mach IRQ includes
        gpio: max732x: use an inline function for container cast
        gpio: use sizeof() instead of hardcoded values
        gpio: max732x: add set_multiple function
        gpio: sch: Consolidate similar algorithms
        gpio: tz1090-pdc: Use resource_size to fix off-by-one resource size calculation
        gpio: ge: Convert to use devm_kstrdup
        gpio: correctly use const char * const
        gpio: sx150x: fixup OF support
        gpio: mpc8xxx: Use of_mm_gpiochip_remove
        gpio: Add Fujitsu MB86S7x GPIO driver
        gpio: mpc8xxx: Convert to platform device interface.
        gpio: zevio: Use of_mm_gpiochip_remove
        gpio: gpio-mm-lantiq: Use of_mm_gpiochip_remove
        gpio: gpio-mm-lantiq: Use of_property_read_u32
        gpio: gpio-mm-lantiq: Do not replicate code
        gpio :gpio-mm-lantiq: Use devm_kzalloc
        ...
      a1df7efe
    • Linus Torvalds's avatar
      Merge tag 'mmc-v3.20-1' of git://git.linaro.org/people/ulf.hansson/mmc · aa7ed01f
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Support for MMC power sequences.
         - SDIO function devicetree subnode parsing.
         - Refactor the hardware reset routines and enable it for SD cards.
         - Various code quality improvements, especially for slot-gpio.
      
        MMC host:
         - dw_mmc: Various fixes and cleanups.
         - dw_mmc: Convert to mmc_send_tuning().
         - moxart: Fix probe logic.
         - sdhci: Various fixes and cleanups
         - sdhci: Asynchronous request handling support.
         - sdhci-pxav3: Various fixes and cleanups.
         - sdhci-tegra: Fixes for T114, T124 and T132.
         - rtsx: Various fixes and cleanups.
         - rtsx: Support for SDIO.
         - sdhi/tmio: Refactor and cleanup of header files.
         - omap_hsmmc: Use slot-gpio and common MMC DT parser.
         - Make all hosts to deal with errors from mmc_of_parse().
         - sunxi: Various fixes and cleanups.
         - sdhci: Support for Fujitsu SDHCI controller f_sdh30"
      
      * tag 'mmc-v3.20-1' of git://git.linaro.org/people/ulf.hansson/mmc: (117 commits)
        mmc: sdhci-s3c: solve problem with sleeping in atomic context
        mmc: pwrseq: add driver for emmc hardware reset
        mmc: moxart: fix probe logic
        mmc: core: Invoke mmc_pwrseq_post_power_on() prior MMC_POWER_ON state
        mmc: pwrseq_simple: Add optional reference clock support
        mmc: pwrseq: Document optional clock for the simple power sequence
        mmc: pwrseq_simple: Extend to support more pins
        mmc: pwrseq: Document that simple sequence support more than one GPIO
        mmc: Add hardware dependencies for sdhci-pxav3 and sdhci-pxav2
        mmc: sdhci-pxav3: Modify clock settings for the SDR50 and DDR50 modes
        mmc: sdhci-pxav3: Extend binding with SDIO3 conf reg for the Armada 38x
        mmc: sdhci-pxav3: Fix Armada 38x controller's caps according to erratum ERR-7878951
        mmc: sdhci-pxav3: Fix SDR50 and DDR50 capabilities for the Armada 38x flavor
        mmc: sdhci: switch voltage before sdhci_set_ios in runtime resume
        mmc: tegra: Write xfer_mode, CMD regs in together
        mmc: Resolve BKOPS compatability issue
        mmc: sdhci-pxav3: fix setting of pdata->clk_delay_cycles
        mmc: dw_mmc: rockchip: remove incorrect __exit_p()
        mmc: dw_mmc: exynos: remove incorrect __exit_p()
        mmc: Fix menuconfig alignment of MMC_SDHCI_* options
        ...
      aa7ed01f
    • Linus Torvalds's avatar
      xilinx usb2 gadget: get rid of incredibly annoying compile warning · 7796c11c
      Linus Torvalds authored
      This one was driving me mad, with several lines of warnings during the
      allmodconfig build for a single bogus pointer cast.  The warning was so
      verbose due to the indirect macro expansion explanation, and the whole
      thing was just for a debug printout.
      
      The bogus pointer-to-integer cast was pointless anyway, so just remove
      it, and use '%p' to show the pointer.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7796c11c
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 540a7c50
      Linus Torvalds authored
      Pull first round of SCSI updates from James Bottomley:
       "This is the usual grab bag of driver updates (hpsa, storvsc, mp2sas,
        megaraid_sas, ses) plus an assortment of minor updates.
      
        There's also an update to ufs which adds new phy drivers and finally a
        new logging infrastructure for SCSI"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (114 commits)
        scsi_logging: return void for dev_printk() functions
        scsi: print single-character strings with seq_putc
        scsi: merge consecutive seq_puts calls
        scsi: replace seq_printf with seq_puts
        aha152x: replace seq_printf with seq_puts
        advansys: replace seq_printf with seq_puts
        scsi: remove SPRINTF macro
        sg: remove an unused variable
        hpsa: Use local workqueues instead of system workqueues
        hpsa: add in P840ar controller model name
        hpsa: add in gen9 controller model names
        hpsa: detect and report failures changing controller transport modes
        hpsa: shorten the wait for the CISS doorbell mode change ack
        hpsa: refactor duplicated scan completion code into a new routine
        hpsa: move SG descriptor set-up out of hpsa_scatter_gather()
        hpsa: do not use function pointers in fast path command submission
        hpsa: print CDBs instead of kernel virtual addresses for uncommon errors
        hpsa: do not use a void pointer for scsi_cmd field of struct CommandList
        hpsa: return failed from device reset/abort handlers
        hpsa: check for ctlr lockup after command allocation in main io path
        ...
      540a7c50
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 718749d5
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "The first round of updates for the input subsystem.
      
        A few new drivers (power button handler for AXP20x PMIC, tps65218
        power button driver, sun4i keys driver, regulator haptic driver, NI
        Ettus Research USRP E3x0 button, Alwinner A10/A20 PS/2 controller).
      
        Updates to Synaptics and ALPS touchpad drivers (with more to come
        later), brand new Focaltech PS/2 support, update to Cypress driver to
        handle Gen5 (in addition to Gen3) devices, and number of other fixups
        to various drivers as well as input core"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (54 commits)
        Input: elan_i2c - fix wrong %p extension
        Input: evdev - do not queue SYN_DROPPED if queue is empty
        Input: gscps2 - fix MODULE_DEVICE_TABLE invocation
        Input: synaptics - use dmax in input_mt_assign_slots
        Input: pxa27x_keypad - remove unnecessary ARM includes
        Input: ti_am335x_tsc - replace delta filtering with median filtering
        ARM: dts: AM335x: Make charge delay a DT parameter for TSC
        Input: ti_am335x_tsc - read charge delay from DT
        Input: ti_am335x_tsc - remove udelay in interrupt handler
        Input: ti_am335x_tsc - interchange touchscreen and ADC steps
        Input: MT - add support for balanced slot assignment
        Input: drv2667 - remove wrong and unneeded drv2667-haptics modalias
        Input: drv260x - remove wrong and unneeded drv260x-haptics modalias
        Input: cap11xx - remove wrong and unneeded cap11xx modalias
        Input: sun4i-ts - add support for touchpanel controller on A31
        Input: serio - add support for Alwinner A10/A20 PS/2 controller
        Input: gtco - use sign_extend32() for sign extension
        Input: elan_i2c - verify firmware signature applying it
        Input: elantech - remove stale comment from Kconfig
        Input: cyapa - off by one in cyapa_update_fw_store()
        ...
      718749d5
    • Linus Torvalds's avatar
      Merge tag 'fbdev-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · e0c84537
      Linus Torvalds authored
      Pull fbdev changes from Tomi Valkeinen:
      
       - omapdss: add DRA7xxx SoC support
      
       - fbdev: support DMT (Display Monitor Timing) calculation
      
      * tag 'fbdev-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (40 commits)
        omapfb: Return error code when applying overlay settings fails
        OMAPDSS: DPI: DRA7xx support
        OMAPDSS: HDMI: Add DRA7xx support
        OMAPDSS: DISPC: program dispc polarities to control module
        OMAPDSS: DISPC: Add DRA7xx support
        OMAPDSS: Add Video PLLs for DRA7xx
        OMAPDSS: Add functions for external control of PLL
        OMAPDSS: DSS: Add DRA7xx base support
        Doc/DT: Add DT binding doc for DRA7xx DSS
        OMAPDSS: add define for DRA7xx HW version
        OMAPDSS: encoder-tpd12s015: Fix race issue with LS_OE
        OMAPDSS: OMAP5: fix digit output's allowed mgrs
        OMAPDSS: constify port arrays
        OMAPDSS: PLL: add dss_pll_wait_reset_done()
        OMAPDSS: Add enum dss_pll_id
        video: fbdev: fix sys_copyarea
        video/mmpfb: allow modular build
        fb: via: turn gpiolib and i2c selects into dependencies
        fbdev: ssd1307fb: return proper error code if write command fails
        fbdev: fix CVT vertical front and back porch values
        ...
      e0c84537
    • Linus Torvalds's avatar
      Merge tag 'sound-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a323ae93
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "In this batch, you can find lots of cleanups through the whole
        subsystem, as our good New Year's resolution.  Lots of LOCs and
        commits are about LINE6 driver that was promoted finally from staging
        tree, and as usual, there've been widely spread ASoC changes.
      
        Here some highlights:
      
        ALSA core changes
         - Embedding struct device into ALSA core structures
         - sequencer core cleanups / fixes
         - PCM msbits constraints cleanups / fixes
         - New SNDRV_PCM_TRIGGER_DRAIN command
         - PCM kerneldoc fixes, header cleanups
         - PCM code cleanups using more standard codes
         - Control notification ID fixes
      
        Driver cleanups
         - Cleanups of PCI PM callbacks
         - Timer helper usages cleanups
         - Simplification (e.g. argument reduction) of many driver codes
      
        HD-audio
         - Hotkey and LED support on HP laptops with Realtek codecs
         - Dock station support on HP laptops
         - Toshiba Satellite S50D fixup
         - Enhanced wallclock timestamp handling for HD-audio
         - Componentization to simplify the linkage between i915 and hd-audio
           drivers for Intel HDMI/DP
      
        USB-audio
         - Akai MPC Element support
         - Enhanced timestamp handling
      
        ASoC
         - Lots of refactoringin ASoC core, moving drivers to more data driven
           initialization and rationalizing a lot of DAPM usage
         - Much improved handling of CDCLK clocks on Samsung I2S controllers
         - Lots of driver specific cleanups and feature improvements
         - CODEC support for TI PCM514x and TLV320AIC3104 devices
         - Board support for Tegra systems with Realtek RT5677
         - New driver for Maxim max98357a
         - More enhancements / fixes for Intel SST driver
      
        Others
         - Promotion of LINE6 driver from staging along with lots of rewrites
           and cleanups
         - DT support for old non-ASoC atmel driver
         - oxygen cleanups, XIO2001 init, Studio Evolution SE6x support
         - Emu8000 DRAM size detection fix on ISA(!!) AWE64 boards
         - A few more ak411x fixes for ice1724 boards"
      
      * tag 'sound-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (542 commits)
        ALSA: line6: toneport: Use explicit type for firmware version
        ALSA: line6: Use explicit type for serial number
        ALSA: line6: Return EIO if read/write not successful
        ALSA: line6: Return error if device not responding
        ALSA: line6: Add delay before reading status
        ASoC: Intel: Clean data after SST fw fetch
        ALSA: hda - Add docking station support for another HP machine
        ALSA: control: fix failure to return new numerical ID in 'replace' event data
        ALSA: usb: update trigger timestamp on first non-zero URB submitted
        ALSA: hda: read trigger_timestamp immediately after starting DMA
        ALSA: pcm: allow for trigger_tstamp snapshot in .trigger
        ALSA: pcm: don't override timestamp unconditionally
        ALSA: off by one bug in snd_riptide_joystick_probe()
        ASoC: rt5670: Set use_single_rw flag for regmap
        ASoC: rt286: Add rt288 codec support
        ASoC: max98357a: Fix build in !CONFIG_OF case
        ASoC: Intel: fix platform_no_drv_owner.cocci warnings
        ARM: dts: Switch Odroid X2/U2 to simple-audio-card
        ARM: dts: Exynos4 and Odroid X2/U3 sound device nodes update
        ALSA: control: fix failure to return numerical ID in 'add' event
        ...
      a323ae93
    • Linus Torvalds's avatar
      Merge tag 'media/v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 3e63430a
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - Some documentation updates and a few new pixel formats
      
       - Stop btcx-risc abuse by cx88 and move it to bt8xx driver
      
       - New platform driver: am437x
      
       - New webcam driver: toptek
      
       - New remote controller hardware protocols added to img-ir driver
      
       - Removal of a few very old drivers that relies on old kABIs and are
         for very hard to find hardware: parallel port webcam drivers
         (bw-qcam, c-cam, pms and w9966), tlg2300, Video In/Out for SGI (vino)
      
       - Removal of the USB Telegent driver (tlg2300).  The company that
         developed this driver has long gone and the hardware is hard to find.
         As it relies on a legacy set of kABI symbols and nobody seems to care
         about it, remove it.
      
       - several improvements at rtl2832 driver
      
       - conversion on cx28521 and au0828 to use videobuf2 (VB2)
      
       - several improvements, fixups and board additions
      
      * tag 'media/v3.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (321 commits)
        [media] dvb_net: Convert local hex dump to print_hex_dump_debug
        [media] dvb_net: Use standard debugging facilities
        [media] dvb_net: Use vsprintf %pM extension to print Ethernet addresses
        [media] staging: lirc_serial: adjust boolean assignments
        [media] stb0899: use sign_extend32() for sign extension
        [media] si2168: add support for 1.7MHz bandwidth
        [media] si2168: return error if set_frontend is called with invalid parameters
        [media] lirc_dev: avoid potential null-dereference
        [media] mn88472: simplify bandwidth registers setting code
        [media] dvb: tc90522: re-add symbol-rate report
        [media] lmedm04: add read snr, signal strength and ber call backs
        [media] lmedm04: Create frontend call back for read status
        [media] lmedm04: create frontend callbacks for signal/snr/ber/ucblocks
        [media] lmedm04: Fix usb_submit_urb BOGUS urb xfer, pipe 1 != type 3 in interrupt urb
        [media] lmedm04: Increase Interupt due time to 200 msec
        [media] cx88-dvb: whitespace cleanup
        [media] rtl28xxu: properly initialize pdata
        [media] rtl2832: declare functions as static
        [media] rtl2830: declare functions as static
        [media] rtl2832_sdr: add kernel-doc comments for platform_data
        ...
      3e63430a
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · 6fc26fc5
      Linus Torvalds authored
      Pull HSI fix from Sebastian Reichel:
       "Fix uninitialized device pointer in nokia-modem"
      
      * tag 'hsi-for-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        hsi: nokia-modem: fix uninitialized device pointer
      6fc26fc5
    • Linus Torvalds's avatar
      Merge tag 'for-v3.20' of git://git.infradead.org/battery-2.6 · 13c07190
      Linus Torvalds authored
      Pull power supply and reset changes from Sebastian Reichel:
       "New drivers:
         - charger driver for Maxim 77693
         - battery gauge driver for LTC 2941/2943
         - battery gauge driver for RT5033
         - reset driver for R-Mobile platforms
      
        Convert drivers to restart handler framework:
         - arm-versatile
         - at91
         - st-poweroff
      
        Misc:
         - remove deprecated sun6i reboot driver
         - use alarmtimer instead of rtc in charger-manager
         - misc fixes"
      
      * tag 'for-v3.20' of git://git.infradead.org/battery-2.6: (48 commits)
        power_supply: 88pm860x: Fix leaked power supply on probe fail
        power/reset: restart-poweroff: Remove arm dependencies
        power/reset: st-poweroff: Fix misleading Kconfig description
        power/reset: st-poweroff: Register with kernel restart handler
        power/reset: Remove sun6i reboot driver
        power/reset: at91: Register with kernel restart handler
        power/reset: arm-versatile: Register with kernel restart handler
        power: test_power: Use enum as index for array of supplies
        Add devicetree binding documentation for the LTC2941/LTC2943 driver
        Add LTC2941/LTC2943 Battery Gauge Driver
        power/reset: brcmstb: Add support for old 65nm chips
        power/reset: brcmstb: Use the DT "compatible" string to indicate bit positions
        power/reset: brcmstb: Make the driver buildable on MIPS
        power: charger-manager: Use alarmtimer for battery monitoring in suspend.
        power/reset: at91-poweroff: Fix error handling and other compiler warnings
        bq27x00_battery: Call power_supply_changed only when capacity changed
        bq27x00_battery: fix register offset for bq27425
        power: max14577: Remove SYSFS dependency from Kconfig
        power: bq24190_charger: suppress build warning
        power: reset: Add reset driver for R-Mobile platforms
        ...
      13c07190
    • Chris Rorvick's avatar
      ALSA: line6: toneport: Use explicit type for firmware version · 0e806151
      Chris Rorvick authored
      The firmware version is a single byte so have the variable type agree.
      Since the address to this member is passed to the read function, using
      an int is not even portable.
      Signed-off-by: default avatarChris Rorvick <chris@rorvick.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      0e806151
    • Chris Rorvick's avatar
      ALSA: line6: Use explicit type for serial number · 12b00157
      Chris Rorvick authored
      The serial number (aka ESN) is a 32-bit value.
      Signed-off-by: default avatarChris Rorvick <chris@rorvick.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      12b00157
    • Chris Rorvick's avatar
      e474e7fd
    • Chris Rorvick's avatar
      ALSA: line6: Return error if device not responding · f3dfd1be
      Chris Rorvick authored
      Put an upper bound on how long we will wait for the device to respond to
      a read/write request (i.e., 100 milliseconds) and return an error if
      this is reached.
      Signed-off-by: default avatarChris Rorvick <chris@rorvick.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f3dfd1be
    • Chris Rorvick's avatar
      ALSA: line6: Add delay before reading status · e64e94df
      Chris Rorvick authored
      The device indicates the result of a read/write operation by making the
      status available on a subsequent request from the driver.  This is not
      ready immediately, though, so the driver is currently slamming the
      device with hundreds of pointless requests before getting the expected
      response.  Add a two millisecond delay before each attempt.  This is
      approximately the behavior observed with version 4.2.7.1 of the Windows
      driver.
      Signed-off-by: default avatarChris Rorvick <chris@rorvick.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e64e94df
    • Libin Yang's avatar
      ASoC: Intel: Clean data after SST fw fetch · 1b006996
      Libin Yang authored
      The BDW audio firmware DSP manages the DMA and the DMA cannot be
      stopped exactly at the end of the playback stream. This means
      stale samples may be played at PCM stop unless the driver copies
      silence to the subsequent periods.
      Signed-off-by: default avatarLibin Yang <libin.yang@intel.com>
      Reviewed-by: default avatarLiam Girdwood <liam.r.girdwood@linux.intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1b006996
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · c5ce28df
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) More iov_iter conversion work from Al Viro.
      
          [ The "crypto: switch af_alg_make_sg() to iov_iter" commit was
            wrong, and this pull actually adds an extra commit on top of the
            branch I'm pulling to fix that up, so that the pre-merge state is
            ok.   - Linus ]
      
       2) Various optimizations to the ipv4 forwarding information base trie
          lookup implementation.  From Alexander Duyck.
      
       3) Remove sock_iocb altogether, from CHristoph Hellwig.
      
       4) Allow congestion control algorithm selection via routing metrics.
          From Daniel Borkmann.
      
       5) Make ipv4 uncached route list per-cpu, from Eric Dumazet.
      
       6) Handle rfs hash collisions more gracefully, also from Eric Dumazet.
      
       7) Add xmit_more support to r8169, e1000, and e1000e drivers.  From
          Florian Westphal.
      
       8) Transparent Ethernet Bridging support for GRO, from Jesse Gross.
      
       9) Add BPF packet actions to packet scheduler, from Jiri Pirko.
      
      10) Add support for uniqu flow IDs to openvswitch, from Joe Stringer.
      
      11) New NetCP ethernet driver, from Muralidharan Karicheri and Wingman
          Kwok.
      
      12) More sanely handle out-of-window dupacks, which can result in
          serious ACK storms.  From Neal Cardwell.
      
      13) Various rhashtable bug fixes and enhancements, from Herbert Xu,
          Patrick McHardy, and Thomas Graf.
      
      14) Support xmit_more in be2net, from Sathya Perla.
      
      15) Group Policy extensions for vxlan, from Thomas Graf.
      
      16) Remove Checksum Offload support for vxlan, from Tom Herbert.
      
      17) Like ipv4, support lockless transmit over ipv6 UDP sockets.  From
          Vlad Yasevich.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1494+1 commits)
        crypto: fix af_alg_make_sg() conversion to iov_iter
        ipv4: Namespecify TCP PMTU mechanism
        i40e: Fix for stats init function call in Rx setup
        tcp: don't include Fast Open option in SYN-ACK on pure SYN-data
        openvswitch: Only set TUNNEL_VXLAN_OPT if VXLAN-GBP metadata is set
        ipv6: Make __ipv6_select_ident static
        ipv6: Fix fragment id assignment on LE arches.
        bridge: Fix inability to add non-vlan fdb entry
        net: Mellanox: Delete unnecessary checks before the function call "vunmap"
        cxgb4: Add support in cxgb4 to get expansion rom version via ethtool
        ethtool: rename reserved1 memeber in ethtool_drvinfo for expansion ROM version
        net: dsa: Remove redundant phy_attach()
        IB/mlx4: Reset flow support for IB kernel ULPs
        IB/mlx4: Always use the correct port for mirrored multicast attachments
        net/bonding: Fix potential bad memory access during bonding events
        tipc: remove tipc_snprintf
        tipc: nl compat add noop and remove legacy nl framework
        tipc: convert legacy nl stats show to nl compat
        tipc: convert legacy nl net id get to nl compat
        tipc: convert legacy nl net id set to nl compat
        ...
      c5ce28df
    • Linus Torvalds's avatar
      crypto: fix af_alg_make_sg() conversion to iov_iter · 9399f0c5
      Linus Torvalds authored
      Commit 1d10eb2f ("crypto: switch af_alg_make_sg() to iov_iter")
      broke af_alg_make_sg() and skcipher_recvmsg() in the process of moving
      them to the iov_iter interfaces.  The 'npages' calculation in the formar
      calculated the number of *bytes* in the pages, and in the latter case
      the conversion didn't re-read the value of 'ctx->used' after waiting for
      it to become non-zero.
      
      This reverts to the original code for both these cases.
      
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9399f0c5
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 29afc4e9
      Linus Torvalds authored
      Pull trivial tree changes from Jiri Kosina:
       "Patches from trivial.git that keep the world turning around.
      
        Mostly documentation and comment fixes, and a two corner-case code
        fixes from Alan Cox"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
        kexec, Kconfig: spell "architecture" properly
        mm: fix cleancache debugfs directory path
        blackfin: mach-common: ints-priority: remove unused function
        doubletalk: probe failure causes OOPS
        ARM: cache-l2x0.c: Make it clear that cache-l2x0 handles L310 cache controller
        msdos_fs.h: fix 'fields' in comment
        scsi: aic7xxx: fix comment
        ARM: l2c: fix comment
        ibmraid: fix writeable attribute with no store method
        dynamic_debug: fix comment
        doc: usbmon: fix spelling s/unpriviledged/unprivileged/
        x86: init_mem_mapping(): use capital BIOS in comment
      29afc4e9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching · 1d9c5d79
      Linus Torvalds authored
      Pull live patching infrastructure from Jiri Kosina:
       "Let me provide a bit of history first, before describing what is in
        this pile.
      
        Originally, there was kSplice as a standalone project that implemented
        stop_machine()-based patching for the linux kernel.  This project got
        later acquired, and the current owner is providing live patching as a
        proprietary service, without any intentions to have their
        implementation merged.
      
        Then, due to rising user/customer demand, both Red Hat and SUSE
        started working on their own implementation (not knowing about each
        other), and announced first versions roughly at the same time [1] [2].
      
        The principle difference between the two solutions is how they are
        making sure that the patching is performed in a consistent way when it
        comes to different execution threads with respect to the semantic
        nature of the change that is being introduced.
      
        In a nutshell, kPatch is issuing stop_machine(), then looking at
        stacks of all existing processess, and if it decides that the system
        is in a state that can be patched safely, it proceeds insterting code
        redirection machinery to the patched functions.
      
        On the other hand, kGraft provides a per-thread consistency during one
        single pass of a process through the kernel and performs a lazy
        contignuous migration of threads from "unpatched" universe to the
        "patched" one at safe checkpoints.
      
        If interested in a more detailed discussion about the consistency
        models and its possible combinations, please see the thread that
        evolved around [3].
      
        It pretty quickly became obvious to the interested parties that it's
        absolutely impractical in this case to have several isolated solutions
        for one task to co-exist in the kernel.  During a dedicated Live
        Kernel Patching track at LPC in Dusseldorf, all the interested parties
        sat together and came up with a joint aproach that would work for both
        distro vendors.  Steven Rostedt took notes [4] from this meeting.
      
        And the foundation for that aproach is what's present in this pull
        request.
      
        It provides a basic infrastructure for function "live patching" (i.e.
        code redirection), including API for kernel modules containing the
        actual patches, and API/ABI for userspace to be able to operate on the
        patches (look up what patches are applied, enable/disable them, etc).
      
        It's relatively simple and minimalistic, as it's making use of
        existing kernel infrastructure (namely ftrace) as much as possible.
        It's also self-contained, in a sense that it doesn't hook itself in
        any other kernel subsystem (it doesn't even touch any other code).
        It's now implemented for x86 only as a reference architecture, but
        support for powerpc, s390 and arm is already in the works (adding
        arch-specific support basically boils down to teaching ftrace about
        regs-saving).
      
        Once this common infrastructure gets merged, both Red Hat and SUSE
        have agreed to immediately start porting their current solutions on
        top of this, abandoning their out-of-tree code.  The plan basically is
        that each patch will be marked by flag(s) that would indicate which
        consistency model it is willing to use (again, the details have been
        sketched out already in the thread at [3]).
      
        Before this happens, the current codebase can be used to patch a large
        group of secruity/stability problems the patches for which are not too
        complex (in a sense that they don't introduce non-trivial change of
        function's return value semantics, they don't change layout of data
        structures, etc) -- this corresponds to LEAVE_FUNCTION &&
        SWITCH_FUNCTION semantics described at [3].
      
        This tree has been in linux-next since December.
      
          [1] https://lkml.org/lkml/2014/4/30/477
          [2] https://lkml.org/lkml/2014/7/14/857
          [3] https://lkml.org/lkml/2014/11/7/354
          [4] http://linuxplumbersconf.org/2014/wp-content/uploads/2014/10/LPC2014_LivePatching.txt
      
        [ The core code is introduced by the three commits authored by Seth
          Jennings, which got a lot of changes incorporated during numerous
          respins and reviews of the initial implementation.  All the followup
          commits have materialized only after public tree has been created,
          so they were not folded into initial three commits so that the
          public tree doesn't get rebased ]"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
        livepatch: add missing newline to error message
        livepatch: rename config to CONFIG_LIVEPATCH
        livepatch: fix uninitialized return value
        livepatch: support for repatching a function
        livepatch: enforce patch stacking semantics
        livepatch: change ARCH_HAVE_LIVE_PATCHING to HAVE_LIVE_PATCHING
        livepatch: fix deferred module patching order
        livepatch: handle ancient compilers with more grace
        livepatch: kconfig: use bool instead of boolean
        livepatch: samples: fix usage example comments
        livepatch: MAINTAINERS: add git tree location
        livepatch: use FTRACE_OPS_FL_IPMODIFY
        livepatch: move x86 specific ftrace handler code to arch/x86
        livepatch: samples: add sample live patching module
        livepatch: kernel: add support for live patching
        livepatch: kernel: add TAINT_LIVEPATCH
      1d9c5d79
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 870fd0f5
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
       "Updates for HID code
      
         - improveements of Logitech HID++ procotol implementation, from
           Benjamin Tissoires
      
         - support for composite RMI devices, from Andrew Duggan
      
         - new driver for BETOP controller, from Huang Bo
      
         - fixup for conflicting mapping in HID core between PC-101/103/104
           and PC-102/105 keyboards from David Herrmann
      
         - new hardware support and fixes in Wacom driver, from Ping Cheng
      
         - assorted small fixes and device ID additions all over the place"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (33 commits)
        HID: wacom: add support for Cintiq 27QHD and 27QHD touch
        HID: wacom: consolidate input capability settings for pen and touch
        HID: wacom: make sure touch arbitration is applied consistently
        HID: pidff: Fix initialisation forMicrosoft Sidewinder FF Pro 2
        HID: hyperv: match wait_for_completion_timeout return type
        HID: wacom: Report ABS_MISC event for Cintiq Companion Hybrid
        HID: Use Kbuild idiom in Makefiles
        HID: do not bind to Microchip Pick16F1454
        HID: hid-lg4ff: use DEVICE_ATTR_RW macro
        HID: hid-lg4ff: fix sysfs attribute permission
        HID: wacom: peport In Range event according to the spec
        HID: wacom: process invalid Cintiq and Intuos data in wacom_intuos_inout()
        HID: rmi: Add support for the touchpad in the Razer Blade 14 laptop
        HID: rmi: Support touchpads with external buttons
        HID: rmi: Use hid_report_len to compute the size of reports
        HID: logitech-hidpp: store the name of the device in struct hidpp
        HID: microsoft: add support for Japanese Surface Type Cover 3
        HID: fixup the conflicting keyboard mappings quirk
        HID: apple: fix battery support for the 2009 ANSI wireless keyboard
        HID: fix Kconfig text
        ...
      870fd0f5
    • Linus Torvalds's avatar
      sata_dwc_460ex: disable COMPILE_TEST again · 06cc01a0
      Linus Torvalds authored
      Commit 84683a7e ("sata_dwc_460ex: enable COMPILE_TEST for the
      driver") enabled this driver for non-ppc460-ex platforms, but it was
      then disabled for ARM and ARM64 by commit 2de5a9c0 ("sata_dwc_460ex:
      disable compilation on ARM and ARM64") because it's too noisy and
      broken.
      
      This disabled is entirely, because it's too noisy on x86-64 too, and
      there's no point in disabling architectures one by one.  At a minimum,
      the code isn't 64-bit clean, and even on 32-bit it is questionable
      whether it makes sense.
      
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      06cc01a0