section mismatch test doesn't work reliably on arm64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

by manual inspection I found a section mismatch in
drivers/hwtracing/coresight/coresight-etm4x-core.c where
etm4_platform_driver (which lives in ".data") contains a reference to
etm4_remove_platform_dev() (which lives in ".exit.text").

However building with CONFIG_DEBUG_SECTION_MISMATCH=y +
CONFIG_CORESIGHT_SOURCE_ETM4X=y doesn't warn about that one.

	$ objdump -Dr drivers/hwtracing/coresight/coresight-etm4x-core.o | grep -A7 etm4_platform_driver
	0000000000000158 <etm4_platform_driver>:
		...
				158: R_AARCH64_ABS64	.text+0x2524
				160: R_AARCH64_ABS64	.exit.text+0x124
				188: R_AARCH64_ABS64	.rodata.str1.8+0x2e0
	 1a8:	00000001 	udf	#1
		...
				1b0: R_AARCH64_ABS64	.rodata+0x2ae8

A similar issue in the same file is etm4x_amba_driver referencing
etm4_remove_amba().

I guess the problem is that the information about the reference is only
stored in the relocation entry?! I shortly looked at modpost.c, but I
don't know enough about elf and that code to fix that.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux