Message ID | 20180221113235.46702-3-ubraun@linux.vnet.ibm.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | net/smc: fixes 2018-02-21 | expand |
From: Ursula Braun <ubraun@linux.vnet.ibm.com> Date: Wed, 21 Feb 2018 12:32:32 +0100 > diff --git a/net/smc/smc_cdc.h b/net/smc/smc_cdc.h > index ab240b37ad11..d2012fd22100 100644 > --- a/net/smc/smc_cdc.h > +++ b/net/smc/smc_cdc.h > @@ -48,7 +48,7 @@ struct smc_cdc_msg { > struct smc_cdc_producer_flags prod_flags; > struct smc_cdc_conn_state_flags conn_state_flags; > u8 reserved[18]; > -} __aligned(8); > +} __packed; /* format defined in RFC7609 */ Hold on, __packed should only be used as the absolute last possible option to fix structure layout problems. Also, a sub-structure of smc_cdc_msg, union smc_cdc_cursor, is still marked with __aligned(8). That makes no sense at all. Please fix this without using __packed, as __packed has a severe detrimental effect on code generation for accessing such structure on several cpu architectures. Also, if this these are legitimate bug fixes you should target those at 'net' not 'net-next'. Thank you.
diff --git a/net/smc/smc_cdc.c b/net/smc/smc_cdc.c index 3cd086e5bd28..9b28e64c50d4 100644 --- a/net/smc/smc_cdc.c +++ b/net/smc/smc_cdc.c @@ -82,7 +82,7 @@ static inline void smc_cdc_add_pending_send(struct smc_connection *conn, sizeof(struct smc_cdc_msg) > SMC_WR_BUF_SIZE, "must increase SMC_WR_BUF_SIZE to at least sizeof(struct smc_cdc_msg)"); BUILD_BUG_ON_MSG( - offsetof(struct smc_cdc_msg, reserved) > SMC_WR_TX_SIZE, + sizeof(struct smc_cdc_msg) != SMC_WR_TX_SIZE, "must adapt SMC_WR_TX_SIZE to sizeof(struct smc_cdc_msg); if not all smc_wr upper layer protocols use the same message size any more, must start to set link->wr_tx_sges[i].length on each individual smc_wr_tx_send()"); BUILD_BUG_ON_MSG( sizeof(struct smc_cdc_tx_pend) > SMC_WR_TX_PEND_PRIV_SIZE, diff --git a/net/smc/smc_cdc.h b/net/smc/smc_cdc.h index ab240b37ad11..d2012fd22100 100644 --- a/net/smc/smc_cdc.h +++ b/net/smc/smc_cdc.h @@ -48,7 +48,7 @@ struct smc_cdc_msg { struct smc_cdc_producer_flags prod_flags; struct smc_cdc_conn_state_flags conn_state_flags; u8 reserved[18]; -} __aligned(8); +} __packed; /* format defined in RFC7609 */ static inline bool smc_cdc_rxed_any_close(struct smc_connection *conn) {