1. 03 Jul, 2020 19 commits
  2. 02 Jul, 2020 2 commits
  3. 01 Jul, 2020 9 commits
  4. 30 Jun, 2020 2 commits
  5. 27 Jun, 2020 5 commits
  6. 24 Jun, 2020 2 commits
  7. 20 Jun, 2020 1 commit
    • Bodo Stroesser's avatar
      scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM · 3145550a
      Bodo Stroesser authored
      This patch fixes the following crash (see
      https://bugzilla.kernel.org/show_bug.cgi?id=208045)
      
       Process iscsi_trx (pid: 7496, stack limit = 0x0000000010dd111a)
       CPU: 0 PID: 7496 Comm: iscsi_trx Not tainted 4.19.118-0419118-generic
              #202004230533
       Hardware name: Greatwall QingTian DF720/F601, BIOS 601FBE20 Sep 26 2019
       pstate: 80400005 (Nzcv daif +PAN -UAO)
       pc : flush_dcache_page+0x18/0x40
       lr : is_ring_space_avail+0x68/0x2f8 [target_core_user]
       sp : ffff000015123a80
       x29: ffff000015123a80 x28: 0000000000000000
       x27: 0000000000001000 x26: ffff000023ea5000
       x25: ffffcfa25bbe08b8 x24: 0000000000000078
       x23: ffff7e0000000000 x22: ffff000023ea5001
       x21: ffffcfa24b79c000 x20: 0000000000000fff
       x19: ffff7e00008fa940 x18: 0000000000000000
       x17: 0000000000000000 x16: ffff2d047e709138
       x15: 0000000000000000 x14: 0000000000000000
       x13: 0000000000000000 x12: ffff2d047fbd0a40
       x11: 0000000000000000 x10: 0000000000000030
       x9 : 0000000000000000 x8 : ffffc9a254820a00
       x7 : 00000000000013b0 x6 : 000000000000003f
       x5 : 0000000000000040 x4 : ffffcfa25bbe08e8
       x3 : 0000000000001000 x2 : 0000000000000078
       x1 : ffffcfa25bbe08b8 x0 : ffff2d040bc88a18
       Call trace:
        flush_dcache_page+0x18/0x40
        is_ring_space_avail+0x68/0x2f8 [target_core_user]
        queue_cmd_ring+0x1f8/0x680 [target_core_user]
        tcmu_queue_cmd+0xe4/0x158 [target_core_user]
        __target_execute_cmd+0x30/0xf0 [target_core_mod]
        target_execute_cmd+0x294/0x390 [target_core_mod]
        transport_generic_new_cmd+0x1e8/0x358 [target_core_mod]
        transport_handle_cdb_direct+0x50/0xb0 [target_core_mod]
        iscsit_execute_cmd+0x2b4/0x350 [iscsi_target_mod]
        iscsit_sequence_cmd+0xd8/0x1d8 [iscsi_target_mod]
        iscsit_process_scsi_cmd+0xac/0xf8 [iscsi_target_mod]
        iscsit_get_rx_pdu+0x404/0xd00 [iscsi_target_mod]
        iscsi_target_rx_thread+0xb8/0x130 [iscsi_target_mod]
        kthread+0x130/0x138
        ret_from_fork+0x10/0x18
       Code: f9000bf3 aa0003f3 aa1e03e0 d503201f (f9400260)
       ---[ end trace 1e451c73f4266776 ]---
      
      The solution is based on patch:
      
        "scsi: target: tcmu: Optimize use of flush_dcache_page"
      
      which restricts the use of tcmu_flush_dcache_range() to addresses from
      vmalloc'ed areas only.
      
      This patch now replaces the virt_to_page() call in
      tcmu_flush_dcache_range() - which is wrong for vmalloced addrs - by
      vmalloc_to_page().
      
      The patch was tested on ARM with kernel 4.19.118 and 5.7.2
      
      Link: https://lore.kernel.org/r/20200618131632.32748-3-bstroesser@ts.fujitsu.comTested-by: default avatarJiangYu <lnsyyj@hotmail.com>
      Tested-by: default avatarDaniel Meyerholt <dxm523@gmail.com>
      Acked-by: default avatarMike Christie <michael.christie@oracle.com>
      Signed-off-by: default avatarBodo Stroesser <bstroesser@ts.fujitsu.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      3145550a