Daniel Kurtz
dd709e72cb
earlycon: Use a pointer table to fix __earlycon_table stride
...
Commit 99492c39f3 ("earlycon: Fix __earlycon_table stride") tried to fix
__earlycon_table stride by forcing the earlycon_id struct alignment to 32
and asking the linker to 32-byte align the __earlycon_table symbol. This
fix was based on commit 07fca0e57f ("tracing: Properly align linker
defined symbols") which tried a similar fix for the tracing subsystem.
However, this fix doesn't quite work because there is no guarantee that
gcc will place structures packed into an array format. In fact, gcc 4.9
chooses to 64-byte align these structs by inserting additional padding
between the entries because it has no clue that they are supposed to be in
an array. If we are unlucky, the linker will assign symbol
"__earlycon_table" to a 32-byte aligned address which does not correspond
to the 64-byte aligned contents of section "__earlycon_table".
To address this same problem, the fix to the tracing system was
subsequently re-implemented using a more robust table of pointers approach
by commits:
3d56e331b6 ("tracing: Replace syscall_meta_data struct array with pointer array")
6549864629 ("tracepoints: Fix section alignment using pointer array")
e4a9ea5ee7 ("tracing: Replace trace_event struct array with pointer array")
Let's use this same "array of pointers to structs" approach for
EARLYCON_TABLE.
Fixes: 99492c39f3 ("earlycon: Fix __earlycon_table stride")
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Suggested-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Tested-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-04-23 10:06:59 +02:00
..
accessibility
acpi
xen: fixes for 4.17-rc1
2018-04-12 11:04:35 -07:00
amba
android
ata
Merge branch 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
2018-04-03 17:42:25 -07:00
atm
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-04-01 19:49:34 -04:00
auxdisplay
base
mm: check __highest_present_section_nr directly in memory_dev_init()
2018-04-11 10:28:31 -07:00
bcma
block
for-linus-20180413
2018-04-13 15:15:15 -07:00
bluetooth
Bluetooth: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for BTUSB_QCA_ROME
2018-04-01 21:43:02 +03:00
bus
pci-v4.17-changes
2018-04-06 18:31:06 -07:00
cdrom
char
RTC for 4.17
2018-04-10 10:22:27 -07:00
clk
The large diff this time around is from the addition of a new clk driver
2018-04-13 15:51:06 -07:00
clocksource
ARM: SoC platform updates for 4.17
2018-04-05 21:21:08 -07:00
connector
cpufreq
cpufreq: Drop cpufreq_table_validate_and_show()
2018-04-10 08:40:45 +02:00
cpuidle
cpuidle: menu: Avoid selecting shallow states with stopped tick
2018-04-09 11:54:57 +02:00
crypto
.gitignore: move *-asn1.[ch] patterns to the top-level .gitignore
2018-04-07 19:04:02 +09:00
dax
libnvdimm for 4.17
2018-04-10 10:25:57 -07:00
dca
devfreq
dio
dma
DMAengine updates for v4.17-rc1
2018-04-10 12:14:37 -07:00
dma-buf
edac
* Add NVDIMM support to EDAC (Tony Luck)
2018-04-05 14:21:13 -07:00
eisa
extcon
Char/Misc patches for 4.17-rc1
2018-04-04 20:07:20 -07:00
firewire
firmware
Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
2018-04-13 16:32:16 -07:00
fmc
fpga
fsi
gpio
DeviceTree updates for 4.17:
2018-04-05 21:03:42 -07:00
gpu
amdgpu, omap and snd regression fix
2018-04-12 20:56:10 -07:00
hid
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2018-04-05 11:53:34 -07:00
hsi
hv
ARM:
2018-04-09 11:42:31 -07:00
hwmon
hwmon updates for v4.17
2018-04-09 19:59:54 -07:00
hwspinlock
hwtracing
Char/Misc patches for 4.17-rc1
2018-04-04 20:07:20 -07:00
i2c
i2c: add param sanity check to i2c_transfer()
2018-04-11 23:33:46 +02:00
ide
for-4.17/block-20180402
2018-04-05 14:27:02 -07:00
idle
iio
This is the bulk of GPIO changes for the v4.17 kernel cycle:
2018-04-05 09:51:41 -07:00
infiniband
Merge candidates for 4.17 merge window
2018-04-06 17:35:43 -07:00
input
Changes to chrome-platform for v4.17
2018-04-13 16:20:36 -07:00
iommu
IOMMU Updates for Linux v4.17
2018-04-11 18:50:41 -07:00
ipack
irqchip
IOMMU Updates for Linux v4.17
2018-04-11 18:50:41 -07:00
isdn
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-04-03 14:04:18 -07:00
leds
lightnvm
lightnvm: pblk: remove some unnecessary NULL checks
2018-03-29 17:29:09 -06:00
macintosh
powerpc updates for 4.17
2018-04-07 12:08:19 -07:00
mailbox
mcb
md
libnvdimm for 4.17
2018-04-10 10:25:57 -07:00
media
remoteproc updates for v4.17
2018-04-10 12:09:27 -07:00
memory
memstick
message
mfd
platform/chrome: mfd/cros_ec_dev: Add sysfs entry to set keyboard wake lid angle
2018-04-10 22:25:07 -07:00
misc
* Fix 2032 time access issues and new compiler warnings
2018-04-12 10:21:19 -07:00
mmc
MMC core:
2018-04-12 10:59:03 -07:00
mtd
This pull request contains updates for both UBI and UBIFS:
2018-04-11 16:39:34 -07:00
mux
net
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-04-12 11:09:05 -07:00
nfc
ntb
nubus
nvdimm
libnvdimm for 4.17
2018-04-10 10:25:57 -07:00
nvme
nvme: expand nvmf_check_if_ready checks
2018-04-12 09:58:27 -06:00
nvmem
Char/Misc patches for 4.17-rc1
2018-04-04 20:07:20 -07:00
of
earlycon: Use a pointer table to fix __earlycon_table stride
2018-04-23 10:06:59 +02:00
opp
oprofile
oprofilefs: don't oops on allocation failure
2018-03-29 15:07:48 -04:00
parisc
parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
2018-03-27 18:52:22 +02:00
parport
Char/Misc patches for 4.17-rc1
2018-04-04 20:07:20 -07:00
pci
PCI: Remove messages about reassigning resources
2018-04-11 08:46:50 -05:00
pcmcia
Merge branch 'for-linus-sa1100' of git://git.armlinux.org.uk/~rmk/linux-arm
2018-04-09 09:26:36 -07:00
perf
ARM: SoC driver updates for 4.17
2018-04-05 21:29:35 -07:00
phy
ARM: SoC platform updates for 4.17
2018-04-05 21:21:08 -07:00
pinctrl
This is the bulk of GPIO changes for the v4.17 kernel cycle:
2018-04-05 09:51:41 -07:00
platform
Changes to chrome-platform for v4.17
2018-04-13 16:20:36 -07:00
pnp
power
ARM: SoC platform updates for 4.17
2018-04-05 21:21:08 -07:00
powercap
pps
ps3
ptp
pwm
pwm: Changes for v4.17-rc1
2018-04-13 15:46:21 -07:00
rapidio
rapidio: use a reference count for struct mport_dma_req
2018-04-11 10:28:37 -07:00
ras
regulator
Merge remote-tracking branches 'regulator/topic/88pg86x', 'regulator/topic/dt', 'regulator/topic/formatting' and 'regulator/topic/gpio' into regulator-next
2018-03-28 10:33:53 +08:00
remoteproc
remoteproc: fix null pointer dereference on glink only platforms
2018-04-05 22:53:16 -07:00
reset
rpmsg
rpmsg: smd: Use announce_create to process any receive work
2018-03-27 21:54:37 -07:00
rtc
RTC for 4.17
2018-04-10 10:22:27 -07:00
s390
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
2018-04-13 09:43:20 -07:00
sbus
sparc64: Properly range check DAX completion index
2018-04-01 20:07:00 -04:00
scsi
SCSI fixes on 20180415
2018-04-15 17:24:12 -07:00
sfi
sh
siox
slimbus
sn
soc
The large diff this time around is from the addition of a new clk driver
2018-04-13 15:51:06 -07:00
soundwire
spi
spi: SPI updates for v4.17
2018-04-03 12:06:21 -07:00
spmi
ssb
staging
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
target
for-4.17/block-20180402
2018-04-05 14:27:02 -07:00
tc
tee
thermal
Merge branches 'thermal-core' and 'thermal-soc' into next
2018-04-13 14:11:53 +08:00
thunderbolt
tty
earlycon: Use a pointer table to fix __earlycon_table stride
2018-04-23 10:06:59 +02:00
uio
usb
Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2018-04-07 11:11:41 -07:00
uwb
vfio
VFIO updates for v4.17-rc1
2018-04-06 19:44:27 -07:00
vhost
vhost: return bool from *_access_ok() functions
2018-04-11 10:54:06 -04:00
video
fbdev changes for v4.17:
2018-04-10 10:20:00 -07:00
virt
virtio
virtio: feature
2018-04-11 18:58:27 -07:00
visorbus
vlynq
vme
w1
watchdog
linux-watchdog 4.17-rc1 merge window tag
2018-04-13 15:43:50 -07:00
xen
xen: fixes for 4.17-rc1
2018-04-12 11:04:35 -07:00
zorro
Kconfig
hwtracing: Add HW tracing support menu
2018-03-29 13:38:10 +03:00
Makefile