Skip to content
  1. Nov 13, 2021
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 0d5d7463
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of fixes for 5.16-rc1, notably for a few regressions that
        were found in 5.15 and pre-rc1:
      
         - revert of the unification of SG-buffer helper functions on x86 and
           the relevant fix
      
         - regression fixes for mmap after the recent code refactoring
      
         - two NULL dereference fixes in HD-audio controller driver
      
         - UAF fixes in ALSA timer core
      
         - a few usual HD-audio and FireWire quirks"
      
      * tag 'sound-fix-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: fireworks: add support for Loud Onyx 1200f quirk
        ALSA: hda: fix general protection fault in azx_runtime_idle
        ALSA: hda: Free card instance properly at probe errors
        ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
        ALSA: memalloc: Remove a stale comment
        ALSA: synth: missing check for possible NULL after the call to kstrdup
        ALSA: memalloc: Use proper SG helpers for noncontig allocations
        ALSA: pci: rme: Fix unaligned buffer addresses
        ALSA: firewire-motu: add support for MOTU Track 16
        ALSA: PCM: Fix NULL dereference at mmap checks
        ALSA: hda/realtek: Add quirk for ASUS UX550VE
        ALSA: timer: Unconditionally unlink slave instances, too
        ALSA: memalloc: Catch call with NULL snd_dma_buffer pointer
        Revert "ALSA: memalloc: Convert x86 SG-buffer handling with non-contiguous type"
        ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
        ALSA: firewire-motu: add support for MOTU Traveler mk3
        ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
        ALSA: timer: Fix use-after-free problem
      0d5d7463
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-11-12' of git://anongit.freedesktop.org/drm/drm · 304ac803
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "I missed a drm-misc-next pull for the main pull last week. It wasn't
        that major and isn't the bulk of this at all. This has a bunch of
        fixes all over, a lot for amdgpu and i915.
      
        bridge:
         - HPD improvments for lt9611uxc
         - eDP aux-bus support for ps8640
         - LVDS data-mapping selection support
      
        ttm:
         - remove huge page functionality (needs reworking)
         - fix a race condition during BO eviction
      
        panels:
         - add some new panels
      
        fbdev:
         - fix double-free
         - remove unused scrolling acceleration
         - CONFIG_FB dep improvements
      
        locking:
         - improve contended locking logging
         - naming collision fix
      
        dma-buf:
         - add dma_resv_for_each_fence iterator
         - fix fence refcounting bug
         - name locking fixesA
      
        prime:
         - fix object references during mmap
      
        nouveau:
         - various code style changes
         - refcount fix
         - device removal fixes
         - protect client list with a mutex
         - fix CE0 address calculation
      
        i915:
         - DP rates related fixes
         - Revert disabling dual eDP that was causing state readout problems
         - put the cdclk vtables in const data
         - Fix DVO port type for older platforms
         - Fix blankscreen by turning DP++ TMDS output buffers on encoder->shutdown
         - CCS FBs related fixes
         - Fix recursive lock in GuC submission
         - Revert guc_id from i915_request tracepoint
         - Build fix around dmabuf
      
        amdgpu:
         - GPU reset fix
         - Aldebaran fix
         - Yellow Carp fixes
         - DCN2.1 DMCUB fix
         - IOMMU regression fix for Picasso
         - DSC display fixes
         - BPC display calculation fixes
         - Other misc display fixes
         - Don't allow partial copy from user for DC debugfs
         - SRIOV fixes
         - GFX9 CSB pin count fix
         - Various IP version check fixes
         - DP 2.0 fixes
         - Limit DCN1 MPO fix to DCN1
      
        amdkfd:
         - SVM fixes
         - Fix gfx version for renoir
         - Reset fixes
      
        udl:
         - timeout fix
      
        imx:
         - circular locking fix
      
        virtio:
         - NULL ptr deref fix"
      
      * tag 'drm-next-2021-11-12' of git://anongit.freedesktop.org/drm/drm: (126 commits)
        drm/ttm: Double check mem_type of BO while eviction
        drm/amdgpu: add missed support for UVD IP_VERSION(3, 0, 64)
        drm/amdgpu: drop jpeg IP initialization in SRIOV case
        drm/amd/display: reject both non-zero src_x and src_y only for DCN1x
        drm/amd/display: Add callbacks for DMUB HPD IRQ notifications
        drm/amd/display: Don't lock connection_mutex for DMUB HPD
        drm/amd/display: Add comment where CONFIG_DRM_AMD_DC_DCN macro ends
        drm/amdkfd: Fix retry fault drain race conditions
        drm/amdkfd: lower the VAs base offset to 8KB
        drm/amd/display: fix exit from amdgpu_dm_atomic_check() abruptly
        drm/amd/amdgpu: fix the kfd pre_reset sequence in sriov
        drm/amdgpu: fix uvd crash on Polaris12 during driver unloading
        drm/i915/adlp/fb: Prevent the mapping of redundant trailing padding NULL pages
        drm/i915/fb: Fix rounding error in subsampled plane size calculation
        drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown()
        drm/locking: fix __stack_depot_* name conflict
        drm/virtio: Fix NULL dereference error in virtio_gpu_poll
        drm/amdgpu: fix SI handling in amdgpu_device_asic_has_dc_support()
        drm/amdgpu: Fix dangling kfd_bo pointer for shared BOs
        drm/amd/amdkfd: Don't sent command to HWS on kfd reset
        ...
      304ac803
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · f78e9de8
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "Just one new driver (Cypress StreetFighter touchkey), and no input
        core changes this time.
      
        Plus various fixes and enhancements to existing drivers"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (54 commits)
        Input: iforce - fix control-message timeout
        Input: wacom_i2c - use macros for the bit masks
        Input: ili210x - reduce sample period to 15ms
        Input: ili210x - improve polled sample spacing
        Input: ili210x - special case ili251x sample read out
        Input: elantench - fix misreporting trackpoint coordinates
        Input: synaptics-rmi4 - Fix device hierarchy
        Input: i8042 - Add quirk for Fujitsu Lifebook T725
        Input: cap11xx - add support for cap1206
        Input: remove unused header <linux/input/cy8ctmg110_pdata.h>
        Input: ili210x - add ili251x firmware update support
        Input: ili210x - export ili251x version details via sysfs
        Input: ili210x - use resolution from ili251x firmware
        Input: pm8941-pwrkey - respect reboot_mode for warm reset
        reboot: export symbol 'reboot_mode'
        Input: max77693-haptic - drop unneeded MODULE_ALIAS
        Input: cpcap-pwrbutton - do not set input parent explicitly
        Input: max8925_onkey - don't mark comment as kernel-doc
        Input: ads7846 - do not attempt IRQ workaround when deferring probe
        Input: ads7846 - use input_set_capability()
        ...
      f78e9de8
    • Linus Torvalds's avatar
      Merge tag 'rtc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 3b81bf78
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "This includes new ioctls to get and set parameters and in particular
        the backup switch mode that is needed for some RTCs to actually enable
        the backup voltage (and have a useful RTC).
      
        The same interface can also be used to get the actual features
        supported by the RTC so userspace has a better way than trying and
        failing.
      
        Summary:
      
        Subsystem:
         - Add new ioctl to get and set extra RTC parameters, this includes
           backup switch mode
         - Expose available features to userspace, in particular, when alarmas
           have a resolution of one minute instead of a second.
         - Let the core handle those alarms with a minute resolution
      
        New driver:
         - MSTAR MSC313 RTC
      
        Drivers:
         - Add SPI ID table where necessary
         - Add BSM support for rv3028, rv3032 and pcf8523
         - s3c: set RTC range
         - rx8025: set range, implement .set_offset and .read_offset"
      
      * tag 'rtc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (50 commits)
        rtc: rx8025: use .set_offset/.read_offset
        rtc: rx8025: use rtc_add_group
        rtc: rx8025: clear RTC_FEATURE_ALARM when alarm are not supported
        rtc: rx8025: set range
        rtc: rx8025: let the core handle the alarm resolution
        rtc: rx8025: switch to devm_rtc_allocate_device
        rtc: ab8500: let the core handle the alarm resolution
        rtc: ab-eoz9: support UIE when available
        rtc: ab-eoz9: use RTC_FEATURE_UPDATE_INTERRUPT
        rtc: rv3032: let the core handle the alarm resolution
        rtc: s35390a: let the core handle the alarm resolution
        rtc: handle alarms with a minute resolution
        rtc: pcf85063: silence cppcheck warning
        rtc: rv8803: fix writing back ctrl in flag register
        rtc: s3c: Add time range
        rtc: s3c: Extract read/write IO into separate functions
        rtc: s3c: Remove usage of devm_rtc_device_register()
        rtc: tps80031: Remove driver
        rtc: sun6i: Allow probing without an early clock provider
        rtc: pcf8523: add BSM support
        ...
      3b81bf78
    • Linus Torvalds's avatar
      Merge tag 'libata-5.16-rc1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 204d32ef
      Linus Torvalds authored
      Pull more libata updates from Damien Le Moal:
       "Second round of updates for libata for 5.16:
      
         - Fix READ LOG EXT and READ LOG DMA EXT command timeouts during disk
           revalidation after a resume or a modprobe of the LLDD (me)
      
         - Remove unnecessary error message in sata_highbank driver (Xu)
      
         - Better handling of accesses to the IDENTIFY DEVICE data log for
           drives that do not support this log page (me)
      
         - Fix ahci_shost_attr_group declaration in ahci driver (me)"
      
      * tag 'libata-5.16-rc1-p2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        libata: libahci: declare ahci_shost_attr_group as static
        libata: add horkage for missing Identify Device log
        ata: sata_highbank: Remove unnecessary print function dev_err()
        libata: fix read log timeout value
      204d32ef
    • Sasha Levin's avatar
      tools/lib/lockdep: drop liblockdep · 7246f4dc
      Sasha Levin authored
      
      
      TL;DR: While a tool like liblockdep is useful, it probably doesn't
      belong within the kernel tree.
      
      liblockdep attempts to reuse kernel code both directly (by directly
      building the kernel's lockdep code) as well as indirectly (by using
      sanitized headers). This makes liblockdep an integral part of the
      kernel.
      
      It also makes liblockdep quite unique: while other userspace code might
      use sanitized headers, it generally doesn't attempt to use kernel code
      directly which means that changes on the kernel side of things don't
      affect (and break) it directly.
      
      All our workflows and tooling around liblockdep don't support this
      uniqueness. Changes that go into the kernel code aren't validated to not
      break in-tree userspace code.
      
      liblockdep ended up being very fragile, breaking over and over, to the
      point that living in the same tree as the lockdep code lost most of it's
      value.
      
      liblockdep should continue living in an external tree, syncing with
      the kernel often, in a controllable way.
      
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7246f4dc
    • Linus Torvalds's avatar
      thermal: int340x: fix build on 32-bit targets · d9c8e52f
      Linus Torvalds authored
      
      
      Commit aeb58c86 ("thermal/drivers/int340x: processor_thermal: Suppot
      64 bit RFIM responses") started using 'readq()' to read 64-bit status
      responses from the int340x hardware.
      
      That's all fine and good, but on 32-bit targets a 64-bit 'readq()' is
      ambiguous, since it's no longer an atomic access.  Some hardware might
      require 64-bit accesses, and other hardware might want low word first or
      high word first.
      
      It's quite likely that the driver isn't relevant in a 32-bit environment
      any more, and there's a patch floating around to just make it depend on
      X86_64, but let's make it buildable on x86-32 anyway.
      
      The driver previously just read the low 32 bits, so the hardware
      certainly is ok with 32-bit reads, and in a little-endian environment
      the low word first model is the natural one.
      
      So just add the include for the 'io-64-nonatomic-lo-hi.h' version.
      
      Fixes: aeb58c86 ("thermal/drivers/int340x: processor_thermal: Suppot 64 bit RFIM responses")
      Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
      Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d9c8e52f
  2. Nov 12, 2021
  3. Nov 11, 2021
    • Takashi Sakamoto's avatar
      ALSA: fireworks: add support for Loud Onyx 1200f quirk · 0ca37273
      Takashi Sakamoto authored
      
      
      Loud Technologies shipped Onyx 1200f 2008 in its Mackie brand and
      already discontinued. The model uses component of Fireworks board
      module as its communication and DSP function.
      
      The latest firmware (v4.6.0) has a quirk that tx packet includes wrong
      value (0x1f) in its dbs field at middle and higher sampling transfer
      frequency. It brings ALSA fireworks driver discontinuity of data block
      counter.
      
      This commit fixes it by assuming it as a quirk of firmware version
      4.6.0.
      
      $ cd linux-firewire-tools/src
      $ python crpp < /sys/bus/firewire/devices/fw1/config_rom
                     ROM header and bus information block
                     -----------------------------------------------------------------
      400  0404b9ef  bus_info_length 4, crc_length 4, crc 47599
      404  31333934  bus_name "1394"
      408  e064a212  irmc 1, cmc 1, isc 1, bmc 0, pmc 0, cyc_clk_acc 100,
                     max_rec 10 (2048), max_rom 2, gen 1, spd 2 (S400)
      40c  000ff209  company_id 000ff2     |
      410  62550ce0  device_id 0962550ce0  | EUI-64 000ff20962550ce0
      
                     root directory
                     -----------------------------------------------------------------
      414  0008088e  directory_length 8, crc 2190
      418  03000ff2  vendor
      41c  8100000f  --> descriptor leaf at 458
      420  1701200f  model
      424  81000018  --> descriptor leaf at 484
      428  0c008380  node capabilities
      42c  8d000003  --> eui-64 leaf at 438
      430  d1000005  --> unit directory at 444
      434  08000ff2  (immediate value)
      
                     eui-64 leaf at 438
                     -----------------------------------------------------------------
      438  000281ae  leaf_length 2, crc 33198
      43c  000ff209  company_id 000ff2     |
      440  62550ce0  device_id 0962550ce0  | EUI-64 000ff20962550ce0
      
                     unit directory at 444
                     -----------------------------------------------------------------
      444  00045d94  directory_length 4, crc 23956
      448  1200a02d  specifier id: 1394 TA
      44c  13010000  version
      450  1701200f  model
      454  8100000c  --> descriptor leaf at 484
      
                     descriptor leaf at 458
                     -----------------------------------------------------------------
      458  000a199d  leaf_length 10, crc 6557
      45c  00000000  textual descriptor
      460  00000000  minimal ASCII
      464  4d61636b  "Mack"
      468  69650000  "ie"
      46c  00000000
      470  00000000
      474  00000000
      478  00000000
      47c  00000000
      480  00000000
      
                     descriptor leaf at 484
                     -----------------------------------------------------------------
      484  000a0964  leaf_length 10, crc 2404
      488  00000000  textual descriptor
      48c  00000000  minimal ASCII
      490  4f6e7978  "Onyx"
      494  20313230  " 120"
      498  30460000  "0F"
      49c  00000000
      4a0  00000000
      4a4  00000000
      4a8  00000000
      4ac  00000000
      
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Link: https://lore.kernel.org/r/20211111103015.7498-1-o-takashi@sakamocchi.jp
      
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      0ca37273
    • Willem de Bruijn's avatar
      selftests/net: udpgso_bench_rx: fix port argument · d336509c
      Willem de Bruijn authored
      
      
      The below commit added optional support for passing a bind address.
      It configures the sockaddr bind arguments before parsing options and
      reconfigures on options -b and -4.
      
      This broke support for passing port (-p) on its own.
      
      Configure sockaddr after parsing all arguments.
      
      Fixes: 3327a9c4 ("selftests: add functionals test for UDP GRO")
      Reported-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d336509c
    • M Chetan Kumar's avatar
      net: wwan: iosm: fix compilation warning · 29cd3867
      M Chetan Kumar authored
      
      
      curr_phase is unused. Removed the dead code.
      
      Fixes: 8d9be063 ("net: wwan: iosm: transport layer support for fw flashing/cd")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarM Chetan Kumar <m.chetan.kumar@linux.intel.com>
      Reviewed-by: default avatarLoic Poulain <loic.poulain@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      29cd3867
    • Rahul Lakkireddy's avatar
      cxgb4: fix eeprom len when diagnostics not implemented · 4ca110bf
      Rahul Lakkireddy authored
      
      
      Ensure diagnostics monitoring support is implemented for the SFF 8472
      compliant port module and set the correct length for ethtool port
      module eeprom read.
      
      Fixes: f56ec676 ("cxgb4: Add support for ethtool i2c dump")
      Signed-off-by: default avatarManoj Malviya <manojmalviya@chelsio.com>
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4ca110bf
    • xinhui pan's avatar
      drm/ttm: Double check mem_type of BO while eviction · 7120a447
      xinhui pan authored
      
      
      BO might sit in a wrong lru list as there is a small period of memory
      moving and lru list updating.
      
      Lets skip eviction if we hit such mismatch.
      
      Suggested-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarxinhui pan <xinhui.pan@amd.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211110043149.57554-2-xinhui.pan@amd.com
      
      
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      7120a447
    • vulab's avatar
      ata: sata_highbank: Remove unnecessary print function dev_err() · 51839e25
      vulab authored
      
      
      The print function dev_err() is redundant because
      platform_get_irq() already prints an error.
      
      Signed-off-by: default avatarXu Wang <vulab@iscas.ac.cn>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      51839e25
    • Damien Le Moal's avatar
      libata: fix read log timeout value · 68dbbe7d
      Damien Le Moal authored
      
      
      Some ATA drives are very slow to respond to READ_LOG_EXT and
      READ_LOG_DMA_EXT commands issued from ata_dev_configure() when the
      device is revalidated right after resuming a system or inserting the
      ATA adapter driver (e.g. ahci). The default 5s timeout
      (ATA_EH_CMD_DFL_TIMEOUT) used for these commands is too short, causing
      errors during the device configuration. Ex:
      
      ...
      ata9: SATA max UDMA/133 abar m524288@0x9d200000 port 0x9d200400 irq 209
      ata9: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
      ata9.00: ATA-9: XXX  XXXXXXXXXXXXXXX, XXXXXXXX, max UDMA/133
      ata9.00: qc timeout (cmd 0x2f)
      ata9.00: Read log page 0x00 failed, Emask 0x4
      ata9.00: Read log page 0x00 failed, Emask 0x40
      ata9.00: NCQ Send/Recv Log not supported
      ata9.00: Read log page 0x08 failed, Emask 0x40
      ata9.00: 27344764928 sectors, multi 16: LBA48 NCQ (depth 32), AA
      ata9.00: Read log page 0x00 failed, Emask 0x40
      ata9.00: ATA Identify Device Log not supported
      ata9.00: failed to set xfermode (err_mask=0x40)
      ata9: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
      ata9.00: configured for UDMA/133
      ...
      
      The timeout error causes a soft reset of the drive link, followed in
      most cases by a successful revalidation as that give enough time to the
      drive to become fully ready to quickly process the read log commands.
      However, in some cases, this also fails resulting in the device being
      dropped.
      
      Fix this by using adding the ata_eh_revalidate_timeouts entries for the
      READ_LOG_EXT and READ_LOG_DMA_EXT commands. This defines a timeout
      increased to 15s, retriable one time.
      
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
      68dbbe7d
    • Alexander Lobakin's avatar
      net: fix premature exit from NAPI state polling in napi_disable() · 0315a075
      Alexander Lobakin authored
      Commit 719c5719 ("net: make napi_disable() symmetric with
      enable") accidentally introduced a bug sometimes leading to a kernel
      BUG when bringing an iface up/down under heavy traffic load.
      
      Prior to this commit, napi_disable() was polling n->state until
      none of (NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC) is set and then
      always flip them. Now there's a possibility to get away with the
      NAPIF_STATE_SCHE unset as 'continue' drops us to the cmpxchg()
      call with an uninitialized variable, rather than straight to
      another round of the state check.
      
      Error path looks like:
      
      napi_disable():
      unsigned long val, new; /* new is uninitialized */
      
      do {
      	val = READ_ONCE(n->state); /* NAPIF_STATE_NPSVC and/or
      				      NAPIF_STATE_SCHED is set */
      	if (val & (NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC)) { /* true */
      		usleep_range(20, 200);
      		continue; /* go straight to the condition check */
      	}
      	new = val | <...>
      } while (cmpxchg(&n->state, val, new) != val); /* state == val, cmpxchg()
      						  writes garbage */
      
      napi_enable():
      do {
      	val = READ_ONCE(n->state);
      	BUG_ON(!test_bit(NAPI_STATE_SCHED, &val)); /* 50/50 boom */
      <...>
      
      while the typical BUG splat is like:
      
      [  172.652461] ------------[ cut here ]------------
      [  172.652462] kernel BUG at net/core/dev.c:6937!
      [  172.656914] invalid opcode: 0000 [#1] PREEMPT SMP PTI
      [  172.661966] CPU: 36 PID: 2829 Comm: xdp_redirect_cp Tainted: G          I       5.15.0 #42
      [  172.670222] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0014.082620210524 08/26/2021
      [  172.680646] RIP: 0010:napi_enable+0x5a/0xd0
      [  172.684832] Code: 07 49 81 cc 00 01 00 00 4c 89 e2 48 89 d8 80 e6 fb f0 48 0f b1 55 10 48 39 c3 74 10 48 8b 5d 10 f6 c7 04 75 3d f6 c3 01 75 b4 <0f> 0b 5b 5d 41 5c c3 65 ff 05 b8 e5 61 53 48 c7 c6 c0 f3 34 ad 48
      [  172.703578] RSP: 0018:ffffa3c9497477a8 EFLAGS: 00010246
      [  172.708803] RAX: ffffa3c96615a014 RBX: 0000000000000000 RCX: ffff8a4b575301a0
      < snip >
      [  172.782403] Call Trace:
      [  172.784857]  <TASK>
      [  172.786963]  ice_up_complete+0x6f/0x210 [ice]
      [  172.791349]  ice_xdp+0x136/0x320 [ice]
      [  172.795108]  ? ice_change_mtu+0x180/0x180 [ice]
      [  172.799648]  dev_xdp_install+0x61/0xe0
      [  172.803401]  dev_xdp_attach+0x1e0/0x550
      [  172.807240]  dev_change_xdp_fd+0x1e6/0x220
      [  172.811338]  do_setlink+0xee8/0x1010
      [  172.814917]  rtnl_setlink+0xe5/0x170
      [  172.818499]  ? bpf_lsm_binder_set_context_mgr+0x10/0x10
      [  172.823732]  ? security_capable+0x36/0x50
      < snip >
      
      Fix this by replacing 'do { } while (cmpxchg())' with an "infinite"
      for-loop with an explicit break.
      
      From v1 [0]:
       - just use a for-loop to simplify both the fix and the existing
         code (Eric).
      
      [0] https://lore.kernel.org/netdev/20211110191126.1214-1-alexandr.lobakin@intel.com
      
      
      
      Fixes: 719c5719 ("net: make napi_disable() symmetric with enable")
      Suggested-by: Eric Dumazet <edumazet@google.com> # for-loop
      Signed-off-by: default avatarAlexander Lobakin <alexandr.lobakin@intel.com>
      Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Link: https://lore.kernel.org/r/20211110195605.1304-1-alexandr.lobakin@intel.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0315a075
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · debe436e
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Only bug fixes and cleanups for ext4 this merge window.
      
        Of note are fixes for the combination of the inline_data and
        fast_commit fixes, and more accurately calculating when to schedule
        additional lazy inode table init, especially when CONFIG_HZ is 100HZ"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix error code saved on super block during file system abort
        ext4: inline data inode fast commit replay fixes
        ext4: commit inline data during fast commit
        ext4: scope ret locally in ext4_try_to_trim_range()
        ext4: remove an unused variable warning with CONFIG_QUOTA=n
        ext4: fix boolreturn.cocci warnings in fs/ext4/name.c
        ext4: prevent getting empty inode buffer
        ext4: move ext4_fill_raw_inode() related functions
        ext4: factor out ext4_fill_raw_inode()
        ext4: prevent partial update of the extent blocks
        ext4: check for inconsistent extents between index and leaf block
        ext4: check for out-of-order index extents in ext4_valid_extent_entries()
        ext4: convert from atomic_t to refcount_t on ext4_io_end->count
        ext4: refresh the ext4_ext_path struct after dropping i_data_sem.
        ext4: ensure enough credits in ext4_ext_shift_path_extents
        ext4: correct the left/middle/right debug message for binsearch
        ext4: fix lazy initialization next schedule time computation in more granular unit
        Revert "ext4: enforce buffer head state assertion in ext4_da_map_blocks"
      debe436e
    • Linus Torvalds's avatar
      Merge tag 'for-5.16-deadlock-fix-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 6070dcc8
      Linus Torvalds authored
      Pull btrfs fix from David Sterba:
       "Fix for a deadlock when direct/buffered IO is done on a mmaped file
        and a fault happens (details in the patch). There's a fstest
        generic/647 that triggers the problem and makes testing hard"
      
      * tag 'for-5.16-deadlock-fix-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix deadlock due to page faults during direct IO reads and writes
      6070dcc8