1. 12 Jun, 2023 3 commits
    • Chuck Lever's avatar
      svcrdma: Clean up allocation of svc_rdma_recv_ctxt · c5d68d25
      Chuck Lever authored
      The physical device's favored NUMA node ID is available when
      allocating a recv_ctxt. Use that value instead of relying on the
      assumption that the memory allocation happens to be running on a
      node close to the device.
      
      This clean up eliminates the hack of destroying recv_ctxts that
      were not created by the receive CQ thread -- recv_ctxts are now
      always allocated on a "good" node.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      c5d68d25
    • Chuck Lever's avatar
      svcrdma: Allocate new transports on device's NUMA node · fe2b401e
      Chuck Lever authored
      The physical device's NUMA node ID is available when allocating an
      svc_xprt for an incoming connection. Use that value to ensure the
      svc_xprt structure is allocated on the NUMA node closest to the
      device.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      fe2b401e
    • NeilBrown's avatar
      lockd: drop inappropriate svc_get() from locked_get() · 665e89ab
      NeilBrown authored
      The below-mentioned patch was intended to simplify refcounting on the
      svc_serv used by locked.  The goal was to only ever have a single
      reference from the single thread.  To that end we dropped a call to
      lockd_start_svc() (except when creating thread) which would take a
      reference, and dropped the svc_put(serv) that would drop that reference.
      
      Unfortunately we didn't also remove the svc_get() from
      lockd_create_svc() in the case where the svc_serv already existed.
      So after the patch:
       - on the first call the svc_serv was allocated and the one reference
         was given to the thread, so there are no extra references
       - on subsequent calls svc_get() was called so there is now an extra
         reference.
      This is clearly not consistent.
      
      The inconsistency is also clear in the current code in lockd_get()
      takes *two* references, one on nlmsvc_serv and one by incrementing
      nlmsvc_users.   This clearly does not match lockd_put().
      
      So: drop that svc_get() from lockd_get() (which used to be in
      lockd_create_svc().
      Reported-by: default avatarIdo Schimmel <idosch@idosch.org>
      Closes: https://lore.kernel.org/linux-nfs/ZHsI%2FH16VX9kJQX1@shredder/T/#u
      Fixes: b73a2972 ("lockd: move lockd_start_svc() call into lockd_create_svc()")
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Tested-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      665e89ab
  2. 11 Jun, 2023 6 commits
    • Jeff Layton's avatar
      nfsd: don't provide pre/post-op attrs if fh_getattr fails · 518f375c
      Jeff Layton authored
      nfsd calls fh_getattr to get the latest inode attrs for pre/post-op
      info. In the event that fh_getattr fails, it resorts to scraping cached
      values out of the inode directly.
      
      Since these attributes are optional, we can just skip providing them
      altogether when this happens.
      Signed-off-by: default avatarJeff Layton <jlayton@kernel.org>
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Reviewed-by: default avatarNeil Brown <neilb@suse.de>
      518f375c
    • Chuck Lever's avatar
      NFSD: Remove nfsd_readv() · df56b384
      Chuck Lever authored
      nfsd_readv()'s consumers now use nfsd_iter_read().
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      df56b384
    • Chuck Lever's avatar
      NFSD: Hoist rq_vec preparation into nfsd_read() [step two] · 703d7521
      Chuck Lever authored
      Now that the preparation of an rq_vec has been removed from the
      generic read path, nfsd_splice_read() no longer needs to reset
      rq_next_page.
      
      nfsd4_encode_read() calls nfsd_splice_read() directly. As far as I
      can ascertain, resetting rq_next_page for NFSv4 splice reads is
      unnecessary because rq_next_page is already set correctly.
      
      Moreover, resetting it might even be incorrect if previous
      operations in the COMPOUND have already consumed at least a page of
      the send buffer. I would expect that the result would be encoding
      the READ payload over previously-encoded results.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      703d7521
    • Chuck Lever's avatar
      NFSD: Hoist rq_vec preparation into nfsd_read() · 507df40e
      Chuck Lever authored
      Accrue the following benefits:
      
      a) Deduplicate this common bit of code.
      
      b) Don't prepare rq_vec for NFSv2 and NFSv3 spliced reads, which
         don't use rq_vec. This is already the case for
         nfsd4_encode_read().
      
      c) Eventually, converting NFSD's read path to use a bvec iterator
         will be simpler.
      
      In the next patch, nfsd_iter_read() will replace nfsd_readv() for
      all NFS versions.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      507df40e
    • Chuck Lever's avatar
      NFSD: Update rq_next_page between COMPOUND operations · ed4a567a
      Chuck Lever authored
      A GETATTR with a large result can advance xdr->page_ptr without
      updating rq_next_page. If a splice READ follows that GETATTR in the
      COMPOUND, nfsd_splice_actor can start splicing at the wrong page.
      
      I've also seen READLINK and READDIR leave rq_next_page in an
      unmodified state.
      
      There are potentially a myriad of combinations like this, so play it
      safe: move the rq_next_page update to nfsd4_encode_operation.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      ed4a567a
    • Chuck Lever's avatar
      NFSD: Use svcxdr_encode_opaque_pages() in nfsd4_encode_splice_read() · ba21e20b
      Chuck Lever authored
      Commit 15b23ef5 ("nfsd4: fix corruption of NFSv4 read data")
      encountered exactly the same issue: after a splice read, a
      filesystem-owned page is left in rq_pages[]; the symptoms are the
      same as described there.
      
      If the computed number of pages in nfsd4_encode_splice_read() is not
      exactly the same as the actual number of pages that were consumed by
      nfsd_splice_actor() (say, because of a bug) then hilarity ensues.
      
      Instead of recomputing the page offset based on the size of the
      payload, use rq_next_page, which is already properly updated by
      nfsd_splice_actor(), to cause svc_rqst_release_pages() to operate
      correctly in every instance.
      
      This is a defensive change since we believe that after commit
      27c934dd ("nfsd: don't replace page in rq_pages if it's a
      continuation of last page") has been applied, there are no known
      opportunities for nfsd_splice_actor() to screw up. So I'm not
      marking it for stable backport.
      Reported-by: default avatarAndy Zlotek <andy.zlotek@oracle.com>
      Suggested-by: default avatarCalum Mackay <calum.mackay@oracle.com>
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      ba21e20b
  3. 05 Jun, 2023 14 commits
  4. 04 Jun, 2023 9 commits
    • Linus Torvalds's avatar
      Linux 6.4-rc5 · 9561de3a
      Linus Torvalds authored
      9561de3a
    • Linus Torvalds's avatar
      Merge tag 'irq_urgent_for_v6.4_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6f64a5eb
      Linus Torvalds authored
      Pull irq fix from Borislav Petkov:
      
       - Fix open firmware quirks validation so that they don't get applied
         wrongly
      
      * tag 'irq_urgent_for_v6.4_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic: Correctly validate OF quirk descriptors
      6f64a5eb
    • Linus Torvalds's avatar
      Merge tag 'media/v6.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 5e89d62e
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       "Some driver fixes:
         - a regression fix for the verisilicon driver
         - uvcvideo: don't expose unsupported video formats to userspace
         - camss-video: don't zero subdev format after init
         - mediatek: some fixes for 4K decoder formats
         - fix a Sphinx build warning (missing doc for client_caps)
         - some fixes for imx and atomisp staging drivers
      
        And two CEC core fixes:
         - don't set last_initiator if TX in progress
         - disable adapter in cec_devnode_unregister"
      
      * tag 'media/v6.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        media: uvcvideo: Don't expose unsupported formats to userspace
        media: v4l2-subdev: Fix missing kerneldoc for client_caps
        media: staging: media: imx: initialize hs_settle to avoid warning
        media: v4l2-mc: Drop subdev check in v4l2_create_fwnode_links_to_pad()
        media: staging: media: atomisp: init high & low vars
        media: cec: core: don't set last_initiator if tx in progress
        media: cec: core: disable adapter in cec_devnode_unregister
        media: mediatek: vcodec: Only apply 4K frame sizes on decoder formats
        media: camss: camss-video: Don't zero subdev format again after initialization
        media: verisilicon: Additional fix for the crash when opening the driver
      5e89d62e
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 209835e8
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are a bunch of tiny char/misc/other driver fixes for 6.4-rc5 that
        resolve a number of reported issues. Included in here are:
      
         - iio driver fixes
      
         - fpga driver fixes
      
         - test_firmware bugfixes
      
         - fastrpc driver tiny bugfixes
      
         - MAINTAINERS file updates for some subsystems
      
        All of these have been in linux-next this past week with no reported
        issues"
      
      * tag 'char-misc-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (34 commits)
        test_firmware: fix the memory leak of the allocated firmware buffer
        test_firmware: fix a memory leak with reqs buffer
        test_firmware: prevent race conditions by a correct implementation of locking
        firmware_loader: Fix a NULL vs IS_ERR() check
        MAINTAINERS: Vaibhav Gupta is the new ipack maintainer
        dt-bindings: fpga: replace Ivan Bornyakov maintainership
        MAINTAINERS: update Microchip MPF FPGA reviewers
        misc: fastrpc: reject new invocations during device removal
        misc: fastrpc: return -EPIPE to invocations on device removal
        misc: fastrpc: Reassign memory ownership only for remote heap
        misc: fastrpc: Pass proper scm arguments for secure map request
        iio: imu: inv_icm42600: fix timestamp reset
        iio: adc: ad_sigma_delta: Fix IRQ issue by setting IRQ_DISABLE_UNLAZY flag
        dt-bindings: iio: adc: renesas,rcar-gyroadc: Fix adi,ad7476 compatible value
        iio: dac: mcp4725: Fix i2c_master_send() return value handling
        iio: accel: kx022a fix irq getting
        iio: bu27034: Ensure reset is written
        iio: dac: build ad5758 driver when AD5758 is selected
        iio: addac: ad74413: fix resistance input processing
        iio: light: vcnl4035: fixed chip ID check
        ...
      209835e8
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 41f3ab2d
      Linus Torvalds authored
      Pull driver core fixes from Greg KH:
       "Here are two small driver core cacheinfo fixes for 6.4-rc5 that
        resolve a number of reported issues with that file. These changes have
        been in linux-next this past week with no reported problems"
      
      * tag 'driver-core-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        drivers: base: cacheinfo: Update cpu_map_populated during CPU Hotplug
        drivers: base: cacheinfo: Fix shared_cpu_map changes in event of CPU hotplug
      41f3ab2d
    • Linus Torvalds's avatar
      Merge tag 'tty-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 12c2f77b
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are some small tty/serial driver fixes for 6.4-rc5 that have all
        been in linux-next this past week with no reported problems. Included
        in here are:
      
         - 8250_tegra driver bugfix
      
         - fsl uart driver bugfixes
      
         - Kconfig fix for dependancy issue
      
         - dt-bindings fix for the 8250_omap driver"
      
      * tag 'tty-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        dt-bindings: serial: 8250_omap: add rs485-rts-active-high
        serial: cpm_uart: Fix a COMPILE_TEST dependency
        soc: fsl: cpm1: Fix TSA and QMC dependencies in case of COMPILE_TEST
        tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of UARTCTRL_SBK
        serial: 8250_tegra: Fix an error handling path in tegra_uart_probe()
      12c2f77b
    • Linus Torvalds's avatar
      Merge tag 'usb-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 8b435e40
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some USB driver and core fixes for 6.4-rc5. Most of these are
        tiny driver fixes, including:
      
         - udc driver bugfix
      
         - f_fs gadget driver bugfix
      
         - cdns3 driver bugfix
      
         - typec bugfixes
      
        But the "big" thing in here is a fix yet-again for how the USB buffers
        are handled from userspace when dealing with DMA issues. The changes
        were discussed a lot, and tested a lot, on the list, and acked by the
        relevant mm maintainers and have been in linux-next all this past week
        with no reported problems"
      
      * tag 'usb-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: tps6598x: Fix broken polling mode after system suspend/resume
        mm: page_table_check: Ensure user pages are not slab pages
        mm: page_table_check: Make it dependent on EXCLUSIVE_SYSTEM_RAM
        usb: usbfs: Use consistent mmap functions
        usb: usbfs: Enforce page requirements for mmap
        dt-bindings: usb: snps,dwc3: Fix "snps,hsphy_interface" type
        usb: gadget: udc: fix NULL dereference in remove()
        usb: gadget: f_fs: Add unbind event before functionfs_unbind
        usb: cdns3: fix NCM gadget RX speed 20x slow than expection at iMX8QM
      8b435e40
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · b066935b
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "ARM:
      
         - Address some fallout of the locking rework, this time affecting the
           way the vgic is configured
      
         - Fix an issue where the page table walker frees a subtree and then
           proceeds with walking what it has just freed...
      
         - Check that a given PA donated to the guest is actually memory (only
           affecting pKVM)
      
         - Correctly handle MTE CMOs by Set/Way
      
         - Fix the reported address of a watchpoint forwarded to userspace
      
         - Fix the freeing of the root of stage-2 page tables
      
         - Stop creating spurious PMU events to perform detection of the
           default PMU and use the existing PMU list instead
      
        x86:
      
         - Fix a memslot lookup bug in the NX recovery thread that could
           theoretically let userspace bypass the NX hugepage mitigation
      
         - Fix a s/BLOCKING/PENDING bug in SVM's vNMI support
      
         - Account exit stats for fastpath VM-Exits that never leave the super
           tight run-loop
      
         - Fix an out-of-bounds bug in the optimized APIC map code, and add a
           regression test for the race"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: selftests: Add test for race in kvm_recalculate_apic_map()
        KVM: x86: Bail from kvm_recalculate_phys_map() if x2APIC ID is out-of-bounds
        KVM: x86: Account fastpath-only VM-Exits in vCPU stats
        KVM: SVM: vNMI pending bit is V_NMI_PENDING_MASK not V_NMI_BLOCKING_MASK
        KVM: x86/mmu: Grab memslot for correct address space in NX recovery worker
        KVM: arm64: Document default vPMU behavior on heterogeneous systems
        KVM: arm64: Iterate arm_pmus list to probe for default PMU
        KVM: arm64: Drop last page ref in kvm_pgtable_stage2_free_removed()
        KVM: arm64: Populate fault info for watchpoint
        KVM: arm64: Reload PTE after invoking walker callback on preorder traversal
        KVM: arm64: Handle trap of tagged Set/Way CMOs
        arm64: Add missing Set/Way CMO encodings
        KVM: arm64: Prevent unconditional donation of unmapped regions from the host
        KVM: arm64: vgic: Fix a comment
        KVM: arm64: vgic: Fix locking comment
        KVM: arm64: vgic: Wrap vgic_its_create() with config_lock
        KVM: arm64: vgic: Fix a circular locking issue
      b066935b
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 9455b4b6
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix link errors in new aes-gcm-p10 code when built-in with other
         drivers
      
       - Limit number of TCEs passed to H_STUFF_TCE hcall as per spec
      
       - Use KSYM_NAME_LEN in xmon array size to avoid possible OOB write
      
      Thanks to Gaurav Batra and Maninder Singh Vishal Chourasia.
      
      * tag 'powerpc-6.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/xmon: Use KSYM_NAME_LEN in array size
        powerpc/iommu: Limit number of TCEs to 512 for H_STUFF_TCE hcall
        powerpc/crypto: Fix aes-gcm-p10 link errors
      9455b4b6
  5. 03 Jun, 2023 8 commits