Message ID | 20220819210230.17773-1-quic_jjohnson@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [v3] bus: mhi: make mhi_controller_config::event_cfg const | expand |
On 8/19/2022 3:02 PM, 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> > --- v3 and no changelog? > 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 841626727f6b..2470e9f82aeb 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; > };
On 8/19/2022 2:08 PM, Jeffrey Hugo wrote: > On 8/19/2022 3:02 PM, 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> >> --- > > v3 and no changelog? Rookie mistake :) v1: only header file changed v2: added SOB v3: added pci_generic.c change
On 8/19/2022 2:15 PM, Jeff Johnson wrote: > On 8/19/2022 2:08 PM, Jeffrey Hugo wrote: >> On 8/19/2022 3:02 PM, 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> >>> --- >> >> v3 and no changelog? > > Rookie mistake :) > v1: only header file changed > v2: added SOB > v3: added pci_generic.c change I see my patch has been set to Not Applicable in patchwork, but did not receive any comments other than the one quoted here. Should I rebase & post v4 with a correct changelog?
On Fri, Aug 19, 2022 at 02:02:30PM -0700, Jeff Johnson wrote: Subject prefix should include "host" as we now have both host and ep MHI stacks. Like, bus: mhi: host: make mhi_controller_config::event_cfg const > 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. > I don't know how it got missed as it should've been made constant in the initial implementation itself :/ > Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com> > --- > 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 841626727f6b..2470e9f82aeb 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[] = { const struct? 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 >
diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c index 841626727f6b..2470e9f82aeb 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> --- drivers/bus/mhi/host/pci_generic.c | 14 +++++++------- include/linux/mhi.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-)