Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
  1. Jan 27, 2025
  2. May 20, 2024
  3. May 17, 2024
  4. Feb 27, 2024
  5. Jan 30, 2024
  6. Jan 24, 2024
  7. Jan 22, 2024
  8. Jan 13, 2024
    • Michael Bestas's avatar
      Merge tag 'ASB-2024-01-05_4.19-stable' of... · bfc560ed
      Michael Bestas authored
      Merge tag 'ASB-2024-01-05_4.19-stable' of https://android.googlesource.com/kernel/common into android13-4.19-kona
      
      https://source.android.com/docs/security/bulletin/2024-01-01
      
      * tag 'ASB-2024-01-05_4.19-stable' of https://android.googlesource.com/kernel/common:
        Linux 4.19.304
        block: Don't invalidate pagecache for invalid falloc modes
        dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
        smb: client: fix OOB in smbCalcSize()
        usb: fotg210-hcd: delete an incorrect bounds test
        usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling
        x86/alternatives: Sync core before enabling interrupts
        net: rfkill: gpio: set GPIO direction
        net: 9p: avoid freeing uninit memory in p9pdu_vreadf
        Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
        USB: serial: option: add Quectel RM500Q R13 firmware support
        USB: serial: option: add Foxconn T99W265 with new baseline
        USB: serial: option: add Quectel EG912Y module support
        USB: serial: ftdi_sio: update Actisense PIDs constant names
        wifi: cfg80211: fix certs build to not depend on file order
        wifi: cfg80211: Add my certificate
        iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table
        scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
        scsi: bnx2fc: Remove set but not used variable 'oxid'
        Input: ipaq-micro-keys - add error handling for devm_kmemdup
        iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw
        btrfs: do not allow non subvolume root targets for snapshot
        smb: client: fix NULL deref in asn1_ber_decoder()
        pinctrl: at91-pio4: use dedicated lock class for IRQ
        net: check dev->gso_max_size in gso_features_check()
        net: warn if gso_type isn't set for a GSO SKB
        afs: Fix the dynamic root's d_delete to always delete unused dentries
        net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
        net/rose: fix races in rose_kill_by_device()
        ethernet: atheros: fix a memleak in atl1e_setup_ring_resources
        net: sched: ife: fix potential use-after-free
        net/mlx5: Fix fw tracer first block check
        net/mlx5: improve some comments
        wifi: mac80211: mesh_plink: fix matches_local logic
        s390/vx: fix save/restore of fpu kernel context
        reset: Fix crash when freeing non-existent optional resets
        ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
        ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
        ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5
        ALSA: hda/realtek: Enable headset onLenovo M70/M90
        ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB
        arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names
        Revert "cred: switch to using atomic_long_t"
        Linux 4.19.303
        powerpc/ftrace: Fix stack teardown in ftrace_no_trace
        powerpc/ftrace: Create a dummy stackframe to fix stack unwind
        mmc: block: Be sure to wait while busy in CQE error recovery
        ring-buffer: Fix memory leak of free page
        team: Fix use-after-free when an option instance allocation fails
        arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify
        ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS
        perf: Fix perf_event_validate_size() lockdep splat
        HID: hid-asus: add const to read-only outgoing usb buffer
        net: usb: qmi_wwan: claim interface 4 for ZTE MF290
        asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation
        HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad
        HID: hid-asus: reset the backlight brightness level on resume
        HID: add ALWAYS_POLL quirk for Apple kb
        platform/x86: intel_telemetry: Fix kernel doc descriptions
        bcache: avoid NULL checking to c->root in run_cache_set()
        bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc()
        bcache: avoid oversize memory allocation by small stripe_size
        blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!"
        cred: switch to using atomic_long_t
        Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
        appletalk: Fix Use-After-Free in atalk_ioctl
        net: stmmac: Handle disabled MDIO busses from devicetree
        vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space()
        sign-file: Fix incorrect return values check
        net: Remove acked SYN flag from packet in the transmit queue correctly
        qed: Fix a potential use-after-free in qed_cxt_tables_alloc
        net/rose: Fix Use-After-Free in rose_ioctl
        atm: Fix Use-After-Free in do_vcc_ioctl
        atm: solos-pci: Fix potential deadlock on &tx_queue_lock
        atm: solos-pci: Fix potential deadlock on &cli_queue_lock
        qca_spi: Fix reset behavior
        qca_debug: Fix ethtool -G iface tx behavior
        qca_debug: Prevent crash on TX ring changes
        Revert "psample: Require 'CAP_NET_ADMIN' when joining "packets" group"
        Revert "genetlink: add CAP_NET_ADMIN test for multicast bind"
        Revert "drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group"
        Revert "perf/core: Add a new read format to get a number of lost samples"
        Revert "perf: Fix perf_event_validate_size()"
        Revert "hrtimers: Push pending hrtimers away from outgoing CPU earlier"
        ANDROID: Snapshot Mainline's version of checkpatch.pl
        Linux 4.19.302
        devcoredump: Send uevent once devcd is ready
        devcoredump : Serialize devcd_del work
        IB/isert: Fix unaligned immediate-data handling
        tools headers UAPI: Sync linux/perf_event.h with the kernel sources
        drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group
        psample: Require 'CAP_NET_ADMIN' when joining "packets" group
        genetlink: add CAP_NET_ADMIN test for multicast bind
        netlink: don't call ->netlink_bind with table lock held
        nilfs2: fix missing error check for sb_set_blocksize call
        KVM: s390/mm: Properly reset no-dat
        x86/CPU/AMD: Check vendor in the AMD microcode callback
        serial: 8250_omap: Add earlycon support for the AM654 UART controller
        serial: sc16is7xx: address RX timeout interrupt errata
        usb: typec: class: fix typec_altmode_put_partner to put plugs
        parport: Add support for Brainboxes IX/UC/PX parallel cards
        usb: gadget: f_hid: fix report descriptor allocation
        gpiolib: sysfs: Fix error handling on failed export
        perf: Fix perf_event_validate_size()
        perf/core: Add a new read format to get a number of lost samples
        tracing: Fix a possible race when disabling buffered events
        tracing: Fix incomplete locking when disabling buffered events
        tracing: Always update snapshot buffer size
        nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage()
        packet: Move reference count in packet_sock to atomic_long_t
        ALSA: pcm: fix out-of-bounds in snd_pcm_state_names
        ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt
        ARM: dts: imx: make gpt node name generic
        ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init
        scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle()
        tracing: Fix a warning when allocating buffered events fails
        hwmon: (acpi_power_meter) Fix 4.29 MW bug
        RDMA/bnxt_re: Correct module description string
        tcp: do not accept ACK of bytes we never sent
        netfilter: xt_owner: Fix for unsafe access of sk->sk_socket
        netfilter: xt_owner: Add supplementary groups option
        net: hns: fix fake link up on xge port
        ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit()
        arcnet: restoring support for multiple Sohard Arcnet cards
        net: arcnet: com20020 fix error handling
        net: arcnet: Fix RESET flag handling
        hv_netvsc: rndis_filter needs to select NLS
        ipv6: fix potential NULL deref in fib6_add()
        drm/amdgpu: correct chunk_ptr to a pointer to chunk.
        kconfig: fix memory leak from range properties
        tg3: Increment tx_dropped in tg3_tso_bug()
        tg3: Move the [rt]x_dropped counters to tg3_napi
        netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test
        hrtimers: Push pending hrtimers away from outgoing CPU earlier
        media: davinci: vpif_capture: fix potential double free
        spi: imx: mx51-ecspi: Move some initialisation to prepare_message hook.
        spi: imx: correct wml as the last sg length
        spi: imx: move wml setting to later than setup_transfer
        spi: imx: add a device specific prepare_message callback
        Linux 4.19.301
        mmc: block: Retry commands in CQE error recovery
        mmc: core: convert comma to semicolon
        mmc: cqhci: Fix task clearing in CQE error recovery
        mmc: cqhci: Warn of halt or task clear failure
        mmc: cqhci: Increase recovery halt timeout
        cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily
        cpufreq: imx6q: don't warn for disabling a non-existing frequency
        ima: detect changes to the backing overlay file
        ovl: skip overlayfs superblocks at global sync
        ima: annotate iint mutex to avoid lockdep false positive warnings
        fbdev: stifb: Make the STI next font pointer a 32-bit signed offset
        mtd: cfi_cmdset_0001: Byte swap OTP info
        mtd: cfi_cmdset_0001: Support the absence of protection registers
        s390/cmma: fix detection of DAT pages
        s390/mm: fix phys vs virt confusion in mark_kernel_pXd() functions family
        smb3: fix touch -h of symlink
        net: ravb: Start TX queues after HW initialization succeeded
        ravb: Fix races between ravb_tx_timeout_work() and net related ops
        ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
        Input: xpad - add HyperX Clutch Gladiate Support
        btrfs: send: ensure send_fd is writable
        btrfs: fix off-by-one when checking chunk map includes logical address
        powerpc: Don't clobber f0/vs0 during fp|altivec register save
        bcache: revert replacing IS_ERR_OR_NULL with IS_ERR
        dm verity: don't perform FEC for failed readahead IO
        dm-verity: align struct dm_verity_fec_io properly
        ALSA: hda/realtek: Headset Mic VREF to 100%
        ALSA: hda: Disable power-save on KONTRON SinglePC
        mmc: block: Do not lose cache flush during CQE error recovery
        firewire: core: fix possible memory leak in create_units()
        pinctrl: avoid reload of p state in list iteration
        USB: dwc3: qcom: fix wakeup after probe deferral
        usb: dwc3: set the dma max_seg_size
        USB: dwc2: write HCINT with INTMASK applied
        USB: serial: option: don't claim interface 4 for ZTE MF290
        USB: serial: option: fix FM101R-GL defines
        USB: serial: option: add Fibocom L7xx modules
        bcache: prevent potential division by zero error
        bcache: check return value from btree_node_alloc_replacement()
        dm-delay: fix a race between delay_presuspend and delay_bio
        hv_netvsc: Mark VF as slave before exposing it to user-mode
        hv_netvsc: Fix race of register_netdevice_notifier and VF register
        USB: serial: option: add Luat Air72*U series products
        s390/dasd: protect device queue against concurrent access
        bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in btree_gc_coalesce()
        mtd: rawnand: brcmnand: Fix ecc chunk calculation for erased page bitfips
        KVM: arm64: limit PMU version to PMUv3 for ARMv8.1
        arm64: cpufeature: Extract capped perfmon fields
        MIPS: KVM: Fix a build warning about variable set but not used
        net: axienet: Fix check for partial TX checksum
        amd-xgbe: propagate the correct speed and duplex status
        amd-xgbe: handle the corner-case during tx completion
        amd-xgbe: handle corner-case during sfp hotplug
        arm/xen: fix xen_vcpu_info allocation alignment
        net: usb: ax88179_178a: fix failed operations during ax88179_reset
        ipv4: Correct/silence an endian warning in __ip_do_redirect
        HID: fix HID device resource race between HID core and debugging support
        HID: core: store the unique system identifier in hid_device
        drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full
        ata: pata_isapnp: Add missing error check for devm_ioport_map()
        drm/panel: simple: Fix Innolux G101ICE-L01 timings
        RDMA/irdma: Prevent zero-length STAG registration
        driver core: Release all resources during unbind before updating device links
      
       Conflicts:
      	drivers/mmc/host/cqhci.c
      	drivers/net/usb/ax88179_178a.c
      	drivers/usb/dwc3/core.c
      	scripts/checkpatch.pl
      
      Change-Id: I571c71df4f4c1c612d4101c9b9c2b901b4408103
      bfc560ed
  9. Jan 08, 2024
    • Greg Kroah-Hartman's avatar
      Merge 4.19.304 into android-4.19-stable · 38d95b42
      Greg Kroah-Hartman authored
      
      
      Changes in 4.19.304
      	arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names
      	ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB
      	ALSA: hda/realtek: Enable headset onLenovo M70/M90
      	ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5
      	ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
      	ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
      	reset: Fix crash when freeing non-existent optional resets
      	s390/vx: fix save/restore of fpu kernel context
      	wifi: mac80211: mesh_plink: fix matches_local logic
      	net/mlx5: improve some comments
      	net/mlx5: Fix fw tracer first block check
      	net: sched: ife: fix potential use-after-free
      	ethernet: atheros: fix a memleak in atl1e_setup_ring_resources
      	net/rose: fix races in rose_kill_by_device()
      	net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
      	afs: Fix the dynamic root's d_delete to always delete unused dentries
      	net: warn if gso_type isn't set for a GSO SKB
      	net: check dev->gso_max_size in gso_features_check()
      	pinctrl: at91-pio4: use dedicated lock class for IRQ
      	smb: client: fix NULL deref in asn1_ber_decoder()
      	btrfs: do not allow non subvolume root targets for snapshot
      	iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw
      	Input: ipaq-micro-keys - add error handling for devm_kmemdup
      	scsi: bnx2fc: Remove set but not used variable 'oxid'
      	scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
      	iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table
      	wifi: cfg80211: Add my certificate
      	wifi: cfg80211: fix certs build to not depend on file order
      	USB: serial: ftdi_sio: update Actisense PIDs constant names
      	USB: serial: option: add Quectel EG912Y module support
      	USB: serial: option: add Foxconn T99W265 with new baseline
      	USB: serial: option: add Quectel RM500Q R13 firmware support
      	Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
      	net: 9p: avoid freeing uninit memory in p9pdu_vreadf
      	net: rfkill: gpio: set GPIO direction
      	x86/alternatives: Sync core before enabling interrupts
      	usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling
      	usb: fotg210-hcd: delete an incorrect bounds test
      	smb: client: fix OOB in smbCalcSize()
      	dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
      	block: Don't invalidate pagecache for invalid falloc modes
      	Linux 4.19.304
      
      Change-Id: I924e0479cdd444b14c25d83a165ca082fa2c9f80
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
      38d95b42
    • Greg Kroah-Hartman's avatar
    • Sarthak Kukreti's avatar
      block: Don't invalidate pagecache for invalid falloc modes · 4d26c222
      Sarthak Kukreti authored
      
      
      commit 1364a3c391aedfeb32aa025303ead3d7c91cdf9d upstream.
      
      Only call truncate_bdev_range() if the fallocate mode is supported. This
      fixes a bug where data in the pagecache could be invalidated if the
      fallocate() was called on the block device with an invalid mode.
      
      Fixes: 25f4c414 ("block: implement (some of) fallocate for block devices")
      Cc: stable@vger.kernel.org
      Reported-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
      Signed-off-by: default avatarSarthak Kukreti <sarthakkukreti@chromium.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
      Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
      Fixes: line?  I've never seen those wrapped.
      Link: https://lore.kernel.org/r/20231011201230.750105-1-sarthakkukreti@chromium.org
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarSarthak Kukreti <sarthakkukreti@chromium.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4d26c222
    • Mikulas Patocka's avatar
      dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata() · 8e2a0361
      Mikulas Patocka authored
      
      
      commit b86f4b790c998afdbc88fe1aa55cfe89c4068726 upstream.
      
      __bio_for_each_segment assumes that the first struct bio_vec argument
      doesn't change - it calls "bio_advance_iter_single((bio), &(iter),
      (bvl).bv_len)" to advance the iterator. Unfortunately, the dm-integrity
      code changes the bio_vec with "bv.bv_len -= pos". When this code path
      is taken, the iterator would be out of sync and dm-integrity would
      report errors. This happens if the machine is out of memory and
      "kmalloc" fails.
      
      Fix this bug by making a copy of "bv" and changing the copy instead.
      
      Fixes: 7eada909 ("dm: add integrity target")
      Cc: stable@vger.kernel.org	# v4.12+
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8e2a0361
    • Paulo Alcantara's avatar
      smb: client: fix OOB in smbCalcSize() · 89b6ae90
      Paulo Alcantara authored
      
      
      [ Upstream commit b35858b3786ddbb56e1c35138ba25d6adf8d0bef ]
      
      Validate @smb->WordCount to avoid reading off the end of @smb and thus
      causing the following KASAN splat:
      
        BUG: KASAN: slab-out-of-bounds in smbCalcSize+0x32/0x40 [cifs]
        Read of size 2 at addr ffff88801c024ec5 by task cifsd/1328
      
        CPU: 1 PID: 1328 Comm: cifsd Not tainted 6.7.0-rc5 #9
        Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
        rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014
        Call Trace:
         <TASK>
         dump_stack_lvl+0x4a/0x80
         print_report+0xcf/0x650
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? __phys_addr+0x46/0x90
         kasan_report+0xd8/0x110
         ? smbCalcSize+0x32/0x40 [cifs]
         ? smbCalcSize+0x32/0x40 [cifs]
         kasan_check_range+0x105/0x1b0
         smbCalcSize+0x32/0x40 [cifs]
         checkSMB+0x162/0x370 [cifs]
         ? __pfx_checkSMB+0x10/0x10 [cifs]
         cifs_handle_standard+0xbc/0x2f0 [cifs]
         ? srso_alias_return_thunk+0x5/0xfbef5
         cifs_demultiplex_thread+0xed1/0x1360 [cifs]
         ? __pfx_cifs_demultiplex_thread+0x10/0x10 [cifs]
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? lockdep_hardirqs_on_prepare+0x136/0x210
         ? __pfx_lock_release+0x10/0x10
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? mark_held_locks+0x1a/0x90
         ? lockdep_hardirqs_on_prepare+0x136/0x210
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? __kthread_parkme+0xce/0xf0
         ? __pfx_cifs_demultiplex_thread+0x10/0x10 [cifs]
         kthread+0x18d/0x1d0
         ? kthread+0xdb/0x1d0
         ? __pfx_kthread+0x10/0x10
         ret_from_fork+0x34/0x60
         ? __pfx_kthread+0x10/0x10
         ret_from_fork_asm+0x1b/0x30
         </TASK>
      
      This fixes CVE-2023-6606.
      
      Reported-by: default avatar <j51569436@gmail.com>
      Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218218
      
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPaulo Alcantara (SUSE) <pc@manguebit.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      89b6ae90
    • Dan Carpenter's avatar
      usb: fotg210-hcd: delete an incorrect bounds test · cab15e2e
      Dan Carpenter authored
      
      
      [ Upstream commit 7fbcd195e2b8cc952e4aeaeb50867b798040314c ]
      
      Here "temp" is the number of characters that we have written and "size"
      is the size of the buffer.  The intent was clearly to say that if we have
      written to the end of the buffer then stop.
      
      However, for that to work the comparison should have been done on the
      original "size" value instead of the "size -= temp" value.  Not only
      will that not trigger when we want to, but there is a small chance that
      it will trigger incorrectly before we want it to and we break from the
      loop slightly earlier than intended.
      
      This code was recently changed from using snprintf() to scnprintf().  With
      snprintf() we likely would have continued looping and passed a negative
      size parameter to snprintf().  This would have triggered an annoying
      WARN().  Now that we have converted to scnprintf() "size" will never
      drop below 1 and there is no real need for this test.  We could change
      the condition to "if (temp <= 1) goto done;" but just deleting the test
      is cleanest.
      
      Fixes: 7d50195f ("usb: host: Faraday fotg210-hcd driver")
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Reviewed-by: default avatarLee Jones <lee@kernel.org>
      Link: https://lore.kernel.org/r/ZXmwIwHe35wGfgzu@suswa
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      cab15e2e
    • Thomas Petazzoni's avatar
      usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling · b10ec178
      Thomas Petazzoni authored
      
      
      commit b65ba0c362be665192381cc59e3ac3ef6f0dd1e1 upstream.
      
      In commit 92af4fc6ec33 ("usb: musb: Fix suspend with devices
      connected for a64"), the logic to support the
      MUSB_QUIRK_B_DISCONNECT_99 quirk was modified to only conditionally
      schedule the musb->irq_work delayed work.
      
      This commit badly breaks ECM Gadget on AM335X. Indeed, with this
      commit, one can observe massive packet loss:
      
      $ ping 192.168.0.100
      ...
      15 packets transmitted, 3 received, 80% packet loss, time 14316ms
      
      Reverting this commit brings back a properly functioning ECM
      Gadget. An analysis of the commit seems to indicate that a mistake was
      made: the previous code was not falling through into the
      MUSB_QUIRK_B_INVALID_VBUS_91, but now it is, unless the condition is
      taken.
      
      Changing the logic to be as it was before the problematic commit *and*
      only conditionally scheduling musb->irq_work resolves the regression:
      
      $ ping 192.168.0.100
      ...
      64 packets transmitted, 64 received, 0% packet loss, time 64475ms
      
      Fixes: 92af4fc6ec33 ("usb: musb: Fix suspend with devices connected for a64")
      Cc: stable@vger.kernel.org
      Tested-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Tested-by: default avatarDrew Fustini <drew@beagleboard.org>
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@bootlin.com>
      Link: https://lore.kernel.org/r/20210528140446.278076-1-thomas.petazzoni@bootlin.com
      
      
      Signed-off-by: default avatarFabian Godehardt <fg@emlix.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b10ec178
    • Thomas Gleixner's avatar
      x86/alternatives: Sync core before enabling interrupts · 8f6f8443
      Thomas Gleixner authored
      
      
      commit 3ea1704a92967834bf0e64ca1205db4680d04048 upstream.
      
      text_poke_early() does:
      
         local_irq_save(flags);
         memcpy(addr, opcode, len);
         local_irq_restore(flags);
         sync_core();
      
      That's not really correct because the synchronization should happen before
      interrupts are re-enabled to ensure that a pending interrupt observes the
      complete update of the opcodes.
      
      It's not entirely clear whether the interrupt entry provides enough
      serialization already, but moving the sync_core() invocation into interrupt
      disabled region does no harm and is obviously correct.
      
      Fixes: 6fffacb3 ("x86/alternatives, jumplabel: Use text_poke_early() before mm_init()")
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: <stable@kernel.org>
      Link: https://lore.kernel.org/r/ZT6narvE%2BLxX%2B7Be@windriver.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8f6f8443
    • Rouven Czerwinski's avatar
      net: rfkill: gpio: set GPIO direction · f08531dd
      Rouven Czerwinski authored
      
      
      commit 23484d817082c3005252d8edfc8292c8a1006b5b upstream.
      
      Fix the undefined usage of the GPIO consumer API after retrieving the
      GPIO description with GPIO_ASIS. The API documentation mentions that
      GPIO_ASIS won't set a GPIO direction and requires the user to set a
      direction before using the GPIO.
      
      This can be confirmed on i.MX6 hardware, where rfkill-gpio is no longer
      able to enabled/disable a device, presumably because the GPIO controller
      was never configured for the output direction.
      
      Fixes: b2f750c3a80b ("net: rfkill: gpio: prevent value glitch during probe")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRouven Czerwinski <r.czerwinski@pengutronix.de>
      Link: https://msgid.link/20231207075835.3091694-1-r.czerwinski@pengutronix.de
      
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f08531dd
    • Fedor Pchelkin's avatar
      net: 9p: avoid freeing uninit memory in p9pdu_vreadf · e5c15c38
      Fedor Pchelkin authored
      
      
      commit ff49bf1867578f23a5ffdd38f927f6e1e16796c4 upstream.
      
      If some of p9pdu_readf() calls inside case 'T' in p9pdu_vreadf() fails,
      the error path is not handled properly. *wnames or members of *wnames
      array may be left uninitialized and invalidly freed.
      
      Initialize *wnames to NULL in beginning of case 'T'. Initialize the first
      *wnames array element to NULL and nullify the failing *wnames element so
      that the error path freeing loop stops on the first NULL element and
      doesn't proceed further.
      
      Found by Linux Verification Center (linuxtesting.org).
      
      Fixes: ace51c4d ("9p: add new protocol support code")
      Signed-off-by: default avatarFedor Pchelkin <pchelkin@ispras.ru>
      Message-ID: <20231206200913.16135-1-pchelkin@ispras.ru>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Reviewed-by: default avatarChristian Schoenebeck <linux_oss@crudebyte.com>
      Signed-off-by: default avatarDominique Martinet <asmadeus@codewreck.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e5c15c38
    • Luiz Augusto von Dentz's avatar
      Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent · e5f7ce90
      Luiz Augusto von Dentz authored
      commit 99e67d46e5ff3c7c901af6009edec72d3d363be8 upstream.
      
      Before setting HCI_INQUIRY bit check if HCI_OP_INQUIRY was really sent
      otherwise the controller maybe be generating invalid events or, more
      likely, it is a result of fuzzing tools attempting to test the right
      behavior of the stack when unexpected events are generated.
      
      Cc: stable@vger.kernel.org
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=218151
      
      
      Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e5f7ce90
    • Reinhard Speyerer's avatar
      USB: serial: option: add Quectel RM500Q R13 firmware support · f08abcc6
      Reinhard Speyerer authored
      
      
      commit 06f22cd6635bdae7d73566fca9879b2026a08e00 upstream.
      
      Add support for Quectel RM500Q R13 firmware which uses Prot=40 for the
      NMEA port:
      
      T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  8 Spd=5000 MxCh= 0
      D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
      P:  Vendor=2c7c ProdID=0800 Rev= 4.14
      S:  Manufacturer=Quectel
      S:  Product=RM500Q-AE
      S:  SerialNumber=xxxxxxxx
      C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA
      I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
      E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=option
      E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
      E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
      E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
      E:  Ad=88(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
      E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      
      Signed-off-by: default avatarReinhard Speyerer <rspmn@arcor.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f08abcc6
    • Slark Xiao's avatar
      USB: serial: option: add Foxconn T99W265 with new baseline · 9f731191
      Slark Xiao authored
      
      
      commit 13fde9ac23ca8c6d1ac13cc9eefe1f1ac3ee30a4 upstream.
      
      This ID was added based on latest SDX12 code base line, and we
      made some changes with previous 0489:e0db.
      
      Test evidence as below:
      T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=5000 MxCh= 0
      D:  Ver= 3.20 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  2
      P:  Vendor=0489 ProdID=e0da Rev=05.04
      S:  Manufacturer=Qualcomm
      S:  Product=Qualcomm Snapdragon X12
      S:  SerialNumber=2bda65fb
      C:  #Ifs= 6 Cfg#= 2 Atr=a0 MxPwr=896mA
      I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
      I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
      I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
      I:  If#=0x3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
      I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
      
      0&1: MBIM, 2: Modem, 3:GNSS, 4:Diag, 5:ADB
      
      Signed-off-by: default avatarSlark Xiao <slark_xiao@163.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9f731191
    • Alper Ak's avatar
      USB: serial: option: add Quectel EG912Y module support · 7ae833b2
      Alper Ak authored
      
      
      commit 6d79d9434c69bb8ffa8a631050eb0ad6b83d3e90 upstream.
      
      Add Quectel EG912Y "DIAG, AT, MODEM"
      
      0x6001: ECM / RNDIS + DIAG + AT + MODEM
      
      T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
      D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=2c7c ProdID=6001 Rev= 3.18
      S:  Manufacturer=Android
      S:  Product=Android
      S:  SerialNumber=0000
      C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
      A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
      I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
      E:  Ad=87(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
      I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
      I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
      E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0b(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=89(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
      E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
      E:  Ad=88(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
      E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      
      Signed-off-by: default avatarAlper Ak <alperyasinak1@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7ae833b2
    • Mark Glover's avatar
      USB: serial: ftdi_sio: update Actisense PIDs constant names · a1e3c62f
      Mark Glover authored
      
      
      commit 513d88a88e0203188a38f4647dd08170aebd85df upstream.
      
      Update the constant names for unused USB PIDs (product identifiers) to
      reflect the new products now using the PIDs.
      
      Signed-off-by: default avatarMark Glover <mark.glover@actisense.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a1e3c62f
    • Johannes Berg's avatar
      wifi: cfg80211: fix certs build to not depend on file order · 0569842e
      Johannes Berg authored
      
      
      commit 3c2a8ebe3fe66a5f77d4c164a0bea8e2ff37b455 upstream.
      
      The file for the new certificate (Chen-Yu Tsai's) didn't
      end with a comma, so depending on the file order in the
      build rule, we'd end up with invalid C when concatenating
      the (now two) certificates. Fix that.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
      Reported-by: default avatarNaresh Kamboju <naresh.kamboju@linaro.org>
      Fixes: fb768d3b13ff ("wifi: cfg80211: Add my certificate")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0569842e
    • Chen-Yu Tsai's avatar
      wifi: cfg80211: Add my certificate · 7023efb2
      Chen-Yu Tsai authored
      commit fb768d3b13ffa325b7e84480d488ac799c9d2cd7 upstream.
      
      As announced [1][2], I have taken over maintainership of the
      wireless-regdb project.
      
      Add my certificate so that newer releases are valid to the kernel.
      Seth's certificate should be kept around for awhile, at least until
      a few new releases by me happen.
      
      This should also be applied to stable trees so that stable kernels
      can utilize newly released database binaries.
      
      [1] https://lore.kernel.org/linux-wireless/CAGb2v657baNMPKU3QADijx7hZa=GUcSv2LEDdn6N=QQaFX8r-g@mail.gmail.com/
      [2] https://lore.kernel.org/linux-wireless/ZWmRR5ul7EDfxCan@wens.tw/
      
      
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarChen-Yu Tsai <wens@kernel.org>
      Acked-by: default avatarSeth Forshee <sforshee@kernel.org>
      Link: https://msgid.link/ZXHGsqs34qZyzZng@wens.tw
      
      
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7023efb2
    • Javier Carrasco's avatar
      iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table · 0892d2c9
      Javier Carrasco authored
      
      
      commit 54cf39ec16335dadbe1ba008d8e5e98dae3e26f8 upstream.
      
      The HTU21 offers 4 sampling frequencies: 20, 40, 70 and 120, which are
      associated to an index that is used to select the right measurement
      resolution and its corresponding measurement time. The current
      implementation selects the measurement resolution and the temperature
      measurement time properly, but it does not select the right humidity
      measurement time in all cases.
      
      In summary, the 40 and 70 humidity measurement times are swapped.
      
      The reason for that is probably the unusual coding for the measurement
      resolution. According to the datasheet, the bits [7,0] of the "user
      register" are used as follows to select the bit resolution:
      
      --------------------------------------------------
      | Bit 7 | Bit 0 | RH | Temp | Trh (us) | Tt (us) |
      --------------------------------------------------
      |   0   |   0   | 12 |  14  |  16000   |  50000  |
      --------------------------------------------------
      |   0   |   1   | 8  |  12  |  3000    |  13000  |
      --------------------------------------------------
      |   1   |   0   | 10 |  13  |  5000    |  25000  |
      --------------------------------------------------
      |   1   |   1   | 11 |  11  |  8000    |  7000   |
      --------------------------------------------------
      *This table is available in the official datasheet, page 13/21. I have
      just appended the times provided in the humidity/temperature tables,
      pages 3/21, 5/21. Note that always a pair of resolutions is selected.
      
      The sampling frequencies [20, 40, 70, 120] are assigned to a linear
      index [0..3] which is then coded as follows [1]:
      
      Index    [7,0]
      --------------
      idx 0     0,0
      idx 1     1,0
      idx 2     0,1
      idx 3     1,1
      
      That is done that way because the temperature measurements are being
      used as the reference for the sampling frequency (the frequencies and
      the temperature measurement times are correlated), so increasing the
      index always reduces the temperature measurement time and its
      resolution. Therefore, the temperature measurement time array is as
      simple as [50000, 25000, 13000, 7000]
      
      On the other hand, the humidity resolution cannot follow the same
      pattern because of the way it is coded in the "user register", where
      both resolutions are selected at the same time. The humidity measurement
      time array is the following: [16000, 3000, 5000, 8000], which defines
      the following assignments:
      
      Index    [7,0]    Trh
      -----------------------
      idx 0     0,0     16000  -> right, [0,0] selects 12 bits (Trh = 16000)
      idx 1     1,0     3000   -> wrong! [1,0] selects 10 bits (Trh = 5000)
      idx 2     0,1     5000   -> wrong! [0,1] selects 8 bits (Trh = 3000)
      idx 3     1,1     8000   -> right, [1,1] selects 11 bits (Trh = 8000)
      
      The times have been ordered as if idx = 1 -> [0,1] and idx = 2 -> [1,0],
      which is not the case for the reason explained above.
      
      So a simple modification is required to obtain the right humidity
      measurement time array, swapping the values in the positions 1 and 2.
      
      The right table should be the following: [16000, 5000, 3000, 8000]
      
      Fix the humidity measurement time array with the right idex/value
      coding.
      
      [1] The actual code that makes this coding and assigns it to the current
      value of the "user register" is the following:
      config_reg &= 0x7E;
      config_reg |= ((i & 1) << 7) + ((i & 2) >> 1);
      
      Fixes: d574a87c ("Add meas-spec sensors common part")
      Signed-off-by: default avatarJavier Carrasco <javier.carrasco.cruz@gmail.com>
      Link: https://lore.kernel.org/r/20231026-topic-htu21_conversion_time-v1-1-bd257dc44209@gmail.com
      
      
      Cc: <Stable@vger.kernel.org>
      Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0892d2c9
    • Wei Yongjun's avatar
      scsi: bnx2fc: Fix skb double free in bnx2fc_rcv() · ce228fff
      Wei Yongjun authored
      
      
      [ Upstream commit 08c94d80b2da481652fb633e79cbc41e9e326a91 ]
      
      skb_share_check() already drops the reference to the skb when returning
      NULL. Using kfree_skb() in the error handling path leads to an skb double
      free.
      
      Fix this by removing the variable tmp_skb, and return directly when
      skb_share_check() returns NULL.
      
      Fixes: 01a4cc4d ("bnx2fc: do not add shared skbs to the fcoe_rx_list")
      Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
      Link: https://lore.kernel.org/r/20221114110626.526643-1-weiyongjun@huaweicloud.com
      
      
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      ce228fff
    • YueHaibing's avatar
      scsi: bnx2fc: Remove set but not used variable 'oxid' · 5777781b
      YueHaibing authored
      
      
      [ Upstream commit efcbe99818ac9bd93ac41e8cf954e9aa64dd9971 ]
      
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/scsi/bnx2fc/bnx2fc_fcoe.c: In function 'bnx2fc_rcv':
      drivers/scsi/bnx2fc/bnx2fc_fcoe.c:435:17: warning:
       variable 'oxid' set but not used [-Wunused-but-set-variable]
      
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Stable-dep-of: 08c94d80b2da ("scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()")
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      5777781b
    • Haoran Liu's avatar
      Input: ipaq-micro-keys - add error handling for devm_kmemdup · 51aaa85e
      Haoran Liu authored
      
      
      [ Upstream commit 59b6a747e2d39227ac2325c5e29d6ab3bb070c2a ]
      
      Check the return value of i2c_add_adapter. Static analysis revealed that
      the function did not properly handle potential failures of
      i2c_add_adapter, which could lead to partial initialization of the I2C
      adapter and unstable operation.
      
      Signed-off-by: default avatarHaoran Liu <liuhaoran14@163.com>
      Link: https://lore.kernel.org/r/20231203164653.38983-1-liuhaoran14@163.com
      
      
      Fixes: d7535ffa ("Input: driver for microcontroller keys on the iPaq h3xxx")
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      51aaa85e
    • Su Hui's avatar
      iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw · 5212dfde
      Su Hui authored
      
      
      [ Upstream commit c3df0e29fb7788c4b3ddf37d5ed87dda2b822943 ]
      
      inv_mpu6050_sensor_show() can return -EINVAL or IIO_VAL_INT. Return the
      true value rather than only return IIO_VAL_INT.
      
      Fixes: d5098447 ("iio: imu: mpu6050: add calibration offset support")
      Signed-off-by: default avatarSu Hui <suhui@nfschina.com>
      Link: https://lore.kernel.org/r/20231030020218.65728-1-suhui@nfschina.com
      
      
      Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      5212dfde
    • Josef Bacik's avatar
      btrfs: do not allow non subvolume root targets for snapshot · d090a235
      Josef Bacik authored
      
      
      [ Upstream commit a8892fd71933126ebae3d60aec5918d4dceaae76 ]
      
      Our btrfs subvolume snapshot <source> <destination> utility enforces
      that <source> is the root of the subvolume, however this isn't enforced
      in the kernel.  Update the kernel to also enforce this limitation to
      avoid problems with other users of this ioctl that don't have the
      appropriate checks in place.
      
      Reported-by: default avatarMartin Michaelis <code@mgjm.de>
      CC: stable@vger.kernel.org # 4.14+
      Reviewed-by: default avatarNeal Gompa <neal@gompa.dev>
      Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
      Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      d090a235
    • Paulo Alcantara's avatar
      smb: client: fix NULL deref in asn1_ber_decoder() · 832c20fc
      Paulo Alcantara authored
      
      
      [ Upstream commit 90d025c2e953c11974e76637977c473200593a46 ]
      
      If server replied SMB2_NEGOTIATE with a zero SecurityBufferOffset,
      smb2_get_data_area() sets @len to non-zero but return NULL, so
      decode_negTokeninit() ends up being called with a NULL @security_blob:
      
        BUG: kernel NULL pointer dereference, address: 0000000000000000
        #PF: supervisor read access in kernel mode
        #PF: error_code(0x0000) - not-present page
        PGD 0 P4D 0
        Oops: 0000 [#1] PREEMPT SMP NOPTI
        CPU: 2 PID: 871 Comm: mount.cifs Not tainted 6.7.0-rc4 #2
        Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014
        RIP: 0010:asn1_ber_decoder+0x173/0xc80
        Code: 01 4c 39 2c 24 75 09 45 84 c9 0f 85 2f 03 00 00 48 8b 14 24 4c 29 ea 48 83 fa 01 0f 86 1e 07 00 00 48 8b 74 24 28 4d 8d 5d 01 <42> 0f b6 3c 2e 89 fa 40 88 7c 24 5c f7 d2 83 e2 1f 0f 84 3d 07 00
        RSP: 0018:ffffc9000063f950 EFLAGS: 00010202
        RAX: 0000000000000002 RBX: 0000000000000000 RCX: 000000000000004a
        RDX: 000000000000004a RSI: 0000000000000000 RDI: 0000000000000000
        RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
        R10: 0000000000000002 R11: 0000000000000001 R12: 0000000000000000
        R13: 0000000000000000 R14: 000000000000004d R15: 0000000000000000
        FS:  00007fce52b0fbc0(0000) GS:ffff88806ba00000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 0000000000000000 CR3: 000000001ae64000 CR4: 0000000000750ef0
        PKRU: 55555554
        Call Trace:
         <TASK>
         ? __die+0x23/0x70
         ? page_fault_oops+0x181/0x480
         ? __stack_depot_save+0x1e6/0x480
         ? exc_page_fault+0x6f/0x1c0
         ? asm_exc_page_fault+0x26/0x30
         ? asn1_ber_decoder+0x173/0xc80
         ? check_object+0x40/0x340
         decode_negTokenInit+0x1e/0x30 [cifs]
         SMB2_negotiate+0xc99/0x17c0 [cifs]
         ? smb2_negotiate+0x46/0x60 [cifs]
         ? srso_alias_return_thunk+0x5/0xfbef5
         smb2_negotiate+0x46/0x60 [cifs]
         cifs_negotiate_protocol+0xae/0x130 [cifs]
         cifs_get_smb_ses+0x517/0x1040 [cifs]
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? queue_delayed_work_on+0x5d/0x90
         cifs_mount_get_session+0x78/0x200 [cifs]
         dfs_mount_share+0x13a/0x9f0 [cifs]
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? lock_acquire+0xbf/0x2b0
         ? find_nls+0x16/0x80
         ? srso_alias_return_thunk+0x5/0xfbef5
         cifs_mount+0x7e/0x350 [cifs]
         cifs_smb3_do_mount+0x128/0x780 [cifs]
         smb3_get_tree+0xd9/0x290 [cifs]
         vfs_get_tree+0x2c/0x100
         ? capable+0x37/0x70
         path_mount+0x2d7/0xb80
         ? srso_alias_return_thunk+0x5/0xfbef5
         ? _raw_spin_unlock_irqrestore+0x44/0x60
         __x64_sys_mount+0x11a/0x150
         do_syscall_64+0x47/0xf0
         entry_SYSCALL_64_after_hwframe+0x6f/0x77
        RIP: 0033:0x7fce52c2ab1e
      
      Fix this by setting @len to zero when @off == 0 so callers won't
      attempt to dereference non-existing data areas.
      
      Reported-by: default avatarRobert Morris <rtm@csail.mit.edu>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPaulo Alcantara (SUSE) <pc@manguebit.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      832c20fc
    • Alexis Lothoré's avatar
      pinctrl: at91-pio4: use dedicated lock class for IRQ · f573c3f3
      Alexis Lothoré authored
      
      
      [ Upstream commit 14694179e561b5f2f7e56a0f590e2cb49a9cc7ab ]
      
      Trying to suspend to RAM on SAMA5D27 EVK leads to the following lockdep
      warning:
      
       ============================================
       WARNING: possible recursive locking detected
       6.7.0-rc5-wt+ #532 Not tainted
       --------------------------------------------
       sh/92 is trying to acquire lock:
       c3cf306c (&irq_desc_lock_class){-.-.}-{2:2}, at: __irq_get_desc_lock+0xe8/0x100
      
       but task is already holding lock:
       c3d7c46c (&irq_desc_lock_class){-.-.}-{2:2}, at: __irq_get_desc_lock+0xe8/0x100
      
       other info that might help us debug this:
        Possible unsafe locking scenario:
      
              CPU0
              ----
         lock(&irq_desc_lock_class);
         lock(&irq_desc_lock_class);
      
        *** DEADLOCK ***
      
        May be due to missing lock nesting notation
      
       6 locks held by sh/92:
        #0: c3aa0258 (sb_writers#6){.+.+}-{0:0}, at: ksys_write+0xd8/0x178
        #1: c4c2df44 (&of->mutex){+.+.}-{3:3}, at: kernfs_fop_write_iter+0x138/0x284
        #2: c32684a0 (kn->active){.+.+}-{0:0}, at: kernfs_fop_write_iter+0x148/0x284
        #3: c232b6d4 (system_transition_mutex){+.+.}-{3:3}, at: pm_suspend+0x13c/0x4e8
        #4: c387b088 (&dev->mutex){....}-{3:3}, at: __device_suspend+0x1e8/0x91c
        #5: c3d7c46c (&irq_desc_lock_class){-.-.}-{2:2}, at: __irq_get_desc_lock+0xe8/0x100
      
       stack backtrace:
       CPU: 0 PID: 92 Comm: sh Not tainted 6.7.0-rc5-wt+ #532
       Hardware name: Atmel SAMA5
        unwind_backtrace from show_stack+0x18/0x1c
        show_stack from dump_stack_lvl+0x34/0x48
        dump_stack_lvl from __lock_acquire+0x19ec/0x3a0c
        __lock_acquire from lock_acquire.part.0+0x124/0x2d0
        lock_acquire.part.0 from _raw_spin_lock_irqsave+0x5c/0x78
        _raw_spin_lock_irqsave from __irq_get_desc_lock+0xe8/0x100
        __irq_get_desc_lock from irq_set_irq_wake+0xa8/0x204
        irq_set_irq_wake from atmel_gpio_irq_set_wake+0x58/0xb4
        atmel_gpio_irq_set_wake from irq_set_irq_wake+0x100/0x204
        irq_set_irq_wake from gpio_keys_suspend+0xec/0x2b8
        gpio_keys_suspend from dpm_run_callback+0xe4/0x248
        dpm_run_callback from __device_suspend+0x234/0x91c
        __device_suspend from dpm_suspend+0x224/0x43c
        dpm_suspend from dpm_suspend_start+0x9c/0xa8
        dpm_suspend_start from suspend_devices_and_enter+0x1e0/0xa84
        suspend_devices_and_enter from pm_suspend+0x460/0x4e8
        pm_suspend from state_store+0x78/0xe4
        state_store from kernfs_fop_write_iter+0x1a0/0x284
        kernfs_fop_write_iter from vfs_write+0x38c/0x6f4
        vfs_write from ksys_write+0xd8/0x178
        ksys_write from ret_fast_syscall+0x0/0x1c
       Exception stack(0xc52b3fa8 to 0xc52b3ff0)
       3fa0:                   00000004 005a0ae8 00000001 005a0ae8 00000004 00000001
       3fc0: 00000004 005a0ae8 00000001 00000004 00000004 b6c616c0 00000020 0059d190
       3fe0: 00000004 b6c61678 aec5a041 aebf1a26
      
      This warning is raised because pinctrl-at91-pio4 uses chained IRQ. Whenever
      a wake up source configures an IRQ through irq_set_irq_wake, it will
      lock the corresponding IRQ desc, and then call irq_set_irq_wake on "parent"
      IRQ which will do the same on its own IRQ desc, but since those two locks
      share the same class, lockdep reports this as an issue.
      
      Fix lockdep false positive by setting a different class for parent and
      children IRQ
      
      Fixes: 77618084 ("pinctrl: introduce driver for Atmel PIO4 controller")
      Signed-off-by: default avatarAlexis Lothoré <alexis.lothore@bootlin.com>
      Link: https://lore.kernel.org/r/20231215-lockdep_warning-v1-1-8137b2510ed5@bootlin.com
      
      
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      f573c3f3
Loading