Skip to content

Commit 498cc50

Browse files
committed
clk: hisilicon: hi3559a: Drop __init markings everywhere
This driver is a platform driver. The probe function can be called after kernel init, and try to reference kernel memory that has been freed. Drop the __init markings everywhere here to avoid referencing initdata from non-init code. Fixes modpost warnings. Reported-by: kernel test robot <[email protected]> Cc: Dongjiu Geng <[email protected]> Fixes: 6c81966 ("clk: hisilicon: Add clock driver for hi3559A SoC") Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Stephen Boyd <[email protected]>
1 parent e4c5ef6 commit 498cc50

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

drivers/clk/hisilicon/clk-hi3559a.c

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -107,25 +107,25 @@ static const struct hisi_fixed_rate_clock hi3559av100_fixed_rate_clks_crg[] = {
107107
};
108108

109109

110-
static const char *fmc_mux_p[] __initconst = {
110+
static const char *fmc_mux_p[] = {
111111
"24m", "75m", "125m", "150m", "200m", "250m", "300m", "400m"
112112
};
113113

114-
static const char *mmc_mux_p[] __initconst = {
114+
static const char *mmc_mux_p[] = {
115115
"100k", "25m", "49p5m", "99m", "187p5m", "150m", "198m", "400k"
116116
};
117117

118-
static const char *sysapb_mux_p[] __initconst = {
118+
static const char *sysapb_mux_p[] = {
119119
"24m", "50m",
120120
};
121121

122-
static const char *sysbus_mux_p[] __initconst = {
122+
static const char *sysbus_mux_p[] = {
123123
"24m", "300m"
124124
};
125125

126-
static const char *uart_mux_p[] __initconst = { "50m", "24m", "3m" };
126+
static const char *uart_mux_p[] = { "50m", "24m", "3m" };
127127

128-
static const char *a73_clksel_mux_p[] __initconst = {
128+
static const char *a73_clksel_mux_p[] = {
129129
"24m", "apll", "1000m"
130130
};
131131

@@ -136,7 +136,7 @@ static const u32 sysbus_mux_table[] = { 0, 1 };
136136
static const u32 uart_mux_table[] = { 0, 1, 2 };
137137
static const u32 a73_clksel_mux_table[] = { 0, 1, 2 };
138138

139-
static struct hisi_mux_clock hi3559av100_mux_clks_crg[] __initdata = {
139+
static struct hisi_mux_clock hi3559av100_mux_clks_crg[] = {
140140
{
141141
HI3559AV100_FMC_MUX, "fmc_mux", fmc_mux_p, ARRAY_SIZE(fmc_mux_p),
142142
CLK_SET_RATE_PARENT, 0x170, 2, 3, 0, fmc_mux_table,
@@ -181,7 +181,7 @@ static struct hisi_mux_clock hi3559av100_mux_clks_crg[] __initdata = {
181181
},
182182
};
183183

184-
static struct hisi_gate_clock hi3559av100_gate_clks[] __initdata = {
184+
static struct hisi_gate_clock hi3559av100_gate_clks[] = {
185185
{
186186
HI3559AV100_FMC_CLK, "clk_fmc", "fmc_mux",
187187
CLK_SET_RATE_PARENT, 0x170, 1, 0,
@@ -336,7 +336,7 @@ static struct hisi_gate_clock hi3559av100_gate_clks[] __initdata = {
336336
},
337337
};
338338

339-
static struct hi3559av100_pll_clock hi3559av100_pll_clks[] __initdata = {
339+
static struct hi3559av100_pll_clock hi3559av100_pll_clks[] = {
340340
{
341341
HI3559AV100_APLL_CLK, "apll", NULL, 0x0, 0, 24, 24, 3, 28, 3,
342342
0x4, 0, 12, 12, 6
@@ -502,7 +502,7 @@ static void hisi_clk_register_pll(struct hi3559av100_pll_clock *clks,
502502
}
503503
}
504504

505-
static __init struct hisi_clock_data *hi3559av100_clk_register(
505+
static struct hisi_clock_data *hi3559av100_clk_register(
506506
struct platform_device *pdev)
507507
{
508508
struct hisi_clock_data *clk_data;
@@ -549,7 +549,7 @@ static __init struct hisi_clock_data *hi3559av100_clk_register(
549549
return ERR_PTR(ret);
550550
}
551551

552-
static __init void hi3559av100_clk_unregister(struct platform_device *pdev)
552+
static void hi3559av100_clk_unregister(struct platform_device *pdev)
553553
{
554554
struct hisi_crg_dev *crg = platform_get_drvdata(pdev);
555555

@@ -568,8 +568,7 @@ static const struct hisi_crg_funcs hi3559av100_crg_funcs = {
568568
.unregister_clks = hi3559av100_clk_unregister,
569569
};
570570

571-
static struct hisi_fixed_rate_clock hi3559av100_shub_fixed_rate_clks[]
572-
__initdata = {
571+
static struct hisi_fixed_rate_clock hi3559av100_shub_fixed_rate_clks[] = {
573572
{ HI3559AV100_SHUB_SOURCE_SOC_24M, "clk_source_24M", NULL, 0, 24000000UL, },
574573
{ HI3559AV100_SHUB_SOURCE_SOC_200M, "clk_source_200M", NULL, 0, 200000000UL, },
575574
{ HI3559AV100_SHUB_SOURCE_SOC_300M, "clk_source_300M", NULL, 0, 300000000UL, },
@@ -587,16 +586,16 @@ static struct hisi_fixed_rate_clock hi3559av100_shub_fixed_rate_clks[]
587586

588587
/* shub mux clk */
589588
static u32 shub_source_clk_mux_table[] = {0, 1, 2, 3};
590-
static const char *shub_source_clk_mux_p[] __initconst = {
589+
static const char *shub_source_clk_mux_p[] = {
591590
"clk_source_24M", "clk_source_200M", "clk_source_300M", "clk_source_PLL"
592591
};
593592

594593
static u32 shub_uart_source_clk_mux_table[] = {0, 1, 2, 3};
595-
static const char *shub_uart_source_clk_mux_p[] __initconst = {
594+
static const char *shub_uart_source_clk_mux_p[] = {
596595
"clk_uart_32K", "clk_uart_div_clk", "clk_uart_div_clk", "clk_source_24M"
597596
};
598597

599-
static struct hisi_mux_clock hi3559av100_shub_mux_clks[] __initdata = {
598+
static struct hisi_mux_clock hi3559av100_shub_mux_clks[] = {
600599
{
601600
HI3559AV100_SHUB_SOURCE_CLK, "shub_clk", shub_source_clk_mux_p,
602601
ARRAY_SIZE(shub_source_clk_mux_p),
@@ -615,7 +614,7 @@ static struct hisi_mux_clock hi3559av100_shub_mux_clks[] __initdata = {
615614
static struct clk_div_table shub_spi_clk_table[] = {{0, 8}, {1, 4}, {2, 2}};
616615
static struct clk_div_table shub_uart_div_clk_table[] = {{1, 8}, {2, 4}};
617616

618-
static struct hisi_divider_clock hi3559av100_shub_div_clks[] __initdata = {
617+
static struct hisi_divider_clock hi3559av100_shub_div_clks[] = {
619618
{ HI3559AV100_SHUB_SPI_SOURCE_CLK, "clk_spi_clk", "shub_clk", 0, 0x20, 24, 2,
620619
CLK_DIVIDER_ALLOW_ZERO, shub_spi_clk_table,
621620
},
@@ -625,7 +624,7 @@ static struct hisi_divider_clock hi3559av100_shub_div_clks[] __initdata = {
625624
};
626625

627626
/* shub gate clk */
628-
static struct hisi_gate_clock hi3559av100_shub_gate_clks[] __initdata = {
627+
static struct hisi_gate_clock hi3559av100_shub_gate_clks[] = {
629628
{
630629
HI3559AV100_SHUB_SPI0_CLK, "clk_shub_spi0", "clk_spi_clk",
631630
0, 0x20, 1, 0,
@@ -697,7 +696,7 @@ static int hi3559av100_shub_default_clk_set(void)
697696
return 0;
698697
}
699698

700-
static __init struct hisi_clock_data *hi3559av100_shub_clk_register(
699+
static struct hisi_clock_data *hi3559av100_shub_clk_register(
701700
struct platform_device *pdev)
702701
{
703702
struct hisi_clock_data *clk_data = NULL;
@@ -751,7 +750,7 @@ static __init struct hisi_clock_data *hi3559av100_shub_clk_register(
751750
return ERR_PTR(ret);
752751
}
753752

754-
static __init void hi3559av100_shub_clk_unregister(struct platform_device *pdev)
753+
static void hi3559av100_shub_clk_unregister(struct platform_device *pdev)
755754
{
756755
struct hisi_crg_dev *crg = platform_get_drvdata(pdev);
757756

0 commit comments

Comments
 (0)