Hi Olaf,
Thanks for your detailed bug report. Comments below.
On Thu, 2015-02-26 at 10:26 +0100, Olaf Hering wrote:
> While attempting to understand the Xen scsi backend driver I got this
> crash using the script shown below:
>
> ....
> [ 145.495887] Rounding down aligned max_sectors from 4294967295 to 4294967288
> [ 145.554864] Unable to load target_core_user
> [ 145.661446] BUG: unable to handle kernel NULL pointer dereference at
> 00000000000000a8
> [ 145.661468] IP: [<ffffffffa024f17b>] pscsi_get_device_type+0xb/0x20
> [target_core_pscsi]
> [ 145.661475] PGD 64121a067 PUD 6427e1067 PMD 0
> [ 145.661479] Oops: 0000 [#1] SMP
> [ 145.661482] Modules linked in: target_core_pscsi target_core_file
> target_core_iblock xen_scsiback target_core_mod bridge stp llc loop ipv6
> usb_storage tpm_tis i2c_i801 joydev tpm xen_blkfront xen_netfront mptsas
> mptscsih mptbase scsi_transport_sas
> [ 145.661503] CPU: 6 PID: 5930 Comm: cat Not tainted
> 3.19.0-1.olh.4-kernel-linux-3_19 #1
> [ 145.661507] Hardware name: Intel Corporation S5520UR/S5520UR, BIOS
> S5500.86B.01.00.0050.050620101605 05/06/2010
> [ 145.661512] task: ffff88063b8f0760 ti: ffff88063d740000 task.ti:
> ffff88063d740000
> [ 145.661515] RIP: e030:[<ffffffffa024f17b>] [<ffffffffa024f17b>]
> pscsi_get_device_type+0xb/0x20 [target_core_pscsi]
> [ 145.661521] RSP: e02b:ffff88063d743e48 EFLAGS: 00010292
> [ 145.661524] RAX: 0000000000000000 RBX: ffff8800080b9000 RCX:
> ffff88000809a5a8
> [ 145.661527] RDX: ffff8800080b9000 RSI: ffff8800080b9000 RDI:
> ffff88000809a000
> [ 145.661530] RBP: ffff88063d743e48 R08: ffffffffa01fd390 R09:
> 0000000000000000
> [ 145.661533] R10: 0000000000000000 R11: 0000000000000100 R12:
> ffff880641e7b1e0
> [ 145.661536] R13: ffffffffa020ed40 R14: ffffffffa020fc20 R15:
> ffff88000809a6f8
> [ 145.661543] FS: 00007f8e447a5700(0000) GS:ffff88064b780000(0000)
> knlGS:0000000000000000
> [ 145.661546] CS: e033 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 145.661549] CR2: 00000000000000a8 CR3: 000000063d753000 CR4:
> 0000000000002660
> [ 145.661552] Stack:
> [ 145.661554] ffff88063d743e68 ffffffffa01fd3b0 ffff88063d743e68
> fffffffffffffff4
> [ 145.661559] ffff88063d743e78 ffffffffa01fcd48 ffff88063d743ed8
> ffffffff811a90a5
> [ 145.661563] 000000002c495760 ffff88063d743f48 0000000000008000
> 000000000060d000
> [ 145.661568] Call Trace:
> [ 145.661579] [<ffffffffa01fd3b0>]
> target_stat_scsi_lu_show_attr_dev_type+0x20/0x50 [target_core_mod]
> [ 145.661586] [<ffffffffa01fcd48>] target_stat_scsi_lu_attr_show+0x28/0x30
> [target_core_mod]
> [ 145.661593] [<ffffffff811a90a5>] configfs_read_file+0x75/0x110
> [ 145.661598] [<ffffffff8113b3d3>] __vfs_read+0x13/0x60
> [ 145.661602] [<ffffffff8113cd4e>] vfs_read+0xae/0x120
> [ 145.661606] [<ffffffff8113cec4>] SyS_read+0x54/0xb0
> [ 145.661611] [<ffffffff81778f29>] system_call_fastpath+0x12/0x17
> [ 145.661614] Code: 0f 84 22 ff ff ff 80 fa 2a 0f 1f 80 00 00 00 00 0f 85 16
> ff ff ff 66 90 e9 0b ff ff ff 0f 1f 00 48 8b 87 90 0e 00 00 55 48 89 e5 <0f>
> be 80 a8 00 00 00 c9 c3 66 66 66 2e 0f 1f 84 00 00 00 00 00
> [ 145.661648] RIP [<ffffffffa024f17b>] pscsi_get_device_type+0xb/0x20
> [target_core_pscsi]
> [ 145.661653] RSP <ffff88063d743e48>
> [ 145.661655] CR2: 00000000000000a8
> [ 145.661658] ---[ end trace 73b5dd612a58996d ]---
> ....
>
> root@satriani:~ # : bash -xv t.sh
> /dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0\:0
> #!/bin/bash
> # usage:
> # mkpvscsi device
> # e.g. mkpvscsi /dev/sr0
> unset LANG
> + unset LANG
> unset ${!LC_*}
> + unset LC_COLLATE
> DEV=$1
> + DEV=/dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
>
> gen_uuid()
> {
> cat /proc/sys/kernel/random/uuid | \
> awk '{print "naa.6001405" substr($1,1,8) substr($1,10,1);}'
> }
>
>
> stat_dev()
> {
> local type=$1
> local d=$2
> local mm
> local path
>
> mm=$(( `stat -L -c 0x%t "$d"` )):$(( `stat -L -c 0x%T "$d"` ))
> if test -z "$mm"
> then
> exit 1
> fi
> path=`set -e ; cd /sys/dev/$type/$mm/device/scsi_device ; ls -d *:*:*:*`
> if test -z "$path"
> then
> exit 1
> fi
> NODE=$path
> }
>
> if test -c "$DEV"
> then
> stat_dev char "$DEV"
> elif test -b "$DEV"
> then
> stat_dev block "$DEV"
> else
> exit 1
> fi
> + test -c /dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
> + test -b /dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
> + stat_dev block /dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
> + local type=block
> + local d=/dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
> + local mm
> + local path
> stat -L -c 0x%t "$d"
> ++ stat -L -c 0x%t /dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
> stat -L -c 0x%T "$d"
> ++ stat -L -c 0x%T /dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
> + mm=11:0
> + test -z 11:0
> set -e ; cd /sys/dev/$type/$mm/device/scsi_device ; ls -d *:*:*:*
> ++ set -e
> ++ cd /sys/dev/block/11:0/device/scsi_device
> ++ ls -d 7:0:0:0
> + path=7:0:0:0
> + test -z 7:0:0:0
> + NODE=7:0:0:0
>
> TARG=`gen_uuid`
> gen_uuid
> ++ gen_uuid
> ++ cat /proc/sys/kernel/random/uuid
> ++ awk '{print "naa.6001405" substr($1,1,8) substr($1,10,1);}'
> + TARG=naa.600140595883158a
> INIT=`gen_uuid`
> gen_uuid
> ++ gen_uuid
> ++ cat /proc/sys/kernel/random/uuid
> ++ awk '{print "naa.6001405" substr($1,1,8) substr($1,10,1);}'
> + INIT=naa.600140555b779033
> NAME=`echo $NODE | sed 's/:/_/g'`
> echo $NODE | sed 's/:/_/g'
> ++ echo 7:0:0:0
> ++ sed s/:/_/g
> + NAME=7_0_0_0
>
> modprobe configfs
> + modprobe configfs
> mount -t configfs configfs /sys/kernel/config
> + mount -t configfs configfs /sys/kernel/config
> modprobe xen-scsiback
> + modprobe xen-scsiback
> modprobe target_core_mod
> + modprobe target_core_mod
> cd /sys/kernel/config/target
> + cd /sys/kernel/config/target
> ls -lA
> + ls -lA
> total 0
> drwxr-xr-x 3 root root 0 Feb 26 10:17 core
> -r--r--r-- 1 root root 4096 Feb 26 10:17 version
> find -ls
> + find -ls
> 13063 0 drwxr-xr-x 3 root root 0 Feb 26 10:17 .
> 13064 0 drwxr-xr-x 3 root root 0 Feb 26 10:17 ./core
> 13065 0 drwxr-xr-x 3 root root 0 Feb 26 10:17 ./core/alua
> 13066 0 drwxr-xr-x 3 root root 0 Feb 26 10:17
> ./core/alua/lu_gps
> 13067 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/alua/lu_gps/default_lu_gp
> 13801 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/alua/lu_gps/default_lu_gp/members
> 13802 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/alua/lu_gps/default_lu_gp/lu_gp_id
> 13803 0 -r--r--r-- 1 root root 4096 Feb 26 10:17 ./version
> find -type f -print0 | sort -z | xargs -0 head
> + find -type f -print0
> + sort -z
> + xargs -0 head
> ==> ./core/alua/lu_gps/default_lu_gp/lu_gp_id <==
> 0
>
> ==> ./core/alua/lu_gps/default_lu_gp/members <==
>
> ==> ./version <==
> Target Engine Core ConfigFS Infrastructure v4.1.0 on Linux/x86_64 on
> 3.19.0-1.olh.4-kernel-linux-3_19
>
> mkdir -p core/pscsi_0/$NAME
> + mkdir -p core/pscsi_0/7_0_0_0
> echo "$DEV" >core/pscsi_0/$NAME/udev_path
> + echo /dev/disk/by-id/usb-TEAC_DV-W28S-V_000000000033-0:0
> mkdir -p xen-pvscsi/$TARG/tpgt_0
> + mkdir -p xen-pvscsi/naa.600140595883158a/tpgt_0
> echo "${NODE%:*}" >xen-pvscsi/$TARG/tpgt_0/param/alias
> + echo 7:0:0
> echo $INIT >xen-pvscsi/$TARG/tpgt_0/nexus
> + echo naa.600140555b779033
> mkdir xen-pvscsi/$TARG/tpgt_0/lun/lun_0
> + mkdir xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0
> ln -s ../../../../../../target/core/pscsi_0/$NAME
> xen-pvscsi/$TARG/tpgt_0/lun/lun_0/xen-pvscsi_port
> + ln -s ../../../../../../target/core/pscsi_0/7_0_0_0
> xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/xen-pvscsi_port
> ln: failed to create symbolic link
> `xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/xen-pvscsi_port': No such
> file or directory
> find -ls
> + find -ls
> 13063 0 drwxr-xr-x 4 root root 0 Feb 26 10:17 .
> 16178 0 drwxr-xr-x 4 root root 0 Feb 26 10:17
> ./xen-pvscsi
> 16180 0 drwxr-xr-x 4 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a
> 16182 0 drwxr-xr-x 8 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0
> 16188 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/param
> 13808 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/param/alias
> 16187 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/auth
> 16186 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/attrib
> 16185 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/acls
> 16184 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/np
> 16183 0 drwxr-xr-x 3 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun
> 17105 0 drwxr-xr-x 3 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0
> 17106 0 drwxr-xr-x 5 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics
> 17109 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_transport
> 13809 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_transport/dev_name
> 13810 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_transport/indx
> 13811 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_transport/device
> 13812 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_transport/inst
> 17108 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port
> 13813 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/hs_in_cmds
> 13814 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/read_mbytes
> 13815 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/write_mbytes
> 13816 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/in_cmds
> 13817 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/port_index
> 13818 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/name
> 13819 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/indx
> 13820 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/dev
> 13821 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_tgt_port/inst
> 17107 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_port
> 13822 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_port/busy_count
> 13823 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_port/role
> 13824 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_port/indx
> 13825 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_port/dev
> 13826 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/statistics/scsi_port/inst
> 13827 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/alua_tg_pt_write_md
> 13828 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/alua_tg_pt_status
> 13829 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/alua_tg_pt_offline
> 13830 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/lun/lun_0/alua_tg_pt_gp
> 13831 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/tpgt_0/nexus
> 16181 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/naa.600140595883158a/fabric_statistics
> 16179 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./xen-pvscsi/discovery_auth
> 13832 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./xen-pvscsi/version
> 13064 0 drwxr-xr-x 4 root root 0 Feb 26 10:17 ./core
> 13070 0 drwxr-xr-x 3 root root 0 Feb 26 10:17
> ./core/pscsi_0
> 13071 0 drwxr-xr-x 7 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0
> 13077 0 drwxr-xr-x 5 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics
> 13080 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu
> 13833 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/creation_time
> 13834 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/hs_num_cmds
> 13835 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/full_stat
> 13836 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/resets
> 13837 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/write_mbytes
> 13838 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/read_mbytes
> 13839 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/num_cmds
> 13840 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/state_bit
> 13841 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/status
> 13842 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/dev_type
> 13843 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/rev
> 13844 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/prod
> 13845 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/vend
> 13846 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/lu_name
> 13847 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/lun
> 13848 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/indx
> 13849 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/dev
> 13850 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/inst
> 13079 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_tgt_dev
> 13851 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_tgt_dev/resets
> 13852 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_tgt_dev/non_access_lus
> 13853 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_tgt_dev/status
> 13854 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_tgt_dev/num_lus
> 13855 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_tgt_dev/indx
> 13856 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_tgt_dev/inst
> 13078 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_dev
> 13857 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/ports
> 13858 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/role
> 13859 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/indx
> 13860 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/inst
> 13075 0 drwxr-xr-x 3 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua
> 13076 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp
> 13861 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/members
> 13862 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/tg_pt_gp_id
> 13863 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/preferred
> 13864 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/implicit_trans_secs
> 13865 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/trans_delay_msecs
> 13866 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/nonop_delay_msecs
> 13867 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_write_metadata
> 13868 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_active_optimized
> 13869 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_active_nonoptimized
> 13870 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_standby
> 13871 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_unavailable
> 13872 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_lba_dependent
> 13873 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_offline
> 13874 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_transitioning
> 13875 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_access_type
> 13876 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_access_status
> 13877 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_access_state
> 13074 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/wwn
> 13878 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/wwn/vpd_assoc_scsi_target_device
> 13879 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/wwn/vpd_assoc_target_port
> 13880 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/wwn/vpd_assoc_logical_unit
> 13881 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/wwn/vpd_protocol_identifier
> 13882 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/wwn/vpd_unit_serial
> 13073 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr
> 13883 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_aptpl_metadata
> 13884 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_aptpl_active
> 13885 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_type
> 13886 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_pr_type
> 13887 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_pr_registered_i_pts
> 13888 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_pr_holder_tg_port
> 13889 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_pr_generation
> 13890 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_pr_all_tgt_pts
> 13891 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/pr/res_holder
> 13072 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/attrib
> 13892 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/attrib/hw_queue_depth
> 13893 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/attrib/hw_max_sectors
> 13894 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/attrib/hw_block_size
> 13895 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/attrib/hw_pi_prot_type
> 13896 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/lba_map
> 13897 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alua_lu_gp
> 13898 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/enable
> 13899 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/udev_path
> 13900 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/alias
> 13901 0 --w------- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/control
> 13902 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/7_0_0_0/info
> 13903 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/hba_mode
> 13904 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/pscsi_0/hba_info
> 13065 0 drwxr-xr-x 3 root root 0 Feb 26 10:17 ./core/alua
> 13066 0 drwxr-xr-x 3 root root 0 Feb 26 10:17
> ./core/alua/lu_gps
> 13067 0 drwxr-xr-x 2 root root 0 Feb 26 10:17
> ./core/alua/lu_gps/default_lu_gp
> 13905 0 -r--r--r-- 1 root root 4096 Feb 26 10:17
> ./core/alua/lu_gps/default_lu_gp/members
> 13906 0 -rw-r--r-- 1 root root 4096 Feb 26 10:17
> ./core/alua/lu_gps/default_lu_gp/lu_gp_id
> 13907 0 -r--r--r-- 1 root root 4096 Feb 26 10:17 ./version
> find -type f -print0 | sort -z | xargs -0n1 --verbose cat
> + find -type f -print0
> + sort -z
> + xargs -0n1 --verbose cat
> cat ./core/alua/lu_gps/default_lu_gp/lu_gp_id
> 0
> cat ./core/alua/lu_gps/default_lu_gp/members
> cat ./core/pscsi_0/7_0_0_0/alias
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_access_state
> 0
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_access_status
> None
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_access_type
> Implicit and Explicit
> cat
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_active_nonoptimized
> 1
> cat
> ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_active_optimized
> 1
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_lba_dependent
> 0
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_offline
> 1
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_standby
> 1
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_transitioning
> 1
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_support_unavailable
> 1
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/alua_write_metadata
> 0
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/implicit_trans_secs
> 0
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/members
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/nonop_delay_msecs
> 100
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/preferred
> 0
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/tg_pt_gp_id
> 0
> cat ./core/pscsi_0/7_0_0_0/alua/default_tg_pt_gp/trans_delay_msecs
> 0
> cat ./core/pscsi_0/7_0_0_0/alua_lu_gp
> cat ./core/pscsi_0/7_0_0_0/attrib/hw_block_size
> 0
> cat ./core/pscsi_0/7_0_0_0/attrib/hw_max_sectors
> 0
> cat ./core/pscsi_0/7_0_0_0/attrib/hw_pi_prot_type
> 0
> cat ./core/pscsi_0/7_0_0_0/attrib/hw_queue_depth
> 0
> cat ./core/pscsi_0/7_0_0_0/control
> cat: ./core/pscsi_0/7_0_0_0/control: Permission denied
> cat ./core/pscsi_0/7_0_0_0/enable
> 0
> cat ./core/pscsi_0/7_0_0_0/info
> Status: DEACTIVATED Max Queue Depth: 0 SectorSize: 0 HwMaxSectors: 0
> SCSI Device Bus Location: Channel ID: 0 Target ID: 0 LUN: 0 Host ID: 0
> cat ./core/pscsi_0/7_0_0_0/lba_map
> cat ./core/pscsi_0/7_0_0_0/pr/res_aptpl_active
> cat ./core/pscsi_0/7_0_0_0/pr/res_aptpl_metadata
> cat ./core/pscsi_0/7_0_0_0/pr/res_holder
> Passthrough
> cat ./core/pscsi_0/7_0_0_0/pr/res_pr_all_tgt_pts
> No SPC-3 Reservation holder
> cat ./core/pscsi_0/7_0_0_0/pr/res_pr_generation
> 0x00000000
> cat ./core/pscsi_0/7_0_0_0/pr/res_pr_holder_tg_port
> No SPC-3 Reservation holder
> cat ./core/pscsi_0/7_0_0_0/pr/res_pr_registered_i_pts
> SPC-3 PR Registrations:
> None
> cat ./core/pscsi_0/7_0_0_0/pr/res_pr_type
> No SPC-3 Reservation holder
> cat ./core/pscsi_0/7_0_0_0/pr/res_type
> SPC_PASSTHROUGH
> cat ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/indx
> 0
> cat ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/inst
> 2
> cat ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/ports
> 0
> cat ./core/pscsi_0/7_0_0_0/statistics/scsi_dev/role
> Target
> cat ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/creation_time
> 3367284360
> cat ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/dev
> 0
> cat ./core/pscsi_0/7_0_0_0/statistics/scsi_lu/dev_type
> xargs: cat: terminated by signal 9
Looks like a PSCSI specific NULL pointer dereference when reading the
dev_type attribute if a backend device was not able to be successfully
configured -> enabled.
Here's a quick patch to address this case. Please confirm on your end.
Thanks for reporting!
--nab
diff --git a/drivers/target/target_core_pscsi.c
b/drivers/target/target_core_pscsi.c
index 1045dcd..f6c954c 100644
--- a/drivers/target/target_core_pscsi.c
+++ b/drivers/target/target_core_pscsi.c
@@ -1121,7 +1121,7 @@ static u32 pscsi_get_device_type(struct se_device *dev)
struct pscsi_dev_virt *pdv = PSCSI_DEV(dev);
struct scsi_device *sd = pdv->pdv_sd;
- return sd->type;
+ return (sd) ? sd->type : TYPE_NO_LUN;
}
static sector_t pscsi_get_blocks(struct se_device *dev)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html