1. 24 Oct, 2019 5 commits
  2. 23 Oct, 2019 7 commits
  3. 22 Oct, 2019 3 commits
    • Russell King's avatar
      Merge branch 'misc' into fixes · 39f4d441
      Russell King authored
      39f4d441
    • Takashi Iwai's avatar
      ALSA: usb-audio: Fix copy&paste error in the validator · ba8bf096
      Takashi Iwai authored
      The recently introduced USB-audio descriptor validator had a stupid
      copy&paste error that may lead to an unexpected overlook of too short
      descriptors for processing and extension units.  It's likely the cause
      of the report triggered by syzkaller fuzzer.  Let's fix it.
      
      Fixes: 57f87706 ("ALSA: usb-audio: More validations of descriptor units")
      Reported-by: syzbot+0620f79a1978b1133fd7@syzkaller.appspotmail.com
      Link: https://lore.kernel.org/r/s5hsgnkdbsl.wl-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      ba8bf096
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 3b7c59a1
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Here is a bunch of pin control fixes. I was lagging behind on this
        one, some fixes should have come in earlier, sorry about that.
      
        Anyways here it is, pretty straight-forward fixes, the Strago fix
        stand out as something serious affecting a lot of machines.
      
        Summary:
         - Handle multiple instances of Intel chips without complaining.
         - Restore the Intel Strago DMI workaround
         - Make the Armada 37xx handle pins over 32
         - Fix the polarity of the LED group on Armada 37xx
         - Fix an off-by-one bug in the NS2 driver
         - Fix error path for iproc's platform_get_irq()
         - Fix error path on the STMFX driver
         - Fix a typo in the Berlin AS370 driver
         - Fix up misc errors in the Aspeed 2600 BMC support
         - Fix a stray SPDX tag"
      
      * tag 'pinctrl-v5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: aspeed-g6: Rename SD3 to EMMC and rework pin groups
        pinctrl: aspeed-g6: Fix UART13 group pinmux
        pinctrl: aspeed-g6: Make SIG_DESC_CLEAR() behave intuitively
        pinctrl: aspeed-g6: Fix I3C3/I3C4 pinmux configuration
        pinctrl: aspeed-g6: Fix I2C14 SDA description
        pinctrl: aspeed-g6: Sort pins for sanity
        dt-bindings: pinctrl: aspeed-g6: Rework SD3 function and groups
        pinctrl: berlin: as370: fix a typo s/spififib/spdifib
        pinctrl: armada-37xx: swap polarity on LED group
        pinctrl: stmfx: fix null pointer on remove
        pinctrl: iproc: allow for error from platform_get_irq()
        pinctrl: ns2: Fix off by one bugs in ns2_pinmux_enable()
        pinctrl: bcm-iproc: Use SPDX header
        pinctrl: armada-37xx: fix control of pins 32 and up
        pinctrl: cherryview: restore Strago DMI workaround for all versions
        pinctrl: intel: Allocate IRQ chip dynamic
      3b7c59a1
  4. 21 Oct, 2019 4 commits
    • Prateek Sood's avatar
      tracing: Fix race in perf_trace_buf initialization · 6b1340cc
      Prateek Sood authored
      A race condition exists while initialiazing perf_trace_buf from
      perf_trace_init() and perf_kprobe_init().
      
            CPU0                                        CPU1
      perf_trace_init()
        mutex_lock(&event_mutex)
          perf_trace_event_init()
            perf_trace_event_reg()
              total_ref_count == 0
      	buf = alloc_percpu()
              perf_trace_buf[i] = buf
              tp_event->class->reg() //fails       perf_kprobe_init()
      	goto fail                              perf_trace_event_init()
                                                       perf_trace_event_reg()
              fail:
      	  total_ref_count == 0
      
                                                         total_ref_count == 0
                                                         buf = alloc_percpu()
                                                         perf_trace_buf[i] = buf
                                                         tp_event->class->reg()
                                                         total_ref_count++
      
                free_percpu(perf_trace_buf[i])
                perf_trace_buf[i] = NULL
      
      Any subsequent call to perf_trace_event_reg() will observe total_ref_count > 0,
      causing the perf_trace_buf to be always NULL. This can result in perf_trace_buf
      getting accessed from perf_trace_buf_alloc() without being initialized. Acquiring
      event_mutex in perf_kprobe_init() before calling perf_trace_event_init() should
      fix this race.
      
      The race caused the following bug:
      
       Unable to handle kernel paging request at virtual address 0000003106f2003c
       Mem abort info:
         ESR = 0x96000045
         Exception class = DABT (current EL), IL = 32 bits
         SET = 0, FnV = 0
         EA = 0, S1PTW = 0
       Data abort info:
         ISV = 0, ISS = 0x00000045
         CM = 0, WnR = 1
       user pgtable: 4k pages, 39-bit VAs, pgdp = ffffffc034b9b000
       [0000003106f2003c] pgd=0000000000000000, pud=0000000000000000
       Internal error: Oops: 96000045 [#1] PREEMPT SMP
       Process syz-executor (pid: 18393, stack limit = 0xffffffc093190000)
       pstate: 80400005 (Nzcv daif +PAN -UAO)
       pc : __memset+0x20/0x1ac
       lr : memset+0x3c/0x50
       sp : ffffffc09319fc50
      
        __memset+0x20/0x1ac
        perf_trace_buf_alloc+0x140/0x1a0
        perf_trace_sys_enter+0x158/0x310
        syscall_trace_enter+0x348/0x7c0
        el0_svc_common+0x11c/0x368
        el0_svc_handler+0x12c/0x198
        el0_svc+0x8/0xc
      
      Ramdumps showed the following:
        total_ref_count = 3
        perf_trace_buf = (
            0x0 -> NULL,
            0x0 -> NULL,
            0x0 -> NULL,
            0x0 -> NULL)
      
      Link: http://lkml.kernel.org/r/1571120245-4186-1-git-send-email-prsood@codeaurora.org
      
      Cc: stable@vger.kernel.org
      Fixes: e12f03d7 ("perf/core: Implement the 'perf_kprobe' PMU")
      Acked-by: default avatarSong Liu <songliubraving@fb.com>
      Signed-off-by: default avatarPrateek Sood <prsood@codeaurora.org>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      6b1340cc
    • afzal mohammed's avatar
      ARM: 8926/1: v7m: remove register save to stack before svc · 2ecb2879
      afzal mohammed authored
      r0-r3 & r12 registers are saved & restored, before & after svc
      respectively. Intention was to preserve those registers across thread to
      handler mode switch.
      
      On v7-M, hardware saves the register context upon exception in AAPCS
      complaint way. Restoring r0-r3 & r12 is done from stack location where
      hardware saves it, not from the location on stack where these registers
      were saved.
      
      To clarify, on stm32f429 discovery board:
      
      1. before svc, sp - 0x90009ff8
      2. r0-r3,r12 saved to 0x90009ff8 - 0x9000a00b
      3. upon svc, h/w decrements sp by 32 & pushes registers onto stack
      4. after svc,  sp - 0x90009fd8
      5. r0-r3,r12 restored from 0x90009fd8 - 0x90009feb
      
      Above means r0-r3,r12 is not restored from the location where they are
      saved, but since hardware pushes the registers onto stack, the registers
      are restored correctly.
      
      Note that during register saving to stack (step 2), it goes past
      0x9000a000. And it seems, based on objdump, there are global symbols
      residing there, and it perhaps can cause issues on a non-XIP Kernel
      (on XIP, data section is setup later).
      
      Based on the analysis above, manually saving registers onto stack is at
      best no-op and at worst can cause data section corruption. Hence remove
      storing of registers onto stack before svc.
      
      Fixes: b70cd406 ("ARM: 8671/1: V7M: Preserve registers across switch from Thread to Handler mode")
      Signed-off-by: default avatarafzal mohammed <afzal.mohd.ma@gmail.com>
      Acked-by: default avatarVladimir Murzin <vladimir.murzin@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      2ecb2879
    • Takashi Iwai's avatar
      Merge tag 'asoc-fix-v5.4-rc4' of... · c8d2dcb3
      Takashi Iwai authored
      Merge tag 'asoc-fix-v5.4-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v5.4
      
      A collection of fixes that have arrived since the merge window.  There
      are a small number of core fixes here but they are smaller ones around
      error handling.
      c8d2dcb3
    • Kailang Yang's avatar
      ALSA: hda/realtek - Add support for ALC711 · 83629532
      Kailang Yang authored
      Support new codec ALC711.
      Signed-off-by: default avatarKailang Yang <kailang@realtek.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      83629532
  5. 20 Oct, 2019 6 commits
  6. 19 Oct, 2019 15 commits