1. 02 Jun, 2020 9 commits
  2. 18 May, 2020 7 commits
    • Douglas Anderson's avatar
      kgdboc: Add kgdboc_earlycon to support early kgdb using boot consoles · 22099562
      Douglas Anderson authored
      We want to enable kgdb to debug the early parts of the kernel.
      Unfortunately kgdb normally is a client of the tty API in the kernel
      and serial drivers don't register to the tty layer until fairly late
      in the boot process.
      
      Serial drivers do, however, commonly register a boot console.  Let's
      enable the kgdboc driver to work with boot consoles to provide early
      debugging.
      
      This change co-opts the existing read() function pointer that's part
      of "struct console".  It's assumed that if a boot console (with the
      flag CON_BOOT) has implemented read() that both the read() and write()
      function are polling functions.  That means they work without
      interrupts and read() will return immediately (with 0 bytes read) if
      there's nothing to read.  This should be a safe assumption since it
      appears that no current boot consoles implement read() right now and
      there seems no reason to do so unless they wanted to support
      "kgdboc_earlycon".
      
      The normal/expected way to make all this work is to use
      "kgdboc_earlycon" and "kgdboc" together.  You should point them both
      to the same physical serial connection.  At boot time, as the system
      transitions from the boot console to the normal console (and registers
      a tty), kgdb will switch over.
      
      One awkward part of all this, though, is that there can be a window
      where the boot console goes away and we can't quite transtion over to
      the main kgdboc that uses the tty layer.  There are two main problems:
      
      1. The act of registering the tty doesn't cause any call into kgdboc
         so there is a window of time when the tty is there but kgdboc's
         init code hasn't been called so we can't transition to it.
      
      2. On some serial drivers the normal console inits (and replaces the
         boot console) quite early in the system.  Presumably these drivers
         were coded up before earlycon worked as well as it does today and
         probably they don't need to do this anymore, but it causes us
         problems nontheless.
      
      Problem #1 is not too big of a deal somewhat due to the luck of probe
      ordering.  kgdboc is last in the tty/serial/Makefile so its probe gets
      right after all other tty devices.  It's not fun to rely on this, but
      it does work for the most part.
      
      Problem #2 is a big deal, but only for some serial drivers.  Other
      serial drivers end up registering the console (which gets rid of the
      boot console) and tty at nearly the same time.
      
      The way we'll deal with the window when the system has stopped using
      the boot console and the time when we're setup using the tty is to
      keep using the boot console.  This may sound surprising, but it has
      been found to work well in practice.  If it doesn't work, it shouldn't
      be too hard for a given serial driver to make it keep working.
      Specifically, it's expected that the read()/write() function provided
      in the boot console should be the same (or nearly the same) as the
      normal kgdb polling functions.  That means continuing to use them
      should work just fine.  To make things even more likely to work work
      we'll also trap the recently added exit() function in the boot console
      we're using and delay any calls to it until we're all done with the
      boot console.
      
      NOTE: there could be ways to use all this in weird / unexpected ways.
      If you do something like this, it's a bit of a buyer beware situation.
      Specifically:
      - If you specify only "kgdboc_earlycon" but not "kgdboc" then
        (depending on your serial driver) things will probably work OK, but
        you'll get a warning printed the first time you use kgdb after the
        boot console is gone.  You'd only be able to do this, of course, if
        the serial driver you're running atop provided an early boot console.
      - If your "kgdboc_earlycon" and "kgdboc" devices are not the same
        device things should work OK, but it'll be your job to switch over
        which device you're monitoring (including figuring out how to switch
        over gdb in-flight if you're using it).
      
      When trying to enable "kgdboc_earlycon" it should be noted that the
      names that are registered through the boot console layer and the tty
      layer are not the same for the same port.  For example when debugging
      on one board I'd need to pass "kgdboc_earlycon=qcom_geni
      kgdboc=ttyMSM0" to enable things properly.  Since digging up the boot
      console name is a pain and there will rarely be more than one boot
      console enabled, you can provide the "kgdboc_earlycon" parameter
      without specifying the name of the boot console.  In this case we'll
      just pick the first boot that implements read() that we find.
      
      This new "kgdboc_earlycon" parameter should be contrasted to the
      existing "ekgdboc" parameter.  While both provide a way to debug very
      early, the usage and mechanisms are quite different.  Specifically
      "kgdboc_earlycon" is meant to be used in tandem with "kgdboc" and
      there is a transition from one to the other.  The "ekgdboc" parameter,
      on the other hand, replaces the "kgdboc" parameter.  It runs the same
      logic as the "kgdboc" parameter but just relies on your TTY driver
      being present super early.  The only known usage of the old "ekgdboc"
      parameter is documented as "ekgdboc=kbd earlyprintk=vga".  It should
      be noted that "kbd" has special treatment allowing it to init early as
      a tty device.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Tested-by: default avatarSumit Garg <sumit.garg@linaro.org>
      Link: https://lore.kernel.org/r/20200507130644.v4.8.I8fba5961bf452ab92350654aa61957f23ecf0100@changeidSigned-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      22099562
    • Douglas Anderson's avatar
      kgdboc: Remove useless #ifdef CONFIG_KGDB_SERIAL_CONSOLE in kgdboc · eae3e19c
      Douglas Anderson authored
      This file is only ever compiled if that config is on since the
      Makefile says:
      
        obj-$(CONFIG_KGDB_SERIAL_CONSOLE) += kgdboc.o
      
      Let's get rid of the useless #ifdef.
      Reported-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Link: https://lore.kernel.org/r/20200507130644.v4.7.Icb528f03d0026d957e60f537aa711ada6fd219dc@changeidSigned-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      eae3e19c
    • Douglas Anderson's avatar
      kgdb: Prevent infinite recursive entries to the debugger · 3ca676e4
      Douglas Anderson authored
      If we detect that we recursively entered the debugger we should hack
      our I/O ops to NULL so that the panic() in the next line won't
      actually cause another recursion into the debugger.  The first line of
      kgdb_panic() will check this and return.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Link: https://lore.kernel.org/r/20200507130644.v4.6.I89de39f68736c9de610e6f241e68d8dbc44bc266@changeidSigned-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      3ca676e4
    • Douglas Anderson's avatar
      kgdb: Delay "kgdbwait" to dbg_late_init() by default · b1a57bbf
      Douglas Anderson authored
      Using kgdb requires at least some level of architecture-level
      initialization.  If nothing else, it relies on the architecture to
      pass breakpoints / crashes onto kgdb.
      
      On some architectures this all works super early, specifically it
      starts working at some point in time before Linux parses
      early_params's.  On other architectures it doesn't.  A survey of a few
      platforms:
      
      a) x86: Presumably it all works early since "ekgdboc" is documented to
         work here.
      b) arm64: Catching crashes works; with a simple patch breakpoints can
         also be made to work.
      c) arm: Nothing in kgdb works until
         paging_init() -> devicemaps_init() -> early_trap_init()
      
      Let's be conservative and, by default, process "kgdbwait" (which tells
      the kernel to drop into the debugger ASAP at boot) a bit later at
      dbg_late_init() time.  If an architecture has tested it and wants to
      re-enable super early debugging, they can select the
      ARCH_HAS_EARLY_DEBUG KConfig option.  We'll do this for x86 to start.
      It should be noted that dbg_late_init() is still called quite early in
      the system.
      
      Note that this patch doesn't affect when kgdb runs its init.  If kgdb
      is set to initialize early it will still initialize when parsing
      early_param's.  This patch _only_ inhibits the initial breakpoint from
      "kgdbwait".  This means:
      
      * Without any extra patches arm64 platforms will at least catch
        crashes after kgdb inits.
      * arm platforms will catch crashes (and could handle a hardcoded
        kgdb_breakpoint()) any time after early_trap_init() runs, even
        before dbg_late_init().
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Link: https://lore.kernel.org/r/20200507130644.v4.4.I3113aea1b08d8ce36dc3720209392ae8b815201b@changeidSigned-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      b1a57bbf
    • Douglas Anderson's avatar
      kgdboc: Use a platform device to handle tty drivers showing up late · 68e55f61
      Douglas Anderson authored
      If you build CONFIG_KGDB_SERIAL_CONSOLE into the kernel then you
      should be able to have KGDB init itself at bootup by specifying the
      "kgdboc=..." kernel command line parameter.  This has worked OK for me
      for many years, but on a new device I switched to it stopped working.
      
      The problem is that on this new device the serial driver gets its
      probe deferred.  Now when kgdb initializes it can't find the tty
      driver and when it gives up it never tries again.
      
      We could try to find ways to move up the initialization of the serial
      driver and such a thing might be worthwhile, but it's nice to be
      robust against serial drivers that load late.  We could move kgdb to
      init itself later but that penalizes our ability to debug early boot
      code on systems where the driver inits early.  We could roll our own
      system of detecting when new tty drivers get loaded and then use that
      to figure out when kgdb can init, but that's ugly.
      
      Instead, let's jump on the -EPROBE_DEFER bandwagon.  We'll create a
      singleton instance of a "kgdboc" platform device.  If we can't find
      our tty device when the singleton "kgdboc" probes we'll return
      -EPROBE_DEFER which means that the system will call us back later to
      try again when the tty device might be there.
      
      We won't fully transition all of the kgdboc to a platform device
      because early kgdb initialization (via the "ekgdboc" kernel command
      line parameter) still runs before the platform device has been
      created.  The kgdb platform device is merely used as a convenient way
      to hook into the system's normal probe deferral mechanisms.
      
      As part of this, we'll ever-so-slightly change how the "kgdboc=..."
      kernel command line parameter works.  Previously if you booted up and
      kgdb couldn't find the tty driver then later reading
      '/sys/module/kgdboc/parameters/kgdboc' would return a blank string.
      Now kgdb will keep track of the string that came as part of the
      command line and give it back to you.  It's expected that this should
      be an OK change.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Link: https://lore.kernel.org/r/20200507130644.v4.3.I4a493cfb0f9f740ce8fd2ab58e62dc92d18fed30@changeid
      [daniel.thompson@linaro.org: Make config_mutex static]
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      68e55f61
    • Douglas Anderson's avatar
      Revert "kgdboc: disable the console lock when in kgdb" · 333564ad
      Douglas Anderson authored
      This reverts commit 81eaadca.
      
      Commit 81eaadca ("kgdboc: disable the console lock when in kgdb")
      is no longer needed now that we have the patch ("kgdb: Disable
      WARN_CONSOLE_UNLOCKED for all kgdb").  Revert it.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Link: https://lore.kernel.org/r/20200507130644.v4.2.I02258eee1497e55bcbe8dc477de90369c7c7c2c5@changeidSigned-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      333564ad
    • Douglas Anderson's avatar
      kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb · 202164fb
      Douglas Anderson authored
      In commit 81eaadca ("kgdboc: disable the console lock when in
      kgdb") we avoided the WARN_CONSOLE_UNLOCKED() yell when we were in
      kgdboc.  That still works fine, but it turns out that we get a similar
      yell when using other I/O drivers.  One example is the "I/O driver"
      for the kgdb test suite (kgdbts).  When I enabled that I again got the
      same yells.
      
      Even though "kgdbts" doesn't actually interact with the user over the
      console, using it still causes kgdb to print to the consoles.  That
      trips the same warning:
        con_is_visible+0x60/0x68
        con_scroll+0x110/0x1b8
        lf+0x4c/0xc8
        vt_console_print+0x1b8/0x348
        vkdb_printf+0x320/0x89c
        kdb_printf+0x68/0x90
        kdb_main_loop+0x190/0x860
        kdb_stub+0x2cc/0x3ec
        kgdb_cpu_enter+0x268/0x744
        kgdb_handle_exception+0x1a4/0x200
        kgdb_compiled_brk_fn+0x34/0x44
        brk_handler+0x7c/0xb8
        do_debug_exception+0x1b4/0x228
      
      Let's increment/decrement the "ignore_console_lock_warning" variable
      all the time when we enter the debugger.
      
      This will allow us to later revert commit 81eaadca ("kgdboc:
      disable the console lock when in kgdb").
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Link: https://lore.kernel.org/r/20200507130644.v4.1.Ied2b058357152ebcc8bf68edd6f20a11d98d7d4e@changeidSigned-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      202164fb
  3. 07 May, 2020 3 commits
  4. 26 Apr, 2020 11 commits
    • Linus Torvalds's avatar
      Linux 5.7-rc3 · 6a8b55ed
      Linus Torvalds authored
      6a8b55ed
    • Linus Torvalds's avatar
      Merge tag '5.7-rc2-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · d4fb4bfb
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Five cifs/smb3 fixes:two for DFS reconnect failover, one lease fix for
        stable and the others to fix a missing spinlock during reconnect"
      
      * tag '5.7-rc2-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix uninitialised lease_key in open_shroot()
        cifs: ensure correct super block for DFS reconnect
        cifs: do not share tcons with DFS
        cifs: minor update to comments around the cifs_tcp_ses_lock mutex
        cifs: protect updating server->dstaddr with a spinlock
      d4fb4bfb
    • Linus Torvalds's avatar
      Merge tag 'usb-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e9a61afb
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a number of USB driver fixes for 5.7-rc3.
      
        Nothing huge, just the usual collection of:
      
         - xhci fixes
      
         - gadget driver fixes
      
         - syzkaller fuzzing fixes
      
         - new device ids and DT bindings
      
         - new quirks added for broken devices
      
        A few of the gadget driver fixes show up twice here as they were
        applied to my branch, and also by Felipe to his branch which I then
        pulled in as we got out of sync a bit.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (33 commits)
        USB: sisusbvga: Change port variable from signed to unsigned
        usb-storage: Add unusual_devs entry for JMicron JMS566
        USB: hub: Revert commit bd0e6c96 ("usb: hub: try old enumeration scheme first for high speed devices")
        USB: hub: Fix handling of connect changes during sleep
        usb: typec: altmode: Fix typec_altmode_get_partner sometimes returning an invalid pointer
        xhci: Don't clear hub TT buffer on ep0 protocol stall
        xhci: prevent bus suspend if a roothub port detected a over-current condition
        xhci: Fix handling halted endpoint even if endpoint ring appears empty
        usb: raw-gadget: Fix copy_to/from_user() checks
        usb: raw-gadget: fix raw_event_queue_fetch locking
        usb: gadget: udc: atmel: Fix vbus disconnect handling
        usb: dwc3: gadget: Fix request completion check
        USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70 RGB RAPIDFIRE
        phy: tegra: Select USB_COMMON for usb_get_maximum_speed()
        usb: typec: tcpm: Ignore CC and vbus changes in PORT_RESET change
        usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
        cdc-acm: introduce a cool down
        cdc-acm: close race betrween suspend() and acm_softint
        UAS: fix deadlock in error handling and PM flushing work
        UAS: no use logging any details in case of ENODEV
        ...
      e9a61afb
    • Linus Torvalds's avatar
      Merge tag 'tty-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · c5f33785
      Linus Torvalds authored
      Pull tty/serial fixes from Greg KH:
       "Here are some tty and serial driver fixes for 5.7-rc3.
      
        The "largest" in here are a number of reverts for previous changes to
        the uartps serial driver that turned out to not be a good idea at all.
      
        The others are just small fixes found by people and tools. Included in
        here is a much-reported symbol export needed by previous changes that
        happened in 5.7-rc1. All of these have been in linux-next for a while
        with no reported issues"
      
      * tag 'tty-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: hvc: fix buffer overflow during hvc_alloc().
        tty: rocket, avoid OOB access
        tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart
        vt: don't hardcode the mem allocation upper bound
        tty: serial: owl: add "much needed" clk_prepare_enable()
        vt: don't use kmalloc() for the unicode screen buffer
        tty/sysrq: Export sysrq_mask(), sysrq_toggle_support()
        serial: sh-sci: Make sure status register SCxSR is read in correct sequence
        serial: sunhv: Initialize lock for non-registered console
        Revert "serial: uartps: Register own uart console and driver structures"
        Revert "serial: uartps: Move Port ID to device data structure"
        Revert "serial: uartps: Change uart ID port allocation"
        Revert "serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES"
        Revert "serial: uartps: Fix error path when alloc failed"
        Revert "serial: uartps: Use the same dynamic major number for all ports"
        Revert "serial: uartps: Fix uartps_major handling"
      c5f33785
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · f6da8bd1
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are 4 small misc driver fixes for 5.7-rc3:
      
         - mei driver fix
      
         - interconnect driver fix
      
         - two fpga driver fixes
      
        All have been in linux-next with no reported issues"
      
      * tag 'char-misc-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        interconnect: qcom: Fix uninitialized tcs_cmd::wait
        mei: me: fix irq number stored in hw struct
        fpga: dfl: pci: fix return value of cci_pci_sriov_configure
        fpga: zynq: Remove clk_get error message for probe defer
      f6da8bd1
    • Linus Torvalds's avatar
      Merge tag 'staging-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · edf17b28
      Linus Torvalds authored
      Pull staging/IIO driver fixes from Greg KH:
       "Here are some small staging and IIO driver fixes for 5.7-rc3
      
        Lots of tiny things for reported issues in staging and IIO drivers,
        including a counter driver fix as well (the iio drivers seem to be
        tied to those). Full details of the fixes are in the shortlog.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (27 commits)
        staging: vt6656: Fix calling conditions of vnt_set_bss_mode
        staging: comedi: Fix comedi_device refcnt leak in comedi_open
        staging: vt6656: Fix pairwise key entry save.
        staging: vt6656: Fix drivers TBTT timing counter.
        staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
        MAINTAINERS: remove Stefan Popa's email
        iio: adc: ad7192: fix null pointer de-reference crash during probe
        iio: core: remove extra semi-colon from devm_iio_device_register() macro
        iio: adc: ti-ads8344: properly byte swap value
        iio: imu: inv_mpu6050: fix suspend/resume with runtime power
        iio: st_sensors: rely on odr mask to know if odr can be set
        iio: xilinx-xadc: Make sure not exceed maximum samplerate
        iio: xilinx-xadc: Fix sequencer configuration for aux channels in simultaneous mode
        iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
        iio: xilinx-xadc: Fix ADC-B powerdown
        iio: dac: ad5770r: fix off-by-one check on maximum number of channels
        iio: imu: st_lsm6dsx: flush hw FIFO before resetting the device
        iio: core: Fix handling of 'dB'
        dt-bindings: iio: adc: stm32-adc: fix id relative path
        counter: 104-quad-8: Add lock guards - generic interface
        ...
      edf17b28
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · a8a0e2a9
      Linus Torvalds authored
      Pull driver core fixes from Greg KH:
       "Here are some small firmware/driver core/debugfs fixes for 5.7-rc3.
      
        The debugfs change is now possible as now the last users of
        debugfs_create_u32() have been fixed up in the different trees that
        got merged into 5.7-rc1, and I don't want it creeping back in.
      
        The firmware changes did cause a regression in linux-next, so the
        final patch here reverts part of that, re-exporting the symbol to
        resolve that issue. All of these patches, with the exception of the
        final one, have been in linux-next with only that one reported issue"
      
      * tag 'driver-core-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        firmware_loader: revert removal of the fw_fallback_config export
        debugfs: remove return value of debugfs_create_u32()
        firmware_loader: remove unused exports
        firmware: imx: fix compile-testing
      a8a0e2a9
    • Linus Torvalds's avatar
      Merge tag 's390-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 749f0461
      Linus Torvalds authored
      Pull s390 fixes from Vasily Gorbik:
      
       - Add a few notrace annotations to avoid potential crashes when
         switching ftrace tracers.
      
       - Avoid setting affinity for floating irqs in pci code.
      
       - Fix build issue found by kbuild test robot.
      
      * tag 's390-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/protvirt: fix compilation issue
        s390/pci: do not set affinity for floating irqs
        s390/ftrace: fix potential crashes when switching tracers
      749f0461
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 670bcd79
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - One important fix for a bug in the way we find the cache-line size
         from the device tree, which was leading to the wrong size being
         reported to userspace on some platforms.
      
       - A fix for 8xx STRICT_KERNEL_RWX which was leaving TLB entries around
         leading to a window at boot when the strict mapping wasn't enforced.
      
       - A fix to enable our KUAP (kernel user access prevention) debugging on
         PPC32.
      
       - A build fix for clang in lib/mpi.
      
      Thanks to: Chris Packham, Christophe Leroy, Nathan Chancellor, Qian Cai.
      
      * tag 'powerpc-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        lib/mpi: Fix building for powerpc with clang
        powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32
        powerpc/8xx: Fix STRICT_KERNEL_RWX startup test failure
        powerpc/setup_64: Set cache-line-size based on cache-block-size
      670bcd79
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 58792882
      Linus Torvalds authored
      Pull more Devicetree fixes from Rob Herring:
       "A couple of schema and kbuild fixes"
      
      * tag 'devicetree-fixes-for-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: phy: qcom-qusb2: Fix defaults
        dt-bindings: Fix erroneous 'additionalProperties'
        dt-bindings: Fix command line length limit calling dt-mk-schema
        dt-bindings: Re-enable core schemas for dtbs_check
      58792882
    • Luis Chamberlain's avatar
      firmware_loader: revert removal of the fw_fallback_config export · 5a357703
      Luis Chamberlain authored
      Christoph's patch removed two unsused exported symbols, however, one
      symbol is used by the firmware_loader itself.  If CONFIG_FW_LOADER=m so
      the firmware_loader is modular but CONFIG_FW_LOADER_USER_HELPER=y we fail
      the build at mostpost.
      
      ERROR: modpost: "fw_fallback_config" [drivers/base/firmware_loader/firmware_class.ko] undefined!
      
      This happens because the variable fw_fallback_config is built into the
      kernel if CONFIG_FW_LOADER_USER_HELPER=y always, so we need to grant
      access to the firmware loader module by exporting it.
      
      Revert only one hunk from his patch.
      
      Fixes: 73960473 ("firmware_loader: remove unused exports")
      Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      Link: https://lore.kernel.org/r/20200424184916.22843-1-mcgrof@kernel.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5a357703
  5. 25 Apr, 2020 10 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · b2768df2
      Linus Torvalds authored
      Pull pid leak fix from Eric Biederman:
       "Oleg noticed that put_pid(thread_pid) was not getting called when proc
        was not compiled in.
      
        Let's get that fixed before 5.7 is released and causes problems for
        anyone"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        proc: Put thread_pid in release_task not proc_flush_pid
      b2768df2
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · acd62944
      Linus Torvalds authored
      Pull timer fixlet from Ingo Molnar:
       "A single fix for a comment that may show up in DocBook output"
      
      * tag 'timers-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        vdso/datapage: Use correct clock mode name in comment
      acd62944
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 05db498a
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixes:
      
         - an uclamp accounting fix
      
         - three frequency invariance fixes and a readability improvement"
      
      * tag 'sched-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/core: Fix reset-on-fork from RT with uclamp
        x86, sched: Move check for CPU type to caller function
        x86, sched: Don't enable static key when starting secondary CPUs
        x86, sched: Account for CPUs with less than 4 cores in freq. invariance
        x86, sched: Bail out of frequency invariance if base frequency is unknown
      05db498a
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e1858800
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Two changes:
      
         - fix exit event records
      
         - extend x86 PMU driver enumeration to add Intel Jasper Lake CPU
           support"
      
      * tag 'perf-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/core: fix parent pid/tid in task exit events
        perf/x86/cstate: Add Jasper Lake CPU support
      e1858800
    • Linus Torvalds's avatar
      Merge tag 'objtool-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9b3e59e3
      Linus Torvalds authored
      Pull objtool fixes from Ingo Molnar:
       "Two fixes: fix an off-by-one bug, and fix 32-bit builds on 64-bit
        systems"
      
      * tag 'objtool-urgent-2020-04-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Fix off-by-one in symbol_by_offset()
        objtool: Fix 32bit cross builds
      9b3e59e3
    • Claudio Imbrenda's avatar
      s390/protvirt: fix compilation issue · 673deb0b
      Claudio Imbrenda authored
      The kernel fails to compile with CONFIG_PROTECTED_VIRTUALIZATION_GUEST
      set but CONFIG_KVM unset.
      
      This patch fixes the issue by making the needed variable always available.
      
      Link: https://lkml.kernel.org/r/20200423120114.2027410-1-imbrenda@linux.ibm.com
      Fixes: a0f60f84 ("s390/protvirt: Add sysfs firmware interface for Ultravisor information")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Reported-by: default avatarPhilipp Rudo <prudo@linux.ibm.com>
      Suggested-by: default avatarPhilipp Rudo <prudo@linux.ibm.com>
      Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
      Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
      Reviewed-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      Acked-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarClaudio Imbrenda <imbrenda@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      673deb0b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · ab51cac0
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix memory leak in netfilter flowtable, from Roi Dayan.
      
       2) Ref-count leaks in netrom and tipc, from Xiyu Yang.
      
       3) Fix warning when mptcp socket is never accepted before close, from
          Florian Westphal.
      
       4) Missed locking in ovs_ct_exit(), from Tonghao Zhang.
      
       5) Fix large delays during PTP synchornization in cxgb4, from Rahul
          Lakkireddy.
      
       6) team_mode_get() can hang, from Taehee Yoo.
      
       7) Need to use kvzalloc() when allocating fw tracer in mlx5 driver,
          from Niklas Schnelle.
      
       8) Fix handling of bpf XADD on BTF memory, from Jann Horn.
      
       9) Fix BPF_STX/BPF_B encoding in x86 bpf jit, from Luke Nelson.
      
      10) Missing queue memory release in iwlwifi pcie code, from Johannes
          Berg.
      
      11) Fix NULL deref in macvlan device event, from Taehee Yoo.
      
      12) Initialize lan87xx phy correctly, from Yuiko Oshino.
      
      13) Fix looping between VRF and XFRM lookups, from David Ahern.
      
      14) etf packet scheduler assumes all sockets are full sockets, which is
          not necessarily true. From Eric Dumazet.
      
      15) Fix mptcp data_fin handling in RX path, from Paolo Abeni.
      
      16) fib_select_default() needs to handle nexthop objects, from David
          Ahern.
      
      17) Use GFP_ATOMIC under spinlock in mac80211_hwsim, from Wei Yongjun.
      
      18) vxlan and geneve use wrong nlattr array, from Sabrina Dubroca.
      
      19) Correct rx/tx stats in bcmgenet driver, from Doug Berger.
      
      20) BPF_LDX zero-extension is encoded improperly in x86_32 bpf jit, fix
          from Luke Nelson.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (100 commits)
        selftests/bpf: Fix a couple of broken test_btf cases
        tools/runqslower: Ensure own vmlinux.h is picked up first
        bpf: Make bpf_link_fops static
        bpftool: Respect the -d option in struct_ops cmd
        selftests/bpf: Add test for freplace program with expected_attach_type
        bpf: Propagate expected_attach_type when verifying freplace programs
        bpf: Fix leak in LINK_UPDATE and enforce empty old_prog_fd
        bpf, x86_32: Fix logic error in BPF_LDX zero-extension
        bpf, x86_32: Fix clobbering of dst for BPF_JSET
        bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension
        bpf: Fix reStructuredText markup
        net: systemport: suppress warnings on failed Rx SKB allocations
        net: bcmgenet: suppress warnings on failed Rx SKB allocations
        macsec: avoid to set wrong mtu
        mac80211: sta_info: Add lockdep condition for RCU list usage
        mac80211: populate debugfs only after cfg80211 init
        net: bcmgenet: correct per TX/RX ring statistics
        net: meth: remove spurious copyright text
        net: phy: bcm84881: clear settings on link down
        chcr: Fix CPU hard lockup
        ...
      ab51cac0
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 167ff131
      David S. Miller authored
      Alexei Starovoitov says:
      
      ====================
      pull-request: bpf 2020-04-24
      
      The following pull-request contains BPF updates for your *net* tree.
      
      We've added 17 non-merge commits during the last 5 day(s) which contain
      a total of 19 files changed, 203 insertions(+), 85 deletions(-).
      
      The main changes are:
      
      1) link_update fix, from Andrii.
      
      2) libbpf get_xdp_id fix, from David.
      
      3) xadd verifier fix, from Jann.
      
      4) x86-32 JIT fixes, from Luke and Wang.
      
      5) test_btf fix, from Stanislav.
      
      6) freplace verifier fix, from Toke.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      167ff131
    • Stanislav Fomichev's avatar
      selftests/bpf: Fix a couple of broken test_btf cases · e1cebd84
      Stanislav Fomichev authored
      Commit 51c39bb1 ("bpf: Introduce function-by-function verification")
      introduced function linkage flag and changed the error message from
      "vlen != 0" to "Invalid func linkage" and broke some fake BPF programs.
      
      Adjust the test accordingly.
      
      AFACT, the programs don't really need any arguments and only look
      at BTF for maps, so let's drop the args altogether.
      
      Before:
      BTF raw test[103] (func (Non zero vlen)): do_test_raw:3703:FAIL expected
      err_str:vlen != 0
      magic: 0xeb9f
      version: 1
      flags: 0x0
      hdr_len: 24
      type_off: 0
      type_len: 72
      str_off: 72
      str_len: 10
      btf_total_size: 106
      [1] INT (anon) size=4 bits_offset=0 nr_bits=32 encoding=SIGNED
      [2] INT (anon) size=4 bits_offset=0 nr_bits=32 encoding=(none)
      [3] FUNC_PROTO (anon) return=0 args=(1 a, 2 b)
      [4] FUNC func type_id=3 Invalid func linkage
      
      BTF libbpf test[1] (test_btf_haskv.o): libbpf: load bpf program failed:
      Invalid argument
      libbpf: -- BEGIN DUMP LOG ---
      libbpf:
      Validating test_long_fname_2() func#1...
      Arg#0 type PTR in test_long_fname_2() is not supported yet.
      processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
      peak_states 0 mark_read 0
      
      libbpf: -- END LOG --
      libbpf: failed to load program 'dummy_tracepoint'
      libbpf: failed to load object 'test_btf_haskv.o'
      do_test_file:4201:FAIL bpf_object__load: -4007
      BTF libbpf test[2] (test_btf_newkv.o): libbpf: load bpf program failed:
      Invalid argument
      libbpf: -- BEGIN DUMP LOG ---
      libbpf:
      Validating test_long_fname_2() func#1...
      Arg#0 type PTR in test_long_fname_2() is not supported yet.
      processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
      peak_states 0 mark_read 0
      
      libbpf: -- END LOG --
      libbpf: failed to load program 'dummy_tracepoint'
      libbpf: failed to load object 'test_btf_newkv.o'
      do_test_file:4201:FAIL bpf_object__load: -4007
      BTF libbpf test[3] (test_btf_nokv.o): libbpf: load bpf program failed:
      Invalid argument
      libbpf: -- BEGIN DUMP LOG ---
      libbpf:
      Validating test_long_fname_2() func#1...
      Arg#0 type PTR in test_long_fname_2() is not supported yet.
      processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
      peak_states 0 mark_read 0
      
      libbpf: -- END LOG --
      libbpf: failed to load program 'dummy_tracepoint'
      libbpf: failed to load object 'test_btf_nokv.o'
      do_test_file:4201:FAIL bpf_object__load: -4007
      
      Fixes: 51c39bb1 ("bpf: Introduce function-by-function verification")
      Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20200422003753.124921-1-sdf@google.com
      e1cebd84
    • Andrii Nakryiko's avatar
      tools/runqslower: Ensure own vmlinux.h is picked up first · dfc55ace
      Andrii Nakryiko authored
      Reorder include paths to ensure that runqslower sources are picking up
      vmlinux.h, generated by runqslower's own Makefile. When runqslower is built
      from selftests/bpf, due to current -I$(BPF_INCLUDE) -I$(OUTPUT) ordering, it
      might pick up not-yet-complete vmlinux.h, generated by selftests Makefile,
      which could lead to compilation errors like [0]. So ensure that -I$(OUTPUT)
      goes first and rely on runqslower's Makefile own dependency chain to ensure
      vmlinux.h is properly completed before source code relying on it is compiled.
      
        [0] https://travis-ci.org/github/libbpf/libbpf/jobs/677905925Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20200422012407.176303-1-andriin@fb.com
      dfc55ace