Commit 07ad6ab3 authored by Janusz Krzysztofik's avatar Janusz Krzysztofik Committed by Tony Lindgren

omap: drop __initdata tags from static struct platform_device declarations

Pointers to statically declared platform device structures which are
registered with platform_device_register() are then used during run time
to access these structure members, for example from platform_uevent()
and much more. Therefore, these structures should never be placed inside
sections which are dropped after boot. Fix platform devices incorrectly
tagged with __initdata which happen to exist inside OMAP sub-trees.

This bug has exhibited itself on my ARM/OMAP1 based Amstrad Delta
videophone after commit 6d3163ce, "mm:
check if any page in a pageblock is reserved before marking it
MIGRATE_RESERVE", resulting in reading from several
/sys/device/platform/*/uevent files always ending up with segmentation
faults.
Signed-off-by: default avatarJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: default avatarFelipe Balbi <balbi@ti.com>
Cc: Varadarajan, Charulatha <charu@ti.com>
Cc: Jarkko Nikula <jhnikula@gmail.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent b0af8dfd
...@@ -215,7 +215,7 @@ static struct omap_kp_platform_data ams_delta_kp_data __initdata = { ...@@ -215,7 +215,7 @@ static struct omap_kp_platform_data ams_delta_kp_data __initdata = {
.delay = 9, .delay = 9,
}; };
static struct platform_device ams_delta_kp_device __initdata = { static struct platform_device ams_delta_kp_device = {
.name = "omap-keypad", .name = "omap-keypad",
.id = -1, .id = -1,
.dev = { .dev = {
...@@ -225,12 +225,12 @@ static struct platform_device ams_delta_kp_device __initdata = { ...@@ -225,12 +225,12 @@ static struct platform_device ams_delta_kp_device __initdata = {
.resource = ams_delta_kp_resources, .resource = ams_delta_kp_resources,
}; };
static struct platform_device ams_delta_lcd_device __initdata = { static struct platform_device ams_delta_lcd_device = {
.name = "lcd_ams_delta", .name = "lcd_ams_delta",
.id = -1, .id = -1,
}; };
static struct platform_device ams_delta_led_device __initdata = { static struct platform_device ams_delta_led_device = {
.name = "ams-delta-led", .name = "ams-delta-led",
.id = -1 .id = -1
}; };
...@@ -267,7 +267,7 @@ static struct soc_camera_link ams_delta_iclink = { ...@@ -267,7 +267,7 @@ static struct soc_camera_link ams_delta_iclink = {
.power = ams_delta_camera_power, .power = ams_delta_camera_power,
}; };
static struct platform_device ams_delta_camera_device __initdata = { static struct platform_device ams_delta_camera_device = {
.name = "soc-camera-pdrv", .name = "soc-camera-pdrv",
.id = 0, .id = 0,
.dev = { .dev = {
......
...@@ -41,7 +41,7 @@ static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { ...@@ -41,7 +41,7 @@ static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = {
.bank_stride = 1, .bank_stride = 1,
}; };
static struct __initdata platform_device omap15xx_mpu_gpio = { static struct platform_device omap15xx_mpu_gpio = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 0, .id = 0,
.dev = { .dev = {
...@@ -70,7 +70,7 @@ static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = { ...@@ -70,7 +70,7 @@ static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = {
.bank_width = 16, .bank_width = 16,
}; };
static struct __initdata platform_device omap15xx_gpio = { static struct platform_device omap15xx_gpio = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 1, .id = 1,
.dev = { .dev = {
......
...@@ -44,7 +44,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { ...@@ -44,7 +44,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = {
.bank_stride = 1, .bank_stride = 1,
}; };
static struct __initdata platform_device omap16xx_mpu_gpio = { static struct platform_device omap16xx_mpu_gpio = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 0, .id = 0,
.dev = { .dev = {
...@@ -73,7 +73,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = { ...@@ -73,7 +73,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = {
.bank_width = 16, .bank_width = 16,
}; };
static struct __initdata platform_device omap16xx_gpio1 = { static struct platform_device omap16xx_gpio1 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 1, .id = 1,
.dev = { .dev = {
...@@ -102,7 +102,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio2_config = { ...@@ -102,7 +102,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio2_config = {
.bank_width = 16, .bank_width = 16,
}; };
static struct __initdata platform_device omap16xx_gpio2 = { static struct platform_device omap16xx_gpio2 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 2, .id = 2,
.dev = { .dev = {
...@@ -131,7 +131,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio3_config = { ...@@ -131,7 +131,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio3_config = {
.bank_width = 16, .bank_width = 16,
}; };
static struct __initdata platform_device omap16xx_gpio3 = { static struct platform_device omap16xx_gpio3 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 3, .id = 3,
.dev = { .dev = {
...@@ -160,7 +160,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio4_config = { ...@@ -160,7 +160,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio4_config = {
.bank_width = 16, .bank_width = 16,
}; };
static struct __initdata platform_device omap16xx_gpio4 = { static struct platform_device omap16xx_gpio4 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 4, .id = 4,
.dev = { .dev = {
......
...@@ -46,7 +46,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { ...@@ -46,7 +46,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = {
.bank_stride = 2, .bank_stride = 2,
}; };
static struct __initdata platform_device omap7xx_mpu_gpio = { static struct platform_device omap7xx_mpu_gpio = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 0, .id = 0,
.dev = { .dev = {
...@@ -75,7 +75,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = { ...@@ -75,7 +75,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = {
.bank_width = 32, .bank_width = 32,
}; };
static struct __initdata platform_device omap7xx_gpio1 = { static struct platform_device omap7xx_gpio1 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 1, .id = 1,
.dev = { .dev = {
...@@ -104,7 +104,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio2_config = { ...@@ -104,7 +104,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio2_config = {
.bank_width = 32, .bank_width = 32,
}; };
static struct __initdata platform_device omap7xx_gpio2 = { static struct platform_device omap7xx_gpio2 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 2, .id = 2,
.dev = { .dev = {
...@@ -133,7 +133,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio3_config = { ...@@ -133,7 +133,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio3_config = {
.bank_width = 32, .bank_width = 32,
}; };
static struct __initdata platform_device omap7xx_gpio3 = { static struct platform_device omap7xx_gpio3 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 3, .id = 3,
.dev = { .dev = {
...@@ -162,7 +162,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio4_config = { ...@@ -162,7 +162,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio4_config = {
.bank_width = 32, .bank_width = 32,
}; };
static struct __initdata platform_device omap7xx_gpio4 = { static struct platform_device omap7xx_gpio4 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 4, .id = 4,
.dev = { .dev = {
...@@ -191,7 +191,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio5_config = { ...@@ -191,7 +191,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio5_config = {
.bank_width = 32, .bank_width = 32,
}; };
static struct __initdata platform_device omap7xx_gpio5 = { static struct platform_device omap7xx_gpio5 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 5, .id = 5,
.dev = { .dev = {
...@@ -220,7 +220,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio6_config = { ...@@ -220,7 +220,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio6_config = {
.bank_width = 32, .bank_width = 32,
}; };
static struct __initdata platform_device omap7xx_gpio6 = { static struct platform_device omap7xx_gpio6 = {
.name = "omap_gpio", .name = "omap_gpio",
.id = 6, .id = 6,
.dev = { .dev = {
......
...@@ -558,7 +558,7 @@ static struct radio_si4713_platform_data rx51_si4713_data __initdata_or_module = ...@@ -558,7 +558,7 @@ static struct radio_si4713_platform_data rx51_si4713_data __initdata_or_module =
.subdev_board_info = &rx51_si4713_board_info, .subdev_board_info = &rx51_si4713_board_info,
}; };
static struct platform_device rx51_si4713_dev __initdata_or_module = { static struct platform_device rx51_si4713_dev = {
.name = "radio-si4713", .name = "radio-si4713",
.id = -1, .id = -1,
.dev = { .dev = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment