Message ID | 20220829205112.12036-1-quic_jjohnson@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | [v4] bus: mhi: host: make mhi_controller_config::event_cfg const | expand |
On Mon, Aug 29, 2022 at 01:51:12PM -0700, Jeff Johnson wrote: > Currently the event_cfg pointer in struct mhi_controller_config is not > defined as a const pointer. This prevents clients from registering a > read-only configuration unless they use a typecast. Since the > event_cfg should not be modified once registered, add the const > qualifier to event_cfg. This is aligned with the definition of ch_cfg. > > Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com> > --- > v4: updated subject, rebased to v6.0-rc3 > > v3: added pci_generic.c change > > v2: added S-O-B > > drivers/bus/mhi/host/pci_generic.c | 14 +++++++------- > include/linux/mhi.h | 2 +- > 2 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c > index 9e545f2a5a26..8db63543ce8f 100644 > --- a/drivers/bus/mhi/host/pci_generic.c > +++ b/drivers/bus/mhi/host/pci_generic.c > @@ -238,7 +238,7 @@ static const struct mhi_channel_config modem_qcom_v1_mhi_channels[] = { > MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 128, 3), > }; > > -static struct mhi_event_config modem_qcom_v1_mhi_events[] = { > +static const struct mhi_event_config modem_qcom_v1_mhi_events[] = { > /* first ring is control+data ring */ > MHI_EVENT_CONFIG_CTRL(0, 64), > /* DIAG dedicated event ring */ > @@ -305,7 +305,7 @@ static const struct mhi_channel_config mhi_quectel_em1xx_channels[] = { > MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 128, 3), > }; > > -static struct mhi_event_config mhi_quectel_em1xx_events[] = { > +static const struct mhi_event_config mhi_quectel_em1xx_events[] = { > MHI_EVENT_CONFIG_CTRL(0, 128), > MHI_EVENT_CONFIG_DATA(1, 128), > MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), > @@ -344,7 +344,7 @@ static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = { > MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 128, 3), > }; > > -static struct mhi_event_config mhi_foxconn_sdx55_events[] = { > +static struct const mhi_event_config mhi_foxconn_sdx55_events[] = { You still haven't fixed this... Thanks, Mani > MHI_EVENT_CONFIG_CTRL(0, 128), > MHI_EVENT_CONFIG_DATA(1, 128), > MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), > @@ -391,7 +391,7 @@ static const struct mhi_channel_config mhi_mv3x_channels[] = { > MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 512, 3), > }; > > -static struct mhi_event_config mhi_mv3x_events[] = { > +static const struct mhi_event_config mhi_mv3x_events[] = { > MHI_EVENT_CONFIG_CTRL(0, 256), > MHI_EVENT_CONFIG_DATA(1, 256), > MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), > @@ -438,7 +438,7 @@ static const struct mhi_channel_config mhi_sierra_em919x_channels[] = { > MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 512, 2), > }; > > -static struct mhi_event_config modem_sierra_em919x_mhi_events[] = { > +static const struct mhi_event_config modem_sierra_em919x_mhi_events[] = { > /* first ring is control+data and DIAG ring */ > MHI_EVENT_CONFIG_CTRL(0, 2048), > /* Hardware channels request dedicated hardware event rings */ > @@ -472,7 +472,7 @@ static const struct mhi_channel_config mhi_telit_fn980_hw_v1_channels[] = { > MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 128, 2), > }; > > -static struct mhi_event_config mhi_telit_fn980_hw_v1_events[] = { > +static const struct mhi_event_config mhi_telit_fn980_hw_v1_events[] = { > MHI_EVENT_CONFIG_CTRL(0, 128), > MHI_EVENT_CONFIG_HW_DATA(1, 1024, 100), > MHI_EVENT_CONFIG_HW_DATA(2, 2048, 101) > @@ -511,7 +511,7 @@ static const struct mhi_channel_config mhi_telit_fn990_channels[] = { > MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 128, 3), > }; > > -static struct mhi_event_config mhi_telit_fn990_events[] = { > +static const struct mhi_event_config mhi_telit_fn990_events[] = { > MHI_EVENT_CONFIG_CTRL(0, 128), > MHI_EVENT_CONFIG_DATA(1, 128), > MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), > diff --git a/include/linux/mhi.h b/include/linux/mhi.h > index a5441ad33c74..ada2f18af4d6 100644 > --- a/include/linux/mhi.h > +++ b/include/linux/mhi.h > @@ -281,7 +281,7 @@ struct mhi_controller_config { > u32 num_channels; > const struct mhi_channel_config *ch_cfg; > u32 num_events; > - struct mhi_event_config *event_cfg; > + const struct mhi_event_config *event_cfg; > bool use_bounce_buf; > bool m2_no_db; > }; > -- > 2.37.0 > >
On 8/30/2022 12:46 AM, Manivannan Sadhasivam wrote: >> -static struct mhi_event_config mhi_foxconn_sdx55_events[] = { >> +static struct const mhi_event_config mhi_foxconn_sdx55_events[] = { > > You still haven't fixed this... Doh, put const in wrong place, v5 posted
diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c index 9e545f2a5a26..8db63543ce8f 100644 --- a/drivers/bus/mhi/host/pci_generic.c +++ b/drivers/bus/mhi/host/pci_generic.c @@ -238,7 +238,7 @@ static const struct mhi_channel_config modem_qcom_v1_mhi_channels[] = { MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 128, 3), }; -static struct mhi_event_config modem_qcom_v1_mhi_events[] = { +static const struct mhi_event_config modem_qcom_v1_mhi_events[] = { /* first ring is control+data ring */ MHI_EVENT_CONFIG_CTRL(0, 64), /* DIAG dedicated event ring */ @@ -305,7 +305,7 @@ static const struct mhi_channel_config mhi_quectel_em1xx_channels[] = { MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 128, 3), }; -static struct mhi_event_config mhi_quectel_em1xx_events[] = { +static const struct mhi_event_config mhi_quectel_em1xx_events[] = { MHI_EVENT_CONFIG_CTRL(0, 128), MHI_EVENT_CONFIG_DATA(1, 128), MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), @@ -344,7 +344,7 @@ static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = { MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 128, 3), }; -static struct mhi_event_config mhi_foxconn_sdx55_events[] = { +static struct const mhi_event_config mhi_foxconn_sdx55_events[] = { MHI_EVENT_CONFIG_CTRL(0, 128), MHI_EVENT_CONFIG_DATA(1, 128), MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), @@ -391,7 +391,7 @@ static const struct mhi_channel_config mhi_mv3x_channels[] = { MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 512, 3), }; -static struct mhi_event_config mhi_mv3x_events[] = { +static const struct mhi_event_config mhi_mv3x_events[] = { MHI_EVENT_CONFIG_CTRL(0, 256), MHI_EVENT_CONFIG_DATA(1, 256), MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), @@ -438,7 +438,7 @@ static const struct mhi_channel_config mhi_sierra_em919x_channels[] = { MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 512, 2), }; -static struct mhi_event_config modem_sierra_em919x_mhi_events[] = { +static const struct mhi_event_config modem_sierra_em919x_mhi_events[] = { /* first ring is control+data and DIAG ring */ MHI_EVENT_CONFIG_CTRL(0, 2048), /* Hardware channels request dedicated hardware event rings */ @@ -472,7 +472,7 @@ static const struct mhi_channel_config mhi_telit_fn980_hw_v1_channels[] = { MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 128, 2), }; -static struct mhi_event_config mhi_telit_fn980_hw_v1_events[] = { +static const struct mhi_event_config mhi_telit_fn980_hw_v1_events[] = { MHI_EVENT_CONFIG_CTRL(0, 128), MHI_EVENT_CONFIG_HW_DATA(1, 1024, 100), MHI_EVENT_CONFIG_HW_DATA(2, 2048, 101) @@ -511,7 +511,7 @@ static const struct mhi_channel_config mhi_telit_fn990_channels[] = { MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 128, 3), }; -static struct mhi_event_config mhi_telit_fn990_events[] = { +static const struct mhi_event_config mhi_telit_fn990_events[] = { MHI_EVENT_CONFIG_CTRL(0, 128), MHI_EVENT_CONFIG_DATA(1, 128), MHI_EVENT_CONFIG_HW_DATA(2, 1024, 100), diff --git a/include/linux/mhi.h b/include/linux/mhi.h index a5441ad33c74..ada2f18af4d6 100644 --- a/include/linux/mhi.h +++ b/include/linux/mhi.h @@ -281,7 +281,7 @@ struct mhi_controller_config { u32 num_channels; const struct mhi_channel_config *ch_cfg; u32 num_events; - struct mhi_event_config *event_cfg; + const struct mhi_event_config *event_cfg; bool use_bounce_buf; bool m2_no_db; };
Currently the event_cfg pointer in struct mhi_controller_config is not defined as a const pointer. This prevents clients from registering a read-only configuration unless they use a typecast. Since the event_cfg should not be modified once registered, add the const qualifier to event_cfg. This is aligned with the definition of ch_cfg. Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com> --- v4: updated subject, rebased to v6.0-rc3 v3: added pci_generic.c change v2: added S-O-B drivers/bus/mhi/host/pci_generic.c | 14 +++++++------- include/linux/mhi.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-)