1. 21 Jul, 2020 1 commit
    • Ming Lei's avatar
      scsi: core: Run queue in case of I/O resource contention failure · 3f0dcfbc
      Ming Lei authored
      I/O requests may be held in scheduler queue because of resource contention.
      The starvation scenario was handled properly in the regular completion
      path but we failed to account for it during I/O submission. This lead to
      the hang captured below. Make sure we run the queue when resource
      contention is encountered in the submission path.
      
      [   39.054963] scsi 13:0:0:0: rejecting I/O to dead device
      [   39.058700] scsi 13:0:0:0: rejecting I/O to dead device
      [   39.087855] sd 13:0:0:1: [sdd] Synchronizing SCSI cache
      [   39.088909] scsi 13:0:0:1: rejecting I/O to dead device
      [   39.095351] scsi 13:0:0:1: rejecting I/O to dead device
      [   39.096962] scsi 13:0:0:1: rejecting I/O to dead device
      [  247.021859] INFO: task scsi-stress-rem:813 blocked for more than 122 seconds.
      [  247.023258]       Not tainted 5.8.0-rc2 #8
      [  247.024069] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      [  247.025331] scsi-stress-rem D    0   813    802 0x00004000
      [  247.025334] Call Trace:
      [  247.025354]  __schedule+0x504/0x55f
      [  247.027987]  schedule+0x72/0xa8
      [  247.027991]  blk_mq_freeze_queue_wait+0x63/0x8c
      [  247.027994]  ? do_wait_intr_irq+0x7a/0x7a
      [  247.027996]  blk_cleanup_queue+0x4b/0xc9
      [  247.028000]  __scsi_remove_device+0xf6/0x14e
      [  247.028002]  scsi_remove_device+0x21/0x2b
      [  247.029037]  sdev_store_delete+0x58/0x7c
      [  247.029041]  kernfs_fop_write+0x10d/0x14f
      [  247.031281]  vfs_write+0xa2/0xdf
      [  247.032670]  ksys_write+0x6b/0xb3
      [  247.032673]  do_syscall_64+0x56/0x82
      [  247.034053]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [  247.034059] RIP: 0033:0x7f69f39e9008
      [  247.036330] Code: Bad RIP value.
      [  247.036331] RSP: 002b:00007ffdd8116498 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      [  247.037613] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f69f39e9008
      [  247.039714] RDX: 0000000000000002 RSI: 000055cde92a0ab0 RDI: 0000000000000001
      [  247.039715] RBP: 000055cde92a0ab0 R08: 000000000000000a R09: 00007f69f3a79e80
      [  247.039716] R10: 000000000000000a R11: 0000000000000246 R12: 00007f69f3abb780
      [  247.039717] R13: 0000000000000002 R14: 00007f69f3ab6740 R15: 0000000000000002
      
      Link: https://lore.kernel.org/r/20200720025435.812030-1-ming.lei@redhat.com
      Cc: linux-block@vger.kernel.org
      Cc: Christoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      3f0dcfbc
  2. 15 Jul, 2020 1 commit
  3. 08 Jul, 2020 2 commits
  4. 03 Jul, 2020 2 commits
    • Damien Le Moal's avatar
      scsi: mpt3sas: Fix unlock imbalance · cb551b8d
      Damien Le Moal authored
      In BRM_status_show(), if the condition "!ioc->is_warpdrive" tested on entry
      to the function is true, a "goto out" is called. This results in unlocking
      ioc->pci_access_mutex without this mutex lock being taken.  This generates
      the following splat:
      
      [ 1148.539883] mpt3sas_cm2: BRM_status_show: BRM attribute is only for warpdrive
      [ 1148.547184]
      [ 1148.548708] =====================================
      [ 1148.553501] WARNING: bad unlock balance detected!
      [ 1148.558277] 5.8.0-rc3+ #827 Not tainted
      [ 1148.562183] -------------------------------------
      [ 1148.566959] cat/5008 is trying to release lock (&ioc->pci_access_mutex) at:
      [ 1148.574035] [<ffffffffc070b7a3>] BRM_status_show+0xd3/0x100 [mpt3sas]
      [ 1148.580574] but there are no more locks to release!
      [ 1148.585524]
      [ 1148.585524] other info that might help us debug this:
      [ 1148.599624] 3 locks held by cat/5008:
      [ 1148.607085]  #0: ffff92aea3e392c0 (&p->lock){+.+.}-{3:3}, at: seq_read+0x34/0x480
      [ 1148.618509]  #1: ffff922ef14c4888 (&of->mutex){+.+.}-{3:3}, at: kernfs_seq_start+0x2a/0xb0
      [ 1148.630729]  #2: ffff92aedb5d7310 (kn->active#224){.+.+}-{0:0}, at: kernfs_seq_start+0x32/0xb0
      [ 1148.643347]
      [ 1148.643347] stack backtrace:
      [ 1148.655259] CPU: 73 PID: 5008 Comm: cat Not tainted 5.8.0-rc3+ #827
      [ 1148.665309] Hardware name: HGST H4060-S/S2600STB, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019
      [ 1148.678394] Call Trace:
      [ 1148.684750]  dump_stack+0x78/0xa0
      [ 1148.691802]  lock_release.cold+0x45/0x4a
      [ 1148.699451]  __mutex_unlock_slowpath+0x35/0x270
      [ 1148.707675]  BRM_status_show+0xd3/0x100 [mpt3sas]
      [ 1148.716092]  dev_attr_show+0x19/0x40
      [ 1148.723664]  sysfs_kf_seq_show+0x87/0x100
      [ 1148.731193]  seq_read+0xbc/0x480
      [ 1148.737882]  vfs_read+0xa0/0x160
      [ 1148.744514]  ksys_read+0x58/0xd0
      [ 1148.751129]  do_syscall_64+0x4c/0xa0
      [ 1148.757941]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [ 1148.766240] RIP: 0033:0x7f1230566542
      [ 1148.772957] Code: Bad RIP value.
      [ 1148.779206] RSP: 002b:00007ffeac1bcac8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
      [ 1148.790063] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f1230566542
      [ 1148.800284] RDX: 0000000000020000 RSI: 00007f1223460000 RDI: 0000000000000003
      [ 1148.810474] RBP: 00007f1223460000 R08: 00007f122345f010 R09: 0000000000000000
      [ 1148.820641] R10: 0000000000000022 R11: 0000000000000246 R12: 0000000000000000
      [ 1148.830728] R13: 0000000000000003 R14: 0000000000020000 R15: 0000000000020000
      
      Fix this by returning immediately instead of jumping to the out label.
      
      Link: https://lore.kernel.org/r/20200701085254.51740-1-damien.lemoal@wdc.comReviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
      Acked-by: default avatarSreekanth Reddy <sreekanth.reddy@broadcom.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      cb551b8d
    • Bob Liu's avatar
      scsi: iscsi: Change iSCSI workqueue max_active back to 1 · 1a982620
      Bob Liu authored
      Commit 3ce41966 ("scsi: iscsi: Register sysfs for iscsi workqueue")
      enabled 'cpumask' support for iSCSI workqueues. However, it is unnecessary
      to set max_active = 2 since 'cpumask' can still be modified when max_active
      is 1.
      
      This patch sets max_active to 1 so as to keep the same behaviour as before.
      
      Link: https://lore.kernel.org/r/20200701030745.16897-1-bob.liu@oracle.comReviewed-by: default avatarMike Christie <michael.christie@oracle.com>
      Signed-off-by: default avatarBob Liu <bob.liu@oracle.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      1a982620
  5. 30 Jun, 2020 1 commit
  6. 27 Jun, 2020 4 commits
  7. 24 Jun, 2020 6 commits
    • Tomas Henzl's avatar
      scsi: mptscsih: Fix read sense data size · afe89f11
      Tomas Henzl authored
      The sense data buffer in sense_buf_pool is allocated with size of
      MPT_SENSE_BUFFER_ALLOC(64) (multiplied by req_depth) while SNS_LEN(sc)(96)
      is used when reading the data.  That may lead to a read from unallocated
      area, sometimes from another (unallocated) page.  To fix this, limit the
      read size to MPT_SENSE_BUFFER_ALLOC.
      
      Link: https://lore.kernel.org/r/20200616150446.4840-1-thenzl@redhat.comCo-developed-by: default avatarStanislav Saner <ssaner@redhat.com>
      Signed-off-by: default avatarStanislav Saner <ssaner@redhat.com>
      Signed-off-by: default avatarTomas Henzl <thenzl@redhat.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      afe89f11
    • Steffen Maier's avatar
      scsi: zfcp: Fix panic on ERP timeout for previously dismissed ERP action · 936e6b85
      Steffen Maier authored
      Suppose that, for unrelated reasons, FSF requests on behalf of recovery are
      very slow and can run into the ERP timeout.
      
      In the case at hand, we did adapter recovery to a large degree.  However
      due to the slowness a LUN open is pending so the corresponding fc_rport
      remains blocked.  After fast_io_fail_tmo we trigger close physical port
      recovery for the port under which the LUN should have been opened.  The new
      higher order port recovery dismisses the pending LUN open ERP action and
      dismisses the pending LUN open FSF request.  Such dismissal decouples the
      ERP action from the pending corresponding FSF request by setting
      zfcp_fsf_req->erp_action to NULL (among other things)
      [zfcp_erp_strategy_check_fsfreq()].
      
      If now the ERP timeout for the pending open LUN request runs out, we must
      not use zfcp_fsf_req->erp_action in the ERP timeout handler.  This is a
      problem since v4.15 commit 75492a51 ("s390/scsi: Convert timers to use
      timer_setup()"). Before that we intentionally only passed zfcp_erp_action
      as context argument to zfcp_erp_timeout_handler().
      
      Note: The lifetime of the corresponding zfcp_fsf_req object continues until
      a (late) response or an (unrelated) adapter recovery.
      
      Just like the regular response path ignores dismissed requests
      [zfcp_fsf_req_complete() => zfcp_fsf_protstatus_eval() => return early] the
      ERP timeout handler now needs to ignore dismissed requests.  So simply
      return early in the ERP timeout handler if the FSF request is marked as
      dismissed in its status flags.  To protect against the race where
      zfcp_erp_strategy_check_fsfreq() dismisses and sets
      zfcp_fsf_req->erp_action to NULL after our previous status flag check,
      return early if zfcp_fsf_req->erp_action is NULL.  After all, the former
      ERP action does not need to be woken up as that was already done as part of
      the dismissal above [zfcp_erp_action_dismiss()].
      
      This fixes the following panic due to kernel page fault in IRQ context:
      
      Unable to handle kernel pointer dereference in virtual kernel address space
      Failing address: 0000000000000000 TEID: 0000000000000483
      Fault in home space mode while using kernel ASCE.
      AS:000009859238c00b R2:00000e3e7ffd000b R3:00000e3e7ffcc007 S:00000e3e7ffd7000 P:000000000000013d
      Oops: 0004 ilc:2 [#1] SMP
      Modules linked in: ...
      CPU: 82 PID: 311273 Comm: stress Kdump: loaded Tainted: G            E  X   ...
      Hardware name: IBM 8561 T01 701 (LPAR)
      Krnl PSW : 0404c00180000000 001fffff80549be0 (zfcp_erp_notify+0x40/0xc0 [zfcp])
                 R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 RI:0 EA:3
      Krnl GPRS: 0000000000000080 00000e3d00000000 00000000000000f0 0000000000030000
                 000000010028e700 000000000400a39c 000000010028e700 00000e3e7cf87e02
                 0000000010000000 0700098591cb67f0 0000000000000000 0000000000000000
                 0000033840e9a000 0000000000000000 001fffe008d6bc18 001fffe008d6bbc8
      Krnl Code: 001fffff80549bd4: a7180000            lhi     %r1,0
                 001fffff80549bd8: 4120a0f0            la      %r2,240(%r10)
                #001fffff80549bdc: a53e0003            llilh   %r3,3
                >001fffff80549be0: ba132000            cs      %r1,%r3,0(%r2)
                 001fffff80549be4: a7740037            brc     7,1fffff80549c52
                 001fffff80549be8: e320b0180004        lg      %r2,24(%r11)
                 001fffff80549bee: e31020e00004        lg      %r1,224(%r2)
                 001fffff80549bf4: 412020e0            la      %r2,224(%r2)
      Call Trace:
       [<001fffff80549be0>] zfcp_erp_notify+0x40/0xc0 [zfcp]
       [<00000985915e26f0>] call_timer_fn+0x38/0x190
       [<00000985915e2944>] expire_timers+0xfc/0x190
       [<00000985915e2ac4>] run_timer_softirq+0xec/0x218
       [<0000098591ca7c4c>] __do_softirq+0x144/0x398
       [<00000985915110aa>] do_softirq_own_stack+0x72/0x88
       [<0000098591551b58>] irq_exit+0xb0/0xb8
       [<0000098591510c6a>] do_IRQ+0x82/0xb0
       [<0000098591ca7140>] ext_int_handler+0x128/0x12c
       [<0000098591722d98>] clear_subpage.constprop.13+0x38/0x60
      ([<000009859172ae4c>] clear_huge_page+0xec/0x250)
       [<000009859177e7a2>] do_huge_pmd_anonymous_page+0x32a/0x768
       [<000009859172a712>] __handle_mm_fault+0x88a/0x900
       [<000009859172a860>] handle_mm_fault+0xd8/0x1b0
       [<0000098591529ef6>] do_dat_exception+0x136/0x3e8
       [<0000098591ca6d34>] pgm_check_handler+0x1c8/0x220
      Last Breaking-Event-Address:
       [<001fffff80549c88>] zfcp_erp_timeout_handler+0x10/0x18 [zfcp]
      Kernel panic - not syncing: Fatal exception in interrupt
      
      Link: https://lore.kernel.org/r/20200623140242.98864-1-maier@linux.ibm.com
      Fixes: 75492a51 ("s390/scsi: Convert timers to use timer_setup()")
      Cc: <stable@vger.kernel.org> #4.15+
      Reviewed-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarSteffen Maier <maier@linux.ibm.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      936e6b85
    • SeongJae Park's avatar
      scsi: lpfc: Avoid another null dereference in lpfc_sli4_hba_unset() · 46da547e
      SeongJae Park authored
      Commit cdb42bec ("scsi: lpfc: Replace io_channels for nvme and fcp with
      general hdw_queues per cpu") has introduced static checker warnings for
      potential null dereferences in 'lpfc_sli4_hba_unset()' and commit 1ffdd2c0
      ("scsi: lpfc: resolve static checker warning in lpfc_sli4_hba_unset") has
      tried to fix it.  However, yet another potential null dereference is
      remaining.  This commit fixes it.
      
      This bug was discovered and resolved using Coverity Static Analysis
      Security Testing (SAST) by Synopsys, Inc.
      
      Link: https://lore.kernel.org/r/20200623084122.30633-1-sjpark@amazon.com
      Fixes: 1ffdd2c0 ("scsi: lpfc: resolve static checker warning inlpfc_sli4_hba_unset")
      Fixes: cdb42bec ("scsi: lpfc: Replace io_channels for nvme and fcp with general hdw_queues per cpu")
      Reviewed-by: default avatarJames Smart <james.smart@broadcom.com>
      Signed-off-by: default avatarSeongJae Park <sjpark@amazon.de>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      46da547e
    • Christoph Hellwig's avatar
      scsi: libata: Fix the ata_scsi_dma_need_drain stub · aad4b4d1
      Christoph Hellwig authored
      We not only need the stub when libata is disabled, but also if it is
      modular and there are built-in SAS drivers (which can happen when
      SCSI_SAS_ATA is disabled).
      
      Link: https://lore.kernel.org/r/20200620071302.462974-2-hch@lst.de
      Fixes: b8f1d1e0 ("scsi: Wire up ata_scsi_dma_need_drain for SAS HBA drivers")
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      aad4b4d1
    • Roman Bolshakov's avatar
      scsi: qla2xxx: Keep initiator ports after RSCN · 632f24f0
      Roman Bolshakov authored
      The driver performs SCR (state change registration) in all modes including
      pure target mode.
      
      For each RSCN, scan_needed flag is set in qla2x00_handle_rscn() for the
      port mentioned in the RSCN and fabric rescan is scheduled. During the
      rescan, GNN_FT handler, qla24xx_async_gnnft_done() deletes session of the
      port that caused the RSCN.
      
      In target mode, the session deletion has an impact on ATIO handler,
      qlt_24xx_atio_pkt(). Target responds with SAM STATUS BUSY to I/O incoming
      from the deleted session. qlt_handle_cmd_for_atio() and
      qlt_handle_task_mgmt() return -EFAULT if they are not able to find session
      of the command/TMF, and that results in invocation of qlt_send_busy():
      
        qlt_24xx_atio_pkt_all_vps: qla_target(0): type 6 ox_id 0014
        qla_target(0): Unable to send command to target, sending BUSY status
      
      Such response causes command timeout on the initiator. Error handler thread
      on the initiator will be spawned to abort the commands:
      
        scsi 23:0:0:0: tag#0 abort scheduled
        scsi 23:0:0:0: tag#0 aborting command
        qla2xxx [0000:af:00.0]-188c:23: Entered qla24xx_abort_command.
        qla2xxx [0000:af:00.0]-801c:23: Abort command issued nexus=23:0:0 -- 0 2003.
      
      Command abort is rejected by target and fails (2003), error handler then
      tries to perform DEVICE RESET and TARGET RESET but they're also doomed to
      fail because TMFs are ignored for the deleted sessions.
      
      Then initiator makes BUS RESET that resets the link via
      qla2x00_full_login_lip(). BUS RESET succeeds and brings initiator port up,
      SAN switch detects that and sends RSCN to the target port and it fails
      again the same way as described above. It never goes out of the loop.
      
      The change breaks the RSCN loop by keeping initiator sessions mentioned in
      RSCN payload in all modes, including dual and pure target mode.
      
      Link: https://lore.kernel.org/r/20200605144435.27023-1-r.bolshakov@yadro.com
      Fixes: 2037ce49 ("scsi: qla2xxx: Fix stale session")
      Cc: Quinn Tran <qutran@marvell.com>
      Cc: Arun Easi <aeasi@marvell.com>
      Cc: Nilesh Javali <njavali@marvell.com>
      Cc: Bart Van Assche <bvanassche@acm.org>
      Cc: Daniel Wagner <dwagner@suse.de>
      Cc: Himanshu Madhani <himanshu.madhani@oracle.com>
      Cc: Martin Wilck <mwilck@suse.com>
      Cc: stable@vger.kernel.org # v5.4+
      Reviewed-by: default avatarDaniel Wagner <dwagner@suse.de>
      Reviewed-by: default avatarShyam Sundar <ssundar@marvell.com>
      Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
      Signed-off-by: default avatarRoman Bolshakov <r.bolshakov@yadro.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      632f24f0
    • Daniel Wagner's avatar
      scsi: qla2xxx: Set NVMe status code for failed NVMe FCP request · ef2e3ec5
      Daniel Wagner authored
      The qla2xxx driver knows when request was processed successfully or
      not. But it always sets the NVMe status code to 0/NVME_SC_SUCCESS. The
      upper layer needs to figure out from the rcv_rsplen and transferred_length
      variables if the request was transferred successfully. This is not always
      possible, e.g. when the request data length is 0, the transferred_length is
      also set 0 which is interpreted as success in nvme_fc_fcpio_done(). Let's
      inform the upper layer (nvme_fc_fcpio_done()) when something went wrong.
      
      nvme_fc_fcpio_done() maps all non-NVME_SC_SUCCESS status codes to
      NVME_SC_HOST_PATH_ERROR. There isn't any benefit to map the QLA status code
      to the NVMe status code. Therefore, use NVME_SC_INTERNAL to indicate an
      error which aligns it with the lpfc driver.
      
      Link: https://lore.kernel.org/r/20200604100745.89250-1-dwagner@suse.deReviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarDaniel Wagner <dwagner@suse.de>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      ef2e3ec5
  8. 16 Jun, 2020 3 commits
  9. 14 Jun, 2020 4 commits
    • Linus Torvalds's avatar
      Linux 5.8-rc1 · b3a9e3b9
      Linus Torvalds authored
      b3a9e3b9
    • Linus Torvalds's avatar
      Merge tag 'LSM-add-setgid-hook-5.8-author-fix' of git://github.com/micah-morton/linux · 4a87b197
      Linus Torvalds authored
      Pull SafeSetID update from Micah Morton:
       "Add additional LSM hooks for SafeSetID
      
        SafeSetID is capable of making allow/deny decisions for set*uid calls
        on a system, and we want to add similar functionality for set*gid
        calls.
      
        The work to do that is not yet complete, so probably won't make it in
        for v5.8, but we are looking to get this simple patch in for v5.8
        since we have it ready.
      
        We are planning on the rest of the work for extending the SafeSetID
        LSM being merged during the v5.9 merge window"
      
      * tag 'LSM-add-setgid-hook-5.8-author-fix' of git://github.com/micah-morton/linux:
        security: Add LSM hooks to set*gid syscalls
      4a87b197
    • Thomas Cedeno's avatar
      security: Add LSM hooks to set*gid syscalls · 39030e13
      Thomas Cedeno authored
      The SafeSetID LSM uses the security_task_fix_setuid hook to filter
      set*uid() syscalls according to its configured security policy. In
      preparation for adding analagous support in the LSM for set*gid()
      syscalls, we add the requisite hook here. Tested by putting print
      statements in the security_task_fix_setgid hook and seeing them get hit
      during kernel boot.
      Signed-off-by: default avatarThomas Cedeno <thomascedeno@google.com>
      Signed-off-by: default avatarMicah Morton <mortonm@chromium.org>
      39030e13
    • Linus Torvalds's avatar
      Merge tag 'for-5.8-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 9d645db8
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "This reverts the direct io port to iomap infrastructure of btrfs
        merged in the first pull request. We found problems in invalidate page
        that don't seem to be fixable as regressions or without changing iomap
        code that would not affect other filesystems.
      
        There are four reverts in total, but three of them are followup
        cleanups needed to revert a43a67a2 cleanly. The result is the
        buffer head based implementation of direct io.
      
        Reverts are not great, but under current circumstances I don't see
        better options"
      
      * tag 'for-5.8-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        Revert "btrfs: switch to iomap_dio_rw() for dio"
        Revert "fs: remove dio_end_io()"
        Revert "btrfs: remove BTRFS_INODE_READDIO_NEED_LOCK"
        Revert "btrfs: split btrfs_direct_IO to read and write part"
      9d645db8
  10. 13 Jun, 2020 16 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 96144c58
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix cfg80211 deadlock, from Johannes Berg.
      
       2) RXRPC fails to send norigications, from David Howells.
      
       3) MPTCP RM_ADDR parsing has an off by one pointer error, fix from
          Geliang Tang.
      
       4) Fix crash when using MSG_PEEK with sockmap, from Anny Hu.
      
       5) The ucc_geth driver needs __netdev_watchdog_up exported, from
          Valentin Longchamp.
      
       6) Fix hashtable memory leak in dccp, from Wang Hai.
      
       7) Fix how nexthops are marked as FDB nexthops, from David Ahern.
      
       8) Fix mptcp races between shutdown and recvmsg, from Paolo Abeni.
      
       9) Fix crashes in tipc_disc_rcv(), from Tuong Lien.
      
      10) Fix link speed reporting in iavf driver, from Brett Creeley.
      
      11) When a channel is used for XSK and then reused again later for XSK,
          we forget to clear out the relevant data structures in mlx5 which
          causes all kinds of problems. Fix from Maxim Mikityanskiy.
      
      12) Fix memory leak in genetlink, from Cong Wang.
      
      13) Disallow sockmap attachments to UDP sockets, it simply won't work.
          From Lorenz Bauer.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (83 commits)
        net: ethernet: ti: ale: fix allmulti for nu type ale
        net: ethernet: ti: am65-cpsw-nuss: fix ale parameters init
        net: atm: Remove the error message according to the atomic context
        bpf: Undo internal BPF_PROBE_MEM in BPF insns dump
        libbpf: Support pre-initializing .bss global variables
        tools/bpftool: Fix skeleton codegen
        bpf: Fix memlock accounting for sock_hash
        bpf: sockmap: Don't attach programs to UDP sockets
        bpf: tcp: Recv() should return 0 when the peer socket is closed
        ibmvnic: Flush existing work items before device removal
        genetlink: clean up family attributes allocations
        net: ipa: header pad field only valid for AP->modem endpoint
        net: ipa: program upper nibbles of sequencer type
        net: ipa: fix modem LAN RX endpoint id
        net: ipa: program metadata mask differently
        ionic: add pcie_print_link_status
        rxrpc: Fix race between incoming ACK parser and retransmitter
        net/mlx5: E-Switch, Fix some error pointer dereferences
        net/mlx5: Don't fail driver on failure to create debugfs
        net/mlx5e: CT: Fix ipv6 nat header rewrite actions
        ...
      96144c58
    • David Sterba's avatar
      Revert "btrfs: switch to iomap_dio_rw() for dio" · 55e20bd1
      David Sterba authored
      This reverts commit a43a67a2.
      
      This patch reverts the main part of switching direct io implementation
      to iomap infrastructure. There's a problem in invalidate page that
      couldn't be solved as regression in this development cycle.
      
      The problem occurs when buffered and direct io are mixed, and the ranges
      overlap. Although this is not recommended, filesystems implement
      measures or fallbacks to make it somehow work. In this case, fallback to
      buffered IO would be an option for btrfs (this already happens when
      direct io is done on compressed data), but the change would be needed in
      the iomap code, bringing new semantics to other filesystems.
      
      Another problem arises when again the buffered and direct ios are mixed,
      invalidation fails, then -EIO is set on the mapping and fsync will fail,
      though there's no real error.
      
      There have been discussions how to fix that, but revert seems to be the
      least intrusive option.
      
      Link: https://lore.kernel.org/linux-btrfs/20200528192103.xm45qoxqmkw7i5yl@fiona/Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      55e20bd1
    • Grygorii Strashko's avatar
      net: ethernet: ti: ale: fix allmulti for nu type ale · bc139119
      Grygorii Strashko authored
      On AM65xx MCU CPSW2G NUSS and 66AK2E/L NUSS allmulti setting does not allow
      unregistered mcast packets to pass.
      
      This happens, because ALE VLAN entries on these SoCs do not contain port
      masks for reg/unreg mcast packets, but instead store indexes of
      ALE_VLAN_MASK_MUXx_REG registers which intended for store port masks for
      reg/unreg mcast packets.
      This path was missed by commit 9d1f6447 ("net: ethernet: ti: ale: fix
      seeing unreg mcast packets with promisc and allmulti disabled").
      
      Hence, fix it by taking into account ALE type in cpsw_ale_set_allmulti().
      
      Fixes: 9d1f6447 ("net: ethernet: ti: ale: fix seeing unreg mcast packets with promisc and allmulti disabled")
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bc139119
    • Grygorii Strashko's avatar
      net: ethernet: ti: am65-cpsw-nuss: fix ale parameters init · 2074f9ea
      Grygorii Strashko authored
      The ALE parameters structure is created on stack, so it has to be reset
      before passing to cpsw_ale_create() to avoid garbage values.
      
      Fixes: 93a76530 ("net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver")
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2074f9ea
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · fa7566a0
      David S. Miller authored
      Alexei Starovoitov says:
      
      ====================
      pull-request: bpf 2020-06-12
      
      The following pull-request contains BPF updates for your *net* tree.
      
      We've added 26 non-merge commits during the last 10 day(s) which contain
      a total of 27 files changed, 348 insertions(+), 93 deletions(-).
      
      The main changes are:
      
      1) sock_hash accounting fix, from Andrey.
      
      2) libbpf fix and probe_mem sanitizing, from Andrii.
      
      3) sock_hash fixes, from Jakub.
      
      4) devmap_val fix, from Jesper.
      
      5) load_bytes_relative fix, from YiFei.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fa7566a0
    • Liao Pingfang's avatar
      net: atm: Remove the error message according to the atomic context · bf97bac9
      Liao Pingfang authored
      Looking into the context (atomic!) and the error message should be dropped.
      Signed-off-by: default avatarLiao Pingfang <liao.pingfang@zte.com.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf97bac9
    • Linus Torvalds's avatar
      Merge tag '5.8-rc-smb3-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · f82e7b57
      Linus Torvalds authored
      Pull more cifs updates from Steve French:
       "12 cifs/smb3 fixes, 2 for stable.
      
         - add support for idsfromsid on create and chgrp/chown allowing
           ability to save owner information more naturally for some workloads
      
         - improve query info (getattr) when SMB3.1.1 posix extensions are
           negotiated by using new query info level"
      
      * tag '5.8-rc-smb3-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: Add debug message for new file creation with idsfromsid mount option
        cifs: fix chown and chgrp when idsfromsid mount option enabled
        smb3: allow uid and gid owners to be set on create with idsfromsid mount option
        smb311: Add tracepoints for new compound posix query info
        smb311: add support for using info level for posix extensions query
        smb311: Add support for lookup with posix extensions query info
        smb311: Add support for SMB311 query info (non-compounded)
        SMB311: Add support for query info using posix extensions (level 100)
        smb3: add indatalen that can be a non-zero value to calculation of credit charge in smb2 ioctl
        smb3: fix typo in mount options displayed in /proc/mounts
        cifs: Add get_security_type_str function to return sec type.
        smb3: extend fscache mount volume coherency check
      f82e7b57
    • Linus Torvalds's avatar
      binderfs: add gitignore for generated sample program · 4f9b3a37
      Linus Torvalds authored
      Let's keep "git status" happy and quiet.
      
      Fixes: 9762dc14 ("samples: add binderfs sample program
      Fixes: fca5e949 ("samples: binderfs: really compile this sample and fix build issues")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4f9b3a37
    • Linus Torvalds's avatar
      doc: don't use deprecated "---help---" markers in target docs · 3e1ad405
      Linus Torvalds authored
      I'm not convinced the script makes useful automaed help lines anyway,
      but since we're trying to deprecate the use of "---help---" in Kconfig
      files, let's fix the doc example code too.
      
      See commit a7f7f624 ("treewide: replace '---help---' in Kconfig
      files with 'help'")
      
      Cc: Masahiro Yamada <masahiroy@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3e1ad405
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 6adc19fd
      Linus Torvalds authored
      Pull more Kbuild updates from Masahiro Yamada:
      
       - fix build rules in binderfs sample
      
       - fix build errors when Kbuild recurses to the top Makefile
      
       - covert '---help---' in Kconfig to 'help'
      
      * tag 'kbuild-v5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        treewide: replace '---help---' in Kconfig files with 'help'
        kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables
        samples: binderfs: really compile this sample and fix build issues
      6adc19fd
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 3df83e16
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is the set of changes collected since just before the merge
        window opened. It's mostly minor fixes in drivers.
      
        The one non-driver set is the three optical disk (sr) changes where
        two are error path fixes and one is a helper conversion.
      
        The big driver change is the hpsa compat_alloc_userspace rework by Al
        so he can kill the remaining user. This has been tested and acked by
        the maintainer"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (21 commits)
        scsi: acornscsi: Fix an error handling path in acornscsi_probe()
        scsi: storvsc: Remove memset before memory freeing in storvsc_suspend()
        scsi: cxlflash: Remove an unnecessary NULL check
        scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM
        scsi: sr: Fix sr_probe() missing deallocate of device minor
        scsi: sr: Fix sr_probe() missing mutex_destroy
        scsi: st: Convert convert get_user_pages() --> pin_user_pages()
        scsi: target: Rename target_setup_cmd_from_cdb() to target_cmd_parse_cdb()
        scsi: target: Fix NULL pointer dereference
        scsi: target: Initialize LUN in transport_init_se_cmd()
        scsi: target: Factor out a new helper, target_cmd_init_cdb()
        scsi: hpsa: hpsa_ioctl(): Tidy up a bit
        scsi: hpsa: Get rid of compat_alloc_user_space()
        scsi: hpsa: Don't bother with vmalloc for BIG_IOCTL_Command_struct
        scsi: hpsa: Lift {BIG_,}IOCTL_Command_struct copy{in,out} into hpsa_ioctl()
        scsi: ufs: Remove redundant urgent_bkop_lvl initialization
        scsi: ufs: Don't update urgent bkops level when toggling auto bkops
        scsi: qedf: Remove redundant initialization of variable rc
        scsi: mpt3sas: Fix memset() in non-RDPQ mode
        scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
        ...
      3df83e16
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 91fa5884
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "I2C has quite some patches for you this time. I hope it is the move to
        per-driver-maintainers which is now showing results. We will see.
      
        The big news is two new drivers (Nuvoton NPCM and Qualcomm CCI),
        larger refactoring of the Designware, Tegra, and PXA drivers, the
        Cadence driver supports being a slave now, and there is support to
        instanciate SPD eeproms for well-known cases (which will be
        user-visible because the i801 driver supports it), and some
        devm_platform_ioremap_resource() conversions which blow up the
        diffstat.
      
        Note that I applied the Nuvoton driver quite late, so some minor fixup
        patches arrived during the merge window. I chose to apply them right
        away because they were trivial"
      
      * 'i2c/for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (109 commits)
        i2c: Drop stray comma in MODULE_AUTHOR statements
        i2c: npcm7xx: npcm_i2caddr[] can be static
        MAINTAINERS: npcm7xx: Add maintainer for Nuvoton NPCM BMC
        i2c: npcm7xx: Fix a couple of error codes in probe
        i2c: icy: Fix build with CONFIG_AMIGA_PCMCIA=n
        i2c: npcm7xx: Remove unnecessary parentheses
        i2c: npcm7xx: Add support for slave mode for Nuvoton
        i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver
        dt-bindings: i2c: npcm7xx: add NPCM I2C controller
        i2c: pxa: don't error out if there's no pinctrl
        i2c: add 'single-master' property to generic bindings
        i2c: designware: Add Baikal-T1 System I2C support
        i2c: designware: Move reg-space remapping into a dedicated function
        i2c: designware: Retrieve quirk flags as early as possible
        i2c: designware: Convert driver to using regmap API
        i2c: designware: Discard Cherry Trail model flag
        i2c: designware: Add Baytrail sem config DW I2C platform dependency
        i2c: designware: slave: Set DW I2C core module dependency
        i2c: designware: Use `-y` to build multi-object modules
        dt-bindings: i2c: dw: Add Baikal-T1 SoC I2C controller
        ...
      91fa5884
    • Linus Torvalds's avatar
      Merge tag 'media/v5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · ac911b31
      Linus Torvalds authored
      Pull more media updates from Mauro Carvalho Chehab:
      
       - a set of atomisp patches. They remove several abstraction layers, and
         fixes clang and gcc warnings (that were hidden via some macros that
         were disabling 4 or 5 types of warnings there). There are also some
         important fixes and sensor auto-detection on newer BIOSes via ACPI
         _DCM tables.
      
       - some fixes
      
      * tag 'media/v5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (95 commits)
        media: rkvdec: Fix H264 scaling list order
        media: v4l2-ctrls: Unset correct HEVC loop filter flag
        media: videobuf2-dma-contig: fix bad kfree in vb2_dma_contig_clear_max_seg_size
        media: v4l2-subdev.rst: correct information about v4l2 events
        media: s5p-mfc: Properly handle dma_parms for the allocated devices
        media: medium: cec: Make MEDIA_CEC_SUPPORT default to n if !MEDIA_SUPPORT
        media: cedrus: Implement runtime PM
        media: cedrus: Program output format during each run
        media: atomisp: improve ACPI/DMI detection logs
        media: Revert "media: atomisp: add Asus Transform T101HA ACPI vars"
        media: Revert "media: atomisp: Add some ACPI detection info"
        media: atomisp: improve sensor detection code to use _DSM table
        media: atomisp: get rid of an iomem abstraction layer
        media: atomisp: get rid of a string_support.h abstraction layer
        media: atomisp: use strscpy() instead of less secure variants
        media: atomisp: set DFS to MAX if sensor doesn't report fps
        media: atomisp: use different dfs failed messages
        media: atomisp: change the detection of ISP2401 at runtime
        media: atomisp: use macros from intel-family.h
        media: atomisp: don't set hpll_freq twice with different values
        ...
      ac911b31
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · d74b15db
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "Small collection of cleanups to rework usage of ->queuedata and the
        GUID api"
      
      * tag 'libnvdimm-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        nvdimm/pmem: stop using ->queuedata
        nvdimm/btt: stop using ->queuedata
        nvdimm/blk: stop using ->queuedata
        libnvdimm: Replace guid_copy() with import_guid() where it makes sense
      d74b15db
    • Linus Torvalds's avatar
      watch_queue: add gitignore for generated sample program · 298ce0fd
      Linus Torvalds authored
      Let's keep "git status" happy and quiet.
      
      Fixes: f5b5a164 ("Add sample notification program")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      298ce0fd
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.8-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 593bd5e5
      Linus Torvalds authored
      Pull iomap fix from Darrick Wong:
       "A single iomap bug fix for a variable type mistake on 32-bit
        architectures, fixing an integer overflow problem in the unshare
        actor"
      
      * tag 'iomap-5.8-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: Fix unsharing of an extent >2GB on a 32-bit machine
      593bd5e5