Message ID | 20210220214112.7469-1-chaitanya.kulkarni@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target: code cleanup | expand |
On 2/20/21 1:41 PM, Chaitanya Kulkarni wrote: > Mark struct fc_lport member prov with __rcu that fixes following > warning :- > > drivers/target/tcm_fc/tfc_sess.c:47:17: error: incompatible types in comparison expression (different address spaces): > drivers/target/tcm_fc/tfc_sess.c:47:17: void [noderef] __rcu * > drivers/target/tcm_fc/tfc_sess.c:47:17: void * > drivers/target/tcm_fc/tfc_sess.c:72:9: error: incompatible types in comparison expression (different address spaces): > drivers/target/tcm_fc/tfc_sess.c:72:9: void [noderef] __rcu * > drivers/target/tcm_fc/tfc_sess.c:72:9: void * > > Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> > --- > include/scsi/libfc.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h > index 9b87e1a1c646..0446513e46d8 100644 > --- a/include/scsi/libfc.h > +++ b/include/scsi/libfc.h > @@ -746,7 +746,7 @@ struct fc_lport { > struct mutex lp_mutex; > struct list_head list; > struct delayed_work retry_work; > - void *prov[FC_FC4_PROV_SIZE]; > + void __rcu *prov[FC_FC4_PROV_SIZE]; > struct list_head lport_list; > }; This patch looks suspicious to me. Although the tcm_fc driver uses RCU to modify 'prov', this is a choice that has been made in the tcm_fc driver and not something that other libfc users are required to do. In other words, I think this should be fixed in the tcm_fc driver instead of in the libfc header. Bart.
> On Feb 20, 2021, at 2:56 PM, Bart Van Assche <bvanassche@acm.org> wrote: > > On 2/20/21 1:41 PM, Chaitanya Kulkarni wrote: >> Mark struct fc_lport member prov with __rcu that fixes following >> warning :- >> >> drivers/target/tcm_fc/tfc_sess.c:47:17: error: incompatible types in comparison expression (different address spaces): >> drivers/target/tcm_fc/tfc_sess.c:47:17: void [noderef] __rcu * >> drivers/target/tcm_fc/tfc_sess.c:47:17: void * >> drivers/target/tcm_fc/tfc_sess.c:72:9: error: incompatible types in comparison expression (different address spaces): >> drivers/target/tcm_fc/tfc_sess.c:72:9: void [noderef] __rcu * >> drivers/target/tcm_fc/tfc_sess.c:72:9: void * >> >> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> >> --- >> include/scsi/libfc.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h >> index 9b87e1a1c646..0446513e46d8 100644 >> --- a/include/scsi/libfc.h >> +++ b/include/scsi/libfc.h >> @@ -746,7 +746,7 @@ struct fc_lport { >> struct mutex lp_mutex; >> struct list_head list; >> struct delayed_work retry_work; >> - void *prov[FC_FC4_PROV_SIZE]; >> + void __rcu *prov[FC_FC4_PROV_SIZE]; >> struct list_head lport_list; >> }; > > This patch looks suspicious to me. Although the tcm_fc driver uses RCU > to modify 'prov', this is a choice that has been made in the tcm_fc > driver and not something that other libfc users are required to do. In > other words, I think this should be fixed in the tcm_fc driver instead > of in the libfc header. Thanks for the reply Bart. I'll make the necessary change and see if warning still persists. > Bart.
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index 9b87e1a1c646..0446513e46d8 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h @@ -746,7 +746,7 @@ struct fc_lport { struct mutex lp_mutex; struct list_head list; struct delayed_work retry_work; - void *prov[FC_FC4_PROV_SIZE]; + void __rcu *prov[FC_FC4_PROV_SIZE]; struct list_head lport_list; };
Mark struct fc_lport member prov with __rcu that fixes following warning :- drivers/target/tcm_fc/tfc_sess.c:47:17: error: incompatible types in comparison expression (different address spaces): drivers/target/tcm_fc/tfc_sess.c:47:17: void [noderef] __rcu * drivers/target/tcm_fc/tfc_sess.c:47:17: void * drivers/target/tcm_fc/tfc_sess.c:72:9: error: incompatible types in comparison expression (different address spaces): drivers/target/tcm_fc/tfc_sess.c:72:9: void [noderef] __rcu * drivers/target/tcm_fc/tfc_sess.c:72:9: void * Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> --- include/scsi/libfc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)