Bug 8221

Summary: RACE: Lock is expected before calling ips_removeq_scb_head, but in some call chains not held!
Product: SCSI Drivers Reporter: Ding (yuanding02)
Component: OtherAssignee: scsi_drivers-other
Status: RESOLVED OBSOLETE    
Severity: normal CC: alan, bunk, devzero
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.20.1 Subsystem:
Regression: No Bisected commit-id:

Description Ding 2007-03-16 21:31:42 UTC
ips_removeq_scb_head:

The comment of this function: "ASSUMED to be called from within the HA lock".
But in some call chains lock is not acquired:
1). ips_removeq_scb_head <- ips_removeq_scb <- ips_chkstatus <-
ips_intr_copperhead <- ips_wait <- ips_send_wait <- ips_halt
2). ). ips_removeq_scb_head <- ips_removeq_scb <- ips_chkstatus <-
ips_intr_copperhead <- ips_wait <- ips_send_wait <- ips_get_bios_version <-
ips_write_driver_status <- ips_hainit <- ips_init_phase2 <- ips_insert_device <-
pci_device_probe_dynamic

In others like:
ips_removeq_scb_head <- ips_removeq_scb <- ips_chkstatus <- ips_intr_copperhead
<- do_ipsintr

A lock is acquired.
Comment 1 Roland Kletzing 2009-08-29 09:14:43 UTC
Hello Ding, 

i`m curious how this report sits here unnoticed for so long. does that still apply? i yes, can you please bring that up on linux-scsi mailinglist ?
thank you.