Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

scsi: target: spc: Fix loop traversal in spc_rsoc_get_descr()

Stop traversing after finding the appropriate descriptor.

Signed-off-by: Chaohai Chen <wdhh66@163.com>
Link: https://lore.kernel.org/r/20250124085542.109088-1-wdhh66@163.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Chaohai Chen and committed by
Martin K. Petersen
04ad06e4 b5053231

+10 -4
+10 -4
drivers/target/target_core_spc.c
··· 2151 2151 if (descr->serv_action_valid) 2152 2152 return TCM_INVALID_CDB_FIELD; 2153 2153 2154 - if (!descr->enabled || descr->enabled(descr, cmd)) 2154 + if (!descr->enabled || descr->enabled(descr, cmd)) { 2155 2155 *opcode = descr; 2156 + return TCM_NO_SENSE; 2157 + } 2156 2158 break; 2157 2159 case 0x2: 2158 2160 /* ··· 2168 2166 if (descr->serv_action_valid && 2169 2167 descr->service_action == requested_sa) { 2170 2168 if (!descr->enabled || descr->enabled(descr, 2171 - cmd)) 2169 + cmd)) { 2172 2170 *opcode = descr; 2171 + return TCM_NO_SENSE; 2172 + } 2173 2173 } else if (!descr->serv_action_valid) 2174 2174 return TCM_INVALID_CDB_FIELD; 2175 2175 break; ··· 2184 2180 */ 2185 2181 if (descr->service_action == requested_sa) 2186 2182 if (!descr->enabled || descr->enabled(descr, 2187 - cmd)) 2183 + cmd)) { 2188 2184 *opcode = descr; 2185 + return TCM_NO_SENSE; 2186 + } 2189 2187 break; 2190 2188 } 2191 2189 } 2192 2190 2193 - return 0; 2191 + return TCM_NO_SENSE; 2194 2192 } 2195 2193 2196 2194 static sense_reason_t