* [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle @ 2020-09-06 23:04 Rikard Falkeborn 2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn ` (3 more replies) 0 siblings, 4 replies; 9+ messages in thread From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw) To: linux-arm-kernel, linux-pm, linux-kernel Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn A small patch series aiming to constify static scmi_*_ops structs in drivers/firmware/arm_scmi. Since these are not modified, constify them to allow the compiler to put them in read-only memory. Rikard Falkeborn (3): cpufreq: arm_scmi: Constify scmi_perf_ops pointers firmware: arm_scmi: Constify ops pointers in scmi_handle firmware: arm_scmi: Constify static scmi-ops drivers/cpufreq/scmi-cpufreq.c | 6 +++--- drivers/firmware/arm_scmi/clock.c | 2 +- drivers/firmware/arm_scmi/common.h | 2 +- drivers/firmware/arm_scmi/mailbox.c | 2 +- drivers/firmware/arm_scmi/notify.c | 2 +- drivers/firmware/arm_scmi/perf.c | 2 +- drivers/firmware/arm_scmi/power.c | 2 +- drivers/firmware/arm_scmi/reset.c | 2 +- drivers/firmware/arm_scmi/sensors.c | 2 +- drivers/firmware/arm_scmi/smc.c | 2 +- include/linux/scmi_protocol.h | 12 ++++++------ 11 files changed, 18 insertions(+), 18 deletions(-) -- 2.28.0 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers 2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn @ 2020-09-06 23:04 ` Rikard Falkeborn 2020-09-07 10:22 ` Sudeep Holla 2020-09-06 23:04 ` [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle Rikard Falkeborn ` (2 subsequent siblings) 3 siblings, 1 reply; 9+ messages in thread From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw) To: linux-arm-kernel, linux-pm, linux-kernel Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn The perf_ops are not modified through this pointer. Make them const to indicate that. This is in preparation to make the scmi-ops pointers in scmi_handle const. Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com> --- drivers/cpufreq/scmi-cpufreq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c index fb42e3390377..46b268095421 100644 --- a/drivers/cpufreq/scmi-cpufreq.c +++ b/drivers/cpufreq/scmi-cpufreq.c @@ -29,7 +29,7 @@ static const struct scmi_handle *handle; static unsigned int scmi_cpufreq_get_rate(unsigned int cpu) { struct cpufreq_policy *policy = cpufreq_cpu_get_raw(cpu); - struct scmi_perf_ops *perf_ops = handle->perf_ops; + const struct scmi_perf_ops *perf_ops = handle->perf_ops; struct scmi_data *priv = policy->driver_data; unsigned long rate; int ret; @@ -50,7 +50,7 @@ scmi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index) { int ret; struct scmi_data *priv = policy->driver_data; - struct scmi_perf_ops *perf_ops = handle->perf_ops; + const struct scmi_perf_ops *perf_ops = handle->perf_ops; u64 freq = policy->freq_table[index].frequency; ret = perf_ops->freq_set(handle, priv->domain_id, freq * 1000, false); @@ -64,7 +64,7 @@ static unsigned int scmi_cpufreq_fast_switch(struct cpufreq_policy *policy, unsigned int target_freq) { struct scmi_data *priv = policy->driver_data; - struct scmi_perf_ops *perf_ops = handle->perf_ops; + const struct scmi_perf_ops *perf_ops = handle->perf_ops; if (!perf_ops->freq_set(handle, priv->domain_id, target_freq * 1000, true)) { -- 2.28.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers 2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn @ 2020-09-07 10:22 ` Sudeep Holla 2020-09-07 10:25 ` Viresh Kumar 0 siblings, 1 reply; 9+ messages in thread From: Sudeep Holla @ 2020-09-07 10:22 UTC (permalink / raw) To: Rikard Falkeborn Cc: linux-arm-kernel, linux-pm, linux-kernel, Rafael J. Wysocki, Sudeep Holla, Viresh Kumar Hi Viresh, On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote: > The perf_ops are not modified through this pointer. Make them const to > indicate that. This is in preparation to make the scmi-ops pointers in > scmi_handle const. > Your ack needed to take this as series via {arm-,}soc -- Regards, Sudeep ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers 2020-09-07 10:22 ` Sudeep Holla @ 2020-09-07 10:25 ` Viresh Kumar 2020-09-07 10:44 ` Sudeep Holla 0 siblings, 1 reply; 9+ messages in thread From: Viresh Kumar @ 2020-09-07 10:25 UTC (permalink / raw) To: Sudeep Holla Cc: Rikard Falkeborn, linux-arm-kernel, linux-pm, linux-kernel, Rafael J. Wysocki On 07-09-20, 11:22, Sudeep Holla wrote: > Hi Viresh, > > On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote: > > The perf_ops are not modified through this pointer. Make them const to > > indicate that. This is in preparation to make the scmi-ops pointers in > > scmi_handle const. > > > > Your ack needed to take this as series via {arm-,}soc Can I just pick the first patch and you do the rest ? Will it result in any warnings at either end ? -- viresh ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers 2020-09-07 10:25 ` Viresh Kumar @ 2020-09-07 10:44 ` Sudeep Holla 2020-09-07 10:46 ` Viresh Kumar 0 siblings, 1 reply; 9+ messages in thread From: Sudeep Holla @ 2020-09-07 10:44 UTC (permalink / raw) To: Viresh Kumar Cc: Rikard Falkeborn, linux-arm-kernel, linux-pm, linux-kernel, Sudeep Holla, Rafael J. Wysocki On Mon, Sep 07, 2020 at 03:55:51PM +0530, Viresh Kumar wrote: > On 07-09-20, 11:22, Sudeep Holla wrote: > > Hi Viresh, > > > > On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote: > > > The perf_ops are not modified through this pointer. Make them const to > > > indicate that. This is in preparation to make the scmi-ops pointers in > > > scmi_handle const. > > > > > > > Your ack needed to take this as series via {arm-,}soc > > Can I just pick the first patch and you do the rest ? Will it result > in any warnings at either end ? > Initially I thought out suggesting the same, but then I realised(not checked though), without this change in arm-soc the scmi-cpufreq driver might produce warnings as the const value gets assigned to non const. No ? -- Regards, Sudeep ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers 2020-09-07 10:44 ` Sudeep Holla @ 2020-09-07 10:46 ` Viresh Kumar 0 siblings, 0 replies; 9+ messages in thread From: Viresh Kumar @ 2020-09-07 10:46 UTC (permalink / raw) To: Sudeep Holla Cc: Rikard Falkeborn, linux-arm-kernel, linux-pm, linux-kernel, Rafael J. Wysocki On 07-09-20, 11:44, Sudeep Holla wrote: > On Mon, Sep 07, 2020 at 03:55:51PM +0530, Viresh Kumar wrote: > > On 07-09-20, 11:22, Sudeep Holla wrote: > > > Hi Viresh, > > > > > > On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote: > > > > The perf_ops are not modified through this pointer. Make them const to > > > > indicate that. This is in preparation to make the scmi-ops pointers in > > > > scmi_handle const. > > > > > > > > > > Your ack needed to take this as series via {arm-,}soc > > > > Can I just pick the first patch and you do the rest ? Will it result > > in any warnings at either end ? > > > > Initially I thought out suggesting the same, but then I realised(not > checked though), without this change in arm-soc the scmi-cpufreq driver > might produce warnings as the const value gets assigned to non const. > No ? Acked-by: Viresh Kumar <viresh.kumar@linaro.org> -- viresh ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle 2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn 2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn @ 2020-09-06 23:04 ` Rikard Falkeborn 2020-09-06 23:04 ` [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops Rikard Falkeborn 2020-09-08 12:51 ` [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Sudeep Holla 3 siblings, 0 replies; 9+ messages in thread From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw) To: linux-arm-kernel, linux-pm, linux-kernel Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn These are never modified, so make them const to allow drivers to make them const. Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com> --- include/linux/scmi_protocol.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h index 7e5dd7d1e221..05570afc7f74 100644 --- a/include/linux/scmi_protocol.h +++ b/include/linux/scmi_protocol.h @@ -279,12 +279,12 @@ struct scmi_notify_ops { struct scmi_handle { struct device *dev; struct scmi_revision_info *version; - struct scmi_perf_ops *perf_ops; - struct scmi_clk_ops *clk_ops; - struct scmi_power_ops *power_ops; - struct scmi_sensor_ops *sensor_ops; - struct scmi_reset_ops *reset_ops; - struct scmi_notify_ops *notify_ops; + const struct scmi_perf_ops *perf_ops; + const struct scmi_clk_ops *clk_ops; + const struct scmi_power_ops *power_ops; + const struct scmi_sensor_ops *sensor_ops; + const struct scmi_reset_ops *reset_ops; + const struct scmi_notify_ops *notify_ops; /* for protocol internal use */ void *perf_priv; void *clk_priv; -- 2.28.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops 2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn 2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn 2020-09-06 23:04 ` [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle Rikard Falkeborn @ 2020-09-06 23:04 ` Rikard Falkeborn 2020-09-08 12:51 ` [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Sudeep Holla 3 siblings, 0 replies; 9+ messages in thread From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw) To: linux-arm-kernel, linux-pm, linux-kernel Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn These are never modified, so make them const to allow the compiler to put them in read-only memory. Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com> --- drivers/firmware/arm_scmi/clock.c | 2 +- drivers/firmware/arm_scmi/common.h | 2 +- drivers/firmware/arm_scmi/mailbox.c | 2 +- drivers/firmware/arm_scmi/notify.c | 2 +- drivers/firmware/arm_scmi/perf.c | 2 +- drivers/firmware/arm_scmi/power.c | 2 +- drivers/firmware/arm_scmi/reset.c | 2 +- drivers/firmware/arm_scmi/sensors.c | 2 +- drivers/firmware/arm_scmi/smc.c | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/firmware/arm_scmi/clock.c b/drivers/firmware/arm_scmi/clock.c index 75e39882746e..a3b90be28009 100644 --- a/drivers/firmware/arm_scmi/clock.c +++ b/drivers/firmware/arm_scmi/clock.c @@ -318,7 +318,7 @@ scmi_clock_info_get(const struct scmi_handle *handle, u32 clk_id) return clk; } -static struct scmi_clk_ops clk_ops = { +static const struct scmi_clk_ops clk_ops = { .count_get = scmi_clock_count_get, .info_get = scmi_clock_info_get, .rate_get = scmi_clock_rate_get, diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h index c113e578cc6c..233700a42bff 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -210,7 +210,7 @@ struct scmi_transport_ops { * @max_msg_size: Maximum size of data per message that can be handled. */ struct scmi_desc { - struct scmi_transport_ops *ops; + const struct scmi_transport_ops *ops; int max_rx_timeout_ms; int max_msg; int max_msg_size; diff --git a/drivers/firmware/arm_scmi/mailbox.c b/drivers/firmware/arm_scmi/mailbox.c index 6998dc86b5ce..cc2de207fe10 100644 --- a/drivers/firmware/arm_scmi/mailbox.c +++ b/drivers/firmware/arm_scmi/mailbox.c @@ -181,7 +181,7 @@ mailbox_poll_done(struct scmi_chan_info *cinfo, struct scmi_xfer *xfer) return shmem_poll_done(smbox->shmem, xfer); } -static struct scmi_transport_ops scmi_mailbox_ops = { +static const struct scmi_transport_ops scmi_mailbox_ops = { .chan_available = mailbox_chan_available, .chan_setup = mailbox_chan_setup, .chan_free = mailbox_chan_free, diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm_scmi/notify.c index 4731daaacd19..2754f9d01636 100644 --- a/drivers/firmware/arm_scmi/notify.c +++ b/drivers/firmware/arm_scmi/notify.c @@ -1421,7 +1421,7 @@ static void scmi_protocols_late_init(struct work_struct *work) * notify_ops are attached to the handle so that can be accessed * directly from an scmi_driver to register its own notifiers. */ -static struct scmi_notify_ops notify_ops = { +static const struct scmi_notify_ops notify_ops = { .register_event_notifier = scmi_register_notifier, .unregister_event_notifier = scmi_unregister_notifier, }; diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c index 3e1e87012c95..a3e7b1bfab00 100644 --- a/drivers/firmware/arm_scmi/perf.c +++ b/drivers/firmware/arm_scmi/perf.c @@ -748,7 +748,7 @@ static bool scmi_fast_switch_possible(const struct scmi_handle *handle, return dom->fc_info && dom->fc_info->level_set_addr; } -static struct scmi_perf_ops perf_ops = { +static const struct scmi_perf_ops perf_ops = { .limits_set = scmi_perf_limits_set, .limits_get = scmi_perf_limits_get, .level_set = scmi_perf_level_set, diff --git a/drivers/firmware/arm_scmi/power.c b/drivers/firmware/arm_scmi/power.c index 46f213644c49..32bcf5821ea9 100644 --- a/drivers/firmware/arm_scmi/power.c +++ b/drivers/firmware/arm_scmi/power.c @@ -184,7 +184,7 @@ static char *scmi_power_name_get(const struct scmi_handle *handle, u32 domain) return dom->name; } -static struct scmi_power_ops power_ops = { +static const struct scmi_power_ops power_ops = { .num_domains_get = scmi_power_num_domains_get, .name_get = scmi_power_name_get, .state_set = scmi_power_state_set, diff --git a/drivers/firmware/arm_scmi/reset.c b/drivers/firmware/arm_scmi/reset.c index 3691bafca057..4e2dc5fc43d9 100644 --- a/drivers/firmware/arm_scmi/reset.c +++ b/drivers/firmware/arm_scmi/reset.c @@ -194,7 +194,7 @@ scmi_reset_domain_deassert(const struct scmi_handle *handle, u32 domain) return scmi_domain_reset(handle, domain, 0, ARCH_COLD_RESET); } -static struct scmi_reset_ops reset_ops = { +static const struct scmi_reset_ops reset_ops = { .num_domains_get = scmi_reset_num_domains_get, .name_get = scmi_reset_name_get, .latency_get = scmi_reset_latency_get, diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm_scmi/sensors.c index 1af0ad362e82..7d83680198de 100644 --- a/drivers/firmware/arm_scmi/sensors.c +++ b/drivers/firmware/arm_scmi/sensors.c @@ -275,7 +275,7 @@ static int scmi_sensor_count_get(const struct scmi_handle *handle) return si->num_sensors; } -static struct scmi_sensor_ops sensor_ops = { +static const struct scmi_sensor_ops sensor_ops = { .count_get = scmi_sensor_count_get, .info_get = scmi_sensor_info_get, .trip_point_config = scmi_sensor_trip_point_config, diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/smc.c index a1537d123e38..1a03c3ec0230 100644 --- a/drivers/firmware/arm_scmi/smc.c +++ b/drivers/firmware/arm_scmi/smc.c @@ -137,7 +137,7 @@ smc_poll_done(struct scmi_chan_info *cinfo, struct scmi_xfer *xfer) return shmem_poll_done(scmi_info->shmem, xfer); } -static struct scmi_transport_ops scmi_smc_ops = { +static const struct scmi_transport_ops scmi_smc_ops = { .chan_available = smc_chan_available, .chan_setup = smc_chan_setup, .chan_free = smc_chan_free, -- 2.28.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle 2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn ` (2 preceding siblings ...) 2020-09-06 23:04 ` [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops Rikard Falkeborn @ 2020-09-08 12:51 ` Sudeep Holla 3 siblings, 0 replies; 9+ messages in thread From: Sudeep Holla @ 2020-09-08 12:51 UTC (permalink / raw) To: Rikard Falkeborn, linux-pm, linux-arm-kernel, linux-kernel Cc: Sudeep Holla, Viresh Kumar, Rafael J. Wysocki On Mon, 7 Sep 2020 01:04:49 +0200, Rikard Falkeborn wrote: > A small patch series aiming to constify static scmi_*_ops structs in > drivers/firmware/arm_scmi. Since these are not modified, constify them > to allow the compiler to put them in read-only memory. > > Rikard Falkeborn (3): > cpufreq: arm_scmi: Constify scmi_perf_ops pointers > firmware: arm_scmi: Constify ops pointers in scmi_handle > firmware: arm_scmi: Constify static scmi-ops > > [...] Applied to sudeep.holla/linux (for-next/scmi), thanks! [1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers https://git.kernel.org/sudeep.holla/c/69ecb3230b [2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle https://git.kernel.org/sudeep.holla/c/82894c1d39 [3/3] firmware: arm_scmi: Constify static scmi-ops https://git.kernel.org/sudeep.holla/c/3de7b83017 -- Regards, Sudeep ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-09-08 16:45 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn 2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn 2020-09-07 10:22 ` Sudeep Holla 2020-09-07 10:25 ` Viresh Kumar 2020-09-07 10:44 ` Sudeep Holla 2020-09-07 10:46 ` Viresh Kumar 2020-09-06 23:04 ` [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle Rikard Falkeborn 2020-09-06 23:04 ` [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops Rikard Falkeborn 2020-09-08 12:51 ` [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Sudeep Holla
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).