scsi: fcoe: Embed fc_rport_priv in fcoe_rport structure
Gcc-9 complains for a memset across pointer boundaries, which happens as the code tries to allocate a flexible array on the stack. Turns out we cannot do this without relying on gcc-isms, so with this patch we'll embed the fc_rport_priv structure into fcoe_rport, can use the normal 'container_of' outcast, and will only have to do a memset over one structure. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

zatwierdzone przez
Martin K. Petersen

rodzic
f3e4ff28b8
commit
023358b136
@@ -128,6 +128,7 @@ EXPORT_SYMBOL(fc_rport_lookup);
|
||||
struct fc_rport_priv *fc_rport_create(struct fc_lport *lport, u32 port_id)
|
||||
{
|
||||
struct fc_rport_priv *rdata;
|
||||
size_t rport_priv_size = sizeof(*rdata);
|
||||
|
||||
lockdep_assert_held(&lport->disc.disc_mutex);
|
||||
|
||||
@@ -135,7 +136,9 @@ struct fc_rport_priv *fc_rport_create(struct fc_lport *lport, u32 port_id)
|
||||
if (rdata)
|
||||
return rdata;
|
||||
|
||||
rdata = kzalloc(sizeof(*rdata) + lport->rport_priv_size, GFP_KERNEL);
|
||||
if (lport->rport_priv_size > 0)
|
||||
rport_priv_size = lport->rport_priv_size;
|
||||
rdata = kzalloc(rport_priv_size, GFP_KERNEL);
|
||||
if (!rdata)
|
||||
return NULL;
|
||||
|
||||
|
Reference in New Issue
Block a user