> struct pm8001_chip_info { > @@ -560,6 +563,10 @@ struct pm8001_hba_info { > bool controller_fatal_error; > const struct firmware *fw_image; > struct isr_param irq_vector[PM8001_MAX_MSIX_VEC]; > + spinlock_t ioctl_lock; > + struct mutex ioctl_mutex; did you ever initial both lock? why do you need both? I failed to find them. > + struct completion *ioctl_completion; > + struct phy_prof_resp phy_profile_resp; > u32 reset_in_progress; > };