Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync with -rc3 to solve conflict #112

Merged
merged 666 commits into from
Mar 16, 2021
Merged

Sync with -rc3 to solve conflict #112

merged 666 commits into from
Mar 16, 2021
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Mar 10, 2021

  1. staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan

    Function _rtl92e_wx_set_scan calls memcpy without checking the length.
    A user could control that length and trigger a buffer overflow.
    Fix by checking the length is within the maximum allowed size.
    
    Reviewed-by: Dan Carpenter <[email protected]>
    Signed-off-by: Lee Gibson <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lgtux authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    8687bf9 View commit details
    Browse the repository at this point in the history
  2. staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd

    Function r8712_sitesurvey_cmd calls memcpy without checking the length.
    A user could control that length and trigger a buffer overflow.
    Fix by checking the length is within the maximum allowed size.
    
    Signed-off-by: Lee Gibson <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Cc: stable <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lgtux authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    b93c1e3 View commit details
    Browse the repository at this point in the history
  3. staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()

    The user can specify a "req->essid_len" of up to 255 but if it's
    over IW_ESSID_MAX_SIZE (32) that can lead to memory corruption.
    
    Fixes: 13a9930 ("staging: ks7010: add driver from Nanonote extra-repository")
    Signed-off-by: Dan Carpenter <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/YD4fS8+HmM/Qmrw6@mwanda
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    e163b98 View commit details
    Browse the repository at this point in the history
  4. staging: comedi: addi_apci_1032: Fix endian problem for COS sample

    The Change-Of-State (COS) subdevice supports Comedi asynchronous
    commands to read 16-bit change-of-state values.  However, the interrupt
    handler is calling `comedi_buf_write_samples()` with the address of a
    32-bit integer `&s->state`.  On bigendian architectures, it will copy 2
    bytes from the wrong end of the 32-bit integer.  Fix it by transferring
    the value via a 16-bit integer.
    
    Fixes: 6bb45f2 ("staging: comedi: addi_apci_1032: use comedi_buf_write_samples()")
    Cc: <[email protected]> # 3.19+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    25317f4 View commit details
    Browse the repository at this point in the history
  5. staging: comedi: addi_apci_1500: Fix endian problem for command sample

    The digital input subdevice supports Comedi asynchronous commands that
    read interrupt status information.  This uses 16-bit Comedi samples (of
    which only the bottom 8 bits contain status information).  However, the
    interrupt handler is calling `comedi_buf_write_samples()` with the
    address of a 32-bit variable `unsigned int status`.  On a bigendian
    machine, this will copy 2 bytes from the wrong end of the variable.  Fix
    it by changing the type of the variable to `unsigned short`.
    
    Fixes: a8c66b6 ("staging: comedi: addi_apci_1500: rewrite the subdevice support functions")
    Cc: <[email protected]> #4.0+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    ac0bbf5 View commit details
    Browse the repository at this point in the history
  6. staging: comedi: adv_pci1710: Fix endian problem for AI command data

    The analog input subdevice supports Comedi asynchronous commands that
    use Comedi's 16-bit sample format.  However, the calls to
    `comedi_buf_write_samples()` are passing the address of a 32-bit integer
    variable.  On bigendian machines, this will copy 2 bytes from the wrong
    end of the 32-bit value.  Fix it by changing the type of the variables
    holding the sample value to `unsigned short`.  The type of the `val`
    parameter of `pci1710_ai_read_sample()` is changed to `unsigned short *`
    accordingly.  The type of the `val` variable in `pci1710_ai_insn_read()`
    is also changed to `unsigned short` since its address is passed to
    `pci1710_ai_read_sample()`.
    
    Fixes: a9c3a01 ("staging: comedi: adv_pci1710: use comedi_buf_write_samples()")
    Cc: <[email protected]> # 4.0+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    b2e7863 View commit details
    Browse the repository at this point in the history
  7. staging: comedi: das6402: Fix endian problem for AI command data

    The analog input subdevice supports Comedi asynchronous commands that
    use Comedi's 16-bit sample format.  However, the call to
    `comedi_buf_write_samples()` is passing the address of a 32-bit integer
    variable.  On bigendian machines, this will copy 2 bytes from the wrong
    end of the 32-bit value.  Fix it by changing the type of the variable
    holding the sample value to `unsigned short`.
    
    Fixes: d1d24cb ("staging: comedi: das6402: read analog input samples in interrupt handler")
    Cc: <[email protected]> # 3.19+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    1c0f20b View commit details
    Browse the repository at this point in the history
  8. staging: comedi: das800: Fix endian problem for AI command data

    The analog input subdevice supports Comedi asynchronous commands that
    use Comedi's 16-bit sample format.  However, the call to
    `comedi_buf_write_samples()` is passing the address of a 32-bit integer
    variable.  On bigendian machines, this will copy 2 bytes from the wrong
    end of the 32-bit value.  Fix it by changing the type of the variable
    holding the sample value to `unsigned short`.
    
    Fixes: ad9eb43 ("staging: comedi: das800: use comedi_buf_write_samples()")
    Cc: <[email protected]> # 3.19+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    459b1e8 View commit details
    Browse the repository at this point in the history
  9. staging: comedi: dmm32at: Fix endian problem for AI command data

    The analog input subdevice supports Comedi asynchronous commands that
    use Comedi's 16-bit sample format.  However, the call to
    `comedi_buf_write_samples()` is passing the address of a 32-bit integer
    variable.  On bigendian machines, this will copy 2 bytes from the wrong
    end of the 32-bit value.  Fix it by changing the type of the variable
    holding the sample value to `unsigned short`.
    
    [Note: the bug was introduced in commit 1700529 ("staging: comedi:
    dmm32at: use comedi_buf_write_samples()") but the patch applies better
    to the later (but in the same kernel release) commit 0c0eada
    ("staging: comedi: dmm32at: introduce dmm32_ai_get_sample()").]
    
    Fixes: 0c0eada ("staging: comedi: dmm32at: introduce dmm32_ai_get_sample()")
    Cc: <[email protected]> # 3.19+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    54999c0 View commit details
    Browse the repository at this point in the history
  10. staging: comedi: me4000: Fix endian problem for AI command data

    The analog input subdevice supports Comedi asynchronous commands that
    use Comedi's 16-bit sample format.  However, the calls to
    `comedi_buf_write_samples()` are passing the address of a 32-bit integer
    variable.  On bigendian machines, this will copy 2 bytes from the wrong
    end of the 32-bit value.  Fix it by changing the type of the variable
    holding the sample value to `unsigned short`.
    
    Fixes: de88924 ("staging: comedi: me4000: use comedi_buf_write_samples()")
    Cc: <[email protected]> # 3.19+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    b39dfcc View commit details
    Browse the repository at this point in the history
  11. staging: comedi: pcl711: Fix endian problem for AI command data

    The analog input subdevice supports Comedi asynchronous commands that
    use Comedi's 16-bit sample format.  However, the call to
    `comedi_buf_write_samples()` is passing the address of a 32-bit integer
    variable.  On bigendian machines, this will copy 2 bytes from the wrong
    end of the 32-bit value.  Fix it by changing the type of the variable
    holding the sample value to `unsigned short`.
    
    Fixes: 1f44c03 ("staging: comedi: pcl711: use comedi_buf_write_samples()")
    Cc: <[email protected]> # 3.19+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    a084303 View commit details
    Browse the repository at this point in the history
  12. staging: comedi: pcl818: Fix endian problem for AI command data

    The analog input subdevice supports Comedi asynchronous commands that
    use Comedi's 16-bit sample format.  However, the call to
    `comedi_buf_write_samples()` is passing the address of a 32-bit integer
    parameter.  On bigendian machines, this will copy 2 bytes from the wrong
    end of the 32-bit value.  Fix it by changing the type of the parameter
    holding the sample value to `unsigned short`.
    
    [Note: the bug was introduced in commit edf4537 ("staging: comedi:
    pcl818: use comedi_buf_write_samples()") but the patch applies better to
    commit d615416 ("staging: comedi: pcl818: introduce
    pcl818_ai_write_sample()").]
    
    Fixes: d615416 ("staging: comedi: pcl818: introduce pcl818_ai_write_sample()")
    Cc: <[email protected]> # 4.0+
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    148e34f View commit details
    Browse the repository at this point in the history
  13. staging: comedi: amplc_pc236_common: Use 16-bit 0 for interrupt data

    The Amplicon PC36AT/PCI236 common driver has an "interrupt" subdevice
    that supports Comedi asynchronous commands, placing a value in the
    Comedi buffer for each interrupt.  The subdevice uses Comedi's 16-bit
    sample format but the interrupt handler is calling
    `comedi_buf_write_samples()` with the address of a 32-bit integer
    `&s->state`.  On bigendian machines, this will copy 2 bytes from the
    wrong end of the 32-bit integer.  This isn't really a problem since
    `s->state` will always be 0 for this subdevice, but clean it up by using
    a 16-bit variable initialized to 0 to pass the value.
    
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    8536749 View commit details
    Browse the repository at this point in the history
  14. staging: comedi: comedi_parport: Use 16-bit 0 for interrupt data

    The comedi_parport driver has an "interrupt" subdevice that supports
    Comedi asynchronous commands, placing a value in the Comedi buffer for
    each interrupt.  The subdevice uses Comedi's 16-bit sample format but
    the interrupt handler is calling `comedi_buf_write_samples()` with the
    address of a 32-bit integer `&s->state`.  On bigendian machines, this
    will copy 2 bytes from the wrong end of the 32-bit integer.  This isn't
    really a problem since `s->state` will always be 0 for this subdevice,
    but clean it up by using a 16-bit variable initialized to 0 to pass the
    value.
    
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    a1acdbc View commit details
    Browse the repository at this point in the history
  15. staging: comedi: ni_6527: Use 16-bit 0 for interrupt data

    The ni_6527 driver has an "interrupt" subdevice that supports Comedi
    asynchronous commands, placing a value in the Comedi buffer for each
    interrupt.  The subdevice uses Comedi's 16-bit sample format but the
    interrupt handler is calling `comedi_buf_write_samples()` with the
    address of a 32-bit integer `&s->state`.  On bigendian machines, this
    will copy 2 bytes from the wrong end of the 32-bit integer.  This isn't
    really a problem since `s->state` will always be 0 for this subdevice,
    but clean it up by using a 16-bit variable initialized to 0 to pass the
    value.
    
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    3344463 View commit details
    Browse the repository at this point in the history
  16. staging: comedi: ni_65xx: Use 16-bit 0 for interrupt data

    The ni_65xx driver has an "interrupt" subdevice that supports Comedi
    asynchronous commands, placing a value in the Comedi buffer for each
    interrupt.  The subdevice uses Comedi's 16-bit sample format but the
    interrupt handler is calling `comedi_buf_write_samples()` with the
    address of a 32-bit integer `&s->state`.  On bigendian machines, this
    will copy 2 bytes from the wrong end of the 32-bit integer.  This isn't
    really a problem since `s->state` will always be 0 for this subdevice,
    but clean it up by using a 16-bit variable initialized to 0 to pass the
    value.
    
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    5ff1c08 View commit details
    Browse the repository at this point in the history
  17. staging: comedi: pcl726: Use 16-bit 0 for interrupt data

    The pcl726 driver has an "interrupt" subdevice that supports Comedi
    asynchronous commands, placing a value in the Comedi buffer for each
    interrupt.  The subdevice uses Comedi's 16-bit sample format but the
    interrupt handler is calling `comedi_buf_write_samples()` with the
    address of a 32-bit integer `&s->state`.  On bigendian machines, this
    will copy 2 bytes from the wrong end of the 32-bit integer.  This isn't
    really a problem since `s->state` will always be 0 for this subdevice,
    but clean it up by using a 16-bit variable initialized to 0 to pass the
    value.
    
    Signed-off-by: Ian Abbott <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ian-abbott authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    fd3ce65 View commit details
    Browse the repository at this point in the history
  18. staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()

    We need to cap len at IW_ESSID_MAX_SIZE (32) to avoid memory corruption.
    This can be controlled by the user via the ioctl.
    
    Fixes: 5f53d8c ("Staging: add rtl8192SU wireless usb driver")
    Signed-off-by: Dan Carpenter <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/YEHoAWMOSZBUw91F@mwanda
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    8710751 View commit details
    Browse the repository at this point in the history
  19. staging: rtl8188eu: fix potential memory corruption in rtw_check_beac…

    …on_data()
    
    The "ie_len" is a value in the 1-255 range that comes from the user.  We
    have to cap it to ensure that it's not too large or it could lead to
    memory corruption.
    
    Fixes: 9a7fe54 ("staging: r8188eu: Add source files for new driver - part 1")
    Signed-off-by: Dan Carpenter <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/YEHyQCrFZKTXyT7J@mwanda
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    d4ac640 View commit details
    Browse the repository at this point in the history
  20. staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()

    This code has a check to prevent read overflow but it needs another
    check to prevent writing beyond the end of the ->ssid[] array.
    
    Fixes: a2c60d4 ("staging: r8188eu: Add files for new driver - part 16")
    Signed-off-by: Dan Carpenter <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/YEHymwsnHewzoam7@mwanda
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    74b6b20 View commit details
    Browse the repository at this point in the history
  21. Revert "staging: wfx: remove unused included header files"

    This reverts commit 314fd52.
    
    It turns .h files into non-stand-alone when building, which might cause
    problems in the long-run.
    
    Reported-by: Jérôme Pouiller <[email protected]>
    Cc: Muhammad Usama Anjum <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    16d7586 View commit details
    Browse the repository at this point in the history
  22. leds: trigger: Fix error path to not unlock the unlocked mutex

    ttyname is allocated before the mutex is taken, so it must not be
    unlocked in the error path.
    
    Fixes: fd4a641 ("leds: trigger: implement a tty trigger")
    Reported-by: Pavel Machek <[email protected]>
    Acked-by: Pavel Machek <[email protected]>
    Signed-off-by: Uwe Kleine-König <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Uwe Kleine-König authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    1487e7b View commit details
    Browse the repository at this point in the history
  23. leds: trigger/tty: Use led_set_brightness_sync() from workqueue

    led_set_brightness() involves scheduling a workqueue. As here the led's
    brightness setting is done in context of the trigger's workqueue this is
    unjustified overhead and it's more sensible to use
    led_set_brightness_sync().
    
    Fixes: fd4a641 ("leds: trigger: implement a tty trigger")
    Reported-by: Pavel Machek <[email protected]>
    Acked-by: Pavel Machek <[email protected]>
    Signed-off-by: Uwe Kleine-König <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Uwe Kleine-König authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    ba8a86e View commit details
    Browse the repository at this point in the history
  24. Revert "serial: max310x: rework RX interrupt handling"

    This reverts commit fce3c5c.
    
    FIFO is triggered 4 intervals after receiving a byte, it's good
    when we don't care about the time of reception, but are only
    interested in the presence of any activity on the line.
    Unfortunately, this method is not suitable for all tasks,
    for example, the RS-485 protocol will not work properly,
    since the state machine must track the request-response time
    and after the timeout expires, a decision is made that the device
    on the line is not responding.
    
    Signed-off-by: Alexander Shiyan <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Fixes: fce3c5c ("serial: max310x: rework RX interrupt handling")
    Cc: Thomas Petazzoni <[email protected]>
    Cc: stable <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shcgit authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    2334de1 View commit details
    Browse the repository at this point in the history
  25. Revert "drivers:tty:pty: Fix a race causing data loss on close"

    This reverts commit 33d4ae9.
    
    Pierre-Louis writes:
    
    	Our SOF/audio CI shows an across-the-board regression when we try v5.12-rc1,
    	specifically on pause/resume tests with an interactive terminal running 'aplay
    	-i' commands managed by expect to simulate the user pressing the space bar to
    	pause/unpause. It turns out the processes are not longer killed and the audio
    	devices remain busy (see publicly available test results listed below).
    
    	git bisect points to commit 33d4ae9 ("drivers:tty:pty: Fix a race
    	causing data loss on close"). Reverting the patch fixes the issue on all test
    	devices.
    
    	Further analysis with Corey Minyard points to a problem where a slave tty will
    	not get a SIGHUP when the master is closed.
    
    So revert this for now:
    
    Reported-by: Pierre-Louis Bossart <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Cc: Corey Minyard <[email protected]>
    Cc: Jiri Slaby <[email protected]>
    Cc: Mark Brown <[email protected]>,
    Fixes: 33d4ae9 ("drivers:tty:pty: Fix a race causing data loss on close")
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    c776b77 View commit details
    Browse the repository at this point in the history
  26. Goodix Fingerprint device is not a modem

    The CDC ACM driver is false matching the Goodix Fingerprint device
    against the USB_CDC_ACM_PROTO_AT_V25TER.
    
    The Goodix Fingerprint device is a biometrics sensor that should be
    handled in user-space. libfprint has some support for Goodix
    fingerprint sensors, although not for this particular one. It is
    possible that the vendor allocates a PID per OEM (Lenovo, Dell etc).
    If this happens to be the case then more devices from the same vendor
    could potentially match the ACM modem module table.
    
    Signed-off-by: Yorick de Wid <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    yorickdewid authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    4d8654e View commit details
    Browse the repository at this point in the history
  27. usb: dwc3: qcom: add ACPI device id for sc8180x

    It enables USB Host support for sc8180x ACPI boot, both the standalone
    one and the one behind URS (USB Role Switch).  And they share the
    the same dwc3_acpi_pdata with sdm845.
    
    Signed-off-by: Shawn Guo <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Cc: stable <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shawnguo2 authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    1edbff9 View commit details
    Browse the repository at this point in the history
  28. USB: gadget: u_ether: Fix a configfs return code

    If the string is invalid, this should return -EINVAL instead of 0.
    
    Fixes: 73517cf ("usb: gadget: add RNDIS configfs options for class/subclass/protocol")
    Cc: stable <[email protected]>
    Acked-by: Lorenzo Colitti <[email protected]>
    Signed-off-by: Dan Carpenter <[email protected]>
    Link: https://lore.kernel.org/r/YCqZ3P53yyIg5cn7@mwanda
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    650bf52 View commit details
    Browse the repository at this point in the history
  29. usb: gadget: f_uac2: always increase endpoint max_packet_size by one …

    …audio slot
    
    As per UAC2 Audio Data Formats spec (2.3.1.1 USB Packets),
    if the sampling rate is a constant, the allowable variation
    of number of audio slots per virtual frame is +/- 1 audio slot.
    
    It means that endpoint should be able to accept/send +1 audio
    slot.
    
    Previous endpoint max_packet_size calculation code
    was adding sometimes +1 audio slot due to DIV_ROUND_UP
    behaviour which was rounding up to closest integer.
    However this doesn't work if the numbers are divisible.
    
    It had no any impact with Linux hosts which ignore
    this issue, but in case of more strict Windows it
    caused rejected enumeration
    
    Thus always add +1 audio slot to endpoint's max packet size
    
    Fixes: 913e4a9 ("usb: gadget: f_uac2: finalize wMaxPacketSize according to bandwidth")
    Cc: Peter Chen <[email protected]>
    Cc: <[email protected]> #v4.3+
    Signed-off-by: Ruslan Bilovol <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    rbilovol authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    789ea77 View commit details
    Browse the repository at this point in the history
  30. usb: gadget: f_uac1: stop playback on function disable

    There is missing playback stop/cleanup in case of
    gadget's ->disable callback that happens on
    events like USB host resetting or gadget disconnection
    
    Fixes: 0591bc2 ("usb: gadget: add f_uac1 variant based on a new u_audio api")
    Cc: <[email protected]> # 4.13+
    Signed-off-by: Ruslan Bilovol <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    rbilovol authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    cc2ac63 View commit details
    Browse the repository at this point in the history
  31. usb: dwc3: qcom: Honor wakeup enabled/disabled state

    The dwc3-qcom currently enables wakeup interrupts unconditionally
    when suspending, however this should not be done when wakeup is
    disabled (e.g. through the sysfs attribute power/wakeup). Only
    enable wakeup interrupts when device_may_wakeup() returns true.
    
    Fixes: a4333c3 ("usb: dwc3: Add Qualcomm DWC3 glue driver")
    Reviewed-by: Bjorn Andersson <[email protected]>
    Signed-off-by: Matthias Kaehlcke <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/20210302103659.v2.1.I44954d9e1169f2cf5c44e6454d357c75ddfa99a2@changeid
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Matthias Kaehlcke authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    2664deb View commit details
    Browse the repository at this point in the history
  32. usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM

    According to the datasheet, this controller has a restriction
    which "set an endpoint number so that combinations of the DIR bit and
    the EPNUM bits do not overlap.". However, since the udc core driver is
    possible to assign a bulk pipe as an interrupt endpoint, an endpoint
    number may not match the pipe number. After that, when user rebinds
    another gadget driver, this driver broke the restriction because
    the driver didn't clear any configuration in usb_ep_disable().
    
    Example:
     # modprobe g_ncm
     Then, EP3 = pipe 3, EP4 = pipe 4, EP5 = pipe 6
     # rmmod g_ncm
     # modprobe g_hid
     Then, EP3 = pipe 6, EP4 = pipe 7.
     So, pipe 3 and pipe 6 are set as EP3.
    
    So, clear PIPECFG register in usbhs_pipe_free().
    
    Fixes: dfb87b8 ("usb: renesas_usbhs: gadget: fix re-enabling pipe without re-connecting")
    Cc: stable <[email protected]>
    Signed-off-by: Yoshihiro Shimoda <[email protected]>
    Link: https://lore.kernel.org/r/1615168538-26101-1-git-send-email-yoshihiro.shimoda.uh@renesas.com
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shimoday authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    b1d25e6 View commit details
    Browse the repository at this point in the history
  33. USB: gadget: udc: s3c2410_udc: fix return value check in s3c2410_udc_…

    …probe()
    
    In case of error, the function devm_platform_ioremap_resource()
    returns ERR_PTR() and never returns NULL. The NULL test in the
    return value check should be replaced with IS_ERR().
    
    Fixes: 188db44 ("usb: gadget: s3c: use platform resources")
    Cc: stable <[email protected]>
    Reported-by: Hulk Robot <[email protected]>
    Reviewed-by: Arnd Bergmann <[email protected]>
    Reviewed-by: Krzysztof Kozlowski <[email protected]>
    Signed-off-by: Wei Yongjun <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Wei Yongjun authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    414c20d View commit details
    Browse the repository at this point in the history
  34. USB: usblp: fix a hang in poll() if disconnected

    Apparently an application that opens a device and calls select()
    on it, will hang if the decice is disconnected. It's a little
    surprising that we had this bug for 15 years, but apparently
    nobody ever uses select() with a printer: only write() and read(),
    and those work fine. Well, you can also select() with a timeout.
    
    The fix is modeled after devio.c. A few other drivers check the
    condition first, then do not add the wait queue in case the
    device is disconnected. We doubt that's completely race-free.
    So, this patch adds the process first, then locks properly
    and checks for the disconnect.
    
    Reviewed-by: Zqiang <[email protected]>
    Signed-off-by: Pete Zaitcev <[email protected]>
    Cc: stable <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Pete Zaitcev authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    9de2c43 View commit details
    Browse the repository at this point in the history
  35. usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement

    of_get_child_by_name() increments the reference counter of the OF node it
    managed to find. So after the code is done using the device node, the
    refcount must be decremented. Add missing of_node_put() invocation then
    to the dwc3_qcom_of_register_core() method, since DWC3 OF node is being
    used only there.
    
    Fixes: a4333c3 ("usb: dwc3: Add Qualcomm DWC3 glue driver")
    Signed-off-by: Serge Semin <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Cc: stable <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    fancer authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    1cffb1c View commit details
    Browse the repository at this point in the history
  36. virt: acrn: Use EPOLLIN instead of POLLIN

    This fixes the following sparse warning:
    "sparse warnings: (new ones prefixed by >>)"
    >> drivers/virt/acrn/irqfd.c:163:13: sparse: sparse: restricted __poll_t
     degrades to integer
    
    Fixes: dcf9625 ("virt: acrn: Use vfs_poll() instead of f_op->poll()")
    Reported-by: kernel test robot <[email protected]>
    Acked-by: Shuo Liu <[email protected]>
    Signed-off-by: Yejune Deng <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    YajunDeng authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    a758b7c View commit details
    Browse the repository at this point in the history
  37. u64_stats,lockdep: Fix u64_stats_init() vs lockdep

    Jakub reported that:
    
        static struct net_device *rtl8139_init_board(struct pci_dev *pdev)
        {
    	    ...
    	    u64_stats_init(&tp->rx_stats.syncp);
    	    u64_stats_init(&tp->tx_stats.syncp);
    	    ...
        }
    
    results in lockdep getting confused between the RX and TX stats lock.
    This is because u64_stats_init() is an inline calling seqcount_init(),
    which is a macro using a static variable to generate a lockdep class.
    
    By wrapping that in an inline, we negate the effect of the macro and
    fold the static key variable, hence the confusion.
    
    Fix by also making u64_stats_init() a macro for the case where it
    matters, leaving the other case an inline for argument validation
    etc.
    
    Reported-by: Jakub Kicinski <[email protected]>
    Debugged-by: "Ahmed S. Darwish" <[email protected]>
    Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
    Tested-by: "Erhard F." <[email protected]>
    Link: https://lkml.kernel.org/r/[email protected]
    Peter Zijlstra committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    d5b0e06 View commit details
    Browse the repository at this point in the history
  38. seqlock,lockdep: Fix seqcount_latch_init()

    seqcount_init() must be a macro in order to preserve the static
    variable that is used for the lockdep key. Don't then wrap it in an
    inline function, which destroys that.
    
    Luckily there aren't many users of this function, but fix it before it
    becomes a problem.
    
    Fixes: 80793c3 ("seqlock: Introduce seqcount_latch_t")
    Reported-by: Eric Dumazet <[email protected]>
    Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
    Link: https://lkml.kernel.org/r/[email protected]
    Peter Zijlstra committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    4817a52 View commit details
    Browse the repository at this point in the history
  39. arm64: mte: Map hotplugged memory as Normal Tagged

    In a system supporting MTE, the linear map must allow reading/writing
    allocation tags by setting the memory type as Normal Tagged. Currently,
    this is only handled for memory present at boot. Hotplugged memory uses
    Normal non-Tagged memory.
    
    Introduce pgprot_mhp() for hotplugged memory and use it in
    add_memory_resource(). The arm64 code maps pgprot_mhp() to
    pgprot_tagged().
    
    Note that ZONE_DEVICE memory should not be mapped as Tagged and
    therefore setting the memory type in arch_add_memory() is not feasible.
    
    Signed-off-by: Catalin Marinas <[email protected]>
    Fixes: 0178dc7 ("arm64: mte: Use Normal Tagged attributes for the linear map")
    Reported-by: Patrick Daly <[email protected]>
    Tested-by: Patrick Daly <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Cc: <[email protected]> # 5.10.x
    Cc: Will Deacon <[email protected]>
    Cc: Andrew Morton <[email protected]>
    Cc: Vincenzo Frascino <[email protected]>
    Cc: David Hildenbrand <[email protected]>
    Reviewed-by: David Hildenbrand <[email protected]>
    Reviewed-by: Vincenzo Frascino <[email protected]>
    Reviewed-by: Anshuman Khandual <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    ctmarinas authored and willdeacon committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    d15dfd3 View commit details
    Browse the repository at this point in the history
  40. kselftest: arm64: Fix exit code of sve-ptrace

    We track if sve-ptrace encountered a failure in a variable but don't
    actually use that value when we exit the program, do so.
    
    Signed-off-by: Mark Brown <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    broonie authored and willdeacon committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    07e6448 View commit details
    Browse the repository at this point in the history
  41. arm64/mm: Fix __enable_mmu() for new TGRAN range values

    As per ARM ARM DDI 0487G.a, when FEAT_LPA2 is implemented, ID_AA64MMFR0_EL1
    might contain a range of values to describe supported translation granules
    (4K and 16K pages sizes in particular) instead of just enabled or disabled
    values. This changes __enable_mmu() function to handle complete acceptable
    range of values (depending on whether the field is signed or unsigned) now
    represented with ID_AA64MMFR0_TGRAN_SUPPORTED_[MIN..MAX] pair. While here,
    also fix similar situations in EFI stub and KVM as well.
    
    Cc: Catalin Marinas <[email protected]>
    Cc: Will Deacon <[email protected]>
    Cc: Marc Zyngier <[email protected]>
    Cc: James Morse <[email protected]>
    Cc: Suzuki K Poulose <[email protected]>
    Cc: Ard Biesheuvel <[email protected]>
    Cc: Mark Rutland <[email protected]>
    Cc: [email protected]
    Cc: [email protected]
    Cc: [email protected]
    Cc: [email protected]
    Acked-by: Marc Zyngier <[email protected]>
    Signed-off-by: James Morse <[email protected]>
    Signed-off-by: Anshuman Khandual <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    James Morse authored and willdeacon committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    26f5538 View commit details
    Browse the repository at this point in the history
  42. arm64: perf: Fix 64-bit event counter read truncation

    Commit 0fdf1bb ("arm64: perf: Avoid PMXEV* indirection") changed
    armv8pmu_read_evcntr() to return a u32 instead of u64. The result is
    silent truncation of the event counter when using 64-bit counters. Given
    the offending commit appears to have passed thru several folks, it seems
    likely this was a bad rebase after v8.5 PMU 64-bit counters landed.
    
    Cc: Alexandru Elisei <[email protected]>
    Cc: Julien Thierry <[email protected]>
    Cc: Mark Rutland <[email protected]>
    Cc: Will Deacon <[email protected]>
    Cc: Catalin Marinas <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Ingo Molnar <[email protected]>
    Cc: Arnaldo Carvalho de Melo <[email protected]>
    Cc: Alexander Shishkin <[email protected]>
    Cc: Jiri Olsa <[email protected]>
    Cc: Namhyung Kim <[email protected]>
    Cc: <[email protected]>
    Fixes: 0fdf1bb ("arm64: perf: Avoid PMXEV* indirection")
    Signed-off-by: Rob Herring <[email protected]>
    Acked-by: Mark Rutland <[email protected]>
    Reviewed-by: Alexandru Elisei <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    robherring authored and willdeacon committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    7bb8bc6 View commit details
    Browse the repository at this point in the history
  43. ALSA: hda: Flush pending unsolicited events before suspend

    The HD-audio controller driver processes the unsolicited events via
    its work asynchronously, and this might be pending when the system
    goes to suspend.  When a lengthy event handling like ELD byte reads is
    running, this might trigger unexpected accesses among suspend/resume
    procedure, typically seen with Nvidia driver that still requires the
    handling via unsolicited event verbs for ELD updates.
    
    This patch adds the flush of unsol_work to assure that pending events
    are processed before going into suspend.
    
    Buglink: https://bugzilla.suse.com/show_bug.cgi?id=1182377
    Reported-and-tested-by: Abhishek Sahu <[email protected]>
    Cc: <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    tiwai committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    13661fc View commit details
    Browse the repository at this point in the history
  44. ALSA: hda: Avoid spurious unsol event handling during S3/S4

    When HD-audio bus receives unsolicited events during its system
    suspend/resume (S3 and S4) phase, the controller driver may still try
    to process events although the codec chips are already (or yet)
    powered down.  This might screw up the codec communication, resulting
    in CORB/RIRB errors.  Such events should be rather skipped, as the
    codec chip status such as the jack status will be fully refreshed at
    the system resume time.
    
    Since we're tracking the system suspend/resume state in codec
    power.power_state field, let's add the check in the common unsol event
    handler entry point to filter out such events.
    
    BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1182377
    Tested-by: Abhishek Sahu <[email protected]>
    Cc: <[email protected]> # 183ab39: ALSA: hda: Initialize power_state
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    tiwai committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    5ff9dde View commit details
    Browse the repository at this point in the history
  45. ALSA: hda/hdmi: Cancel pending works before suspend

    The per_pin->work might be still floating at the suspend, and this may
    hit the access to the hardware at an unexpected timing.  Cancel the
    work properly at the suspend callback for avoiding the buggy access.
    
    Note that the bug doesn't trigger easily in the recent kernels since
    the work is queued only when the repoll count is set, and usually it's
    only at the resume callback, but it's still possible to hit in
    theory.
    
    BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1182377
    Reported-and-tested-by: Abhishek Sahu <[email protected]>
    Cc: <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    tiwai committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    eea46a0 View commit details
    Browse the repository at this point in the history
  46. regulator: mt6315: Return REGULATOR_MODE_INVALID for invalid mode

    -EINVAL is not a valid return value for .of_map_mode, return
    REGULATOR_MODE_INVALID instead.
    
    Signed-off-by: Axel Lin <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    AxelLin authored and broonie committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    fbc102f View commit details
    Browse the repository at this point in the history
  47. regulator: pca9450: Fix return value when failing to get sd-vsel GPIO

    This fixes the return value of pca9450_i2c_probe() to use the correct
    error code when getting the sd-vsel GPIO fails.
    
    Signed-off-by: Frieder Schrempf <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    fschrempf authored and broonie committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    5fe5f17 View commit details
    Browse the repository at this point in the history
  48. regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck

    Correct the REGULATOR_LINEAR_RANGE and n_voltges for
    pmic5_hfsmps515 buck.
    
    Signed-off-by: satya priya <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    satya priya authored and broonie committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    e610e07 View commit details
    Browse the repository at this point in the history
  49. regulator: qcom-rpmh: Use correct buck for S1C regulator

    Use correct buck, that is, pmic5_hfsmps515 for S1C regulator
    of PM8350C PMIC.
    
    Signed-off-by: satya priya <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    satya priya authored and broonie committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    dfe03bc View commit details
    Browse the repository at this point in the history
  50. regulator: pca9450: Clear PRESET_EN bit to fix BUCK1/2/3 voltage setting

    The driver uses the DVS registers PCA9450_REG_BUCKxOUT_DVS0 to set the
    voltage for the buck regulators 1, 2 and 3. This has no effect as the
    PRESET_EN bit is set by default and therefore the preset values are used
    instead, which are set to 850 mV.
    
    To fix this we clear the PRESET_EN bit at time of initialization.
    
    Fixes: 0935ff5 ("regulator: pca9450: add pca9450 pmic driver")
    Cc: <[email protected]>
    Signed-off-by: Frieder Schrempf <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    fschrempf authored and broonie committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    98b94b6 View commit details
    Browse the repository at this point in the history
  51. regulator: rt4831: Fix return value check in rt4831_regulator_probe()

    In case of error, the function dev_get_regmap() returns NULL
    pointer not ERR_PTR(). The IS_ERR() test in the return value
    check should be replaced with NULL test.
    
    Fixes: 9351ab8 ("regulator: rt4831: Adds support for Richtek RT4831 DSV regulator")
    Reported-by: Hulk Robot <[email protected]>
    Signed-off-by: Wei Yongjun <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    Wei Yongjun authored and broonie committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    e9e7fce View commit details
    Browse the repository at this point in the history
  52. xen/events: reset affinity of 2-level event when tearing it down

    When creating a new event channel with 2-level events the affinity
    needs to be reset initially in order to avoid using an old affinity
    from earlier usage of the event channel port. So when tearing an event
    channel down reset all affinity bits.
    
    The same applies to the affinity when onlining a vcpu: all old
    affinity settings for this vcpu must be reset. As percpu events get
    initialized before the percpu event channel hook is called,
    resetting of the affinities happens after offlining a vcpu (this is
    working, as initial percpu memory is zeroed out).
    
    Cc: [email protected]
    Reported-by: Julien Grall <[email protected]>
    Signed-off-by: Juergen Gross <[email protected]>
    Reviewed-by: Julien Grall <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Boris Ostrovsky <[email protected]>
    jgross1 authored and Boris Ostrovsky committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    9e77d96 View commit details
    Browse the repository at this point in the history
  53. software node: Fix node registration

    Software node can not be registered before its parent.
    
    Fixes: 80488a6 ("software node: Add support for static node descriptors")
    Cc: 5.10+ <[email protected]> # 5.10+
    Signed-off-by: Heikki Krogerus <[email protected]>
    Reviewed-by: Andy Shevchenko <[email protected]>
    Tested-by: Andy Shevchenko <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Heikki Krogerus authored and rafaeljw committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    8891123 View commit details
    Browse the repository at this point in the history
  54. software node: Fix device_add_software_node()

    The function device_add_software_node() was meant to
    register the node supplied to it, but only if that node
    wasn't already registered. Right now the function attempts
    to always register the node. That will cause a failure with
    nodes that are already registered.
    
    Fixing that by incrementing the reference count of the nodes
    that have already been registered, and only registering the
    new nodes. Also, clarifying the behaviour in the function
    documentation.
    
    Fixes: e68d011 ("software node: Introduce device_add_software_node()")
    Signed-off-by: Heikki Krogerus <[email protected]>
    Reviewed-by: Andy Shevchenko <[email protected]>
    Tested-by: Andy Shevchenko <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Heikki Krogerus authored and rafaeljw committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    2a92c90 View commit details
    Browse the repository at this point in the history
  55. io_uring: SQPOLL parking fixes

    We keep running into weird dependency issues between the sqd lock and
    the parking state. Disentangle the SQPOLL thread from the last bits of
    the kthread parking inheritance, and just replace the parking state,
    and two associated locks, with a single rw mutex. The SQPOLL thread
    keeps the mutex for read all the time, except if someone has marked us
    needing to park. Then we drop/re-acquire and try again.
    
    This greatly simplifies the parking state machine (by just getting rid
    of it), and makes it a lot more obvious how it works - if you need to
    modify the ctx list, then you simply park the thread which will grab
    the lock for writing.
    
    Fold in fix from Hillf Danton on not setting STOP on a fatal signal.
    
    Fixes: e54945a ("io_uring: SQPOLL stop error handling fixes")
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    05962f9 View commit details
    Browse the repository at this point in the history
  56. io_uring: fix unrelated ctx reqs cancellation

    io-wq now is per-task, so cancellations now should match against
    request's ctx.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    f458dd8 View commit details
    Browse the repository at this point in the history
  57. io_uring: clean R_DISABLED startup mess

    There are enough of problems with IORING_SETUP_R_DISABLED, including the
    burden of checking and kicking off the SQO task all over the codebase --
    for exit/cancel/etc.
    
    Rework it, always start the thread but don't do submit unless the flag
    is gone, that's much easier.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    0298ef9 View commit details
    Browse the repository at this point in the history
  58. io_uring: Convert personality_idr to XArray

    You can't call idr_remove() from within a idr_for_each() callback,
    but you can call xa_erase() from an xa_for_each() loop, so switch the
    entire personality_idr from the IDR to the XArray.  This manifests as a
    use-after-free as idr_for_each() attempts to walk the rest of the node
    after removing the last entry from it.
    
    Fixes: 071698e ("io_uring: allow registering credentials")
    Cc: [email protected] # 5.6+
    Reported-by: yangerkun <[email protected]>
    Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
    [Pavel: rebased (creds load was moved into io_init_req())]
    Signed-off-by: Pavel Begunkov <[email protected]>
    Link: https://lore.kernel.org/r/7ccff36e1375f2b0ebf73d957f037b43becc0dde.1615212806.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <[email protected]>
    Matthew Wilcox (Oracle) authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    61cf937 View commit details
    Browse the repository at this point in the history
  59. io-wq: remove unused 'user' member of io_wq

    Previous patches killed the last user of this, now it's just a dead member
    in the struct. Get rid of it.
    
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    cc20e3f View commit details
    Browse the repository at this point in the history
  60. io_uring: fix io_sq_offload_create error handling

    Don't set IO_SQ_THREAD_SHOULD_STOP when io_sq_offload_create() has
    failed on io_uring_alloc_task_context() but leave everything to
    io_sq_thread_finish(), because currently io_sq_thread_finish()
    hangs on trying to park it. That's great it stalls there, because
    otherwise the following io_sq_thread_stop() would be skipped on
    IO_SQ_THREAD_SHOULD_STOP check and the sqo would race for sqd with
    freeing ctx.
    
    A simple error injection gives something like this.
    
    [  245.463955] INFO: task sqpoll-test-hang:523 blocked for more than 122 seconds.
    [  245.463983] Call Trace:
    [  245.463990]  __schedule+0x36b/0x950
    [  245.464005]  schedule+0x68/0xe0
    [  245.464013]  schedule_timeout+0x209/0x2a0
    [  245.464032]  wait_for_completion+0x8b/0xf0
    [  245.464043]  io_sq_thread_finish+0x44/0x1a0
    [  245.464049]  io_uring_setup+0x9ea/0xc80
    [  245.464058]  __x64_sys_io_uring_setup+0x16/0x20
    [  245.464064]  do_syscall_64+0x38/0x50
    [  245.464073]  entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    97a73a0 View commit details
    Browse the repository at this point in the history
  61. io_uring: add io_disarm_next() helper

    A preparation patch placing all preparations before extracting a next
    request into a separate helper io_disarm_next().
    
    Also, don't spuriously do ev_posted in a rare case where REQ_F_FAIL_LINK
    is set but there are no requests linked (i.e. after cancelling a linked
    timeout or setting IOSQE_IO_LINK on a last request of a submission
    batch).
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Link: https://lore.kernel.org/r/44ecff68d6b47e1c4e6b891bdde1ddc08cfc3590.1615250156.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    33cc89a View commit details
    Browse the repository at this point in the history
  62. io_uring: fix complete_post races for linked req

    Calling io_queue_next() after spin_unlock in io_req_complete_post()
    races with the other side extracting and reusing this request. Hand
    coded parts of io_req_find_next() considering that io_disarm_next()
    and io_req_task_queue() have (and safe) to be called with
    completion_lock held.
    
    It already does io_commit_cqring() and io_cqring_ev_posted(), so just
    reuse it for post io_disarm_next().
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Link: https://lore.kernel.org/r/5672a62f3150ee7c55849f40c0037655c4f2840f.1615250156.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    7a61235 View commit details
    Browse the repository at this point in the history
  63. io-wq: fix ref leak for req in case of exit cancelations

    do_work such as io_wq_submit_work that cancel the work may leave a ref of
    req as 1 if we have links. Fix it by call io_run_cancel.
    
    Fixes: 4fb6ac3 ("io-wq: improve manager/worker handling over exec")
    Signed-off-by: yangerkun <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    yangerkun authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    70e3512 View commit details
    Browse the repository at this point in the history
  64. io_uring: move all io_kiocb init early in io_init_req()

    If we hit an error path in the function, make sure that the io_kiocb is
    fully initialized at that point so that freeing the request always sees
    a valid state.
    
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    93e68e0 View commit details
    Browse the repository at this point in the history
  65. io_uring: remove unneeded variable 'ret'

    Fix the following coccicheck warning:
    ./fs/io_uring.c:8984:5-8: Unneeded variable: "ret". Return "0" on line
    8998
    
    Reported-by: Abaci Robot <[email protected]>
    Signed-off-by: Yang Li <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    Yang Li authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    5199328 View commit details
    Browse the repository at this point in the history
  66. io_uring: always wait for sqd exited when stopping SQPOLL thread

    We have a tiny race where io_put_sq_data() calls io_sq_thead_stop()
    and finds the thread gone, but the thread has indeed not fully
    exited or called complete() yet. Close it up by always having
    io_sq_thread_stop() wait on completion of the exit event.
    
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    e8f98f2 View commit details
    Browse the repository at this point in the history
  67. kernel: make IO threads unfreezable by default

    The io-wq threads were already marked as no-freeze, but the manager was
    not. On resume, we perpetually have signal_pending() being true, and
    hence the manager will loop and spin 100% of the time.
    
    Just mark the tasks created by create_io_thread() as PF_NOFREEZE by
    default, and remove any knowledge of it in io-wq and io_uring.
    
    Reported-by: Kevin Locke <[email protected]>
    Tested-by: Kevin Locke <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    e22bc9b View commit details
    Browse the repository at this point in the history
  68. io_uring: fix invalid ctx->sq_thread_idle

    We have to set ctx->sq_thread_idle before adding a ring to an SQ task,
    otherwise sqd races for seeing zero and accounting it as such.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    78d7f6b View commit details
    Browse the repository at this point in the history
  69. io_uring: remove indirect ctx into sqo injection

    We use ->ctx_new_list to notify sqo about new ctx pending, then sqo
    should stop and splice it to its sqd->ctx_list, paired with
    ->sq_thread_comp.
    
    The last one is broken because nobody reinitialises it, and trying to
    fix it would only add more complexity and bugs. And the first isn't
    really needed as is done under park(), that protects from races well.
    Add ctx into sqd->ctx_list directly (under park()), it's much simpler
    and allows to kill both, ctx_new_list and sq_thread_comp.
    
    note: apparently there is no real problem at the moment, because
    sq_thread_comp is used only by io_sq_thread_finish() followed by
    parking, where list_del(&ctx->sqd_list) removes it well regardless
    whether it's in the new or the active list.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    7d41e85 View commit details
    Browse the repository at this point in the history
  70. block: Fix REQ_OP_ZONE_RESET_ALL handling

    Similarly to a single zone reset operation (REQ_OP_ZONE_RESET), execute
    REQ_OP_ZONE_RESET_ALL operations with REQ_SYNC set.
    
    Signed-off-by: Damien Le Moal <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    damien-lemoal authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    faa44c6 View commit details
    Browse the repository at this point in the history
  71. block: rsxx: fix error return code of rsxx_pci_probe()

    When create_singlethread_workqueue returns NULL to card->event_wq, no
    error return code of rsxx_pci_probe() is assigned.
    
    To fix this bug, st is assigned with -ENOMEM in this case.
    
    Fixes: 8722ff8 ("block: IBM RamSan 70/80 device driver")
    Reported-by: TOTE Robot <[email protected]>
    Signed-off-by: Jia-Ju Bai <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    XidianGeneral authored and axboe committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    df66617 View commit details
    Browse the repository at this point in the history
  72. x86/perf: Use RET0 as default for guest_get_msrs to handle "no PMU" case

    Initialize x86_pmu.guest_get_msrs to return 0/NULL to handle the "nop"
    case.  Patching in perf_guest_get_msrs_nop() during setup does not work
    if there is no PMU, as setup bails before updating the static calls,
    leaving x86_pmu.guest_get_msrs NULL and thus a complete nop.  Ultimately,
    this causes VMX abort on VM-Exit due to KVM putting random garbage from
    the stack into the MSR load list.
    
    Add a comment in KVM to note that nr_msrs is valid if and only if the
    return value is non-NULL.
    
    Fixes: abd562d ("x86/perf: Use static_call for x86_pmu.guest_get_msrs")
    Reported-by: Dmitry Vyukov <[email protected]>
    Reported-by: [email protected]
    Suggested-by: Peter Zijlstra <[email protected]>
    Signed-off-by: Sean Christopherson <[email protected]>
    Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
    Link: https://lkml.kernel.org/r/[email protected]
    sean-jc authored and Peter Zijlstra committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    c8e2fe1 View commit details
    Browse the repository at this point in the history
  73. virt: acrn: Correct type casting of argument of copy_from_user()

    hsm.c:336:50: warning: incorrect type in argument 2 (different address spaces)
    hsm.c:336:50:    expected void const [noderef] __user *from
    hsm.c:336:50:    got void *
    
    This patch fixes above sparse warning.
    
    Fixes: 3d679d5 ("virt: acrn: Introduce interfaces to query C-states and P-states allowed by hypervisor")
    Reported-by: kernel test robot <[email protected]>
    Signed-off-by: Shuo Liu <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Shuo Liu authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    1201d68 View commit details
    Browse the repository at this point in the history
  74. misc: fastrpc: restrict user apps from sending kernel RPC messages

    Verify that user applications are not using the kernel RPC message
    handle to restrict them from directly attaching to guest OS on the
    remote subsystem. This is a port of CVE-2019-2308 fix.
    
    Fixes: c68cfb7 ("misc: fastrpc: Add support for context Invoke method")
    Cc: Srinivas Kandagatla <[email protected]>
    Cc: Jonathan Marek <[email protected]>
    Cc: [email protected]
    Signed-off-by: Dmitry Baryshkov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lumag authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    20c4079 View commit details
    Browse the repository at this point in the history
  75. misc/pvpanic: Export module FDT device table

    Export the module FDT device table to ensure the FDT compatible strings
    are listed in the module alias. This help the pvpanic driver can be
    loaded on boot automatically not only the ACPI device, but also the FDT
    device.
    
    Fixes: 46f934c ("misc/pvpanic: add support to get pvpanic device info FDT")
    Signed-off-by: Shile Zhang <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Cc: stable <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shiloong authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    65527a5 View commit details
    Browse the repository at this point in the history
  76. Merge tag '5.12-rc2-smb3' of git://git.samba.org/sfrench/cifs-2.6

    Pull cifs fixes from Steve French:
     "Six cifs/smb3 fixes, three of them for stable, including some
      important mulitchannel crediting fixes, and a fix for statfs error
      handling"
    
    * tag '5.12-rc2-smb3' of git://git.samba.org/sfrench/cifs-2.6:
      cifs: do not send close in compound create+close requests
      cifs: return proper error code in statfs(2)
      cifs: change noisy error message to FYI
      cifs: print MIDs in decimal notation
      cifs: ask for more credit on async read/write code paths
      cifs: fix credit accounting for extra channel
    torvalds committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    d0df9aa View commit details
    Browse the repository at this point in the history
  77. Merge tag 'for-linus-2021-03-10' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/brauner/linux
    
    Pull detached mounts fix from Christian Brauner:
     "Creating a series of detached mounts, attaching them to the
      filesystem, and unmounting them can be used to trigger an integer
      overflow in ns->mounts causing the kernel to block any new mounts in
      count_mounts() and returning ENOSPC because it falsely assumes that
      the maximum number of mounts in the mount namespace has been reached,
      i.e. it thinks it can't fit the new mounts into the mount namespace
      anymore.
    
      Without this fix heavy use of the new mount API with move_mount() will
      cause the host to become unuseable and thus blocks some xfstest
      patches I want to resend.
    
      Depending on the number of mounts in your system, this can be
      reproduced on any kernel that supportes open_tree() and move_mount().
    
      A reproducer has been sent for inclusion with xfstests. It takes care
      to do this in another mount namespace, not in the host's mount
      namespace so there shouldn't be any risk in running it but if one did
      run it on the host it would require a reboot in order to be able to
      mount again. See
    
          https://lore.kernel.org/fstests/[email protected]
    
      The root cause of this is that detached mounts aren't handled
      correctly when source and target mount are identical and reside on a
      shared mount causing a broken mount tree where the detached source
      itself is propagated which propagation prevents for regular
      bind-mounts and new mounts.
    
      This ultimately leads to a miscalculation of the number of mounts in
      the mount namespace.
    
      Detached mounts created via 'open_tree(fd, path, OPEN_TREE_CLONE)' are
      essentially like an unattached bind-mount. They can then later on be
      attached to the filesystem via move_mount() which calls into
      attach_recursive_mount().
    
      Part of attaching it to the filesystem is making sure that mounts get
      correctly propagated in case the destination mountpoint is MS_SHARED,
      i.e. is a shared mountpoint. This is done by calling into
      propagate_mnt() which walks the list of peers calling propagate_one()
      on each mount in this list making sure it receives the propagation
      event. The propagate_one() function thereby skips both new mounts and
      bind mounts to not propagate them "into themselves". Both are
      identified by checking whether the mount is already attached to any
      mount namespace in mnt->mnt_ns. The is what the IS_MNT_NEW() helper is
      responsible for.
    
      However, detached mounts have an anonymous mount namespace attached to
      them stashed in mnt->mnt_ns which means that IS_MNT_NEW() doesn't
      realize they need to be skipped causing the mount to propagate "into
      itself" breaking the mount table and causing a disconnect between the
      number of mounts recorded as being beneath or reachable from the
      target mountpoint and the number of mounts actually recorded/counted
      in ns->mounts ultimately causing an overflow which in turn prevents
      any new mounts via the ENOSPC issue.
    
      So teach propagation to handle detached mounts by making it aware of
      them. I've been tracking this issue down for the last couple of days
      and then verifying that the fix is correct by unmounting everything in
      my current mount table leaving only /proc and /sys mounted and running
      the reproducer above overnight verifying the number of mounts counted
      in ns->mounts. With this fix the counts are correct and the ENOSPC
      issue can't be reproduced.
    
      This change will only have an effect on mounts created with the new
      mount API since detached mounts cannot be created with the old mount
      API so regressions are extremely unlikely.
    
      Here's an illustration:
    
        #### mount():
        ubuntu@f1-vm:~$ sudo mount --bind /mnt/ /mnt/
        ubuntu@f1-vm:~$ findmnt  | grep -i mnt
        ├─/mnt                                /dev/sda2[/mnt] ext4       rw,relatime
    
        #### open_tree(OPEN_TREE_CLONE) + move_mount() with bug:
        ubuntu@f1-vm:~$ sudo ./mount-new /mnt/ /mnt/
        ubuntu@f1-vm:~$ findmnt  | grep -i mnt
        ├─/mnt                                /dev/sda2[/mnt] ext4       rw,relatime
        │ └─/mnt                              /dev/sda2[/mnt] ext4       rw,relatime
    
        #### open_tree(OPEN_TREE_CLONE) + move_mount() with the fix:
        ubuntu@f1-vm:~$ sudo ./mount-new /mnt /mnt
        ubuntu@f1-vm:~$ findmnt | grep -i mnt
        └─/mnt                                /dev/sda2[/mnt] ext4       rw,relatime"
    
    * tag 'for-linus-2021-03-10' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
      mount: fix mounting of detached mounts onto targets that reside on shared mounts
    torvalds committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    d3110f2 View commit details
    Browse the repository at this point in the history
  78. Revert "mm, slub: consider rest of partial list if acquire_slab() fails"

    This reverts commit 8ff60eb.
    
    The kernel test robot reports a huge performance regression due to the
    commit, and the reason seems fairly straightforward: when there is
    contention on the page list (which is what causes acquire_slab() to
    fail), we do _not_ want to just loop and try again, because that will
    transfer the contention to the 'n->list_lock' spinlock we hold, and
    just make things even worse.
    
    This is admittedly likely a problem only on big machines - the kernel
    test robot report comes from a 96-thread dual socket Intel Xeon Gold
    6252 setup, but the regression there really is quite noticeable:
    
       -47.9% regression of stress-ng.rawpkt.ops_per_sec
    
    and the commit that was marked as being fixed (7ced371: "slub:
    Acquire_slab() avoid loop") actually did the loop exit early very
    intentionally (the hint being that "avoid loop" part of that commit
    message), exactly to avoid this issue.
    
    The correct thing to do may be to pick some kind of reasonable middle
    ground: instead of breaking out of the loop on the very first sign of
    contention, or trying over and over and over again, the right thing may
    be to re-try _once_, and then give up on the second failure (or pick
    your favorite value for "once"..).
    
    Reported-by: kernel test robot <[email protected]>
    Link: https://lore.kernel.org/lkml/20210301080404.GF12822@xsang-OptiPlex-9020/
    Cc: Jann Horn <[email protected]>
    Cc: David Rientjes <[email protected]>
    Cc: Joonsoo Kim <[email protected]>
    Acked-by: Christoph Lameter <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    torvalds committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    9b1ea29 View commit details
    Browse the repository at this point in the history
  79. usbip: fix stub_dev to check for stream socket

    Fix usbip_sockfd_store() to validate the passed in file descriptor is
    a stream socket. If the file descriptor passed was a SOCK_DGRAM socket,
    sock_recvmsg() can't detect end of stream.
    
    Cc: [email protected]
    Suggested-by: Tetsuo Handa <[email protected]>
    Signed-off-by: Shuah Khan <[email protected]>
    Link: https://lore.kernel.org/r/e942d2bd03afb8e8552bd2a5d84e18d17670d521.1615171203.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shuahkh authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    47ccc8f View commit details
    Browse the repository at this point in the history
  80. usbip: fix vhci_hcd to check for stream socket

    Fix attach_store() to validate the passed in file descriptor is a
    stream socket. If the file descriptor passed was a SOCK_DGRAM socket,
    sock_recvmsg() can't detect end of stream.
    
    Cc: [email protected]
    Suggested-by: Tetsuo Handa <[email protected]>
    Signed-off-by: Shuah Khan <[email protected]>
    Link: https://lore.kernel.org/r/52712aa308915bda02cece1589e04ee8b401d1f3.1615171203.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shuahkh authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    f55a057 View commit details
    Browse the repository at this point in the history
  81. usbip: fix vudc to check for stream socket

    Fix usbip_sockfd_store() to validate the passed in file descriptor is
    a stream socket. If the file descriptor passed was a SOCK_DGRAM socket,
    sock_recvmsg() can't detect end of stream.
    
    Cc: [email protected]
    Suggested-by: Tetsuo Handa <[email protected]>
    Signed-off-by: Shuah Khan <[email protected]>
    Link: https://lore.kernel.org/r/387a670316002324113ac7ea1e8b53f4085d0c95.1615171203.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shuahkh authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    6801854 View commit details
    Browse the repository at this point in the history
  82. usbip: fix stub_dev usbip_sockfd_store() races leading to gpf

    usbip_sockfd_store() is invoked when user requests attach (import)
    detach (unimport) usb device from usbip host. vhci_hcd sends import
    request and usbip_sockfd_store() exports the device if it is free
    for export.
    
    Export and unexport are governed by local state and shared state
    - Shared state (usbip device status, sockfd) - sockfd and Device
      status are used to determine if stub should be brought up or shut
      down.
    - Local state (tcp_socket, rx and tx thread task_struct ptrs)
      A valid tcp_socket controls rx and tx thread operations while the
      device is in exported state.
    - While the device is exported, device status is marked used and socket,
      sockfd, and thread pointers are valid.
    
    Export sequence (stub-up) includes validating the socket and creating
    receive (rx) and transmit (tx) threads to talk to the client to provide
    access to the exported device. rx and tx threads depends on local and
    shared state to be correct and in sync.
    
    Unexport (stub-down) sequence shuts the socket down and stops the rx and
    tx threads. Stub-down sequence relies on local and shared states to be
    in sync.
    
    There are races in updating the local and shared status in the current
    stub-up sequence resulting in crashes. These stem from starting rx and
    tx threads before local and global state is updated correctly to be in
    sync.
    
    1. Doesn't handle kthread_create() error and saves invalid ptr in local
       state that drives rx and tx threads.
    2. Updates tcp_socket and sockfd,  starts stub_rx and stub_tx threads
       before updating usbip_device status to SDEV_ST_USED. This opens up a
       race condition between the threads and usbip_sockfd_store() stub up
       and down handling.
    
    Fix the above problems:
    - Stop using kthread_get_run() macro to create/start threads.
    - Create threads and get task struct reference.
    - Add kthread_create() failure handling and bail out.
    - Hold usbip_device lock to update local and shared states after
      creating rx and tx threads.
    - Update usbip_device status to SDEV_ST_USED.
    - Update usbip_device tcp_socket, sockfd, tcp_rx, and tcp_tx
    - Start threads after usbip_device (tcp_socket, sockfd, tcp_rx, tcp_tx,
      and status) is complete.
    
    Credit goes to syzbot and Tetsuo Handa for finding and root-causing the
    kthread_get_run() improper error handling problem and others. This is a
    hard problem to find and debug since the races aren't seen in a normal
    case. Fuzzing forces the race window to be small enough for the
    kthread_get_run() error path bug and starting threads before updating the
    local and shared state bug in the stub-up sequence.
    
    Tested with syzbot reproducer:
    - https://syzkaller.appspot.com/text?tag=ReproC&x=14801034d00000
    
    Fixes: 9720b4b ("staging/usbip: convert to kthread")
    Cc: [email protected]
    Reported-by: syzbot <[email protected]>
    Reported-by: syzbot <[email protected]>
    Reported-by: syzbot <[email protected]>
    Reported-by: Tetsuo Handa <[email protected]>
    Signed-off-by: Shuah Khan <[email protected]>
    Link: https://lore.kernel.org/r/268a0668144d5ff36ec7d87fdfa90faf583b7ccc.1615171203.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shuahkh authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    9380afd View commit details
    Browse the repository at this point in the history
  83. usbip: fix vhci_hcd attach_store() races leading to gpf

    attach_store() is invoked when user requests import (attach) a device
    from usbip host.
    
    Attach and detach are governed by local state and shared state
    - Shared state (usbip device status) - Device status is used to manage
      the attach and detach operations on import-able devices.
    - Local state (tcp_socket, rx and tx thread task_struct ptrs)
      A valid tcp_socket controls rx and tx thread operations while the
      device is in exported state.
    - Device has to be in the right state to be attached and detached.
    
    Attach sequence includes validating the socket and creating receive (rx)
    and transmit (tx) threads to talk to the host to get access to the
    imported device. rx and tx threads depends on local and shared state to
    be correct and in sync.
    
    Detach sequence shuts the socket down and stops the rx and tx threads.
    Detach sequence relies on local and shared states to be in sync.
    
    There are races in updating the local and shared status in the current
    attach sequence resulting in crashes. These stem from starting rx and
    tx threads before local and global state is updated correctly to be in
    sync.
    
    1. Doesn't handle kthread_create() error and saves invalid ptr in local
       state that drives rx and tx threads.
    2. Updates tcp_socket and sockfd,  starts stub_rx and stub_tx threads
       before updating usbip_device status to VDEV_ST_NOTASSIGNED. This opens
       up a race condition between the threads, port connect, and detach
       handling.
    
    Fix the above problems:
    - Stop using kthread_get_run() macro to create/start threads.
    - Create threads and get task struct reference.
    - Add kthread_create() failure handling and bail out.
    - Hold vhci and usbip_device locks to update local and shared states after
      creating rx and tx threads.
    - Update usbip_device status to VDEV_ST_NOTASSIGNED.
    - Update usbip_device tcp_socket, sockfd, tcp_rx, and tcp_tx
    - Start threads after usbip_device (tcp_socket, sockfd, tcp_rx, tcp_tx,
      and status) is complete.
    
    Credit goes to syzbot and Tetsuo Handa for finding and root-causing the
    kthread_get_run() improper error handling problem and others. This is
    hard problem to find and debug since the races aren't seen in a normal
    case. Fuzzing forces the race window to be small enough for the
    kthread_get_run() error path bug and starting threads before updating the
    local and shared state bug in the attach sequence.
    - Update usbip_device tcp_rx and tcp_tx pointers holding vhci and
      usbip_device locks.
    
    Tested with syzbot reproducer:
    - https://syzkaller.appspot.com/text?tag=ReproC&x=14801034d00000
    
    Fixes: 9720b4b ("staging/usbip: convert to kthread")
    Cc: [email protected]
    Reported-by: syzbot <[email protected]>
    Reported-by: syzbot <[email protected]>
    Reported-by: syzbot <[email protected]>
    Reported-by: Tetsuo Handa <[email protected]>
    Signed-off-by: Shuah Khan <[email protected]>
    Link: https://lore.kernel.org/r/bb434bd5d7a64fbec38b5ecfb838a6baef6eb12b.1615171203.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shuahkh authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    718ad96 View commit details
    Browse the repository at this point in the history
  84. usbip: fix vudc usbip_sockfd_store races leading to gpf

    usbip_sockfd_store() is invoked when user requests attach (import)
    detach (unimport) usb gadget device from usbip host. vhci_hcd sends
    import request and usbip_sockfd_store() exports the device if it is
    free for export.
    
    Export and unexport are governed by local state and shared state
    - Shared state (usbip device status, sockfd) - sockfd and Device
      status are used to determine if stub should be brought up or shut
      down. Device status is shared between host and client.
    - Local state (tcp_socket, rx and tx thread task_struct ptrs)
      A valid tcp_socket controls rx and tx thread operations while the
      device is in exported state.
    - While the device is exported, device status is marked used and socket,
      sockfd, and thread pointers are valid.
    
    Export sequence (stub-up) includes validating the socket and creating
    receive (rx) and transmit (tx) threads to talk to the client to provide
    access to the exported device. rx and tx threads depends on local and
    shared state to be correct and in sync.
    
    Unexport (stub-down) sequence shuts the socket down and stops the rx and
    tx threads. Stub-down sequence relies on local and shared states to be
    in sync.
    
    There are races in updating the local and shared status in the current
    stub-up sequence resulting in crashes. These stem from starting rx and
    tx threads before local and global state is updated correctly to be in
    sync.
    
    1. Doesn't handle kthread_create() error and saves invalid ptr in local
       state that drives rx and tx threads.
    2. Updates tcp_socket and sockfd,  starts stub_rx and stub_tx threads
       before updating usbip_device status to SDEV_ST_USED. This opens up a
       race condition between the threads and usbip_sockfd_store() stub up
       and down handling.
    
    Fix the above problems:
    - Stop using kthread_get_run() macro to create/start threads.
    - Create threads and get task struct reference.
    - Add kthread_create() failure handling and bail out.
    - Hold usbip_device lock to update local and shared states after
      creating rx and tx threads.
    - Update usbip_device status to SDEV_ST_USED.
    - Update usbip_device tcp_socket, sockfd, tcp_rx, and tcp_tx
    - Start threads after usbip_device (tcp_socket, sockfd, tcp_rx, tcp_tx,
      and status) is complete.
    
    Credit goes to syzbot and Tetsuo Handa for finding and root-causing the
    kthread_get_run() improper error handling problem and others. This is a
    hard problem to find and debug since the races aren't seen in a normal
    case. Fuzzing forces the race window to be small enough for the
    kthread_get_run() error path bug and starting threads before updating the
    local and shared state bug in the stub-up sequence.
    
    Fixes: 9720b4b ("staging/usbip: convert to kthread")
    Cc: [email protected]
    Reported-by: syzbot <[email protected]>
    Reported-by: syzbot <[email protected]>
    Reported-by: syzbot <[email protected]>
    Reported-by: Tetsuo Handa <[email protected]>
    Signed-off-by: Shuah Khan <[email protected]>
    Link: https://lore.kernel.org/r/b1c08b983ffa185449c9f0f7d1021dc8c8454b60.1615171203.git.skhan@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shuahkh authored and gregkh committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    46613c9 View commit details
    Browse the repository at this point in the history
  85. drm/amdgpu/display: simplify backlight setting

    Avoid the extra wrapper function.
    
    Reviewed-by: Nicholas Kazlauskas <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    a2f8d98 View commit details
    Browse the repository at this point in the history
  86. drm/amdgpu/display: don't assert in set backlight function

    It just spams the logs.
    
    Reviewed-by: Nicholas Kazlauskas <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    dfd8b7f View commit details
    Browse the repository at this point in the history
  87. drm/amdgpu/display: handle aux backlight in backlight_get_brightness

    Need to fetch it via aux.
    
    Reviewed-by: Nicholas Kazlauskas <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    0ad3e64 View commit details
    Browse the repository at this point in the history
  88. drm/amd/display: Add a backlight module option

    There seem devices that don't work with the aux channel backlight
    control.  For allowing such users to test with the other backlight
    control method, provide a new module option, aux_backlight, to specify
    enabling or disabling the aux backport support explicitly.  As
    default, the aux support is detected by the hardware capability.
    
    v2: make the backlight option generic in case we add future
    backlight types (Alex)
    
    BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1180749
    BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1438
    Reviewed-by: Nicholas Kazlauskas <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    tiwai authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    7a46f05 View commit details
    Browse the repository at this point in the history
  89. drm/amd/display: Fix nested FPU context in dcn21_validate_bandwidth()

    Commit 41401ac added FPU wrappers to dcn21_validate_bandwidth(),
    which was correct. Unfortunately a nested function alredy contained
    DC_FP_START()/DC_FP_END() calls, which results in nested FPU context
    enter/exit and complaints by kernel_fpu_begin_mask().
    This can be observed e.g. with 5.10.20, which backported 41401ac
    and now emits the following warning on boot:
    
    WARNING: CPU: 6 PID: 858 at arch/x86/kernel/fpu/core.c:129 kernel_fpu_begin_mask+0xa5/0xc0
    Call Trace:
     dcn21_calculate_wm+0x47/0xa90 [amdgpu]
     dcn21_validate_bandwidth_fp+0x15d/0x2b0 [amdgpu]
     dcn21_validate_bandwidth+0x29/0x40 [amdgpu]
     dc_validate_global_state+0x3c7/0x4c0 [amdgpu]
    
    The warning is emitted due to the additional DC_FP_START/END calls in
    patch_bounding_box(), which is inlined into dcn21_calculate_wm(),
    its only caller. Removing the calls brings the code in line with
    dcn20 and makes the warning disappear.
    
    Fixes: 41401ac ("drm/amd/display: Add FPU wrappers to dcn21_validate_bandwidth()")
    Signed-off-by: Holger Hoffstätte <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    hhoffstaette authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    15e8b95 View commit details
    Browse the repository at this point in the history
  90. drm/amdgpu/display: use GFP_ATOMIC in dcn21_validate_bandwidth_fp()

    After fixing nested FPU contexts caused by 41401ac we're still seeing
    complaints about spurious kernel_fpu_end(). As it turns out this was
    already fixed for dcn20 in commit f41ed88 ("drm/amdgpu/display:
    use GFP_ATOMIC in dcn20_validate_bandwidth_internal") but never moved
    forward to dcn21.
    
    Signed-off-by: Holger Hoffstätte <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    hhoffstaette authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    680174c View commit details
    Browse the repository at this point in the history
  91. drm/amd/display: Enable pflip interrupt upon pipe enable

    [Why]
    pflip interrupt would not be enabled promptly if a pipe is disabled
    and re-enabled, causing flip_done timeout error during DP
    compliance tests
    
    [How]
    Enable pflip interrupt upon pipe enablement
    
    Tested-by: Daniel Wheeler <[email protected]>
    Signed-off-by: Qingqing Zhuo <[email protected]>
    Reviewed-by: Nicholas Kazlauskas <[email protected]>
    Acked-by: Eryk Brol <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Qingqing Zhuo authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    7afa003 View commit details
    Browse the repository at this point in the history
  92. Merge tag 's390-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/s390/linux
    
    Pull s390 fixes from Heiko Carstens:
    
     - fix various user space visible copy_to_user() instances which return
       the number of bytes left to copy instead of -EFAULT
    
     - make TMPFS_INODE64 available again for s390 and alpha, now that both
       architectures have been switched to 64-bit ino_t (see commit
       96c0a6a: "s390,alpha: switch to 64-bit ino_t")
    
     - make sure to release a shared hypervisor resource within the zcore
       device driver also on restart and power down; also remove unneeded
       surrounding debugfs_create return value checks
    
     - for the new hardware counter set device driver rename the uapi header
       file to be a bit more generic; also remove 60 second read limit which
       is not really necessary and without the limit the interface can be
       easier tested
    
     - some small cleanups, the largest being to convert all long long in
       our time and idle code to longs
    
     - update defconfigs
    
    * tag 's390-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
      s390: remove IBM_PARTITION and CONFIGFS_FS from zfcpdump defconfig
      s390: update defconfigs
      s390,alpha: make TMPFS_INODE64 available again
      s390/cio: return -EFAULT if copy_to_user() fails
      s390/tty3270: avoid comma separated statements
      s390/cpumf: remove unneeded semicolon
      s390/crypto: return -EFAULT if copy_to_user() fails
      s390/cio: return -EFAULT if copy_to_user() fails
      s390/cpumf: rename header file to hwctrset.h
      s390/zcore: release dump save area on restart or power down
      s390/zcore: no need to check return value of debugfs_create functions
      s390/cpumf: remove 60 seconds read limit
      s390/topology: remove always false if check
      s390/time,idle: get rid of unsigned long long
    torvalds committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    a74e6a0 View commit details
    Browse the repository at this point in the history
  93. drm/amd/display: Revert dram_clock_change_latency for DCN2.1

    [WHY & HOW]
    Using values provided by DF for latency may cause hangs in
    multi display configurations. Revert change to previous value.
    
    Tested-by: Daniel Wheeler <[email protected]>
    Signed-off-by: Sung Lee <[email protected]>
    Reviewed-by: Haonan Wang <[email protected]>
    Acked-by: Eryk Brol <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Sung Lee authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    b0075d1 View commit details
    Browse the repository at this point in the history
  94. drm/amd/display: Enabled pipe harvesting in dcn30

    [Why & How]
    Ported logic from dcn21 for reading in pipe fusing to dcn30.
    Supported configurations are 1 and 6 pipes. Invalid fusing
    will revert to 1 pipe being enabled.
    
    Tested-by: Daniel Wheeler <[email protected]>
    Signed-off-by: Dillon Varone <[email protected]>
    Reviewed-by: Jun Lei <[email protected]>
    Acked-by: Eryk Brol <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Dillon Varone authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    d2c9128 View commit details
    Browse the repository at this point in the history
  95. drm/amdgpu/display: Use wm_table.entries for dcn301 calculate_wm

    [Why]
    For DGPU Navi, the wm_table.nv_entries are used. These entires are not
    populated for DCN301 Vangogh APU, but instead wm_table.entries are.
    
    [How]
    Use DCN21 Renoir style wm calculations.
    
    Signed-off-by: Leo Li <[email protected]>
    Signed-off-by: Zhan Liu <[email protected]>
    Reviewed-by: Dmytro Laktyushkin <[email protected]>
    Acked-by: Zhan Liu <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Zhan Liu authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    eda2960 View commit details
    Browse the repository at this point in the history
  96. drm/amdgpu: fb BO should be ttm_bo_type_device

    FB BO should not be ttm_bo_type_kernel type and
    amdgpufb_create_pinned_object() pins the FB BO anyway.
    
    Signed-off-by: Nirmoy Das <[email protected]>
    Acked-by: Christian König <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Nirmoy Das authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    521f04f View commit details
    Browse the repository at this point in the history
  97. drm/amd/pm: bug fix for pcie dpm

    Currently the pcie dpm has two problems.
    1. Only the high dpm level speed/width can be overrided
    if the requested values are out of the pcie capability.
    2. The high dpm level is always overrided though sometimes
    it's not necesarry.
    
    Signed-off-by: Kenneth Feng <[email protected]>
    Reviewed-by: Alex Deucher <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    Kenneth Feng authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    50ceb1f View commit details
    Browse the repository at this point in the history
  98. drm/amd/pm: correct the watermark settings for Polaris

    The "/ 10" should be applied to the right-hand operand instead of
    the left-hand one.
    
    Signed-off-by: Evan Quan <[email protected]>
    Noticed-by: Georgios Toptsidis <[email protected]>
    Reviewed-by: Feifei Xu <[email protected]>
    Reviewed-by: Alex Deucher <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    Evan Quan authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    48123d0 View commit details
    Browse the repository at this point in the history
  99. drm/radeon: also init GEM funcs in radeon_gem_prime_import_sg_table

    Otherwise we will run into a NULL ptr deref.
    
    Signed-off-by: Christian König <[email protected]>
    Bug: https://bugzilla.kernel.org/show_bug.cgi?id=212137
    Reviewed-by: Alex Deucher <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected] # 5.11.x
    ChristianKoenigAMD authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    a25955b View commit details
    Browse the repository at this point in the history
  100. drm/radeon: fix AGP dependency

    When AGP is compiled as module radeon must be compiled as module as
    well.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Alex Deucher <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    ChristianKoenigAMD authored and alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    cba2afb View commit details
    Browse the repository at this point in the history
  101. drm/amdgpu: fix S0ix handling when the CONFIG_AMD_PMC=m

    Need to check the module variant as well.
    
    Acked-by: Prike Liang <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Cc: [email protected]
    alexdeucher committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    a5cb3c1 View commit details
    Browse the repository at this point in the history
  102. xen/events: don't unmask an event channel when an eoi is pending

    An event channel should be kept masked when an eoi is pending for it.
    When being migrated to another cpu it might be unmasked, though.
    
    In order to avoid this keep three different flags for each event channel
    to be able to distinguish "normal" masking/unmasking from eoi related
    masking/unmasking and temporary masking. The event channel should only
    be able to generate an interrupt if all flags are cleared.
    
    Cc: [email protected]
    Fixes: 54c9de8 ("xen/events: add a new "late EOI" evtchn framework")
    Reported-by: Julien Grall <[email protected]>
    Signed-off-by: Juergen Gross <[email protected]>
    Reviewed-by: Julien Grall <[email protected]>
    Reviewed-by: Boris Ostrovsky <[email protected]>
    Tested-by: Ross Lagerwall <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    
    [boris -- corrected Fixed tag format]
    
    Signed-off-by: Boris Ostrovsky <[email protected]>
    jgross1 authored and Boris Ostrovsky committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    25da461 View commit details
    Browse the repository at this point in the history
  103. xen/events: avoid handling the same event on two cpus at the same time

    When changing the cpu affinity of an event it can happen today that
    (with some unlucky timing) the same event will be handled on the old
    and the new cpu at the same time.
    
    Avoid that by adding an "event active" flag to the per-event data and
    call the handler only if this flag isn't set.
    
    Cc: [email protected]
    Reported-by: Julien Grall <[email protected]>
    Signed-off-by: Juergen Gross <[email protected]>
    Reviewed-by: Julien Grall <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Boris Ostrovsky <[email protected]>
    jgross1 authored and Boris Ostrovsky committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    b662279 View commit details
    Browse the repository at this point in the history
  104. Xen: drop exports of {set,clear}_foreign_p2m_mapping()

    They're only used internally, and the layering violation they contain
    (x86) or imply (Arm) of calling HYPERVISOR_grant_table_op() strongly
    advise against any (uncontrolled) use from a module. The functions also
    never had users except the ones from drivers/xen/grant-table.c forever
    since their introduction in 3.15.
    
    Signed-off-by: Jan Beulich <[email protected]>
    Reviewed-by: Stefano Stabellini <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Boris Ostrovsky <[email protected]>
    jbeulich authored and Boris Ostrovsky committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    0f9b05b View commit details
    Browse the repository at this point in the history
  105. Xen/gntdev: don't needlessly allocate k{,un}map_ops[]

    They're needed only in the not-auto-translate (i.e. PV) case; there's no
    point in allocating memory that's never going to get accessed.
    
    Signed-off-by: Jan Beulich <[email protected]>
    Reviewed-by: Juergen Gross <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Boris Ostrovsky <[email protected]>
    jbeulich authored and Boris Ostrovsky committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    36caa3f View commit details
    Browse the repository at this point in the history
  106. Xen/gnttab: introduce common INVALID_GRANT_{HANDLE,REF}

    It's not helpful if every driver has to cook its own. Generalize
    xenbus'es INVALID_GRANT_HANDLE and pcifront's INVALID_GRANT_REF (which
    shouldn't have expanded to zero to begin with). Use the constants in
    p2m.c and gntdev.c right away, and update field types where necessary so
    they would match with the constants' types (albeit without touching
    struct ioctl_gntdev_grant_ref's ref field, as that's part of the public
    interface of the kernel and would require introducing a dependency on
    Xen's grant_table.h public header).
    
    Signed-off-by: Jan Beulich <[email protected]>
    Reviewed-by: Juergen Gross <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Boris Ostrovsky <[email protected]>
    jbeulich authored and Boris Ostrovsky committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    bce21a2 View commit details
    Browse the repository at this point in the history
  107. Xen/gntdev: don't needlessly use kvcalloc()

    Requesting zeroed memory when all of it will be overwritten subsequently
    by all ones is a waste of processing bandwidth. In fact, rather than
    recording zeroed ->grants[], fill that array too with more appropriate
    "invalid" indicators.
    
    Signed-off-by: Jan Beulich <[email protected]>
    Reviewed-by: Juergen Gross <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Boris Ostrovsky <[email protected]>
    jbeulich authored and Boris Ostrovsky committed Mar 10, 2021
    Configuration menu
    Copy the full SHA
    f1d20d8 View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2021

  1. kbuild: rebuild GCC plugins when the compiler is upgraded

    Linus reported a build error due to the GCC plugin incompatibility
    when the compiler is upgraded. [1]
    
    GCC plugins are tied to a particular GCC version. So, they must be
    rebuilt when the compiler is upgraded.
    
    This seems to be a long-standing flaw since the initial support of
    GCC plugins.
    
    Extend commit 8b59cd8 ("kbuild: ensure full rebuild when the
    compiler is updated"), so that GCC plugins are covered by the
    compiler upgrade detection.
    
    [1]: https://lore.kernel.org/lkml/CAHk-=wieoN5ttOy7SnsGwZv+Fni3R6m-Ut=oxih6bbZ28G+4dw@mail.gmail.com/
    
    Reported-by: Linus Torvalds <[email protected]>
    Signed-off-by: Masahiro Yamada <[email protected]>
    Reviewed-by: Kees Cook <[email protected]>
    masahir0y committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    ce6ed1c View commit details
    Browse the repository at this point in the history
  2. kbuild: dummy-tools: support MPROFILE_KERNEL checks for ppc

    ppc64le checks for -mprofile-kernel to define MPROFILE_KERNEL Kconfig.
    Kconfig calls arch/powerpc/tools/gcc-check-mprofile-kernel.sh for that
    purpose. This script performs two checks:
    1) build with -mprofile-kernel should contain "_mcount"
    2) build with -mprofile-kernel with a function marked as "notrace"
       should not produce "_mcount"
    
    So support this in dummy-tools' gcc, so that we have MPROFILE_KERNEL
    always true.
    
    Signed-off-by: Jiri Slaby <[email protected]>
    Signed-off-by: Masahiro Yamada <[email protected]>
    Jiri Slaby authored and masahir0y committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    2eab791 View commit details
    Browse the repository at this point in the history
  3. kbuild: Allow LTO to be selected with KASAN_HW_TAGS

    While LTO with KASAN is normally not useful, hardware tag-based KASAN
    can be used also in production kernels with ARM64_MTE. Therefore, allow
    KASAN_HW_TAGS to be selected together with HAS_LTO_CLANG.
    
    Reported-by: Alistair Delva <[email protected]>
    Signed-off-by: Sami Tolvanen <[email protected]>
    Reviewed-by: Kees Cook <[email protected]>
    Signed-off-by: Masahiro Yamada <[email protected]>
    samitolvanen authored and masahir0y committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    bf3c255 View commit details
    Browse the repository at this point in the history
  4. kbuild: dummy-tools: adjust to scripts/cc-version.sh

    Commit aec6c60 ("kbuild: check the minimum compiler version in
    Kconfig") changed how the script detects the compiler version.
    
    Get 'make CROSS_COMPILE=scripts/dummy-tools/' back working again.
    
    Fixes: aec6c60 ("kbuild: check the minimum compiler version in Kconfig")
    Signed-off-by: Masahiro Yamada <[email protected]>
    Reviewed-by: Nathan Chancellor <[email protected]>
    Tested-by: Nathan Chancellor <[email protected]>
    Acked-by: Miguel Ojeda <[email protected]>
    masahir0y committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    f9bc754 View commit details
    Browse the repository at this point in the history
  5. kbuild: remove unneeded -O option to dtc

    This piece of code converts the target suffix to the dtc -O option:
    
        *.dtb      ->  -O dtb
        *.dt.yaml  ->  -O yaml
    
    Commit ce88c9c ("kbuild: Add support to build overlays (%.dtbo)")
    added the third case:
    
        *.dtbo     ->  -O dtbo
    
    This works thanks to commit 163f0469bf2e ("dtc: Allow overlays to have
    .dtbo extension") in the upstream DTC, which has already been pulled in
    the kernel.
    
    However, I think it is a bit odd because "dtbo" is not a format name.
    At least, it does not show up in the help message of dtc.
    
    $ scripts/dtc/dtc --help
      [ snip ]
      -O, --out-format <arg>
            Output formats are:
                    dts - device tree source text
                    dtb - device tree blob
                    yaml - device tree encoded as YAML
                    asm - assembler source
    
    So, I am not a big fan of the second hunk of that change:
    
            } else if (streq(outform, "dtbo")) {
                    dt_to_blob(outf, dti, outversion);
    
    Anyway, we did not need to do this in Makefile in the first place.
    
    guess_type_by_name() had already understood ".yaml" before commit
    4f0e3a5 ("kbuild: Add support for DT binding schema checks"),
    and now does ".dtbo" as well.
    
    Makefile does not need to duplicate the same logic. Let's leave it
    to dtc.
    
    Signed-off-by: Masahiro Yamada <[email protected]>
    Reviewed-by: Viresh Kumar <[email protected]>
    Acked-by: Rob Herring <[email protected]>
    masahir0y committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    64bfc99 View commit details
    Browse the repository at this point in the history
  6. kbuild: remove LLVM=1 test from HAS_LTO_CLANG

    As Documentation/kbuild/llvm.rst notes, LLVM=1 switches the default of
    tools, but you can still override CC, LD, etc. individually. This LLVM=1
    check is unneeded because each tool is already checked separately.
    
    "make CC=clang LD=ld.lld NM=llvm-nm AR=llvm-ar LLVM_IAS=1 menuconfig"
    should be able to enable Clang LTO.
    
    Signed-off-by: Masahiro Yamada <[email protected]>
    Reviewed-by: Nathan Chancellor <[email protected]>
    masahir0y committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    4c273d2 View commit details
    Browse the repository at this point in the history
  7. Merge tag 'usb-serial-5.12-rc3' of https://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/johan/usb-serial into usb-linus
    
    Johan writes:
    
    USB-serial fixes for 5.12-rc3
    
    Here's a fix for a long-standing memory leak after probe failure in
    io_edgeport and a fix for a NULL-deref on disconnect in the new xr
    driver.
    
    Included are also some new device ids.
    
    All have been in linux-next with no reported issues.
    
    * tag 'usb-serial-5.12-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial:
      USB: serial: io_edgeport: fix memory leak in edge_startup
      USB: serial: ch341: add new Product ID
      USB: serial: xr: fix NULL-deref on disconnect
      USB: serial: cp210x: add some more GE USB IDs
      USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
    gregkh committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    a949b9e View commit details
    Browse the repository at this point in the history
  8. kbuild: remove meaningless parameter to $(call if_changed_rule,dtc)

    This is a remnant of commit 78046fa ("kbuild: determine the output
    format of DTC by the target suffix").
    
    The parameter "yaml" is meaningless because cmd_dtc no loner takes $(2).
    
    Reported-by: Rob Herring <[email protected]>
    Signed-off-by: Masahiro Yamada <[email protected]>
    masahir0y committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    285a65f View commit details
    Browse the repository at this point in the history
  9. drm/fb-helper: only unmap if buffer not null

    drm_fbdev_cleanup() can be called when fb_helper->buffer is null, hence
    fb_helper->buffer should be checked before calling
    drm_client_buffer_vunmap(). This buffer is also checked in
    drm_client_framebuffer_delete(), so we should also do the same thing for
    drm_client_buffer_vunmap().
    
    [  199.128742] RIP: 0010:drm_client_buffer_vunmap+0xd/0x20
    [  199.129031] Code: 43 18 48 8b 53 20 49 89 45 00 49 89 55 08 5b 44 89 e0 41 5c 41 5d 41 5e 5d
    c3 0f 1f 00 53 48 89 fb 48 8d 7f 10 e8 73 7d a1 ff <48> 8b 7b 10 48 8d 73 18 5b e9 75 53 fc ff 0
    f 1f 44 00 00 48 b8 00
    [  199.130041] RSP: 0018:ffff888103f3fc88 EFLAGS: 00010282
    [  199.130329] RAX: 0000000000000001 RBX: 0000000000000000 RCX: ffffffff8214d46d
    [  199.130733] RDX: 1ffffffff079c6b9 RSI: 0000000000000246 RDI: ffffffff83ce35c8
    [  199.131119] RBP: ffff888103d25458 R08: 0000000000000001 R09: fffffbfff0791761
    [  199.131505] R10: ffffffff83c8bb07 R11: fffffbfff0791760 R12: 0000000000000000
    [  199.131891] R13: ffff888103d25468 R14: ffff888103d25418 R15: ffff888103f18120
    [  199.132277] FS:  00007f36fdcbb6a0(0000) GS:ffff88815b400000(0000) knlGS:0000000000000000
    [  199.132721] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  199.133033] CR2: 0000000000000010 CR3: 0000000103d26000 CR4: 00000000000006f0
    [  199.133420] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  199.133807] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [  199.134195] Call Trace:
    [  199.134333]  drm_fbdev_cleanup+0x179/0x1a0
    [  199.134562]  drm_fbdev_client_unregister+0x2b/0x40
    [  199.134828]  drm_client_dev_unregister+0xa8/0x180
    [  199.135088]  drm_dev_unregister+0x61/0x110
    [  199.135315]  mgag200_pci_remove+0x38/0x52 [mgag200]
    [  199.135586]  pci_device_remove+0x62/0xe0
    [  199.135806]  device_release_driver_internal+0x148/0x270
    [  199.136094]  driver_detach+0x76/0xe0
    [  199.136294]  bus_remove_driver+0x7e/0x100
    [  199.136521]  pci_unregister_driver+0x28/0xf0
    [  199.136759]  __x64_sys_delete_module+0x268/0x300
    [  199.137016]  ? __ia32_sys_delete_module+0x300/0x300
    [  199.137285]  ? call_rcu+0x3e4/0x580
    [  199.137481]  ? fpregs_assert_state_consistent+0x4d/0x60
    [  199.137767]  ? exit_to_user_mode_prepare+0x2f/0x130
    [  199.138037]  do_syscall_64+0x33/0x40
    [  199.138237]  entry_SYSCALL_64_after_hwframe+0x44/0xae
    [  199.138517] RIP: 0033:0x7f36fdc3dcf7
    
    Signed-off-by: Tong Zhang <[email protected]>
    Fixes: 763aea1 ("drm/fb-helper: Unmap client buffer during shutdown")
    Cc: Thomas Zimmermann <[email protected]>
    Cc: Sam Ravnborg <[email protected]>
    Cc: Maxime Ripard <[email protected]>
    Cc: Maarten Lankhorst <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: [email protected]
    Cc: <[email protected]> # v5.11+
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Maarten Lankhorst <[email protected]>
    lzto authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    874a52f View commit details
    Browse the repository at this point in the history
  10. drm/qxl: unpin release objects

    Balances the qxl_create_bo(..., pinned=true, ...);
    call in qxl_release_bo_alloc().
    
    Signed-off-by: Gerd Hoffmann <[email protected]>
    Acked-by: Thomas Zimmermann <[email protected]>
    Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit 65ffea3)
    Signed-off-by: Maarten Lankhorst <[email protected]>
    kraxel authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    e8dd350 View commit details
    Browse the repository at this point in the history
  11. drm/qxl: fix lockdep issue in qxl_alloc_release_reserved

    Call qxl_bo_unpin (which does a reservation) without holding the
    release_mutex lock.  Fixes lockdep (correctly) warning on a possible
    deadlock.
    
    Fixes: e8dd350 ("drm/qxl: unpin release objects")
    Signed-off-by: Gerd Hoffmann <[email protected]>
    Acked-by: Thomas Zimmermann <[email protected]>
    Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit 19089b7)
    Signed-off-by: Maarten Lankhorst <[email protected]>
    kraxel authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    e998d3c View commit details
    Browse the repository at this point in the history
  12. fbdev: atyfb: always declare aty_{ld,st}_lcd()

    The previously added stubs for aty_{ld,}st_lcd() make it
    so that these functions are used regardless of the config
    options that were guarding them, so remove the #ifdef/#endif
    lines and make their declarations always visible.
    This fixes build warnings that were reported by clang:
    
       drivers/video/fbdev/aty/atyfb_base.c:180:6: warning: no previous prototype for function 'aty_st_lcd' [-Wmissing-prototypes]
       void aty_st_lcd(int index, u32 val, const struct atyfb_par *par)
            ^
       drivers/video/fbdev/aty/atyfb_base.c:180:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
       void aty_st_lcd(int index, u32 val, const struct atyfb_par *par)
    
       drivers/video/fbdev/aty/atyfb_base.c:183:5: warning: no previous prototype for function 'aty_ld_lcd' [-Wmissing-prototypes]
       u32 aty_ld_lcd(int index, const struct atyfb_par *par)
           ^
       drivers/video/fbdev/aty/atyfb_base.c:183:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
       u32 aty_ld_lcd(int index, const struct atyfb_par *par)
    
    They should not be marked as static since they are used in
    mach64_ct.c.
    
    Fixes: bfa5782 ("fbdev: atyfb: add stubs for aty_{ld,st}_lcd()")
    Signed-off-by: Randy Dunlap <[email protected]>
    Reported-by: kernel test robot <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: Nick Desaulniers <[email protected]>
    Cc: [email protected]
    Cc: [email protected]
    Cc: Bartlomiej Zolnierkiewicz <[email protected]>
    Cc: Sam Ravnborg <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Jani Nikula <[email protected]>
    Signed-off-by: Ville Syrjälä <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Acked-by: Nick Desaulniers <[email protected]>
    Signed-off-by: Maarten Lankhorst <[email protected]>
    rddunlap authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    39a3898 View commit details
    Browse the repository at this point in the history
  13. fbdev: atyfb: use LCD management functions for PPC_PMAC also

    Include PPC_PMAC in the configs that use aty_ld_lcd() and
    aty_st_lcd() implementations so that the PM code may work
    correctly for PPC_PMAC.
    
    Suggested-by: Ville Syrjälä <[email protected]>
    Signed-off-by: Randy Dunlap <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: Nick Desaulniers <[email protected]>
    Cc: [email protected]
    Cc: [email protected]
    Cc: Bartlomiej Zolnierkiewicz <[email protected]>
    Cc: Sam Ravnborg <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Jani Nikula <[email protected]>
    Signed-off-by: Ville Syrjälä <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Maarten Lankhorst <[email protected]>
    rddunlap authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    b266409 View commit details
    Browse the repository at this point in the history
  14. MAINTAINERS: update drm bug reporting URL

    The original bugzilla seems to be read-only now, linking to the gitlab
    for new bugs.
    
    Signed-off-by: Pavel Turinský <[email protected]>
    Cc: [email protected]
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Maarten Lankhorst <[email protected]>
    Pavel Turinský authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    301469c View commit details
    Browse the repository at this point in the history
  15. drm: Use USB controller's DMA mask when importing dmabufs

    USB devices cannot perform DMA and hence have no dma_mask set in their
    device structure. Therefore importing dmabuf into a USB-based driver
    fails, which breaks joining and mirroring of display in X11.
    
    For USB devices, pick the associated USB controller as attachment device.
    This allows the DRM import helpers to perform the DMA setup. If the DMA
    controller does not support DMA transfers, we're out of luck and cannot
    import. Our current USB-based DRM drivers don't use DMA, so the actual
    DMA device is not important.
    
    Tested by joining/mirroring displays of udl and radeon under Gnome/X11.
    
    v8:
    	* release dmadev if device initialization fails (Noralf)
    	* fix commit description (Noralf)
    v7:
    	* fix use-before-init bug in gm12u320 (Dan)
    v6:
    	* implement workaround in DRM drivers and hold reference to
    	  DMA device while USB device is in use
    	* remove dev_is_usb() (Greg)
    	* collapse USB helper into usb_intf_get_dma_device() (Alan)
    	* integrate Daniel's TODO statement (Daniel)
    	* fix typos (Greg)
    v5:
    	* provide a helper for USB interfaces (Alan)
    	* add FIXME item to documentation and TODO list (Daniel)
    v4:
    	* implement workaround with USB helper functions (Greg)
    	* use struct usb_device->bus->sysdev as DMA device (Takashi)
    v3:
    	* drop gem_create_object
    	* use DMA mask of USB controller, if any (Daniel, Christian, Noralf)
    v2:
    	* move fix to importer side (Christian, Daniel)
    	* update SHMEM and CMA helpers for new PRIME callbacks
    
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Fixes: 6eb0233 ("usb: don't inherity DMA properties for USB devices")
    Tested-by: Pavel Machek <[email protected]>
    Reviewed-by: Greg Kroah-Hartman <[email protected]>
    Acked-by: Christian König <[email protected]>
    Acked-by: Daniel Vetter <[email protected]>
    Acked-by: Noralf Trønnes <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: Greg Kroah-Hartman <[email protected]>
    Cc: <[email protected]> # v5.10+
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Maarten Lankhorst <[email protected]>
    Thomas Zimmermann authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    659ab7a View commit details
    Browse the repository at this point in the history
  16. drm/ttm: soften TTM warnings

    QXL indeed unrefs pinned BOs and the warnings are spamming peoples log files.
    
    Make sure we warn only once until the QXL driver is fixed.
    
    Signed-off-by: Christian König <[email protected]>
    References: https://lore.kernel.org/lkml/YD+eYcMMcdlXB8PY@alley/
    Link: https://patchwork.freedesktop.org/patch/422834/
    Reviewed-by: Daniel Vetter <[email protected]>
    Signed-off-by: Maarten Lankhorst <[email protected]>
    ChristianKoenigAMD authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    d228f8d View commit details
    Browse the repository at this point in the history
  17. drm/ttm: Fix TTM page pool accounting

    Freed pages are not subtracted from the allocated_pages counter in
    ttm_pool_type_fini(), causing a leak in the count on device removal.
    The next shrinker invocation loops forever trying to free pages that are
    no longer in the pool:
    
      rcu: INFO: rcu_sched self-detected stall on CPU
      rcu:  3-....: (9998 ticks this GP) idle=54e/1/0x4000000000000000 softirq=434857/434857 fqs=2237
        (t=10001 jiffies g=2194533 q=49211)
      NMI backtrace for cpu 3
      CPU: 3 PID: 1034 Comm: kswapd0 Tainted: P           O      5.11.0-com #1
      Hardware name: System manufacturer System Product Name/PRIME X570-PRO, BIOS 1405 11/19/2019
      Call Trace:
       <IRQ>
       ...
       </IRQ>
       sysvec_apic_timer_interrupt+0x77/0x80
       asm_sysvec_apic_timer_interrupt+0x12/0x20
      RIP: 0010:mutex_unlock+0x16/0x20
      Code: e7 48 8b 70 10 e8 7a 53 77 ff eb aa e8 43 6c ff ff 0f 1f 00 65 48 8b 14 25 00 6d 01 00 31 c9 48 89 d0 f0 48 0f b1 0f 48 39 c2 <74> 05 e9 e3 fe ff ff c3 66 90 48 8b 47 20 48 85 c0 74 0f 8b 50 10
      RSP: 0018:ffffbdb840797be8 EFLAGS: 00000246
      RAX: ffff9ff445a41c00 RBX: ffffffffc02a9ef8 RCX: 0000000000000000
      RDX: ffff9ff445a41c00 RSI: ffffbdb840797c78 RDI: ffffffffc02a9ac0
      RBP: 0000000000000080 R08: 0000000000000000 R09: ffffbdb840797c80
      R10: 0000000000000000 R11: fffffffffffffff5 R12: 0000000000000000
      R13: 0000000000000000 R14: 0000000000000084 R15: ffffffffc02a9a60
       ttm_pool_shrink+0x7d/0x90 [ttm]
       ttm_pool_shrinker_scan+0x5/0x20 [ttm]
       do_shrink_slab+0x13a/0x1a0
    ...
    
    debugfs shows the incorrect total:
    
      $ cat /sys/kernel/debug/dri/0/ttm_page_pool
                --- 0--- --- 1--- --- 2--- --- 3--- --- 4--- --- 5--- --- 6--- --- 7--- --- 8--- --- 9--- ---10---
      wc      :        0        0        0        0        0        0        0        0        0        0        0
      uc      :        0        0        0        0        0        0        0        0        0        0        0
      wc 32   :        0        0        0        0        0        0        0        0        0        0        0
      uc 32   :        0        0        0        0        0        0        0        0        0        0        0
      DMA uc  :        0        0        0        0        0        0        0        0        0        0        0
      DMA wc  :        0        0        0        0        0        0        0        0        0        0        0
      DMA     :        0        0        0        0        0        0        0        0        0        0        0
    
      total   :     3029 of  8244261
    
    Using ttm_pool_type_take() to remove pages from the pool before freeing
    them correctly accounts for the freed pages.
    
    Fixes: d099fc8 ("drm/ttm: new TT backend allocation pool v3")
    Signed-off-by: Anthony DeRossi <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Christian König <[email protected]>
    Signed-off-by: Christian König <[email protected]>
    Signed-off-by: Maarten Lankhorst <[email protected]>
    anthonyde authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    ca63d76 View commit details
    Browse the repository at this point in the history
  18. qxl: Fix uninitialised struct field head.surface_id

    The surface_id struct field in head is not being initialized and
    static analysis warns that this is being passed through to
    dev->monitors_config->heads[i] on an assignment. Clear up this
    warning by initializing it to zero.
    
    Addresses-Coverity: ("Uninitialized scalar variable")
    Fixes: a6d3c4d ("qxl: hook monitors_config updates into crtc, not encoder.")
    Signed-off-by: Colin Ian King <[email protected]>
    Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Gerd Hoffmann <[email protected]>
    Signed-off-by: Maarten Lankhorst <[email protected]>
    Colin Ian King authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    738acd4 View commit details
    Browse the repository at this point in the history
  19. drm/shmem-helper: Check for purged buffers in fault handler

    When a buffer is madvised as not needed and then purged, any attempts to
    access the buffer from user-space should cause a bus fault. This patch
    adds a check for that.
    
    Cc: [email protected]
    Fixes: 17acb9f ("drm/shmem: Add madvise state and purge helpers")
    Signed-off-by: Neil Roberts <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Signed-off-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Maarten Lankhorst <[email protected]>
    bpeel authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    d611b4a View commit details
    Browse the repository at this point in the history
  20. drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff

    When mmapping the shmem, it would previously adjust the pgoff in the
    vm_area_struct to remove the fake offset that is added to be able to
    identify the buffer. This patch removes the adjustment and makes the
    fault handler use the vm_fault address to calculate the page offset
    instead. Although using this address is apparently discouraged, several
    DRM drivers seem to be doing it anyway.
    
    The problem with removing the pgoff is that it prevents
    drm_vma_node_unmap from working because that searches the mapping tree
    by address. That doesn't work because all of the mappings are at offset
    0. drm_vma_node_unmap is being used by the shmem helpers when purging
    the buffer.
    
    This fixes a bug in Panfrost which is using drm_gem_shmem_purge. Without
    this the mapping for the purged buffer can still be accessed which might
    mean it would access random pages from other buffers
    
    v2: Don't check whether the unsigned page_offset is less than 0.
    
    Cc: [email protected]
    Fixes: 17acb9f ("drm/shmem: Add madvise state and purge helpers")
    Signed-off-by: Neil Roberts <[email protected]>
    Reviewed-by: Steven Price <[email protected]>
    Signed-off-by: Steven Price <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Maarten Lankhorst <[email protected]>
    bpeel authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    11d5a47 View commit details
    Browse the repository at this point in the history
  21. drm: meson_drv add shutdown function

    Problem: random stucks on reboot stage about 1/20 stuck/reboots
    // debug kernel log
    [    4.496660] reboot: kernel restart prepare CMD:(null)
    [    4.498114] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown begin
    [    4.503949] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown domain 0:VPU...
    ...STUCK...
    
    Solution: add shutdown function to meson_drm driver
    // debug kernel log
    [    5.231896] reboot: kernel restart prepare CMD:(null)
    [    5.246135] [drm:meson_drv_shutdown]
    ...
    [    5.259271] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown begin
    [    5.274688] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown domain 0:VPU...
    [    5.338331] reboot: Restarting system
    [    5.358293] psci: PSCI_0_2_FN_SYSTEM_RESET reboot_mode:0 cmd:(null)
    bl31 reboot reason: 0xd
    bl31 reboot reason: 0x0
    system cmd  1.
    ...REBOOT...
    
    Tested: on VIM1 VIM2 VIM3 VIM3L khadas sbcs - 1000+ successful reboots
    and Odroid boards, WeTek Play2 (GXBB)
    
    Fixes: bbbe775 ("drm: Add support for Amlogic Meson Graphic Controller")
    Signed-off-by: Artem Lapkin <[email protected]>
    Tested-by: Christian Hewitt <[email protected]>
    Acked-by: Neil Armstrong <[email protected]>
    Acked-by: Kevin Hilman <[email protected]>
    Signed-off-by: Neil Armstrong <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Maarten Lankhorst <[email protected]>
    Artem Lapkin authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    fa0c16c View commit details
    Browse the repository at this point in the history
  22. drm/shmem-helpers: vunmap: Don't put pages for dma-buf

    dma-buf importing was reworked in commit 7d2cd72
    ("drm/shmem-helpers: Simplify dma-buf importing"). Before that commit
    drm_gem_shmem_prime_import_sg_table() did set ->pages_use_count=1 and
    drm_gem_shmem_vunmap_locked() could call drm_gem_shmem_put_pages()
    unconditionally. Now without the use count set, put pages is called also
    on dma-bufs. Fix this by only putting pages if it's not imported.
    
    Signed-off-by: Noralf Trønnes <[email protected]>
    Fixes: 7d2cd72 ("drm/shmem-helpers: Simplify dma-buf importing")
    Cc: Daniel Vetter <[email protected]>
    Cc: Thomas Zimmermann <[email protected]>
    Acked-by: Thomas Zimmermann <[email protected]>
    Tested-by: Thomas Zimmermann <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit cdea725)
    Signed-off-by: Thomas Zimmermann <[email protected]>
    Signed-off-by: Maarten Lankhorst <[email protected]>
    notro authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    64e194e View commit details
    Browse the repository at this point in the history
  23. drm/compat: Clear bounce structures

    Some of them have gaps, or fields we don't clear. Native ioctl code
    does full copies plus zero-extends on size mismatch, so nothing can
    leak. But compat is more hand-rolled so need to be careful.
    
    None of these matter for performance, so just memset.
    
    Also I didn't fix up the CONFIG_DRM_LEGACY or CONFIG_DRM_AGP ioctl, those
    are security holes anyway.
    
    Acked-by: Maxime Ripard <[email protected]>
    Reported-by: [email protected] # vblank ioctl
    Cc: [email protected]
    Cc: [email protected]
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit e926c47)
    Signed-off-by: Maarten Lankhorst <[email protected]>
    danvet authored and mlankhorst committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    de066e1 View commit details
    Browse the repository at this point in the history
  24. media: rc: compile rc-cec.c into rc-core

    The rc-cec keymap is unusual in that it can't be built as a module,
    instead it is registered directly in rc-main.c if CONFIG_MEDIA_CEC_RC
    is set. This is because it can be called from drm_dp_cec_set_edid() via
    cec_register_adapter() in an asynchronous context, and it is not
    allowed to use request_module() to load rc-cec.ko in that case. Trying to
    do so results in a 'WARN_ON_ONCE(wait && current_is_async())'.
    
    Since this keymap is only used if CONFIG_MEDIA_CEC_RC is set, we
    just compile this keymap into the rc-core module and never as a
    separate module.
    
    Signed-off-by: Hans Verkuil <[email protected]>
    Fixes: 2c6d1ff (drm: add support for DisplayPort CEC-Tunneling-over-AUX)
    Reported-by: Hans de Goede <[email protected]>
    Signed-off-by: Sean Young <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    hverkuil authored and mchehab committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    f09f9f9 View commit details
    Browse the repository at this point in the history
  25. media: usbtv: Fix deadlock on suspend

    usbtv doesn't support power management, so on system suspend the
    .disconnect callback of the driver is called. The teardown sequence
    includes a call to snd_card_free. Its implementation waits until the
    refcount of the sound card device drops to zero, however, if its file is
    open, snd_card_file_add takes a reference, which can't be dropped during
    the suspend, because the userspace processes are already frozen at this
    point. snd_card_free waits for completion forever, leading to a hang on
    suspend.
    
    This commit fixes this deadlock condition by replacing snd_card_free
    with snd_card_free_when_closed, that doesn't wait until all references
    are released, allowing suspend to progress.
    
    Fixes: 63ddf68 ("[media] usbtv: add audio support")
    Signed-off-by: Maxim Mikityanskiy <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    gentoo-root authored and mchehab committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    8a7e27f View commit details
    Browse the repository at this point in the history
  26. media: v4l: vsp1: Fix bru null pointer access

    RZ/G2L SoC has only BRS. This patch fixes null pointer access,when only
    BRS is enabled.
    
    Fixes: cbb7fa4("media: v4l: vsp1: Rename BRU to BRx")
    Signed-off-by: Biju Das <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Biju Das authored and mchehab committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    ac8d82f View commit details
    Browse the repository at this point in the history
  27. media: v4l: vsp1: Fix uif null pointer access

    RZ/G2L SoC has no UIF. This patch fixes null pointer access, when UIF
    module is not used.
    
    Fixes: 5e824f9("media: v4l: vsp1: Integrate DISCOM in display pipeline")
    Signed-off-by: Biju Das <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Biju Das authored and mchehab committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    6732f31 View commit details
    Browse the repository at this point in the history
  28. media: rkisp1: params: fix wrong bits settings

    The histogram mode is set using 'rkisp1_params_set_bits'.
    Only the bits of the mode should be the value argument for
    that function. Otherwise bits outside the mode mask are
    turned on which is not what was intended.
    
    Fixes: bae1155 ("media: staging: rkisp1: add output device for parameters")
    Signed-off-by: Dafna Hirschfeld <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Dafna Hirschfeld authored and mchehab committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    2025a48 View commit details
    Browse the repository at this point in the history
  29. nvme: set max_zone_append_sectors nvme_revalidate_zones

    The chunk_sectors value affects max_zone_append_sectors.
    
    Signed-off-by: Chaitanya Kulkarni <[email protected]>
    Reviewed-by: Keith Busch <[email protected]>
    Tested-by: Kanchan Joshi <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    ChaitanayaKulkarni authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    e6ad559 View commit details
    Browse the repository at this point in the history
  30. nvme: simplify error logic in nvme_validate_ns()

    We only should remove namespaces when we get fatal error back from
    the device or when the namespace IDs have changed.
    So instead of painfully masking out error numbers which might indicate
    that the error should be ignored we could use an NVME status code
    to indicated when the namespace should be removed.
    That simplifies the final logic and makes it less error-prone.
    
    Signed-off-by: Hannes Reinecke <[email protected]>
    Reviewed-by: Keith Busch <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Reviewed-by: Daniel Wagner <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    hreinecke authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    d95c1f4 View commit details
    Browse the repository at this point in the history
  31. nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()

    NVME_REQ_CANCELLED is translated into -EINTR in nvme_submit_sync_cmd(),
    so we should be setting this flags during nvme_cancel_request() to
    ensure that the callers to nvme_submit_sync_cmd() will get the correct
    error code when the controller is reset.
    
    Signed-off-by: Hannes Reinecke <[email protected]>
    Reviewed-by: Keith Busch <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Reviewed-by: Chao Leng <[email protected]>
    Reviewed-by: Daniel Wagner <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    hreinecke authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    d358938 View commit details
    Browse the repository at this point in the history
  32. nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange()

    nvme_fc_terminate_exchange() is being called when exchanges are
    being deleted, and as such we should be setting the NVME_REQ_CANCELLED
    flag to have identical behaviour on all transports.
    
    Signed-off-by: Hannes Reinecke <[email protected]>
    Reviewed-by: Keith Busch <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Reviewed-by: James Smart <[email protected]>
    Reviewed-by: Daniel Wagner <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    hreinecke authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    3c7aafb View commit details
    Browse the repository at this point in the history
  33. nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted

    When a command has been aborted we should return NVME_SC_HOST_ABORTED_CMD
    to be consistent with the other transports.
    
    Signed-off-by: Hannes Reinecke <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Reviewed-by: James Smart <[email protected]>
    Reviewed-by: Daniel Wagner <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    hreinecke authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    ae3afe6 View commit details
    Browse the repository at this point in the history
  34. nvme-fc: fix racing controller reset and create association

    Recent patch to prevent calling __nvme_fc_abort_outstanding_ios in
    interrupt context results in a possible race condition. A controller
    reset results in errored io completions, which schedules error
    work. The change of error work to a work element allows it to fire
    after the ctrl state transition to NVME_CTRL_CONNECTING, causing
    any outstanding io (used to initialize the controller) to fail and
    cause problems for connect_work.
    
    Add a state check to only schedule error work if not in the RESETTING
    state.
    
    Fixes: 19fce04 ("nvme-fc: avoid calling _nvme_fc_abort_outstanding_ios from interrupt context")
    Signed-off-by: Nigel Kirkland <[email protected]>
    Signed-off-by: James Smart <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    jsmart-gh authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    f20ef34 View commit details
    Browse the repository at this point in the history
  35. nvme-core: check ctrl css before setting up zns

    Ensure multiple Command Sets are supported before starting to setup a
    ZNS namespace.
    
    Signed-off-by: Chaitanya Kulkarni <[email protected]>
    [hch: move the check around a bit]
    Signed-off-by: Christoph Hellwig <[email protected]>
    ChaitanayaKulkarni authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    0ec84df View commit details
    Browse the repository at this point in the history
  36. nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done

    In nvmet_rdma_write_data_done, rsp is recoverd by wc->wr_cqe and freed by
    nvmet_rdma_release_rsp(). But after that, pr_info() used the freed
    chunk's member object and could leak the freed chunk address with
    wc->wr_cqe by computing the offset.
    
    Signed-off-by: Lv Yunlong <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    Yunlongs authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    abec656 View commit details
    Browse the repository at this point in the history
  37. nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a

    This adds a quirk for Samsung PM1725a drive which fixes timeouts and
    I/O errors due to the fact that the controller does not properly
    handle the Write Zeroes command, dmesg log:
    
    nvme nvme0: I/O 528 QID 10 timeout, aborting
    nvme nvme0: I/O 529 QID 10 timeout, aborting
    nvme nvme0: I/O 530 QID 10 timeout, aborting
    nvme nvme0: I/O 531 QID 10 timeout, aborting
    nvme nvme0: I/O 532 QID 10 timeout, aborting
    nvme nvme0: I/O 533 QID 10 timeout, aborting
    nvme nvme0: I/O 534 QID 10 timeout, aborting
    nvme nvme0: I/O 535 QID 10 timeout, aborting
    nvme nvme0: Abort status: 0x0
    nvme nvme0: Abort status: 0x0
    nvme nvme0: Abort status: 0x0
    nvme nvme0: Abort status: 0x0
    nvme nvme0: Abort status: 0x0
    nvme nvme0: Abort status: 0x0
    nvme nvme0: Abort status: 0x0
    nvme nvme0: Abort status: 0x0
    nvme nvme0: I/O 528 QID 10 timeout, reset controller
    nvme nvme0: controller is down; will reset: CSTS=0x3, PCI_STATUS=0x10
    nvme nvme0: Device not ready; aborting reset, CSTS=0x3
    nvme nvme0: Device not ready; aborting reset, CSTS=0x3
    nvme nvme0: Removing after probe failure status: -19
    nvme0n1: detected capacity change from 6251233968 to 0
    blk_update_request: I/O error, dev nvme0n1, sector 32776 op 0x1:(WRITE) flags 0x3000 phys_seg 6 prio class 0
    blk_update_request: I/O error, dev nvme0n1, sector 113319936 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0
    Buffer I/O error on dev nvme0n1p2, logical block 1, lost async page write
    blk_update_request: I/O error, dev nvme0n1, sector 113319680 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    Buffer I/O error on dev nvme0n1p2, logical block 2, lost async page write
    blk_update_request: I/O error, dev nvme0n1, sector 113319424 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    Buffer I/O error on dev nvme0n1p2, logical block 3, lost async page write
    blk_update_request: I/O error, dev nvme0n1, sector 113319168 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    Buffer I/O error on dev nvme0n1p2, logical block 4, lost async page write
    blk_update_request: I/O error, dev nvme0n1, sector 113318912 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    Buffer I/O error on dev nvme0n1p2, logical block 5, lost async page write
    blk_update_request: I/O error, dev nvme0n1, sector 113318656 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    Buffer I/O error on dev nvme0n1p2, logical block 6, lost async page write
    blk_update_request: I/O error, dev nvme0n1, sector 113318400 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    blk_update_request: I/O error, dev nvme0n1, sector 113318144 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    blk_update_request: I/O error, dev nvme0n1, sector 113317888 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
    
    Signed-off-by: Dmitry Monakhov <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    Dmitry Monakhov authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    abbb5f5 View commit details
    Browse the repository at this point in the history
  38. configfs: fix a use-after-free in __configfs_open_file

    Commit b0841ee ("configfs: provide exclusion between IO and removals")
    uses ->frag_dead to mark the fragment state, thus no bothering with extra
    refcount on config_item when opening a file. The configfs_get_config_item
    was removed in __configfs_open_file, but not with config_item_put. So the
    refcount on config_item will lost its balance, causing use-after-free
    issues in some occasions like this:
    
    Test:
    1. Mount configfs on /config with read-only items:
    drwxrwx--- 289 root   root            0 2021-04-01 11:55 /config
    drwxr-xr-x   2 root   root            0 2021-04-01 11:54 /config/a
    --w--w--w-   1 root   root         4096 2021-04-01 11:53 /config/a/1.txt
    ......
    
    2. Then run:
    for file in /config
    do
    echo $file
    grep -R 'key' $file
    done
    
    3. __configfs_open_file will be called in parallel, the first one
    got called will do:
    if (file->f_mode & FMODE_READ) {
    	if (!(inode->i_mode & S_IRUGO))
    		goto out_put_module;
    			config_item_put(buffer->item);
    				kref_put()
    					package_details_release()
    						kfree()
    
    the other one will run into use-after-free issues like this:
    BUG: KASAN: use-after-free in __configfs_open_file+0x1bc/0x3b0
    Read of size 8 at addr fffffff155f02480 by task grep/13096
    CPU: 0 PID: 13096 Comm: grep VIP: 00 Tainted: G        W       4.14.116-kasan #1
    TGID: 13096 Comm: grep
    Call trace:
    dump_stack+0x118/0x160
    kasan_report+0x22c/0x294
    __asan_load8+0x80/0x88
    __configfs_open_file+0x1bc/0x3b0
    configfs_open_file+0x28/0x34
    do_dentry_open+0x2cc/0x5c0
    vfs_open+0x80/0xe0
    path_openat+0xd8c/0x2988
    do_filp_open+0x1c4/0x2fc
    do_sys_open+0x23c/0x404
    SyS_openat+0x38/0x48
    
    Allocated by task 2138:
    kasan_kmalloc+0xe0/0x1ac
    kmem_cache_alloc_trace+0x334/0x394
    packages_make_item+0x4c/0x180
    configfs_mkdir+0x358/0x740
    vfs_mkdir2+0x1bc/0x2e8
    SyS_mkdirat+0x154/0x23c
    el0_svc_naked+0x34/0x38
    
    Freed by task 13096:
    kasan_slab_free+0xb8/0x194
    kfree+0x13c/0x910
    package_details_release+0x524/0x56c
    kref_put+0xc4/0x104
    config_item_put+0x24/0x34
    __configfs_open_file+0x35c/0x3b0
    configfs_open_file+0x28/0x34
    do_dentry_open+0x2cc/0x5c0
    vfs_open+0x80/0xe0
    path_openat+0xd8c/0x2988
    do_filp_open+0x1c4/0x2fc
    do_sys_open+0x23c/0x404
    SyS_openat+0x38/0x48
    el0_svc_naked+0x34/0x38
    
    To fix this issue, remove the config_item_put in
    __configfs_open_file to balance the refcount of config_item.
    
    Fixes: b0841ee ("configfs: provide exclusion between IO and removals")
    Signed-off-by: Daiyue Zhang <[email protected]>
    Signed-off-by: Yi Chen <[email protected]>
    Signed-off-by: Ge Qiu <[email protected]>
    Reviewed-by: Chao Yu <[email protected]>
    Acked-by: Al Viro <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    Daiyue Zhang authored and Christoph Hellwig committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    14fbbc8 View commit details
    Browse the repository at this point in the history
  39. usb: xhci: do not perform Soft Retry for some xHCI hosts

    On some systems rt2800usb and mt7601u devices are unable to operate since
    commit f8f80be ("xhci: Use soft retry to recover faster from
    transaction errors")
    
    Seems that some xHCI controllers can not perform Soft Retry correctly,
    affecting those devices.
    
    To avoid the problem add xhci->quirks flag that restore pre soft retry
    xhci behaviour for affected xHCI controllers. Currently those are
    AMD_PROMONTORYA_4 and AMD_PROMONTORYA_2, since it was confirmed
    by the users: on those xHCI hosts issue happen and is gone after
    disabling Soft Retry.
    
    [minor commit message rewording for checkpatch -Mathias]
    
    Fixes: f8f80be ("xhci: Use soft retry to recover faster from transaction errors")
    Cc: <[email protected]> # 4.20+
    Reported-by: Bernhard <[email protected]>
    Tested-by: Bernhard <[email protected]>
    Signed-off-by: Stanislaw Gruszka <[email protected]>
    Signed-off-by: Mathias Nyman <[email protected]>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202541
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    sgruszka authored and gregkh committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    a4a251f View commit details
    Browse the repository at this point in the history
  40. xhci: Improve detection of device initiated wake signal.

    A xHC USB 3 port might miss the first wake signal from a USB 3 device
    if the port LFPS reveiver isn't enabled fast enough after xHC resume.
    
    xHC host will anyway be resumed by a PME# signal, but will go back to
    suspend if no port activity is seen.
    The device resends the U3 LFPS wake signal after a 100ms delay, but
    by then host is already suspended, starting all over from the
    beginning of this issue.
    
    USB 3 specs say U3 wake LFPS signal is sent for max 10ms, then device
    needs to delay 100ms before resending the wake.
    
    Don't suspend immediately if port activity isn't detected in resume.
    Instead add a retry. If there is no port activity then delay for 120ms,
    and re-check for port activity.
    
    Cc: <[email protected]>
    Signed-off-by: Mathias Nyman <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    matnyman authored and gregkh committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    253f588 View commit details
    Browse the repository at this point in the history
  41. usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing

    I've confirmed that both the ASMedia ASM1042A and ASM3242 have the same
    problem as the ASM1142 and ASM2142/ASM3142, where they lose some of the
    upper bits of 64-bit DMA addresses. As with the other chips, this can
    cause problems on systems where the upper bits matter, and adding the
    XHCI_NO_64BIT_SUPPORT quirk completely fixes the issue.
    
    Cc: [email protected]
    Signed-off-by: Forest Crossman <[email protected]>
    Signed-off-by: Mathias Nyman <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    cyrozap authored and gregkh committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    b71c669 View commit details
    Browse the repository at this point in the history
  42. xhci: Fix repeated xhci wake after suspend due to uncleared internal …

    …wake state
    
    If port terminations are detected in suspend, but link never reaches U0
    then xHCI may have an internal uncleared wake state that will cause an
    immediate wake after suspend.
    
    This wake state is normally cleared when driver clears the PORT_CSC bit,
    which is set after a device is enabled and in U0.
    
    Write 1 to clear PORT_CSC for ports that don't have anything connected
    when suspending. This makes sure any pending internal wake states in
    xHCI are cleared.
    
    Cc: [email protected]
    Tested-by: Mika Westerberg <[email protected]>
    Signed-off-by: Mathias Nyman <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    matnyman authored and gregkh committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    d26c00e View commit details
    Browse the repository at this point in the history
  43. arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds

    52-bit VA kernels can run on hardware that is only 48-bit capable, but
    configure the ID map as 52-bit by default. This was not a problem until
    recently, because the special T0SZ value for a 52-bit VA space was never
    programmed into the TCR register anwyay, and because a 52-bit ID map
    happens to use the same number of translation levels as a 48-bit one.
    
    This behavior was changed by commit 1401bef ("arm64: mm: Always update
    TCR_EL1 from __cpu_set_tcr_t0sz()"), which causes the unsupported T0SZ
    value for a 52-bit VA to be programmed into TCR_EL1. While some hardware
    simply ignores this, Mark reports that Amberwing systems choke on this,
    resulting in a broken boot. But even before that commit, the unsupported
    idmap_t0sz value was exposed to KVM and used to program TCR_EL2 incorrectly
    as well.
    
    Given that we already have to deal with address spaces being either 48-bit
    or 52-bit in size, the cleanest approach seems to be to simply default to
    a 48-bit VA ID map, and only switch to a 52-bit one if the placement of the
    kernel in DRAM requires it. This is guaranteed not to happen unless the
    system is actually 52-bit VA capable.
    
    Fixes: 90ec95c ("arm64: mm: Introduce VA_BITS_MIN")
    Reported-by: Mark Salter <[email protected]>
    Link: http://lore.kernel.org/r/[email protected]
    Signed-off-by: Ard Biesheuvel <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    ardbiesheuvel authored and willdeacon committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    7ba8f2b View commit details
    Browse the repository at this point in the history
  44. arm64: mm: remove unused __cpu_uses_extended_idmap[_level()]

    These routines lost all existing users during the latest merge window so
    we can remove them. This avoids the need to fix them in the context of
    fixing a regression related to the ID map on 52-bit VA kernels.
    
    Signed-off-by: Ard Biesheuvel <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    ardbiesheuvel authored and willdeacon committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    30b2675 View commit details
    Browse the repository at this point in the history
  45. regulator: mt6315: Fix off-by-one for .n_voltages

    The valid selector is 0 ~ 0xbf, so the .n_voltages should be 0xc0.
    
    Signed-off-by: Axel Lin <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    AxelLin authored and broonie committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    d450293 View commit details
    Browse the repository at this point in the history
  46. block: rename BIO_MAX_PAGES to BIO_MAX_VECS

    Ever since the addition of multipage bio_vecs BIO_MAX_PAGES has been
    horribly confusingly misnamed.  Rename it to BIO_MAX_VECS to stop
    confusing users of the bio API.
    
    Signed-off-by: Christoph Hellwig <[email protected]>
    Reviewed-by: Matthew Wilcox (Oracle) <[email protected]>
    Reviewed-by: Martin K. Petersen <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    Christoph Hellwig authored and axboe committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    a8affc0 View commit details
    Browse the repository at this point in the history
  47. io_uring: force creation of separate context for ATTACH_WQ and non-th…

    …reads
    
    Earlier kernels had SQPOLL threads that could share across anything, as
    we grabbed the context we needed on a per-ring basis. This is no longer
    the case, so only allow attaching directly if we're in the same thread
    group. That is the common use case. For non-group tasks, just setup a
    new context and thread as we would've done if sharing wasn't set. This
    isn't 100% ideal in terms of CPU utilization for the forked and share
    case, but hopefully that isn't much of a concern. If it is, there are
    plans in motion for how to improve that. Most importantly, we want to
    avoid app side regressions where sharing worked before and now doesn't.
    With this patch, functionality is equivalent to previous kernels that
    supported IORING_SETUP_ATTACH_WQ with SQPOLL.
    
    Reported-by: Stefan Metzmacher <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    5c2469e View commit details
    Browse the repository at this point in the history
  48. io_uring: perform IOPOLL reaping if canceler is thread itself

    We bypass IOPOLL completion polling (and reaping) for the SQPOLL thread,
    but if it's the thread itself invoking cancelations, then we still need
    to perform it or no one will.
    
    Fixes: 9936c7c ("io_uring: deduplicate core cancellations sequence")
    Signed-off-by: Jens Axboe <[email protected]>
    axboe committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    d052d1d View commit details
    Browse the repository at this point in the history
  49. nfs: we don't support removing system.nfs4_acl

    The NFSv4 protocol doesn't have any notion of reomoving an attribute, so
    removexattr(path,"system.nfs4_acl") doesn't make sense.
    
    There's no documented return value.  Arguably it could be EOPNOTSUPP but
    I'm a little worried an application might take that to mean that we
    don't support ACLs or xattrs.  How about EINVAL?
    
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    J. Bruce Fields authored and amschuma-ntap committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    4f8be1f View commit details
    Browse the repository at this point in the history
  50. Merge tag 'media/v5.12-2' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/mchehab/linux-media
    
    Pull media fixes from Mauro Carvalho Chehab:
     "A couple of fixes:
    
       - fix a build issue with CEC
    
       - fix a deadlock at usbtv driver
    
       - fix some null pointer address issues at vsp1 driver
    
       - fix a wrong bitmap setting at rkisp1 driver"
    
    * tag 'media/v5.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
      media: rkisp1: params: fix wrong bits settings
      media: v4l: vsp1: Fix uif null pointer access
      media: v4l: vsp1: Fix bru null pointer access
      media: usbtv: Fix deadlock on suspend
      media: rc: compile rc-cec.c into rc-core
    torvalds committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    28806e4 View commit details
    Browse the repository at this point in the history
  51. block: Suppress uevent for hidden device when removed

    register_disk() suppress uevents for devices with the GENHD_FL_HIDDEN
    but enables uevents at the end again in order to announce disk after
    possible partitions are created.
    
    When the device is removed the uevents are still on and user land sees
    'remove' messages for devices which were never 'add'ed to the system.
    
      KERNEL[95481.571887] remove   /devices/virtual/nvme-fabrics/ctl/nvme5/nvme0c5n1 (block)
    
    Let's suppress the uevents for GENHD_FL_HIDDEN by not enabling the
    uevents at all.
    
    Signed-off-by: Daniel Wagner <[email protected]>
    Reviewed-by: Christoph Hellwig <[email protected]>
    Reviewed-by: Martin Wilck <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    igaw authored and axboe committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    9ec4914 View commit details
    Browse the repository at this point in the history
  52. block: Discard page cache of zone reset target range

    When zone reset ioctl and data read race for a same zone on zoned block
    devices, the data read leaves stale page cache even though the zone
    reset ioctl zero clears all the zone data on the device. To avoid
    non-zero data read from the stale page cache after zone reset, discard
    page cache of reset target zones in blkdev_zone_mgmt_ioctl(). Introduce
    the helper function blkdev_truncate_zone_range() to discard the page
    cache. Ensure the page cache discarded by calling the helper function
    before and after zone reset in same manner as fallocate does.
    
    This patch can be applied back to the stable kernel version v5.10.y.
    Rework is needed for older stable kernels.
    
    Signed-off-by: Shin'ichiro Kawasaki <[email protected]>
    Fixes: 3ed05a9 ("blk-zoned: implement ioctls")
    Cc: <[email protected]> # 5.10+
    Reviewed-by: Christoph Hellwig <[email protected]>
    Reviewed-by: Johannes Thumshirn <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    kawasaki authored and axboe committed Mar 11, 2021
    Configuration menu
    Copy the full SHA
    e511350 View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2021

  1. powerpc/traps: unrecoverable_exception() is not an interrupt handler

    unrecoverable_exception() is called from interrupt handlers or
    after an interrupt handler has failed.
    
    Make it a standard function to avoid doubling the actions
    performed on interrupt entry (e.g.: user time accounting).
    
    Fixes: 3a96570 ("powerpc: convert interrupt handlers to use wrappers")
    Signed-off-by: Christophe Leroy <[email protected]>
    Reviewed-by: Nicholas Piggin <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Link: https://lore.kernel.org/r/ae96c59fa2cb7f24a8929c58cfa2c909cb8ff1f1.1615291471.git.christophe.leroy@csgroup.eu
    chleroy authored and mpe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    0b73688 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'drm-misc-fixes-2021-03-11' of git://anongit.freedesktop.or…

    …g/drm/drm-misc into drm-fixes
    
    drm-misc-fixes for rc3, rebased on rc2:
    - Fix oops in drm_fbdev_cleanup()
    - unpin qxl bos created as pinned when freeing them,
      and make ttm only warn once on this behavior.
    - Use LCD management for atyfb on PPC_MAC.
    - Use gitlab for drm bugzilla now.
    - Fix ttm page pool accounting.
    - Zero head.surface_id correctly in qxl.
    - Assorted fixes for shmem helpers.
    - Shutdown kms poll helper in meson correctly.
    - Clear holes when converting compat ioctl's between 32-bits and 64-bits.
    
    Signed-off-by: Dave Airlie <[email protected]>
    
    From: Maarten Lankhorst <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    airlied committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    e0da968 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'amd-drm-fixes-5.12-2021-03-10' of https://gitlab.freedeskt…

    …op.org/agd5f/linux into drm-fixes
    
    amd-drm-fixes-5.12-2021-03-10:
    
    amdgpu:
    - Fix aux backlight control
    - Add a backlight override parameter
    - Various display fixes
    - PCIe DPM fix for vega
    - Polaris watermark fixes
    - Additional S0ix fix
    
    radeon:
    - Fix GEM regression
    - Fix AGP dependency handling
    
    Signed-off-by: Dave Airlie <[email protected]>
    From: Alex Deucher <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    airlied committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    fb19848 View commit details
    Browse the repository at this point in the history
  4. drm/i915: Wedge the GPU if command parser setup fails

    Commit 311a50e ("drm/i915: Add support for mandatory cmdparsing")
    introduced mandatory command parsing but setup failures were not
    translated into wedging the GPU which was probably the intent.
    
    Possible errors come in two categories. Either the sanity check on
    internal tables has failed, which should be caught in CI unless an
    affected platform would be missed in testing; or memory allocation failure
    happened during driver load, which should be extremely unlikely but for
    correctness should still be handled.
    
    v2:
     * Tidy coding style. (Chris)
    
    [airlied: cherry-picked to avoid rc1 base]
    Signed-off-by: Tvrtko Ursulin <[email protected]>
    Fixes: 311a50e ("drm/i915: Add support for mandatory cmdparsing")
    Cc: Jon Bloomfield <[email protected]>
    Cc: Joonas Lahtinen <[email protected]>
    Cc: Chris Wilson <[email protected]>
    Reviewed-by: Chris Wilson <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    (cherry picked from commit 5a1a659)
    Signed-off-by: Rodrigo Vivi <[email protected]>
    Signed-off-by: Dave Airlie <[email protected]>
    tursulin authored and airlied committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    a829f03 View commit details
    Browse the repository at this point in the history
  5. drm/nouveau: fix dma syncing for loops (v2)

    The index variable should only be increased in one place.
    
    Noticed this while trying to track down another oops.
    
    v2: use while loop.
    
    Fixes: f295c8c ("drm/nouveau: fix dma syncing warning with debugging on.")
    Signed-off-by: Dave Airlie <[email protected]>
    Reviewed-by: Michael J. Ruhl <[email protected]>
    Signed-off-by: Dave Airlie <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    airlied committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    4042160 View commit details
    Browse the repository at this point in the history
  6. Merge tag 'drm-fixes-2021-03-12-1' of git://anongit.freedesktop.org/d…

    …rm/drm
    
    Pull drm fixes from Dave Airlie:
     "Regular fixes for rc3. The i915 pull was based on the rc1 tag so I
      just cherry-picked the single fix from there to avoid it. The misc and
      amd trees seem to be on okay bases.
    
      It's a bunch of fixes across the tree, amdgpu has most of them a few
      ttm fixes around qxl, and nouveau.
    
      core:
       - Clear holes when converting compat ioctl's between 32-bits and
         64-bits.
    
      docs:
       - Use gitlab for drm bugzilla now.
    
      ttm:
       - Fix ttm page pool accounting.
    
      fbdev:
       - Fix oops in drm_fbdev_cleanup()
    
      shmem:
       - Assorted fixes for shmem helpers.
    
      qxl:
       - unpin qxl bos created as pinned when freeing them, and make ttm
         only warn once on this behavior.
       - Zero head.surface_id correctly in qxl.
    
      atyfb:
       - Use LCD management for atyfb on PPC_MAC.
    
      meson:
       - Shutdown kms poll helper in meson correctly.
    
      nouveau:
       - fix regression in bo syncing
    
      i915:
       - Wedge the GPU if command parser setup fails
    
      amdgpu:
       - Fix aux backlight control
       - Add a backlight override parameter
       - Various display fixes
       - PCIe DPM fix for vega
       - Polaris watermark fixes
       - Additional S0ix fix
    
      radeon:
       - Fix GEM regression
       - Fix AGP dependency handling"
    
    * tag 'drm-fixes-2021-03-12-1' of git://anongit.freedesktop.org/drm/drm: (33 commits)
      drm/nouveau: fix dma syncing for loops (v2)
      drm/i915: Wedge the GPU if command parser setup fails
      drm/compat: Clear bounce structures
      drm/shmem-helpers: vunmap: Don't put pages for dma-buf
      drm: meson_drv add shutdown function
      drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff
      drm/shmem-helper: Check for purged buffers in fault handler
      qxl: Fix uninitialised struct field head.surface_id
      drm/ttm: Fix TTM page pool accounting
      drm/ttm: soften TTM warnings
      drm: Use USB controller's DMA mask when importing dmabufs
      MAINTAINERS: update drm bug reporting URL
      fbdev: atyfb: use LCD management functions for PPC_PMAC also
      fbdev: atyfb: always declare aty_{ld,st}_lcd()
      drm/qxl: fix lockdep issue in qxl_alloc_release_reserved
      drm/qxl: unpin release objects
      drm/fb-helper: only unmap if buffer not null
      drm/amdgpu: fix S0ix handling when the CONFIG_AMD_PMC=m
      drm/radeon: fix AGP dependency
      drm/radeon: also init GEM funcs in radeon_gem_prime_import_sg_table
      ...
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    f78d76e View commit details
    Browse the repository at this point in the history
  7. opp: Don't drop extra references to OPPs accidentally

    We are required to call dev_pm_opp_put() from outside of the
    opp_table->lock as debugfs removal needs to happen lock-less to avoid
    circular dependency issues.
    
    commit cf1fac9 ("opp: Reduce the size of critical section in
    _opp_kref_release()") tried to fix that introducing a new routine
    _opp_get_next() which keeps returning OPPs that can be freed by the
    callers and this routine shall be called without holding the
    opp_table->lock.
    
    Though the commit overlooked the fact that the OPPs can be referenced by
    other users as well and this routine will end up dropping references
    which were taken by other users and hence freeing the OPPs prematurely.
    
    In effect, other users of the OPPs will end up having invalid pointers
    at hand. We didn't see any crash reports earlier as the exact situation
    never happened, though it is certainly possible.
    
    We need a way to mark which OPPs are no longer referenced by the OPP
    core, so we don't drop extra references to them accidentally.
    
    This commit adds another OPP flag, "removed", which is used to track
    this. And now we should never end up dropping extra references to the
    OPPs.
    
    Cc: v5.11+ <[email protected]> # v5.11+
    Fixes: cf1fac9 ("opp: Reduce the size of critical section in _opp_kref_release()")
    Signed-off-by: Beata Michalska <[email protected]>
    [ Viresh: Almost rewrote entire patch, added new "removed" field,
    	  rewrote commit log and added the correct Fixes tag. ]
    Co-developed-by: Viresh Kumar <[email protected]>
    Signed-off-by: Viresh Kumar <[email protected]>
    bea-arm authored and vireshk committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    606a5d4 View commit details
    Browse the repository at this point in the history
  8. objtool,x86: Fix uaccess PUSHF/POPF validation

    Commit ab234a2 ("x86/pv: Rework arch_local_irq_restore() to not
    use popf") replaced "push %reg; popf" with something like: "test
    $0x200, %reg; jz 1f; sti; 1:", which breaks the pushf/popf symmetry
    that commit ea24213 ("objtool: Add UACCESS validation") relies
    on.
    
    The result is:
    
      drivers/gpu/drm/amd/amdgpu/si.o: warning: objtool: si_common_hw_init()+0xf36: PUSHF stack exhausted
    
    Meanwhile, commit c9c324d ("objtool: Support stack layout changes
    in alternatives") makes that we can actually use stack-ops in
    alternatives, which means we can revert 1ff865e ("x86,smap: Fix
    smap_{save,restore}() alternatives").
    
    That in turn means we can limit the PUSHF/POPF handling of
    ea24213 to those instructions that are in alternatives.
    
    Fixes: ab234a2 ("x86/pv: Rework arch_local_irq_restore() to not use popf")
    Reported-by: Borislav Petkov <[email protected]>
    Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
    Acked-by: Josh Poimboeuf <[email protected]>
    Link: https://lkml.kernel.org/r/[email protected]
    Peter Zijlstra committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    ba08abc View commit details
    Browse the repository at this point in the history
  9. perf/arm_dmc620_pmu: Fix error return code in dmc620_pmu_device_probe()

    Fix to return negative error code -ENOMEM from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 53c218d ("driver/perf: Add PMU driver for the ARM DMC-620 memory controller")
    Reported-by: Hulk Robot <[email protected]>
    Signed-off-by: Wei Yongjun <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    Wei Yongjun authored and willdeacon committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    c8e3866 View commit details
    Browse the repository at this point in the history
  10. gfs2: bypass signal_our_withdraw if no journal

    Before this patch, function signal_our_withdraw referenced the journal
    inode immediately. But corrupt file systems may have some invalid
    journals, in which case our attempt to read it in will withdraw and the
    resulting signal_our_withdraw would dereference the NULL value.
    
    This patch adds a check to signal_our_withdraw so that if the journal
    has not yet been initialized, it simply returns and does the old-style
    withdraw.
    
    Thanks, Andy Price, for his analysis.
    
    Reported-by: [email protected]
    Fixes: 601ef0d ("gfs2: Force withdraw to replay journals and wait for it to finish")
    Signed-off-by: Bob Peterson <[email protected]>
    Signed-off-by: Andreas Gruenbacher <[email protected]>
    AstralBob authored and Andreas Gruenbacher committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    d5bf630 View commit details
    Browse the repository at this point in the history
  11. Merge tag 'nvme-5.12-2021-03-12' of git://git.infradead.org/nvme into…

    … block-5.12
    
    Pull NVMe fixes from Christoph:
    
    "nvme fixes for 5.12:
    
     - one more quirk (Dmitry Monakhov)
     - fix max_zone_append_sectors initialization (Chaitanya Kulkarni)
     - nvme-fc reset/create race fix (James Smart)
     - fix status code on aborts/resets (Hannes Reinecke)
     - fix the CSS check for ZNS namespaces (Chaitanya Kulkarni)
     - fix a use after free in a debug printk in nvme-rdma (Lv Yunlong)"
    
    * tag 'nvme-5.12-2021-03-12' of git://git.infradead.org/nvme:
      nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a
      nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done
      nvme-core: check ctrl css before setting up zns
      nvme-fc: fix racing controller reset and create association
      nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted
      nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange()
      nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
      nvme: simplify error logic in nvme_validate_ns()
      nvme: set max_zone_append_sectors nvme_revalidate_zones
    axboe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    d4b64fd View commit details
    Browse the repository at this point in the history
  12. io_uring: cancel deferred requests in try_cancel

    As io_uring_cancel_files() and others let SQO to run between
    io_uring_try_cancel_requests(), SQO may generate new deferred requests,
    so it's safer to try to cancel them in it.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    e1915f7 View commit details
    Browse the repository at this point in the history
  13. io_uring: remove useless ->startup completion

    We always do complete(&sqd->startup) almost right after sqd->thread
    creation, either in the success path or in io_sq_thread_finish(). It's
    specifically created not started for us to be able to set some stuff
    like sqd->thread and io_uring_alloc_task_context() before following
    right after wake_up_new_task().
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    0df8ea6 View commit details
    Browse the repository at this point in the history
  14. gfs2: bypass log flush if the journal is not live

    Patch fe3e397 ("gfs2: Rework the log space allocation logic")
    changed gfs2_log_flush to reserve a set of journal blocks in case no
    transaction is active.  However, gfs2_log_flush also gets called in
    cases where we don't have an active journal, for example, for spectator
    mounts.  In that case, trying to reserve blocks would sleep forever, but
    we want gfs2_log_flush to be a no-op instead.
    
    Fixes: fe3e397 ("gfs2: Rework the log space allocation logic")
    Signed-off-by: Bob Peterson <[email protected]>
    Signed-off-by: Andreas Gruenbacher <[email protected]>
    AstralBob authored and Andreas Gruenbacher committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    0efc497 View commit details
    Browse the repository at this point in the history
  15. KVM: arm64: Reject VM creation when the default IPA size is unsupported

    KVM/arm64 has forever used a 40bit default IPA space, partially
    due to its 32bit heritage (where the only choice is 40bit).
    
    However, there are implementations in the wild that have a *cough*
    much smaller *cough* IPA space, which leads to a misprogramming of
    VTCR_EL2, and a guest that is stuck on its first memory access
    if userspace dares to ask for the default IPA setting (which most
    VMMs do).
    
    Instead, blundly reject the creation of such VM, as we can't
    satisfy the requirements from userspace (with a one-off warning).
    Also clarify the boot warning, and document that the VM creation
    will fail when an unsupported IPA size is provided.
    
    Although this is an ABI change, it doesn't really change much
    for userspace:
    
    - the guest couldn't run before this change, but no error was
      returned. At least userspace knows what is happening.
    
    - a memory slot that was accepted because it did fit the default
      IPA space now doesn't even get a chance to be registered.
    
    The other thing that is left doing is to convince userspace to
    actually use the IPA space setting instead of relying on the
    antiquated default.
    
    Fixes: 233a7cb ("kvm: arm64: Allow tuning the physical address size for VM")
    Signed-off-by: Marc Zyngier <[email protected]>
    Cc: [email protected]
    Reviewed-by: Andrew Jones <[email protected]>
    Reviewed-by: Eric Auger <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Marc Zyngier committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    7d71755 View commit details
    Browse the repository at this point in the history
  16. KVM: arm64: Fix exclusive limit for IPA size

    When registering a memslot, we check the size and location of that
    memslot against the IPA size to ensure that we can provide guest
    access to the whole of the memory.
    
    Unfortunately, this check rejects memslot that end-up at the exact
    limit of the addressing capability for a given IPA size. For example,
    it refuses the creation of a 2GB memslot at 0x8000000 with a 32bit
    IPA space.
    
    Fix it by relaxing the check to accept a memslot reaching the
    limit of the IPA space.
    
    Fixes: c3058d5 ("arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE")
    Reviewed-by: Eric Auger <[email protected]>
    Signed-off-by: Marc Zyngier <[email protected]>
    Cc: [email protected]
    Reviewed-by: Andrew Jones <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Marc Zyngier committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    262b003 View commit details
    Browse the repository at this point in the history
  17. io_uring: prevent racy sqd->thread checks

    SQPOLL thread to which we're trying to attach may be going away, it's
    not nice but a more serious problem is if io_sq_offload_create() sees
    sqd->thread==NULL, and tries to init it with a new thread. There are
    tons of ways it can be exploited or fail.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    26984fb View commit details
    Browse the repository at this point in the history
  18. io_uring: cancel sqpoll via task_work

    1) The first problem is io_uring_cancel_sqpoll() ->
    io_uring_cancel_task_requests() basically doing park(); park(); and so
    hanging.
    
    2) Another one is more subtle, when the master task is doing cancellations,
    but SQPOLL task submits in-between the end of the cancellation but
    before finish() requests taking a ref to the ctx, and so eternally
    locking it up.
    
    3) Yet another is a dying SQPOLL task doing io_uring_cancel_sqpoll() and
    same io_uring_cancel_sqpoll() from the owner task, they race for
    tctx->wait events. And there probably more of them.
    
    Instead do SQPOLL cancellations from within SQPOLL task context via
    task_work, see io_sqpoll_cancel_sync(). With that we don't need temporal
    park()/unpark() during cancellation, which is ugly, subtle and anyway
    doesn't allow to do io_run_task_work() properly.
    
    io_uring_cancel_sqpoll() is called only from SQPOLL task context and
    under sqd locking, so all parking is removed from there. And so,
    io_sq_thread_[un]park() and io_sq_thread_stop() are not used now by
    SQPOLL task, and that spare us from some headache.
    
    Also remove ctx->sqd_list early to avoid 2). And kill tctx->sqpoll,
    which is not used anymore.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    521d6a7 View commit details
    Browse the repository at this point in the history
  19. io_uring: fix OP_ASYNC_CANCEL across tasks

    IORING_OP_ASYNC_CANCEL tries io-wq cancellation only for current task.
    If it fails go over tctx_list and try it out for every single tctx.
    
    Signed-off-by: Pavel Begunkov <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    isilence authored and axboe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    58f9937 View commit details
    Browse the repository at this point in the history
  20. Merge branch 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/vireshk/pm
    
    Pull an operating performance points (OPP) framework fix for 5.12
    from Viresh Kumar:
    
    "Fix OPP refcount issue noticed by Beata."
    
    * 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm:
      opp: Don't drop extra references to OPPs accidentally
    rafaeljw committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    bee7359 View commit details
    Browse the repository at this point in the history
  21. Merge branch 'pm-opp'

    * pm-opp:
      opp: Don't drop extra references to OPPs accidentally
    rafaeljw committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    7180323 View commit details
    Browse the repository at this point in the history
  22. kvm: x86: annotate RCU pointers

    This patch adds the annotation to fix the following sparse errors:
    arch/x86/kvm//x86.c:8147:15: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//x86.c:8147:15:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//x86.c:8147:15:    struct kvm_apic_map *
    arch/x86/kvm//x86.c:10628:16: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//x86.c:10628:16:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//x86.c:10628:16:    struct kvm_apic_map *
    arch/x86/kvm//x86.c:10629:15: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//x86.c:10629:15:    struct kvm_pmu_event_filter [noderef] __rcu *
    arch/x86/kvm//x86.c:10629:15:    struct kvm_pmu_event_filter *
    arch/x86/kvm//lapic.c:267:15: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//lapic.c:267:15:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//lapic.c:267:15:    struct kvm_apic_map *
    arch/x86/kvm//lapic.c:269:9: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//lapic.c:269:9:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//lapic.c:269:9:    struct kvm_apic_map *
    arch/x86/kvm//lapic.c:637:15: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//lapic.c:637:15:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//lapic.c:637:15:    struct kvm_apic_map *
    arch/x86/kvm//lapic.c:994:15: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//lapic.c:994:15:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//lapic.c:994:15:    struct kvm_apic_map *
    arch/x86/kvm//lapic.c:1036:15: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//lapic.c:1036:15:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//lapic.c:1036:15:    struct kvm_apic_map *
    arch/x86/kvm//lapic.c:1173:15: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//lapic.c:1173:15:    struct kvm_apic_map [noderef] __rcu *
    arch/x86/kvm//lapic.c:1173:15:    struct kvm_apic_map *
    arch/x86/kvm//pmu.c:190:18: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//pmu.c:190:18:    struct kvm_pmu_event_filter [noderef] __rcu *
    arch/x86/kvm//pmu.c:190:18:    struct kvm_pmu_event_filter *
    arch/x86/kvm//pmu.c:251:18: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//pmu.c:251:18:    struct kvm_pmu_event_filter [noderef] __rcu *
    arch/x86/kvm//pmu.c:251:18:    struct kvm_pmu_event_filter *
    arch/x86/kvm//pmu.c:522:18: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//pmu.c:522:18:    struct kvm_pmu_event_filter [noderef] __rcu *
    arch/x86/kvm//pmu.c:522:18:    struct kvm_pmu_event_filter *
    arch/x86/kvm//pmu.c:522:18: error: incompatible types in comparison expression (different address spaces):
    arch/x86/kvm//pmu.c:522:18:    struct kvm_pmu_event_filter [noderef] __rcu *
    arch/x86/kvm//pmu.c:522:18:    struct kvm_pmu_event_filter *
    
    Signed-off-by: Muhammad Usama Anjum <[email protected]>
    Message-Id: <20210305191123.GA497469@LEGION>
    Signed-off-by: Paolo Bonzini <[email protected]>
    musamaanjum authored and bonzini committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    6fcd9cb View commit details
    Browse the repository at this point in the history
  23. KVM: kvmclock: Fix vCPUs > 64 can't be online/hotpluged

    # lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                88
    On-line CPU(s) list:   0-63
    Off-line CPU(s) list:  64-87
    
    # cat /proc/cmdline
    BOOT_IMAGE=/vmlinuz-5.10.0-rc3-tlinux2-0050+ root=/dev/mapper/cl-root ro
    rd.lvm.lv=cl/root rhgb quiet console=ttyS0 LANG=en_US .UTF-8 no-kvmclock-vsyscall
    
    # echo 1 > /sys/devices/system/cpu/cpu76/online
    -bash: echo: write error: Cannot allocate memory
    
    The per-cpu vsyscall pvclock data pointer assigns either an element of the
    static array hv_clock_boot (#vCPU <= 64) or dynamically allocated memory
    hvclock_mem (vCPU > 64), the dynamically memory will not be allocated if
    kvmclock vsyscall is disabled, this can result in cpu hotpluged fails in
    kvmclock_setup_percpu() which returns -ENOMEM. It's broken for no-vsyscall
    and sometimes you end up with vsyscall disabled if the host does something
    strange. This patch fixes it by allocating this dynamically memory
    unconditionally even if vsyscall is disabled.
    
    Fixes: 6a1cac5 ("x86/kvm: Use __bss_decrypted attribute in shared variables")
    Reported-by: Zelin Deng <[email protected]>
    Cc: Brijesh Singh <[email protected]>
    Cc: [email protected]#v4.19-rc5+
    Signed-off-by: Wanpeng Li <[email protected]>
    Message-Id: <[email protected]>
    Signed-off-by: Paolo Bonzini <[email protected]>
    Wanpeng Li authored and bonzini committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    d7eb79c View commit details
    Browse the repository at this point in the history
  24. KVM: x86/mmu: Skip !MMU-present SPTEs when removing SP in exclusive mode

    If mmu_lock is held for write, don't bother setting !PRESENT SPTEs to
    REMOVED_SPTE when recursively zapping SPTEs as part of shadow page
    removal.  The concurrent write protections provided by REMOVED_SPTE are
    not needed, there are no backing page side effects to record, and MMIO
    SPTEs can be left as is since they are protected by the memslot
    generation, not by ensuring that the MMIO SPTE is unreachable (which
    is racy with respect to lockless walks regardless of zapping behavior).
    
    Skipping !PRESENT drastically reduces the number of updates needed to
    tear down sparsely populated MMUs, e.g. when tearing down a 6gb VM that
    didn't touch much memory, 6929/7168 (~96.6%) of SPTEs were '0' and could
    be skipped.
    
    Avoiding the write itself is likely close to a wash, but avoiding
    __handle_changed_spte() is a clear-cut win as that involves saving and
    restoring all non-volatile GPRs (it's a subtly big function), as well as
    several conditional branches before bailing out.
    
    Cc: Ben Gardon <[email protected]>
    Signed-off-by: Sean Christopherson <[email protected]>
    Message-Id: <[email protected]>
    Signed-off-by: Paolo Bonzini <[email protected]>
    sean-jc authored and bonzini committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    8df9f1a View commit details
    Browse the repository at this point in the history
  25. KVM: LAPIC: Advancing the timer expiration on guest initiated write

    Advancing the timer expiration should only be necessary on guest initiated
    writes. When we cancel the timer and clear .pending during state restore,
    clear expired_tscdeadline as well.
    
    Reviewed-by: Sean Christopherson <[email protected]>
    Signed-off-by: Wanpeng Li <[email protected]>
    Message-Id: <[email protected]>
    Signed-off-by: Paolo Bonzini <[email protected]>
    Wanpeng Li authored and bonzini committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    35737d2 View commit details
    Browse the repository at this point in the history
  26. Merge tag 'for-linus-5.12b-rc3-tag' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/xen/tip
    
    Pull xen fixes from Juergen Gross:
     "Two fix series and a single cleanup:
    
       - a small cleanup patch to remove unneeded symbol exports
    
       - a series to cleanup Xen grant handling (avoiding allocations in
         some cases, and using common defines for "invalid" values)
    
       - a series to address a race issue in Xen event channel handling"
    
    * tag 'for-linus-5.12b-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
      Xen/gntdev: don't needlessly use kvcalloc()
      Xen/gnttab: introduce common INVALID_GRANT_{HANDLE,REF}
      Xen/gntdev: don't needlessly allocate k{,un}map_ops[]
      Xen: drop exports of {set,clear}_foreign_p2m_mapping()
      xen/events: avoid handling the same event on two cpus at the same time
      xen/events: don't unmask an event channel when an eoi is pending
      xen/events: reset affinity of 2-level event when tearing it down
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    6bf8819 View commit details
    Browse the repository at this point in the history
  27. Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/arm64/linux
    
    Pull arm64 fixes from Will Deacon:
     "We've got a smattering of changes all over the place which we've
      acrued since -rc1. To my knowledge, there aren't any pending issues at
      the moment, but there's still plenty of time for something else to
      crop up...
    
      Summary:
    
       - Fix booting a 52-bit-VA-aware kernel on Qualcomm Amberwing
    
       - Fix pfn_valid() not to reject all ZONE_DEVICE memory
    
       - Fix memory tagging setup for hotplugged memory regions
    
       - Fix KASAN tagging in page_alloc() when DEBUG_VIRTUAL is enabled
    
       - Fix accidental truncation of CPU PMU event counters
    
       - Fix error code initialisation when failing probe of DMC620 PMU
    
       - Fix return value initialisation for sve-ptrace selftest
    
       - Drop broken support for CMDLINE_EXTEND"
    
    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
      perf/arm_dmc620_pmu: Fix error return code in dmc620_pmu_device_probe()
      arm64: mm: remove unused __cpu_uses_extended_idmap[_level()]
      arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
      arm64: perf: Fix 64-bit event counter read truncation
      arm64/mm: Fix __enable_mmu() for new TGRAN range values
      kselftest: arm64: Fix exit code of sve-ptrace
      arm64: mte: Map hotplugged memory as Normal Tagged
      arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL
      arm64/mm: Reorganize pfn_valid()
      arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory
      arm64/mm: Drop THP conditionality from FORCE_MAX_ZONEORDER
      arm64/mm: Drop redundant ARCH_WANT_HUGE_PMD_SHARE
      arm64: Drop support for CMDLINE_EXTEND
      arm64: cpufeatures: Fix handling of CONFIG_CMDLINE for idreg overrides
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    17f8fc1 View commit details
    Browse the repository at this point in the history
  28. Merge tag 'gfs2-v5.12-rc2-fixes' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/gfs2/linux-gfs2
    
    Pull gfs2 fixes from Andreas Gruenbacher:
     "Various gfs2 fixes"
    
    * tag 'gfs2-v5.12-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
      gfs2: bypass log flush if the journal is not live
      gfs2: bypass signal_our_withdraw if no journal
      gfs2: fix use-after-free in trans_drain
      gfs2: make function gfs2_make_fs_ro() to void type
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    b77b5fd View commit details
    Browse the repository at this point in the history
  29. Merge tag 'configfs-for-5.12' of git://git.infradead.org/users/hch/co…

    …nfigfs
    
    Pull configfs fix from Christoph Hellwig:
    
     - fix a use-after-free in __configfs_open_file (Daiyue Zhang)
    
    * tag 'configfs-for-5.12' of git://git.infradead.org/users/hch/configfs:
      configfs: fix a use-after-free in __configfs_open_file
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    8d9d53d View commit details
    Browse the repository at this point in the history
  30. Merge tag 'regulator-fix-v5.12-rc2' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/broonie/regulator
    
    Pull regulator fixes from Mark Brown:
     "A small collection fo driver specific fixes that have arrived since
      the merge window"
    
    * tag 'regulator-fix-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
      regulator: mt6315: Fix off-by-one for .n_voltages
      regulator: rt4831: Fix return value check in rt4831_regulator_probe()
      regulator: pca9450: Clear PRESET_EN bit to fix BUCK1/2/3 voltage setting
      regulator: qcom-rpmh: Use correct buck for S1C regulator
      regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck
      regulator: pca9450: Fix return value when failing to get sd-vsel GPIO
      regulator: mt6315: Return REGULATOR_MODE_INVALID for invalid mode
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    270c055 View commit details
    Browse the repository at this point in the history
  31. Merge tag 'mmc-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/ulfh/mmc
    
    Pull MMC fixes from Ulf Hansson:
     "MMC core:
    
       - Fix partition switch time for eMMC
    
      MMC host:
    
       - mmci: Enforce R1B response to fix busy detection for
         the stm32 variants
    
       - cqhci: Fix crash when removing mmc module/card"
    
    * tag 'mmc-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
      mmc: cqhci: Fix random crash when remove mmc module/card
      mmc: core: Fix partition switch time for eMMC
      mmc: mmci: Add MMC_CAP_NEED_RSP_BUSY for the stm32 variants
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    568099a View commit details
    Browse the repository at this point in the history
  32. Merge tag 'sound-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/tiwai/sound
    
    Pull sound fixes from Takashi Iwai:
     "No surprise here, only a collection of device-specific fixes for
      USB-audio and HD-audio at this time"
    
    * tag 'sound-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: hda/hdmi: Cancel pending works before suspend
      ALSA: hda: Avoid spurious unsol event handling during S3/S4
      ALSA: hda: Flush pending unsolicited events before suspend
      ALSA: usb-audio: fix use after free in usb_audio_disconnect
      ALSA: usb-audio: fix NULL ptr dereference in usb_audio_probe
      ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support
      ALSA: hda: Drop the BATCH workaround for AMD controllers
      ALSA: hda/conexant: Add quirk for mute LED control on HP ZBook G5
      ALSA: usb-audio: Apply the control quirk to Plantronics headsets
      ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
      ALSA: hda: ignore invalid NHLT table
      ALSA: usb-audio: Disable USB autosuspend properly in setup_disable_autosuspend()
      ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    3441783 View commit details
    Browse the repository at this point in the history
  33. nvme: fix the nsid value to print in nvme_validate_or_alloc_ns

    ns can be NULL at this point, and my move of the check from
    the original patch by Chaitanya broke this.
    
    Fixes: 0ec84df ("nvme-core: check ctrl css before setting up zns")
    Signed-off-by: Christoph Hellwig <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    Christoph Hellwig authored and axboe committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    f4f9fc2 View commit details
    Browse the repository at this point in the history
  34. Merge tag 'pm-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/rafael/linux-pm
    
    Pull power management fixes from Rafael Wysocki:
     "These fix an operating performance point (OPP) reference counting
      issue and three issues in ARM cpufreq drivers.
    
      Specifics:
    
       - Add a flag to mark OPPs that are not referenced by he OPP core any
         more to prevent OPPs from being freed prematurely by mistake (Beata
         Michalska).
    
       - Add ARM Vexpress platforms to the cpufreq-dt-platdev blacklist
         since the actual scaling of them is handled elsewhere (Sudeep
         Holla).
    
       - Fix a function return value check and a possible use-after-free in
         the qcom-hw cpufreq driver (Shawn Guo, Wei Yongjun)"
    
    * tag 'pm-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      opp: Don't drop extra references to OPPs accidentally
      cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev
      cpufreq: qcom-hw: Fix return value check in qcom_cpufreq_hw_cpu_init()
      cpufreq: qcom-hw: fix dereferencing freed memory 'data'
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    3077f02 View commit details
    Browse the repository at this point in the history
  35. Merge tag 'devprop-5.12-rc3' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/rafael/linux-pm
    
    Pull device properties framework fixes from Rafael Wysocki:
     "Prevent software nodes from being registered before their parents and
      fix a recent mistake causing already registered software nodes to be
      registered again in some cases (Heikki Krogerus)"
    
    * tag 'devprop-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      software node: Fix device_add_software_node()
      software node: Fix node registration
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    2614100 View commit details
    Browse the repository at this point in the history
  36. Merge tag 'io_uring-5.12-2021-03-12' of git://git.kernel.dk/linux-block

    Pull io_uring fixes from Jens Axboe:
     "Not quite as small this week as I had hoped, but at least this should
      be the end of it. All the little known issues have been ironed out -
      most of it little stuff, but cancelations being the bigger part. Only
      minor tweaks and/or regular fixes expected beyond this point.
    
       - Fix the creds tracking for async (io-wq and SQPOLL)
    
       - Various SQPOLL fixes related to parking, sharing, forking, IOPOLL,
         completions, and life times. Much simpler now.
    
       - Make IO threads unfreezable by default, on account of a bug report
         that had them spinning on resume. Honestly not quite sure why
         thawing leaves us with a perpetual signal pending (causing the
         spin), but for now make them unfreezable like there were in 5.11
         and prior.
    
       - Move personality_idr to xarray, solving a use-after-free related to
         removing an entry from the iterator callback. Buffer idr needs the
         same treatment.
    
       - Re-org around and task vs context tracking, enabling the fixing of
         cancelations, and then cancelation fixes on top.
    
       - Various little bits of cleanups and hardening, and removal of now
         dead parts"
    
    * tag 'io_uring-5.12-2021-03-12' of git://git.kernel.dk/linux-block: (34 commits)
      io_uring: fix OP_ASYNC_CANCEL across tasks
      io_uring: cancel sqpoll via task_work
      io_uring: prevent racy sqd->thread checks
      io_uring: remove useless ->startup completion
      io_uring: cancel deferred requests in try_cancel
      io_uring: perform IOPOLL reaping if canceler is thread itself
      io_uring: force creation of separate context for ATTACH_WQ and non-threads
      io_uring: remove indirect ctx into sqo injection
      io_uring: fix invalid ctx->sq_thread_idle
      kernel: make IO threads unfreezable by default
      io_uring: always wait for sqd exited when stopping SQPOLL thread
      io_uring: remove unneeded variable 'ret'
      io_uring: move all io_kiocb init early in io_init_req()
      io-wq: fix ref leak for req in case of exit cancelations
      io_uring: fix complete_post races for linked req
      io_uring: add io_disarm_next() helper
      io_uring: fix io_sq_offload_create error handling
      io-wq: remove unused 'user' member of io_wq
      io_uring: Convert personality_idr to XArray
      io_uring: clean R_DISABLED startup mess
      ...
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    9278be9 View commit details
    Browse the repository at this point in the history
  37. Merge tag 'block-5.12-2021-03-12-v2' of git://git.kernel.dk/linux-block

    Pull block fixes from Jens Axboe:
     "Mostly just random fixes all over the map.
    
      The only odd-one-out change is finally getting the rename of
      BIO_MAX_PAGES to BIO_MAX_VECS done. This should've been done with the
      multipage bvec change, but it's been left.
    
      Do it now to avoid hassles around changes piling up for the next merge
      window.
    
      Summary:
    
       - NVMe pull request:
          - one more quirk (Dmitry Monakhov)
          - fix max_zone_append_sectors initialization (Chaitanya Kulkarni)
          - nvme-fc reset/create race fix (James Smart)
          - fix status code on aborts/resets (Hannes Reinecke)
          - fix the CSS check for ZNS namespaces (Chaitanya Kulkarni)
          - fix a use after free in a debug printk in nvme-rdma (Lv Yunlong)
    
       - Follow-up NVMe error fix for NULL 'id' (Christoph)
    
       - Fixup for the bd_size_lock being IRQ safe, now that the offending
         driver has been dropped (Damien).
    
       - rsxx probe failure error return (Jia-Ju)
    
       - umem probe failure error return (Wei)
    
       - s390/dasd unbind fixes (Stefan)
    
       - blk-cgroup stats summing fix (Xunlei)
    
       - zone reset handling fix (Damien)
    
       - Rename BIO_MAX_PAGES to BIO_MAX_VECS (Christoph)
    
       - Suppress uevent trigger for hidden devices (Daniel)
    
       - Fix handling of discard on busy device (Jan)
    
       - Fix stale cache issue with zone reset (Shin'ichiro)"
    
    * tag 'block-5.12-2021-03-12-v2' of git://git.kernel.dk/linux-block:
      nvme: fix the nsid value to print in nvme_validate_or_alloc_ns
      block: Discard page cache of zone reset target range
      block: Suppress uevent for hidden device when removed
      block: rename BIO_MAX_PAGES to BIO_MAX_VECS
      nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a
      nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done
      nvme-core: check ctrl css before setting up zns
      nvme-fc: fix racing controller reset and create association
      nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted
      nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange()
      nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
      nvme: simplify error logic in nvme_validate_ns()
      nvme: set max_zone_append_sectors nvme_revalidate_zones
      block: rsxx: fix error return code of rsxx_pci_probe()
      block: Fix REQ_OP_ZONE_RESET_ALL handling
      umem: fix error return code in mm_pci_probe()
      blk-cgroup: Fix the recursive blkg rwstat
      s390/dasd: fix hanging IO request during DASD driver unbind
      s390/dasd: fix hanging DASD driver unbind
      block: Try to handle busy underlying device on discard
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    ce30708 View commit details
    Browse the repository at this point in the history
  38. Revert 95ebabd ("capabilities: Don't allow writing ambiguous v3 file …

    …capabilities")
    
    It turns out that there are in fact userspace implementations that
    care and this recent change caused a regression.
    
    containers/buildah#3071
    
    As the motivation for the original change was future development,
    and the impact is existing real world code just revert this change
    and allow the ambiguity in v3 file caps.
    
    Cc: [email protected]
    Fixes: 95ebabd ("capabilities: Don't allow writing ambiguous v3 file capabilities")
    Signed-off-by: Eric W. Biederman <[email protected]>
    ebiederm committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    3b0c2d3 View commit details
    Browse the repository at this point in the history
  39. Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/jejb/scsi
    
    Pull SCSI fixes from James Bottomley:
     "Ten updates: one non code maintainer update for vmw_pvscsi, five code
      updates for ibmvfc and four for UFS.
    
      All are either trivial patches or bug fixes"
    
    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
      scsi: vmw_pvscsi: MAINTAINERS: Update maintainer
      scsi: ufs: Convert sysfs sprintf/snprintf family to sysfs_emit
      scsi: ufs: Remove redundant checks of !hba in suspend/resume callbacks
      scsi: ufs: ufs-qcom: Disable interrupt in reset path
      scsi: ufs: Minor adjustments to error handling
      scsi: ibmvfc: Reinitialize sub-CRQs and perform channel enquiry after LPM
      scsi: ibmvfc: Store return code of H_FREE_SUB_CRQ during cleanup
      scsi: ibmvfc: Treat H_CLOSED as success during sub-CRQ registration
      scsi: ibmvfc: Fix invalid sub-CRQ handles after hard reset
      scsi: ibmvfc: Simplify handling of sub-CRQ initialization
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    9afc116 View commit details
    Browse the repository at this point in the history
  40. Merge branch 'for-v5.12-rc3' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/ebiederm/user-namespace
    
    Pull userns fix from Eric Biederman:
     "Removing the ambiguity broke userspace so this reverts the change"
    
    * 'for-v5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
      Revert 95ebabd ("capabilities: Don't allow writing ambiguous v3 file capabilities")
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    b6b8aa2 View commit details
    Browse the repository at this point in the history
  41. Merge tag 'nfs-for-5.12-2' of git://git.linux-nfs.org/projects/anna/l…

    …inux-nfs
    
    Pull NFS client bugfixes from Anna Schumaker:
     "These are mostly fixes for issues discovered at the recent NFS
      bakeathon:
    
       - Fix PNFS_FLEXFILE_LAYOUT kconfig so it is possible to build
         into the kernel
    
       - Correct size calculationn for create reply length
    
       - Set memalloc_nofs_save() for sync tasks to prevent deadlocks
    
       - Don't revalidate directory permissions on lookup failure
    
       - Don't clear inode cache when lookup fails
    
       - Change functions to use nfs_set_cache_invalid() for proper
         delegation handling
    
       - Fix return value of _nfs4_get_security_label()
    
       - Return an error when attempting to remove system.nfs4_acl"
    
    * tag 'nfs-for-5.12-2' of git://git.linux-nfs.org/projects/anna/linux-nfs:
      nfs: we don't support removing system.nfs4_acl
      NFSv4.2: fix return value of _nfs4_get_security_label()
      NFS: Fix open coded versions of nfs_set_cache_invalid() in NFSv4
      NFS: Fix open coded versions of nfs_set_cache_invalid()
      NFS: Clean up function nfs_mark_dir_for_revalidate()
      NFS: Don't gratuitously clear the inode cache when lookup failed
      NFS: Don't revalidate the directory permissions on a lookup failure
      SUNRPC: Set memalloc_nofs_save() for sync tasks
      NFS: Correct size calculation for create reply length
      nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
    torvalds committed Mar 12, 2021
    Configuration menu
    Copy the full SHA
    f296bfd View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2021

  1. kbuild: fix ld-version.sh to not be affected by locale

    ld-version.sh checks the output from $(LD) --version, but it has a
    problem on some locales.
    
    For example, in Italian:
    
      $ LC_MESSAGES=it_IT.UTF-8 ld --version | head -n 1
      ld di GNU (GNU Binutils for Debian) 2.35.2
    
    This makes ld-version.sh fail because it expects "GNU ld" for the
    BFD linker case.
    
    Add LC_ALL=C to override the user's locale.
    
    BTW, setting LC_MESSAGES=C (or LANG=C) is not enough because it is
    ineffective if LC_ALL is set on the user's environment.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=212105
    Reported-by: Marco Scardovi
    Reported-by: Andy Shevchenko <[email protected]>
    Signed-off-by: Masahiro Yamada <[email protected]>
    Recensito-da: Nick Desaulniers <[email protected]>
    Reviewed-by: Nathan Chancellor <[email protected]>
    masahir0y committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    bcbcf50 View commit details
    Browse the repository at this point in the history
  2. memblock: fix section mismatch warning

    The inlining logic in clang-13 is rewritten to often not inline some
    functions that were inlined by all earlier compilers.
    
    In case of the memblock interfaces, this exposed a harmless bug of a
    missing __init annotation:
    
    WARNING: modpost: vmlinux.o(.text+0x507c0a): Section mismatch in reference from the function memblock_bottom_up() to the variable .meminit.data:memblock
    The function memblock_bottom_up() references
    the variable __meminitdata memblock.
    This is often because memblock_bottom_up lacks a __meminitdata
    annotation or the annotation of memblock is wrong.
    
    Interestingly, these annotations were present originally, but got removed
    with the explanation that the __init annotation prevents the function from
    getting inlined.  I checked this again and found that while this is the
    case with clang, gcc (version 7 through 10, did not test others) does
    inline the functions regardless.
    
    As the previous change was apparently intended to help the clang builds,
    reverting it to help the newer clang versions seems appropriate as well.
    gcc builds don't seem to care either way.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 5bdba52 ("mm: memblock: drop __init from memblock functions to make it inline")
    Reference: 2cfb366 ("include/linux/memblock.h: add __init to memblock_set_bottom_up()")
    Signed-off-by: Arnd Bergmann <[email protected]>
    Reviewed-by: David Hildenbrand <[email protected]>
    Reviewed-by: Mike Rapoport <[email protected]>
    Cc: Nathan Chancellor <[email protected]>
    Cc: Nick Desaulniers <[email protected]>
    Cc: Faiyaz Mohammed <[email protected]>
    Cc: Baoquan He <[email protected]>
    Cc: Thomas Bogendoerfer <[email protected]>
    Cc: Aslan Bakirov <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    arndb authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    34dc2ef View commit details
    Browse the repository at this point in the history
  3. stop_machine: mark helpers __always_inline

    With clang-13, some functions only get partially inlined, with a
    specialized version referring to a global variable.  This triggers a
    harmless build-time check for the intel-rng driver:
    
    WARNING: modpost: drivers/char/hw_random/intel-rng.o(.text+0xe): Section mismatch in reference from the function stop_machine() to the function .init.text:intel_rng_hw_init()
    The function stop_machine() references
    the function __init intel_rng_hw_init().
    This is often because stop_machine lacks a __init
    annotation or the annotation of intel_rng_hw_init is wrong.
    
    In this instance, an easy workaround is to force the stop_machine()
    function to be inline, along with related interfaces that did not show the
    same behavior at the moment, but theoretically could.
    
    The combination of the two patches listed below triggers the behavior in
    clang-13, but individually these commits are correct.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: fe5595c ("stop_machine: Provide stop_machine_cpuslocked()")
    Fixes: ee527cd ("Use stop_machine_run in the Intel RNG driver")
    Signed-off-by: Arnd Bergmann <[email protected]>
    Cc: Nathan Chancellor <[email protected]>
    Cc: Nick Desaulniers <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Cc: Sebastian Andrzej Siewior <[email protected]>
    Cc: "Paul E. McKenney" <[email protected]>
    Cc: Ingo Molnar <[email protected]>
    Cc: Prarit Bhargava <[email protected]>
    Cc: Daniel Bristot de Oliveira <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Valentin Schneider <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    arndb authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    cbf78d8 View commit details
    Browse the repository at this point in the history
  4. init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM

    I read the commit log of the following two:
    
    - bc083a6 ("init/Kconfig: make COMPILE_TEST depend on !UML")
    - 334ef6e ("init/Kconfig: make COMPILE_TEST depend on !S390")
    
    Both are talking about HAS_IOMEM dependency missing in many drivers.
    
    So, 'depends on HAS_IOMEM' seems the direct, sensible solution to me.
    
    This does not change the behavior of UML. UML still cannot enable
    COMPILE_TEST because it does not provide HAS_IOMEM.
    
    The current dependency for S390 is too strong. Under the condition of
    CONFIG_PCI=y, S390 provides HAS_IOMEM, hence can enable COMPILE_TEST.
    
    I also removed the meaningless 'default n'.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Masahiro Yamada <[email protected]>
    Cc: Heiko Carstens <[email protected]>
    Cc: Guenter Roeck <[email protected]>
    Cc: Arnd Bergmann <[email protected]>
    Cc: Kees Cook <[email protected]>
    Cc: Daniel Borkmann <[email protected]>
    Cc: Johannes Weiner <[email protected]>
    Cc: KP Singh <[email protected]>
    Cc: Nathan Chancellor <[email protected]>
    Cc: Nick Terrell <[email protected]>
    Cc: Quentin Perret <[email protected]>
    Cc: Valentin Schneider <[email protected]>
    Cc: "Enrico Weigelt, metux IT consult" <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    masahir0y authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    ea29b20 View commit details
    Browse the repository at this point in the history
  5. mm/page_alloc.c: refactor initialization of struct page for holes in …

    …memory layout
    
    There could be struct pages that are not backed by actual physical memory.
    This can happen when the actual memory bank is not a multiple of
    SECTION_SIZE or when an architecture does not register memory holes
    reserved by the firmware as memblock.memory.
    
    Such pages are currently initialized using init_unavailable_mem() function
    that iterates through PFNs in holes in memblock.memory and if there is a
    struct page corresponding to a PFN, the fields of this page are set to
    default values and it is marked as Reserved.
    
    init_unavailable_mem() does not take into account zone and node the page
    belongs to and sets both zone and node links in struct page to zero.
    
    Before commit 73a6e47 ("mm: memmap_init: iterate over memblock
    regions rather that check each PFN") the holes inside a zone were
    re-initialized during memmap_init() and got their zone/node links right.
    However, after that commit nothing updates the struct pages representing
    such holes.
    
    On a system that has firmware reserved holes in a zone above ZONE_DMA, for
    instance in a configuration below:
    
    	# grep -A1 E820 /proc/iomem
    	7a17b000-7a216fff : Unknown E820 type
    	7a217000-7bffffff : System RAM
    
    unset zone link in struct page will trigger
    
    	VM_BUG_ON_PAGE(!zone_spans_pfn(page_zone(page), pfn), page);
    
    in set_pfnblock_flags_mask() when called with a struct page from a range
    other than E820_TYPE_RAM because there are pages in the range of
    ZONE_DMA32 but the unset zone link in struct page makes them appear as a
    part of ZONE_DMA.
    
    Interleave initialization of the unavailable pages with the normal
    initialization of memory map, so that zone and node information will be
    properly set on struct pages that are not backed by the actual memory.
    
    With this change the pages for holes inside a zone will get proper
    zone/node links and the pages that are not spanned by any node will get
    links to the adjacent zone/node.  The holes between nodes will be
    prepended to the zone/node above the hole and the trailing pages in the
    last section that will be appended to the zone/node below.
    
    [[email protected]: don't initialize static to zero, use %llu for u64]
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 73a6e47 ("mm: memmap_init: iterate over memblock regions rather that check each PFN")
    Signed-off-by: Mike Rapoport <[email protected]>
    Reported-by: Qian Cai <[email protected]>
    Reported-by: Andrea Arcangeli <[email protected]>
    Reviewed-by: Baoquan He <[email protected]>
    Acked-by: Vlastimil Babka <[email protected]>
    Reviewed-by: David Hildenbrand <[email protected]>
    Cc: Borislav Petkov <[email protected]>
    Cc: Chris Wilson <[email protected]>
    Cc: "H. Peter Anvin" <[email protected]>
    Cc: Łukasz Majczak <[email protected]>
    Cc: Ingo Molnar <[email protected]>
    Cc: Mel Gorman <[email protected]>
    Cc: Michal Hocko <[email protected]>
    Cc: "Sarvela, Tomi P" <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    rppt authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    0740a50 View commit details
    Browse the repository at this point in the history
  6. mm/fork: clear PASID for new mm

    When a new mm is created, its PASID should be cleared, i.e.  the PASID is
    initialized to its init state 0 on both ARM and X86.
    
    This patch was part of the series introducing mm->pasid, but got lost
    along the way [1].  It still makes sense to have it, because each address
    space has a different PASID.  And the IOMMU code in
    iommu_sva_alloc_pasid() expects the pasid field of a new mm struct to be
    cleared.
    
    [1] https://lore.kernel.org/linux-iommu/[email protected]/
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Fenghua Yu <[email protected]>
    Signed-off-by: Jean-Philippe Brucker <[email protected]>
    Reviewed-by: Tony Luck <[email protected]>
    Cc: Jacob Pan <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    fyu1 authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    82e69a1 View commit details
    Browse the repository at this point in the history
  7. hugetlb: dedup the code to add a new file_region

    Patch series "mm/hugetlb: Early cow on fork, and a few cleanups", v5.
    
    As reported by Gal [1], we still miss the code clip to handle early cow
    for hugetlb case, which is true.  Again, it still feels odd to fork()
    after using a few huge pages, especially if they're privately mapped to
    me..  However I do agree with Gal and Jason in that we should still have
    that since that'll complete the early cow on fork effort at least, and
    it'll still fix issues where buffers are not well under control and not
    easy to apply MADV_DONTFORK.
    
    The first two patches (1-2) are some cleanups I noticed when reading into
    the hugetlb reserve map code.  I think it's good to have but they're not
    necessary for fixing the fork issue.
    
    The last two patches (3-4) are the real fix.
    
    I tested this with a fork() after some vfio-pci assignment, so I'm pretty
    sure the page copy path could trigger well (page will be accounted right
    after the fork()), but I didn't do data check since the card I assigned is
    some random nic.
    
      https://github.com/xzpeter/linux/tree/fork-cow-pin-huge
    
    [1] https://lore.kernel.org/lkml/[email protected]/
    
    Introduce hugetlb_resv_map_add() helper to add a new file_region rather
    than duplication the similar code twice in add_reservation_in_range().
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Peter Xu <[email protected]>
    Reviewed-by: Mike Kravetz <[email protected]>
    Reviewed-by: Miaohe Lin <[email protected]>
    Cc: Gal Pressman <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: Wei Zhang <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: David Gibson <[email protected]>
    Cc: Jason Gunthorpe <[email protected]>
    Cc: Jann Horn <[email protected]>
    Cc: Kirill Tkhai <[email protected]>
    Cc: Kirill Shutemov <[email protected]>
    Cc: Andrea Arcangeli <[email protected]>
    Cc: Jan Kara <[email protected]>
    Cc: Alexey Dobriyan <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Roland Scheidegger <[email protected]>
    Cc: VMware Graphics <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xzpeter authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    2103cf9 View commit details
    Browse the repository at this point in the history
  8. hugetlb: break earlier in add_reservation_in_range() when we can

    All the regions maintained in hugetlb reserved map is inclusive on "from"
    but exclusive on "to".  We can break earlier even if rg->from==t because
    it already means no possible intersection.
    
    This does not need a Fixes in all cases because when it happens
    (rg->from==t) we'll not break out of the loop while we should, however the
    next thing we'd do is still add the last file_region we'd need and quit
    the loop in the next round.  So this change is not a bugfix (since the old
    code should still run okay iiuc), but we'd better still touch it up to
    make it logically sane.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Peter Xu <[email protected]>
    Reviewed-by: Mike Kravetz <[email protected]>
    Reviewed-by: Miaohe Lin <[email protected]>
    Cc: Alexey Dobriyan <[email protected]>
    Cc: Andrea Arcangeli <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: David Gibson <[email protected]>
    Cc: Gal Pressman <[email protected]>
    Cc: Jan Kara <[email protected]>
    Cc: Jann Horn <[email protected]>
    Cc: Jason Gunthorpe <[email protected]>
    Cc: Kirill Shutemov <[email protected]>
    Cc: Kirill Tkhai <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Roland Scheidegger <[email protected]>
    Cc: VMware Graphics <[email protected]>
    Cc: Wei Zhang <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xzpeter authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    ca7e045 View commit details
    Browse the repository at this point in the history
  9. mm: introduce page_needs_cow_for_dma() for deciding whether cow

    We've got quite a few places (pte, pmd, pud) that explicitly checked
    against whether we should break the cow right now during fork().  It's
    easier to provide a helper, especially before we work the same thing on
    hugetlbfs.
    
    Since we'll reference is_cow_mapping() in mm.h, move it there too.
    Actually it suites mm.h more since internal.h is mm/ only, but mm.h is
    exported to the whole kernel.  With that we should expect another patch to
    use is_cow_mapping() whenever we can across the kernel since we do use it
    quite a lot but it's always done with raw code against VM_* flags.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Peter Xu <[email protected]>
    Reviewed-by: Jason Gunthorpe <[email protected]>
    Cc: Alexey Dobriyan <[email protected]>
    Cc: Andrea Arcangeli <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: David Gibson <[email protected]>
    Cc: Gal Pressman <[email protected]>
    Cc: Jan Kara <[email protected]>
    Cc: Jann Horn <[email protected]>
    Cc: Kirill Shutemov <[email protected]>
    Cc: Kirill Tkhai <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: Miaohe Lin <[email protected]>
    Cc: Mike Kravetz <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Roland Scheidegger <[email protected]>
    Cc: VMware Graphics <[email protected]>
    Cc: Wei Zhang <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xzpeter authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    97a7e47 View commit details
    Browse the repository at this point in the history
  10. mm: use is_cow_mapping() across tree where proper

    After is_cow_mapping() is exported in mm.h, replace some manual checks
    elsewhere throughout the tree but start to use the new helper.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Peter Xu <[email protected]>
    Reviewed-by: Jason Gunthorpe <[email protected]>
    Cc: VMware Graphics <[email protected]>
    Cc: Roland Scheidegger <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: Mike Kravetz <[email protected]>
    Cc: Alexey Dobriyan <[email protected]>
    Cc: Andrea Arcangeli <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: David Gibson <[email protected]>
    Cc: Gal Pressman <[email protected]>
    Cc: Jan Kara <[email protected]>
    Cc: Jann Horn <[email protected]>
    Cc: Kirill Shutemov <[email protected]>
    Cc: Kirill Tkhai <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: Miaohe Lin <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Wei Zhang <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xzpeter authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    ca6eb14 View commit details
    Browse the repository at this point in the history
  11. hugetlb: do early cow when page pinned on src mm

    This is the last missing piece of the COW-during-fork effort when there're
    pinned pages found.  One can reference 70e806e ("mm: Do early cow for
    pinned pages during fork() for ptes", 2020-09-27) for more information,
    since we do similar things here rather than pte this time, but just for
    hugetlb.
    
    Note that after Jason's recent work on 57efa1f ("mm/gup: prevent
    gup_fast from racing with COW during fork", 2020-12-15) which is safer and
    easier to understand, we're safe now within the whole copy_page_range()
    against gup-fast, we don't need the wr-protect trick that proposed in
    70e806e anymore.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Peter Xu <[email protected]>
    Reviewed-by: Mike Kravetz <[email protected]>
    Reviewed-by: Jason Gunthorpe <[email protected]>
    Cc: Alexey Dobriyan <[email protected]>
    Cc: Andrea Arcangeli <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: David Gibson <[email protected]>
    Cc: Gal Pressman <[email protected]>
    Cc: Jan Kara <[email protected]>
    Cc: Jann Horn <[email protected]>
    Cc: Kirill Shutemov <[email protected]>
    Cc: Kirill Tkhai <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: Miaohe Lin <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Roland Scheidegger <[email protected]>
    Cc: VMware Graphics <[email protected]>
    Cc: Wei Zhang <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xzpeter authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    4eae4ef View commit details
    Browse the repository at this point in the history
  12. mm/highmem.c: fix zero_user_segments() with start > end

    zero_user_segments() is used from __block_write_begin_int(), for example
    like the following
    
    	zero_user_segments(page, 4096, 1024, 512, 918)
    
    But new the zero_user_segments() implementation for for HIGHMEM +
    TRANSPARENT_HUGEPAGE doesn't handle "start > end" case correctly, and hits
    BUG_ON().  (we can fix __block_write_begin_int() instead though, it is the
    old and multiple usage)
    
    Also it calls kmap_atomic() unnecessarily while start == end == 0.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 0060ef3 ("mm: support THPs in zero_user_segments")
    Signed-off-by: OGAWA Hirofumi <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    OGAWAHirofumi authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    184cee5 View commit details
    Browse the repository at this point in the history
  13. binfmt_misc: fix possible deadlock in bm_register_write

    There is a deadlock in bm_register_write:
    
    First, in the begining of the function, a lock is taken on the binfmt_misc
    root inode with inode_lock(d_inode(root)).
    
    Then, if the user used the MISC_FMT_OPEN_FILE flag, the function will call
    open_exec on the user-provided interpreter.
    
    open_exec will call a path lookup, and if the path lookup process includes
    the root of binfmt_misc, it will try to take a shared lock on its inode
    again, but it is already locked, and the code will get stuck in a deadlock
    
    To reproduce the bug:
    $ echo ":iiiii:E::ii::/proc/sys/fs/binfmt_misc/bla:F" > /proc/sys/fs/binfmt_misc/register
    
    backtrace of where the lock occurs (#5):
    0  schedule () at ./arch/x86/include/asm/current.h:15
    1  0xffffffff81b51237 in rwsem_down_read_slowpath (sem=0xffff888003b202e0, count=<optimized out>, state=state@entry=2) at kernel/locking/rwsem.c:992
    2  0xffffffff81b5150a in __down_read_common (state=2, sem=<optimized out>) at kernel/locking/rwsem.c:1213
    3  __down_read (sem=<optimized out>) at kernel/locking/rwsem.c:1222
    4  down_read (sem=<optimized out>) at kernel/locking/rwsem.c:1355
    5  0xffffffff811ee22a in inode_lock_shared (inode=<optimized out>) at ./include/linux/fs.h:783
    6  open_last_lookups (op=0xffffc9000022fe34, file=0xffff888004098600, nd=0xffffc9000022fd10) at fs/namei.c:3177
    7  path_openat (nd=nd@entry=0xffffc9000022fd10, op=op@entry=0xffffc9000022fe34, flags=flags@entry=65) at fs/namei.c:3366
    8  0xffffffff811efe1c in do_filp_open (dfd=<optimized out>, pathname=pathname@entry=0xffff8880031b9000, op=op@entry=0xffffc9000022fe34) at fs/namei.c:3396
    9  0xffffffff811e493f in do_open_execat (fd=fd@entry=-100, name=name@entry=0xffff8880031b9000, flags=<optimized out>, flags@entry=0) at fs/exec.c:913
    10 0xffffffff811e4a92 in open_exec (name=<optimized out>) at fs/exec.c:948
    11 0xffffffff8124aa84 in bm_register_write (file=<optimized out>, buffer=<optimized out>, count=19, ppos=<optimized out>) at fs/binfmt_misc.c:682
    12 0xffffffff811decd2 in vfs_write (file=file@entry=0xffff888004098500, buf=buf@entry=0xa758d0 ":iiiii:E::ii::i:CF
    ", count=count@entry=19, pos=pos@entry=0xffffc9000022ff10) at fs/read_write.c:603
    13 0xffffffff811defda in ksys_write (fd=<optimized out>, buf=0xa758d0 ":iiiii:E::ii::i:CF
    ", count=19) at fs/read_write.c:658
    14 0xffffffff81b49813 in do_syscall_64 (nr=<optimized out>, regs=0xffffc9000022ff58) at arch/x86/entry/common.c:46
    15 0xffffffff81c0007c in entry_SYSCALL_64 () at arch/x86/entry/entry_64.S:120
    
    To solve the issue, the open_exec call is moved to before the write
    lock is taken by bm_register_write
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 948b701 ("binfmt_misc: add persistent opened binary handler for containers")
    Signed-off-by: Lior Ribak <[email protected]>
    Acked-by: Helge Deller <[email protected]>
    Cc: Al Viro <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xrl1 authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    e7850f4 View commit details
    Browse the repository at this point in the history
  14. MAINTAINERS: exclude uapi directories in API/ABI section

    Commit 7b4693e ("MAINTAINERS: add uapi directories to API/ABI
    section") added include/uapi/ and arch/*/include/uapi/ so that patches
    modifying them CC linux-api.  However that was already done in the past
    and resulted in too much noise and thus later removed, as explained in
    b14fd33 ("MAINTAINERS: trim the file triggers for ABI/API")
    
    To prevent another round of addition and removal in the future, change the
    entries to X: (explicit exclusion) for documentation purposes, although
    they are not subdirectories of broader included directories, as there is
    apparently no defined way to add plain comments in subsystem sections.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Vlastimil Babka <[email protected]>
    Reported-by: Michael Kerrisk (man-pages) <[email protected]>
    Acked-by: Michael Kerrisk (man-pages) <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    tehcaster authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    f0b15b6 View commit details
    Browse the repository at this point in the history
  15. linux/compiler-clang.h: define HAVE_BUILTIN_BSWAP*

    Separating compiler-clang.h from compiler-gcc.h inadventently dropped the
    definitions of the three HAVE_BUILTIN_BSWAP macros, which requires falling
    back to the open-coded version and hoping that the compiler detects it.
    
    Since all versions of clang support the __builtin_bswap interfaces, add
    back the flags and have the headers pick these up automatically.
    
    This results in a 4% improvement of compilation speed for arm defconfig.
    
    Note: it might also be worth revisiting which architectures set
    CONFIG_ARCH_USE_BUILTIN_BSWAP for one compiler or the other, today this is
    set on six architectures (arm32, csky, mips, powerpc, s390, x86), while
    another ten architectures define custom helpers (alpha, arc, ia64, m68k,
    mips, nios2, parisc, sh, sparc, xtensa), and the rest (arm64, h8300,
    hexagon, microblaze, nds32, openrisc, riscv) just get the unoptimized
    version and rely on the compiler to detect it.
    
    A long time ago, the compiler builtins were architecture specific, but
    nowadays, all compilers that are able to build the kernel have correct
    implementations of them, though some may not be as optimized as the inline
    asm versions.
    
    The patch that dropped the optimization landed in v4.19, so as discussed
    it would be fairly safe to backport this revert to stable kernels to the
    4.19/5.4/5.10 stable kernels, but there is a remaining risk for
    regressions, and it has no known side-effects besides compile speed.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://lore.kernel.org/lkml/[email protected]/
    Fixes: 815f0dd ("include/linux/compiler*.h: make compiler-*.h mutually exclusive")
    Signed-off-by: Arnd Bergmann <[email protected]>
    Reviewed-by: Nathan Chancellor <[email protected]>
    Reviewed-by: Kees Cook <[email protected]>
    Acked-by: Miguel Ojeda <[email protected]>
    Acked-by: Nick Desaulniers <[email protected]>
    Acked-by: Luc Van Oostenryck <[email protected]>
    Cc: Masahiro Yamada <[email protected]>
    Cc: Nick Hu <[email protected]>
    Cc: Greentime Hu <[email protected]>
    Cc: Vincent Chen <[email protected]>
    Cc: Paul Walmsley <[email protected]>
    Cc: Palmer Dabbelt <[email protected]>
    Cc: Albert Ou <[email protected]>
    Cc: Guo Ren <[email protected]>
    Cc: Randy Dunlap <[email protected]>
    Cc: Sami Tolvanen <[email protected]>
    Cc: Marco Elver <[email protected]>
    Cc: Arvind Sankar <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    arndb authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    97e4910 View commit details
    Browse the repository at this point in the history
  16. kfence: fix printk format for ptrdiff_t

    Use %td for ptrdiff_t.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Marco Elver <[email protected]>
    Reported-by: Christophe Leroy <[email protected]>
    Reviewed-by: Alexander Potapenko <[email protected]>
    Cc: Dmitriy Vyukov <[email protected]>
    Cc: Andrey Konovalov <[email protected]>
    Cc: Jann Horn <[email protected]>
    Cc: Christophe Leroy <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    melver authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    702b16d View commit details
    Browse the repository at this point in the history
  17. kfence, slab: fix cache_alloc_debugcheck_after() for bulk allocations

    cache_alloc_debugcheck_after() performs checks on an object, including
    adjusting the returned pointer.  None of this should apply to KFENCE
    objects.  While for non-bulk allocations, the checks are skipped when we
    allocate via KFENCE, for bulk allocations cache_alloc_debugcheck_after()
    is called via cache_alloc_debugcheck_after_bulk().
    
    Fix it by skipping cache_alloc_debugcheck_after() for KFENCE objects.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Marco Elver <[email protected]>
    Cc: Alexander Potapenko <[email protected]>
    Cc: Dmitry Vyukov <[email protected]>
    Cc: Andrey Konovalov <[email protected]>
    Cc: Jann Horn <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    melver authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    df3ae2c View commit details
    Browse the repository at this point in the history
  18. kfence: fix reports if constant function prefixes exist

    Some architectures prefix all functions with a constant string ('.' on
    ppc64).  Add ARCH_FUNC_PREFIX, which may optionally be defined in
    <asm/kfence.h>, so that get_stack_skipnr() can work properly.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Marco Elver <[email protected]>
    Reported-by: Christophe Leroy <[email protected]>
    Tested-by: Christophe Leroy <[email protected]>
    Cc: Alexander Potapenko <[email protected]>
    Cc: Dmitry Vyukov <[email protected]>
    Cc: Andrey Konovalov <[email protected]>
    Cc: Jann Horn <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    melver authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    0aa41ca View commit details
    Browse the repository at this point in the history
  19. include/linux/sched/mm.h: use rcu_dereference in in_vfork()

    Fix a sparse warning by using rcu_dereference().  Technically this is a
    bug and a sufficiently aggressive compiler could reload the `real_parent'
    pointer outside the protection of the rcu lock (and access freed memory),
    but I think it's pretty unlikely to happen.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: b18dc5f ("mm, oom: skip vforked tasks from being selected")
    Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
    Reviewed-by: Miaohe Lin <[email protected]>
    Acked-by: Michal Hocko <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Matthew Wilcox (Oracle) authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    149fc78 View commit details
    Browse the repository at this point in the history
  20. mm/madvise: replace ptrace attach requirement for process_madvise

    process_madvise currently requires ptrace attach capability.
    PTRACE_MODE_ATTACH gives one process complete control over another
    process.  It effectively removes the security boundary between the two
    processes (in one direction).  Granting ptrace attach capability even to a
    system process is considered dangerous since it creates an attack surface.
    This severely limits the usage of this API.
    
    The operations process_madvise can perform do not affect the correctness
    of the operation of the target process; they only affect where the data is
    physically located (and therefore, how fast it can be accessed).  What we
    want is the ability for one process to influence another process in order
    to optimize performance across the entire system while leaving the
    security boundary intact.
    
    Replace PTRACE_MODE_ATTACH with a combination of PTRACE_MODE_READ and
    CAP_SYS_NICE.  PTRACE_MODE_READ to prevent leaking ASLR metadata and
    CAP_SYS_NICE for influencing process performance.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Suren Baghdasaryan <[email protected]>
    Reviewed-by: Kees Cook <[email protected]>
    Acked-by: Minchan Kim <[email protected]>
    Acked-by: David Rientjes <[email protected]>
    Cc: Jann Horn <[email protected]>
    Cc: Jeff Vander Stoep <[email protected]>
    Cc: Michal Hocko <[email protected]>
    Cc: Shakeel Butt <[email protected]>
    Cc: Tim Murray <[email protected]>
    Cc: Florian Weimer <[email protected]>
    Cc: Oleg Nesterov <[email protected]>
    Cc: James Morris <[email protected]>
    Cc: <[email protected]>	[5.10+]
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    surenbaghdasaryan authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    96cfe2c View commit details
    Browse the repository at this point in the history
  21. kasan, mm: fix crash with HW_TAGS and DEBUG_PAGEALLOC

    Currently, kasan_free_nondeferred_pages()->kasan_free_pages() is called
    after debug_pagealloc_unmap_pages(). This causes a crash when
    debug_pagealloc is enabled, as HW_TAGS KASAN can't set tags on an
    unmapped page.
    
    This patch puts kasan_free_nondeferred_pages() before
    debug_pagealloc_unmap_pages() and arch_free_page(), which can also make
    the page unavailable.
    
    Link: https://lkml.kernel.org/r/24cd7db274090f0e5bc3adcdc7399243668e3171.1614987311.git.andreyknvl@google.com
    Fixes: 94ab5b6 ("kasan, arm64: enable CONFIG_KASAN_HW_TAGS")
    Signed-off-by: Andrey Konovalov <[email protected]>
    Cc: Catalin Marinas <[email protected]>
    Cc: Will Deacon <[email protected]>
    Cc: Vincenzo Frascino <[email protected]>
    Cc: Dmitry Vyukov <[email protected]>
    Cc: Andrey Ryabinin <[email protected]>
    Cc: Alexander Potapenko <[email protected]>
    Cc: Marco Elver <[email protected]>
    Cc: Peter Collingbourne <[email protected]>
    Cc: Evgenii Stepanov <[email protected]>
    Cc: Branislav Rankov <[email protected]>
    Cc: Kevin Brodsky <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xairy authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    f9d79e8 View commit details
    Browse the repository at this point in the history
  22. kasan: fix KASAN_STACK dependency for HW_TAGS

    There's a runtime failure when running HW_TAGS-enabled kernel built with
    GCC on hardware that doesn't support MTE.  GCC-built kernels always have
    CONFIG_KASAN_STACK enabled, even though stack instrumentation isn't
    supported by HW_TAGS.  Having that config enabled causes KASAN to issue
    MTE-only instructions to unpoison kernel stacks, which causes the failure.
    
    Fix the issue by disallowing CONFIG_KASAN_STACK when HW_TAGS is used.
    
    (The commit that introduced CONFIG_KASAN_HW_TAGS specified proper
     dependency for CONFIG_KASAN_STACK_ENABLE but not for CONFIG_KASAN_STACK.)
    
    Link: https://lkml.kernel.org/r/59e75426241dbb5611277758c8d4d6f5f9298dac.1615215441.git.andreyknvl@google.com
    Fixes: 6a63a63 ("kasan: introduce CONFIG_KASAN_HW_TAGS")
    Signed-off-by: Andrey Konovalov <[email protected]>
    Reported-by: Catalin Marinas <[email protected]>
    Cc: <[email protected]>
    Cc: Will Deacon <[email protected]>
    Cc: Vincenzo Frascino <[email protected]>
    Cc: Dmitry Vyukov <[email protected]>
    Cc: Andrey Ryabinin <[email protected]>
    Cc: Alexander Potapenko <[email protected]>
    Cc: Marco Elver <[email protected]>
    Cc: Peter Collingbourne <[email protected]>
    Cc: Evgenii Stepanov <[email protected]>
    Cc: Branislav Rankov <[email protected]>
    Cc: Kevin Brodsky <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    xairy authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    d9b571c View commit details
    Browse the repository at this point in the history
  23. mm/userfaultfd: fix memory corruption due to writeprotect

    Userfaultfd self-test fails occasionally, indicating a memory corruption.
    
    Analyzing this problem indicates that there is a real bug since mmap_lock
    is only taken for read in mwriteprotect_range() and defers flushes, and
    since there is insufficient consideration of concurrent deferred TLB
    flushes in wp_page_copy().  Although the PTE is flushed from the TLBs in
    wp_page_copy(), this flush takes place after the copy has already been
    performed, and therefore changes of the page are possible between the time
    of the copy and the time in which the PTE is flushed.
    
    To make matters worse, memory-unprotection using userfaultfd also poses a
    problem.  Although memory unprotection is logically a promotion of PTE
    permissions, and therefore should not require a TLB flush, the current
    userrfaultfd code might actually cause a demotion of the architectural PTE
    permission: when userfaultfd_writeprotect() unprotects memory region, it
    unintentionally *clears* the RW-bit if it was already set.  Note that this
    unprotecting a PTE that is not write-protected is a valid use-case: the
    userfaultfd monitor might ask to unprotect a region that holds both
    write-protected and write-unprotected PTEs.
    
    The scenario that happens in selftests/vm/userfaultfd is as follows:
    
    cpu0				cpu1			cpu2
    ----				----			----
    							[ Writable PTE
    							  cached in TLB ]
    userfaultfd_writeprotect()
    [ write-*unprotect* ]
    mwriteprotect_range()
    mmap_read_lock()
    change_protection()
    
    change_protection_range()
    ...
    change_pte_range()
    [ *clear* “write”-bit ]
    [ defer TLB flushes ]
    				[ page-fault ]
    				...
    				wp_page_copy()
    				 cow_user_page()
    				  [ copy page ]
    							[ write to old
    							  page ]
    				...
    				 set_pte_at_notify()
    
    A similar scenario can happen:
    
    cpu0		cpu1		cpu2		cpu3
    ----		----		----		----
    						[ Writable PTE
    				  		  cached in TLB ]
    userfaultfd_writeprotect()
    [ write-protect ]
    [ deferred TLB flush ]
    		userfaultfd_writeprotect()
    		[ write-unprotect ]
    		[ deferred TLB flush]
    				[ page-fault ]
    				wp_page_copy()
    				 cow_user_page()
    				 [ copy page ]
    				 ...		[ write to page ]
    				set_pte_at_notify()
    
    This race exists since commit 292924b ("userfaultfd: wp: apply
    _PAGE_UFFD_WP bit").  Yet, as Yu Zhao pointed, these races became apparent
    since commit 09854ba ("mm: do_wp_page() simplification") which made
    wp_page_copy() more likely to take place, specifically if page_count(page)
    > 1.
    
    To resolve the aforementioned races, check whether there are pending
    flushes on uffd-write-protected VMAs, and if there are, perform a flush
    before doing the COW.
    
    Further optimizations will follow to avoid during uffd-write-unprotect
    unnecassary PTE write-protection and TLB flushes.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 09854ba ("mm: do_wp_page() simplification")
    Signed-off-by: Nadav Amit <[email protected]>
    Suggested-by: Yu Zhao <[email protected]>
    Reviewed-by: Peter Xu <[email protected]>
    Tested-by: Peter Xu <[email protected]>
    Cc: Andrea Arcangeli <[email protected]>
    Cc: Andy Lutomirski <[email protected]>
    Cc: Pavel Emelyanov <[email protected]>
    Cc: Mike Kravetz <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Minchan Kim <[email protected]>
    Cc: Will Deacon <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: <[email protected]>	[5.9+]
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    anadav authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    6ce6442 View commit details
    Browse the repository at this point in the history
  24. ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls

    In https://bugs.gentoo.org/769614 Dmitry noticed that
    `ptrace(PTRACE_GET_SYSCALL_INFO)` does not work for syscalls called via
    glibc's syscall() wrapper.
    
    ia64 has two ways to call syscalls from userspace: via `break` and via
    `eps` instructions.
    
    The difference is in stack layout:
    
    1. `eps` creates simple stack frame: no locals, in{0..7} == out{0..8}
    2. `break` uses userspace stack frame: may be locals (glibc provides
       one), in{0..7} == out{0..8}.
    
    Both work fine in syscall handling cde itself.
    
    But `ptrace(PTRACE_GET_SYSCALL_INFO)` uses unwind mechanism to
    re-extract syscall arguments but it does not account for locals.
    
    The change always skips locals registers. It should not change `eps`
    path as kernel's handler already enforces locals=0 and fixes `break`.
    
    Tested on v5.10 on rx3600 machine (ia64 9040 CPU).
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://bugs.gentoo.org/769614
    Signed-off-by: Sergei Trofimovich <[email protected]>
    Reported-by: Dmitry V. Levin <[email protected]>
    Cc: Oleg Nesterov <[email protected]>
    Cc: John Paul Adrian Glaubitz <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Sergei Trofimovich authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    0ceb1ac View commit details
    Browse the repository at this point in the history
  25. ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign

    In https://bugs.gentoo.org/769614 Dmitry noticed that
    `ptrace(PTRACE_GET_SYSCALL_INFO)` does not return error sign properly.
    
    The bug is in mismatch between get/set errors:
    
    static inline long syscall_get_error(struct task_struct *task,
                                         struct pt_regs *regs)
    {
            return regs->r10 == -1 ? regs->r8:0;
    }
    
    static inline long syscall_get_return_value(struct task_struct *task,
                                                struct pt_regs *regs)
    {
            return regs->r8;
    }
    
    static inline void syscall_set_return_value(struct task_struct *task,
                                                struct pt_regs *regs,
                                                int error, long val)
    {
            if (error) {
                    /* error < 0, but ia64 uses > 0 return value */
                    regs->r8 = -error;
                    regs->r10 = -1;
            } else {
                    regs->r8 = val;
                    regs->r10 = 0;
            }
    }
    
    Tested on v5.10 on rx3600 machine (ia64 9040 CPU).
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://bugs.gentoo.org/769614
    Signed-off-by: Sergei Trofimovich <[email protected]>
    Reported-by: Dmitry V. Levin <[email protected]>
    Reviewed-by: Dmitry V. Levin <[email protected]>
    Cc: John Paul Adrian Glaubitz <[email protected]>
    Cc: Oleg Nesterov <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Sergei Trofimovich authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    61bf318 View commit details
    Browse the repository at this point in the history
  26. mm/memcg: rename mem_cgroup_split_huge_fixup to split_page_memcg and …

    …add nr_pages argument
    
    Rename mem_cgroup_split_huge_fixup to split_page_memcg and explicitly pass
    in page number argument.
    
    In this way, the interface name is more common and can be used by
    potential users.  In addition, the complete info(memcg and flag) of the
    memcg needs to be set to the tail pages.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Zhou Guanghui <[email protected]>
    Acked-by: Johannes Weiner <[email protected]>
    Reviewed-by: Zi Yan <[email protected]>
    Reviewed-by: Shakeel Butt <[email protected]>
    Acked-by: Michal Hocko <[email protected]>
    Cc: Hugh Dickins <[email protected]>
    Cc: "Kirill A. Shutemov" <[email protected]>
    Cc: Nicholas Piggin <[email protected]>
    Cc: Kefeng Wang <[email protected]>
    Cc: Hanjun Guo <[email protected]>
    Cc: Tianhong Ding <[email protected]>
    Cc: Weilong Chen <[email protected]>
    Cc: Rui Xiang <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Zhou Guanghui authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    be6c898 View commit details
    Browse the repository at this point in the history
  27. mm/memcg: set memcg when splitting page

    As described in the split_page() comment, for the non-compound high order
    page, the sub-pages must be freed individually.  If the memcg of the first
    page is valid, the tail pages cannot be uncharged when be freed.
    
    For example, when alloc_pages_exact is used to allocate 1MB continuous
    physical memory, 2MB is charged(kmemcg is enabled and __GFP_ACCOUNT is
    set).  When make_alloc_exact free the unused 1MB and free_pages_exact free
    the applied 1MB, actually, only 4KB(one page) is uncharged.
    
    Therefore, the memcg of the tail page needs to be set when splitting a
    page.
    
    Michel:
    
    There are at least two explicit users of __GFP_ACCOUNT with
    alloc_exact_pages added recently.  See 7efe8ef ("KVM: arm64:
    Allocate stage-2 pgd pages with GFP_KERNEL_ACCOUNT") and c419621
    ("KVM: s390: Add memcg accounting to KVM allocations"), so this is not
    just a theoretical issue.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Zhou Guanghui <[email protected]>
    Acked-by: Johannes Weiner <[email protected]>
    Reviewed-by: Zi Yan <[email protected]>
    Reviewed-by: Shakeel Butt <[email protected]>
    Acked-by: Michal Hocko <[email protected]>
    Cc: Hanjun Guo <[email protected]>
    Cc: Hugh Dickins <[email protected]>
    Cc: Kefeng Wang <[email protected]>
    Cc: "Kirill A. Shutemov" <[email protected]>
    Cc: Nicholas Piggin <[email protected]>
    Cc: Rui Xiang <[email protected]>
    Cc: Tianhong Ding <[email protected]>
    Cc: Weilong Chen <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Zhou Guanghui authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    e1baddf View commit details
    Browse the repository at this point in the history
  28. zram: fix return value on writeback_store

    writeback_store's return value is overwritten by submit_bio_wait's return
    value.  Thus, writeback_store will return zero since there was no IO
    error.  In the end, write syscall from userspace will see the zero as
    return value, which could make the process stall to keep trying the write
    until it will succeed.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 3b82a05("drivers/block/zram/zram_drv.c: fix error return codes not being returned in writeback_store")
    Signed-off-by: Minchan Kim <[email protected]>
    Cc: Sergey Senozhatsky <[email protected]>
    Cc: Colin Ian King <[email protected]>
    Cc: John Dias <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    minchank authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    57e0076 View commit details
    Browse the repository at this point in the history
  29. zram: fix broken page writeback

    commit 0d83596 ("zram: support page writeback") introduced two
    problems.  It overwrites writeback_store's return value as kstrtol's
    return value, which makes return value zero so user could see zero as
    return value of write syscall even though it wrote data successfully.
    
    It also breaks index value in the loop in that it doesn't increase the
    index any longer.  It means it can write only first starting block index
    so user couldn't write all idle pages in the zram so lose memory saving
    chance.
    
    This patch fixes those issues.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 0d83596("zram: support page writeback")
    Signed-off-by: Minchan Kim <[email protected]>
    Reported-by: Amos Bianchi <[email protected]>
    Cc: Sergey Senozhatsky <[email protected]>
    Cc: John Dias <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    minchank authored and torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    2766f18 View commit details
    Browse the repository at this point in the history
  30. Merge tag 'kbuild-fixes-v5.12-2' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/masahiroy/linux-kbuild
    
    Pull Kbuild fixes from Masahiro Yamada:
    
     - avoid 'make image_name' invoking syncconfig
    
     - fix a couple of bugs in scripts/dummy-tools
    
     - fix LLD_VENDOR and locale issues in scripts/ld-version.sh
    
     - rebuild GCC plugins when the compiler is upgraded
    
     - allow LTO to be enabled with KASAN_HW_TAGS
    
     - allow LTO to be enabled without LLVM=1
    
    * tag 'kbuild-fixes-v5.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
      kbuild: fix ld-version.sh to not be affected by locale
      kbuild: remove meaningless parameter to $(call if_changed_rule,dtc)
      kbuild: remove LLVM=1 test from HAS_LTO_CLANG
      kbuild: remove unneeded -O option to dtc
      kbuild: dummy-tools: adjust to scripts/cc-version.sh
      kbuild: Allow LTO to be selected with KASAN_HW_TAGS
      kbuild: dummy-tools: support MPROFILE_KERNEL checks for ppc
      kbuild: rebuild GCC plugins when the compiler is upgraded
      kbuild: Fix ld-version.sh script if LLD was built with LLD_VENDOR
      kbuild: dummy-tools: fix inverted tests for gcc
      kbuild: add image_name to no-sync-config-targets
    torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    e83bad7 View commit details
    Browse the repository at this point in the history
  31. Merge tag 'erofs-for-5.12-rc3' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/xiang/erofs
    
    Pull erofs fix from Gao Xiang:
     "Fix an urgent regression introduced by commit baa2c7c ("block:
      set .bi_max_vecs as actual allocated vector number"), which could
      cause unexpected hung since linux 5.12-rc1.
    
      Resolve it by avoiding using bio->bi_max_vecs completely"
    
    * tag 'erofs-for-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
      erofs: fix bio->bi_max_vecs behavior change
    torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    4206234 View commit details
    Browse the repository at this point in the history
  32. Merge tag 'usb-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/usb
    
    Pull USB fixes from Greg KH:
     "Here are a small number of USB fixes for 5.12-rc3 to resolve a bunch
      of reported issues:
    
       - usbip fixups for issues found by syzbot
    
       - xhci driver fixes and quirk additions
    
       - gadget driver fixes
    
       - dwc3 QCOM driver fix
    
       - usb-serial new ids and fixes
    
       - usblp fix for a long-time issue
    
       - cdc-acm quirk addition
    
       - other tiny fixes for reported problems
    
      All of these have been in linux-next for a while with no reported
      issues"
    
    * tag 'usb-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (25 commits)
      xhci: Fix repeated xhci wake after suspend due to uncleared internal wake state
      usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing
      xhci: Improve detection of device initiated wake signal.
      usb: xhci: do not perform Soft Retry for some xHCI hosts
      usbip: fix vudc usbip_sockfd_store races leading to gpf
      usbip: fix vhci_hcd attach_store() races leading to gpf
      usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
      usbip: fix vudc to check for stream socket
      usbip: fix vhci_hcd to check for stream socket
      usbip: fix stub_dev to check for stream socket
      usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement
      USB: usblp: fix a hang in poll() if disconnected
      USB: gadget: udc: s3c2410_udc: fix return value check in s3c2410_udc_probe()
      usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM
      usb: dwc3: qcom: Honor wakeup enabled/disabled state
      usb: gadget: f_uac1: stop playback on function disable
      usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio slot
      USB: gadget: u_ether: Fix a configfs return code
      usb: dwc3: qcom: add ACPI device id for sc8180x
      Goodix Fingerprint device is not a modem
      ...
    torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    5c7bdbf View commit details
    Browse the repository at this point in the history
  33. Merge tag 'tty-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/tty
    
    Pull tty/serial fixes from Greg KH:
     "Here are some small tty and serial driver fixes to resolve some
      reported problems:
    
       - led tty trigger fixes based on review and were acked by the led
         maintainer
    
       - revert a max310x serial driver patch as it was causing problems
    
       - revert a pty change as it was also causing problems
    
      All of these have been in linux-next for a while with no reported
      problems"
    
    * tag 'tty-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
      Revert "drivers:tty:pty: Fix a race causing data loss on close"
      Revert "serial: max310x: rework RX interrupt handling"
      leds: trigger/tty: Use led_set_brightness_sync() from workqueue
      leds: trigger: Fix error path to not unlock the unlocked mutex
    torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    cc14086 View commit details
    Browse the repository at this point in the history
  34. Merge tag 'staging-5.12-rc3' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/gregkh/staging
    
    Pull staging driver fixes from Greg KH:
     "Here are some small staging driver fixes for reported problems. They
      include:
    
       - wfx header file cleanup patch reverted as it could cause problems
    
       - comedi driver endian fixes
    
       - buffer overflow problems for staging wifi drivers
    
       - build dependency issue for rtl8192e driver
    
      All have been in linux-next for a while with no reported problems"
    
    * tag 'staging-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (23 commits)
      Revert "staging: wfx: remove unused included header files"
      staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
      staging: rtl8188eu: fix potential memory corruption in rtw_check_beacon_data()
      staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
      staging: comedi: pcl726: Use 16-bit 0 for interrupt data
      staging: comedi: ni_65xx: Use 16-bit 0 for interrupt data
      staging: comedi: ni_6527: Use 16-bit 0 for interrupt data
      staging: comedi: comedi_parport: Use 16-bit 0 for interrupt data
      staging: comedi: amplc_pc236_common: Use 16-bit 0 for interrupt data
      staging: comedi: pcl818: Fix endian problem for AI command data
      staging: comedi: pcl711: Fix endian problem for AI command data
      staging: comedi: me4000: Fix endian problem for AI command data
      staging: comedi: dmm32at: Fix endian problem for AI command data
      staging: comedi: das800: Fix endian problem for AI command data
      staging: comedi: das6402: Fix endian problem for AI command data
      staging: comedi: adv_pci1710: Fix endian problem for AI command data
      staging: comedi: addi_apci_1500: Fix endian problem for command sample
      staging: comedi: addi_apci_1032: Fix endian problem for COS sample
      staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()
      staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
      ...
    torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    be61af3 View commit details
    Browse the repository at this point in the history
  35. Merge tag 'char-misc-5.12-rc3' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/gregkh/char-misc
    
    Pull char/misc driver fixes from Greg KH:
     "Here are some small misc/char driver fixes to resolve some reported
      problems:
    
       - habanalabs driver fixes
    
       - Acrn build fixes (reported many times)
    
       - pvpanic module table export fix
    
      All of these have been in linux-next for a while with no reported
      issues"
    
    * tag 'char-misc-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
      misc/pvpanic: Export module FDT device table
      misc: fastrpc: restrict user apps from sending kernel RPC messages
      virt: acrn: Correct type casting of argument of copy_from_user()
      virt: acrn: Use EPOLLIN instead of POLLIN
      virt: acrn: Use vfs_poll() instead of f_op->poll()
      virt: acrn: Make remove_cpu sysfs invisible with !CONFIG_HOTPLUG_CPU
      cpu/hotplug: Fix build error of using {add,remove}_cpu() with !CONFIG_SMP
      habanalabs: fix debugfs address translation
      habanalabs: Disable file operations after device is removed
      habanalabs: Call put_pid() when releasing control device
      drivers: habanalabs: remove unused dentry pointer for debugfs files
      habanalabs: mark hl_eq_inc_ptr() as static
    torvalds committed Mar 13, 2021
    Configuration menu
    Copy the full SHA
    88fe492 View commit details
    Browse the repository at this point in the history

Commits on Mar 14, 2021

  1. Merge tag 'irqchip-fixes-5.12-1' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/maz/arm-platforms into irq/urgent
    
    Pull irqchip fixes from Marc Zyngier:
    
      - More compatible strings for the Ingenic irqchip (introducing the
        JZ4760B SoC)
      - Select GENERIC_IRQ_MULTI_HANDLER on the ARM ep93xx platform
      - Drop all GENERIC_IRQ_MULTI_HANDLER selections from the irqchip
        Kconfig, now relying on the architecture to get it right
      - Drop the debugfs_file field from struct irq_domain, now that
        debugfs can track things on its own
    KAGA-KOKO committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    b470ebc View commit details
    Browse the repository at this point in the history
  2. Merge branch 'akpm' (patches from Andrew)

    Merge misc fixes from Andrew Morton:
     "28 patches.
    
      Subsystems affected by this series: mm (memblock, pagealloc, hugetlb,
      highmem, kfence, oom-kill, madvise, kasan, userfaultfd, memcg, and
      zram), core-kernel, kconfig, fork, binfmt, MAINTAINERS, kbuild, and
      ia64"
    
    * emailed patches from Andrew Morton <[email protected]>: (28 commits)
      zram: fix broken page writeback
      zram: fix return value on writeback_store
      mm/memcg: set memcg when splitting page
      mm/memcg: rename mem_cgroup_split_huge_fixup to split_page_memcg and add nr_pages argument
      ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
      ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
      mm/userfaultfd: fix memory corruption due to writeprotect
      kasan: fix KASAN_STACK dependency for HW_TAGS
      kasan, mm: fix crash with HW_TAGS and DEBUG_PAGEALLOC
      mm/madvise: replace ptrace attach requirement for process_madvise
      include/linux/sched/mm.h: use rcu_dereference in in_vfork()
      kfence: fix reports if constant function prefixes exist
      kfence, slab: fix cache_alloc_debugcheck_after() for bulk allocations
      kfence: fix printk format for ptrdiff_t
      linux/compiler-clang.h: define HAVE_BUILTIN_BSWAP*
      MAINTAINERS: exclude uapi directories in API/ABI section
      binfmt_misc: fix possible deadlock in bm_register_write
      mm/highmem.c: fix zero_user_segments() with start > end
      hugetlb: do early cow when page pinned on src mm
      mm: use is_cow_mapping() across tree where proper
      ...
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    50eb842 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

    Pull KVM fixes from Paolo Bonzini:
     "More fixes for ARM and x86"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
      KVM: LAPIC: Advancing the timer expiration on guest initiated write
      KVM: x86/mmu: Skip !MMU-present SPTEs when removing SP in exclusive mode
      KVM: kvmclock: Fix vCPUs > 64 can't be online/hotpluged
      kvm: x86: annotate RCU pointers
      KVM: arm64: Fix exclusive limit for IPA size
      KVM: arm64: Reject VM creation when the default IPA size is unsupported
      KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
      KVM: arm64: Don't use cbz/adr with external symbols
      KVM: arm64: Fix range alignment when walking page tables
      KVM: arm64: Workaround firmware wrongly advertising GICv2-on-v3 compatibility
      KVM: arm64: Rename __vgic_v3_get_ich_vtr_el2() to __vgic_v3_get_gic_config()
      KVM: arm64: Don't access PMSELR_EL0/PMUSERENR_EL0 when no PMU is available
      KVM: arm64: Turn kvm_arm_support_pmu_v3() into a static key
      KVM: arm64: Fix nVHE hyp panic host context restore
      KVM: arm64: Avoid corrupting vCPU context register in guest exit
      KVM: arm64: nvhe: Save the SPE context early
      kvm: x86: use NULL instead of using plain integer as pointer
      KVM: SVM: Connect 'npt' module param to KVM's internal 'npt_enabled'
      KVM: x86: Ensure deadline timer has truly expired before posting its IRQ
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    9d0c8e7 View commit details
    Browse the repository at this point in the history
  4. Merge tag 'powerpc-5.12-3' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/powerpc/linux
    
    Pull powerpc fixes from Michael Ellerman:
     "Some more powerpc fixes for 5.12:
    
       - Fix wrong instruction encoding for lis in ppc_function_entry(),
         which could potentially lead to missed kprobes.
    
       - Fix SET_FULL_REGS on 32-bit and 64e, which prevented ptrace of
         non-volatile GPRs immediately after exec.
    
       - Clean up a missed SRR specifier in the recent interrupt rework.
    
       - Don't treat unrecoverable_exception() as an interrupt handler, it's
         called from other handlers so shouldn't do the interrupt entry/exit
         accounting itself.
    
       - Fix build errors caused by missing declarations for
         [en/dis]able_kernel_vsx().
    
      Thanks to Christophe Leroy, Daniel Axtens, Geert Uytterhoeven, Jiri
      Olsa, Naveen N. Rao, and Nicholas Piggin"
    
    * tag 'powerpc-5.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
      powerpc/traps: unrecoverable_exception() is not an interrupt handler
      powerpc: Fix missing declaration of [en/dis]able_kernel_vsx()
      powerpc/64s/exception: Clean up a missed SRR specifier
      powerpc: Fix inverted SET_FULL_REGS bitop
      powerpc/64s: Use symbolic macros for function entry encoding
      powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    c3c7579 View commit details
    Browse the repository at this point in the history
  5. Merge tag 'x86_urgent_for_v5.12_rc3' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull x86 fixes from Borislav Petkov:
    
     - A couple of SEV-ES fixes and robustifications: verify usermode stack
       pointer in NMI is not coming from the syscall gap, correctly track
       IRQ states in the #VC handler and access user insn bytes atomically
       in same handler as latter cannot sleep.
    
     - Balance 32-bit fast syscall exit path to do the proper work on exit
       and thus not confuse audit and ptrace frameworks.
    
     - Two fixes for the ORC unwinder going "off the rails" into KASAN
       redzones and when ORC data is missing.
    
    * tag 'x86_urgent_for_v5.12_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/sev-es: Use __copy_from_user_inatomic()
      x86/sev-es: Correctly track IRQ states in runtime #VC handler
      x86/sev-es: Check regs->sp is trusted before adjusting #VC IST stack
      x86/sev-es: Introduce ip_within_syscall_gap() helper
      x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls
      x86/unwind/orc: Silence warnings caused by missing ORC data
      x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    0a7c10d View commit details
    Browse the repository at this point in the history
  6. Merge tag 'efi-urgent-for-v5.12-rc2' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull EFI fix from Ard Biesheuvel via Borislav Petkov:
     "Fix an oversight in the handling of EFI_RT_PROPERTIES_TABLE, which was
      added v5.10, but failed to take the SetVirtualAddressMap() RT service
      into account"
    
    * tag 'efi-urgent-for-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      efi: stub: omit SetVirtualAddressMap() if marked unsupported in RT_PROP table
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    836d7f0 View commit details
    Browse the repository at this point in the history
  7. Merge tag 'perf_urgent_for_v5.12-rc3' of git://git.kernel.org/pub/scm…

    …/linux/kernel/git/tip/tip
    
    Pull perf fixes from Borislav Petkov:
    
     - Make sure PMU internal buffers are flushed for per-CPU events too and
       properly handle PID/TID for large PEBS.
    
     - Handle the case properly when there's no PMU and therefore return an
       empty list of perf MSRs for VMX to switch instead of reading random
       garbage from the stack.
    
    * tag 'perf_urgent_for_v5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/perf: Use RET0 as default for guest_get_msrs to handle "no PMU" case
      perf/x86/intel: Set PERF_ATTACH_SCHED_CB for large PEBS and LBR
      perf/core: Flush PMU internal buffers for per-CPU events
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    75013c6 View commit details
    Browse the repository at this point in the history
  8. Merge tag 'locking-urgent-2021-03-14' of git://git.kernel.org/pub/scm…

    …/linux/kernel/git/tip/tip
    
    Pull locking fixes from Thomas Gleixner:
     "A couple of locking fixes:
    
       - A fix for the static_call mechanism so it handles unaligned
         addresses correctly.
    
       - Make u64_stats_init() a macro so every instance gets a seperate
         lockdep key.
    
       - Make seqcount_latch_init() a macro as well to preserve the static
         variable which is used for the lockdep key"
    
    * tag 'locking-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      seqlock,lockdep: Fix seqcount_latch_init()
      u64_stats,lockdep: Fix u64_stats_init() vs lockdep
      static_call: Fix the module key fixup
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    fa509ff View commit details
    Browse the repository at this point in the history
  9. Merge tag 'objtool-urgent-2021-03-14' of git://git.kernel.org/pub/scm…

    …/linux/kernel/git/tip/tip
    
    Pull objtool fix from Thomas Gleixner:
     "A single objtool fix to handle the PUSHF/POPF validation correctly for
      the paravirt changes which modified arch_local_irq_restore not to use
      popf"
    
    * tag 'objtool-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      objtool,x86: Fix uaccess PUSHF/POPF validation
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    19469d2 View commit details
    Browse the repository at this point in the history
  10. Merge tag 'sched-urgent-2021-03-14' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/tip/tip
    
    Pull scheduler fixes from Thomas Gleixner:
     "A set of scheduler updates:
    
       - Prevent a NULL pointer dereference in the migration_stop_cpu()
         mechanims
    
       - Prevent self concurrency of affine_move_task()
    
       - Small fixes and cleanups related to task migration/affinity setting
    
       - Ensure that sync_runqueues_membarrier_state() is invoked on the
         current CPU when it is in the cpu mask"
    
    * tag 'sched-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      sched/membarrier: fix missing local execution of ipi_sync_rq_state()
      sched: Simplify set_affinity_pending refcounts
      sched: Fix affine_move_task() self-concurrency
      sched: Optimize migration_cpu_stop()
      sched: Collate affine_move_task() stoppers
      sched: Simplify migration_cpu_stop()
      sched: Fix migration_cpu_stop() requeueing
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    c72cbc9 View commit details
    Browse the repository at this point in the history
  11. Merge tag 'timers-urgent-2021-03-14' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull timer fix from Thomas Gleixner:
     "A single fix in for hrtimers to prevent an interrupt storm caused by
      the lack of reevaluation of the timers which expire in softirq context
      under certain circumstances, e.g. when the clock was set"
    
    * tag 'timers-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      hrtimer: Update softirq_expires_next correctly after __hrtimer_get_next_event()
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    802b31c View commit details
    Browse the repository at this point in the history
  12. Merge tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/tip/tip
    
    Pull irq fixes from Thomas Gleixner:
     "A set of irqchip updates:
    
       - Make the GENERIC_IRQ_MULTI_HANDLER configuration correct
    
       - Add a missing DT compatible string for the Ingenic driver
    
       - Remove the pointless debugfs_file pointer from struct irqdomain"
    
    * tag 'irq-urgent-2021-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      irqchip/ingenic: Add support for the JZ4760
      dt-bindings/irq: Add compatible string for the JZ4760B
      irqchip: Do not blindly select CONFIG_GENERIC_IRQ_MULTI_HANDLER
      ARM: ep93xx: Select GENERIC_IRQ_MULTI_HANDLER directly
      irqdomain: Remove debugfs_file from struct irq_domain
    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    70404fe View commit details
    Browse the repository at this point in the history
  13. prctl: fix PR_SET_MM_AUXV kernel stack leak

    Doing a
    
    	prctl(PR_SET_MM, PR_SET_MM_AUXV, addr, 1);
    
    will copy 1 byte from userspace to (quite big) on-stack array
    and then stash everything to mm->saved_auxv.
    AT_NULL terminator will be inserted at the very end.
    
    /proc/*/auxv handler will find that AT_NULL terminator
    and copy original stack contents to userspace.
    
    This devious scheme requires CAP_SYS_RESOURCE.
    
    Signed-off-by: Alexey Dobriyan <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Alexey Dobriyan authored and torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    c995f12 View commit details
    Browse the repository at this point in the history
  14. Linux 5.12-rc3

    torvalds committed Mar 14, 2021
    Configuration menu
    Copy the full SHA
    1e28eed View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2021

  1. Merge tag 'v5.12-rc3' into rust-sync

    Linux 5.12-rc3
    
    Signed-off-by: Miguel Ojeda <[email protected]>
    ojeda committed Mar 15, 2021
    Configuration menu
    Copy the full SHA
    da1e5d8 View commit details
    Browse the repository at this point in the history