From 7aaadc07cc8f11ff4bb67cf8b3a1eb01fd4cbf26 Mon Sep 17 00:00:00 2001 From: xxmustafacooTR Date: Sun, 27 Nov 2022 22:21:47 +0300 Subject: [PATCH] treewide: fix build with clang --- .gitignore | 17 ++++++ Makefile | 7 ++- .../configs/exynos9810-star2lte_defconfig | 54 +++++++++++++++--- .../configs/exynos9810-starlte_defconfig | 54 +++++++++++++++--- arch/arm64/crypto/first_file_asm.c | 4 ++ arch/arm64/crypto/last_file_asm.c | 4 ++ arch/arm64/include/asm/percpu.h | 2 +- crypto/first_file.c | 4 ++ crypto/last_file.c | 4 ++ drivers/crypto/fmp/Makefile | 2 + drivers/crypto/fmp/first_file.c | 4 ++ drivers/crypto/fmp/last_file.c | 4 ++ drivers/gpu/exynos/g2d/g2d_perf.h | 2 +- drivers/input/touchscreen/sec_ts/sec_ts_fn.c | 2 +- .../sensor/module/fimc-is-module-3h7_sunny.h | 2 +- .../fimc-is2/vendor/mcd/fimc-is-sysfs.c | 2 +- drivers/misc/Kconfig | 2 +- drivers/mpsd/mpsd.c | 3 +- drivers/mpsd/mpsd_read.c | 20 +++---- .../bcmdhd_100_15/dhd_linux_pktdump.c | 4 ++ .../net/wireless/bcmdhd_100_15/wl_android.c | 2 +- drivers/scsi/ufs/ufshcd.c | 2 +- drivers/sensorhub/brcm/bbdpl/bbd.h | 2 + .../sensorhub/brcm/factory/light_colorid.h | 2 +- .../samsung/cal-if/exynos9810/cmucal-node.c | 2 +- drivers/soc/samsung/exynos-hotplug_governor.c | 2 +- drivers/staging/samsung/sec_debug_test.c | 4 +- drivers/staging/sti/abc/abc_common.c | 2 +- drivers/trace/exynos-ss.c | 2 + .../usb/gadget/function/f_conn_gadget.ioctl.h | 2 - .../video/fbdev/exynos/dpu_9810/decon_core.c | 5 +- drivers/vision/iva/iva_rt_table.c | 2 +- include/linux/cpu_cooling.h | 3 - include/linux/gpu_cooling.h | 3 - include/linux/thermal.h | 3 + scripts/dtbtool_exynos/dtbtool | Bin 31608 -> 0 bytes 36 files changed, 178 insertions(+), 57 deletions(-) delete mode 100755 scripts/dtbtool_exynos/dtbtool diff --git a/.gitignore b/.gitignore index 4105cfbd6f26..5554c8d5528d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,23 @@ # NOTE! Please use 'git ls-files -i --exclude-standard' # command after changing this file, to see if there are # any tracked files which get ignored after the change. + +# +# DTB +# +arch/arm64/boot/dtb.img +scripts/dtbtool_exynos/dtbtool +arch/arm64/boot/dts/exynos/*dtb* +arch/arm64/kernel/vdso32/vdso.lds +arch/arm64/kernel/vdso32/vdso.so.raw +scripts/fmp/__pycache__ +firmware/five/ffffffff000000000000000000000072.tlbin + +# +# Gator +# +drivers/gator_5.27/generated_gator_src_md5.h + # # Normal rules # diff --git a/Makefile b/Makefile index ba17e0b7f7e9..15bd4b7e02ed 100644 --- a/Makefile +++ b/Makefile @@ -344,7 +344,7 @@ include scripts/Kbuild.include AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld LDGOLD = $(CROSS_COMPILE)ld.gold -CC = $(CROSS_COMPILE)gcc +CC ?= $(CONFIG_CC:"%"=%) CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm @@ -530,8 +530,8 @@ endif ifeq ($(cc-name),clang) ifneq ($(CROSS_COMPILE),) -CLANG_TRIPLE ?= $(CROSS_COMPILE) -CLANG_FLAGS += --target=$(notdir $(CLANG_TRIPLE:%-=%)) +CLANG_TRIPLE ?= $(CONFIG_CLANG_TRIPLE:"%"=%) +CLANG_FLAGS += --target=$(notdir $(CLANG_TRIPLE:%-=%)) -DCC_USE_CLANG ifeq ($(shell $(srctree)/scripts/clang-android.sh $(CC) $(CLANG_FLAGS)), y) $(error "Clang with Android --target detected. Did you specify CLANG_TRIPLE?") endif @@ -542,6 +542,7 @@ endif ifneq ($(GCC_TOOLCHAIN),) CLANG_FLAGS += --gcc-toolchain=$(GCC_TOOLCHAIN) endif +KBUILD_CFLAGS += -Wno-sizeof-pointer-div CLANG_FLAGS += -no-integrated-as CLANG_FLAGS += -Werror=unknown-warning-option KBUILD_CFLAGS += $(CLANG_FLAGS) diff --git a/arch/arm64/configs/exynos9810-star2lte_defconfig b/arch/arm64/configs/exynos9810-star2lte_defconfig index 0e7930da2b55..61e39c9740c8 100644 --- a/arch/arm64/configs/exynos9810-star2lte_defconfig +++ b/arch/arm64/configs/exynos9810-star2lte_defconfig @@ -219,7 +219,7 @@ CONFIG_SLUB=y CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_DEFERRED_INITCALLS=y -CONFIG_PROFILING=y +# CONFIG_PROFILING is not set CONFIG_TRACEPOINTS=y # CONFIG_JUMP_LABEL is not set # CONFIG_UPROBES is not set @@ -2972,7 +2972,7 @@ CONFIG_MEDIA_SUBDRV_AUTOSELECT=y # ARM GPU Configuration # CONFIG_MALI_MIDGARD=y -CONFIG_MALI_GATOR_SUPPORT=y +# CONFIG_MALI_GATOR_SUPPORT is not set # CONFIG_MALI_MIDGARD_DVFS is not set CONFIG_MALI_MIDGARD_ENABLE_TRACE=y # CONFIG_MALI_DEVFREQ is not set @@ -2982,6 +2982,7 @@ CONFIG_MALI_EXPERT=y # CONFIG_MALI_PRFCNT_SET_SECONDARY is not set CONFIG_MALI_PLATFORM_THIRDPARTY=y CONFIG_MALI_PLATFORM_THIRDPARTY_NAME="exynos" +CONFIG_MALI_PLATFORM_NAME="exynos" # CONFIG_MALI_DEBUG is not set # CONFIG_MALI_FENCE_DEBUG is not set # CONFIG_MALI_NO_MALI is not set @@ -2996,6 +2997,7 @@ CONFIG_MALI_SEC_CL_BOOST=y CONFIG_MALI_PM_QOS=y # CONFIG_MALI_BTS_OPTIMIZATION is not set CONFIG_MALI_DEBUG_KERNEL_SYSFS=y +CONFIG_MALI_DDK_VERSION=y CONFIG_MALI_EXYNOS_SECURE_RENDERING=y CONFIG_MALI_THEX=y # CONFIG_MALI_THEX_R5P0 is not set @@ -3006,6 +3008,7 @@ CONFIG_MALI_THEX=y # CONFIG_MALI_THEX_R15P0 is not set # CONFIG_MALI_THEX_R16P0 is not set # CONFIG_MALI_BIFROST_R19P0_Q is not set +# CONFIG_MALI_BIFROST_R26P0 is not set CONFIG_MALI_BIFROST_R32P1=y # CONFIG_MALI_2MB_ALLOC is not set # CONFIG_MALI_SEC_JOB_STATUS_CHECK is not set @@ -3017,9 +3020,42 @@ CONFIG_MALI_REAL_HW=y # CONFIG_MALI_MEMORY_FULLY_BACKED is not set # CONFIG_MALI_DMA_BUF_MAP_ON_DEMAND is not set CONFIG_MALI_DMA_BUF_LEGACY_COMPAT=y +# CONFIG_MALI_ARBITER_SUPPORT is not set +CONFIG_MALI_HW_ERRATA_1485982_NOT_AFFECTED=y +# CONFIG_MALI_GEM5_BUILD is not set CONFIG_MALI_SEC_VK_BOOST=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 + +# +# Platform specific options +# +CONFIG_MALI_EXYNOS_CLOCK=y +CONFIG_MALI_EXYNOS_DVFS=y +CONFIG_MALI_EXYNOS_PM=y +CONFIG_MALI_EXYNOS_RTPM=y +# CONFIG_MALI_EXYNOS_IFPO is not set +CONFIG_MALI_EXYNOS_QOS=y +CONFIG_MALI_EXYNOS_THERMAL=y +CONFIG_MALI_EXYNOS_BTS_MO=y +# CONFIG_MALI_EXYNOS_SECURE_RENDERING_ARM is not set +# CONFIG_MALI_EXYNOS_SECURE_RENDERING_LEGACY is not set +CONFIG_MALI_EXYNOS_DEBUG=y +CONFIG_MALI_EXYNOS_DEVICETREE=y +# CONFIG_MALI_EXYNOS_LLC is not set +CONFIG_MALI_EXYNOS_CL_BOOST=y +# CONFIG_MALI_NOTIFY_UTILISATION is not set +# CONFIG_MALI_TSG is not set +# CONFIG_MALI_EXYNOS_SECURE_SMC_NOTIFY_GPU is not set +# CONFIG_MALI_EXYNOS_WAKEUP_CLOCK_WA is not set +# CONFIG_MALI_EXYNOS_BLOCK_RPM_WHILE_SUSPEND_RESUME is not set +# CONFIG_MALI_SEC_G3D_PEAK_NOTI is not set +CONFIG_MALI_EXYNOS_EHMP=y +# CONFIG_MALI_EXYNOS_UNIT_TESTS is not set +CONFIG_MALI_PRFCNT_SET_PRIMARY=y +# CONFIG_MALI_PRFCNT_SET_TERTIARY is not set +# CONFIG_MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS is not set +# CONFIG_MALI_ARBITRATION is not set # CONFIG_DRM is not set # @@ -5038,12 +5074,12 @@ CONFIG_SENSORS_FINGERPRINT=y # CONFIG_SENSORS_VFS7XXX is not set # CONFIG_SENSORS_VFS8XXX is not set CONFIG_SENSORS_ET5XX=y -CONFIG_GATOR=y +# CONFIG_GATOR is not set # CONFIG_GATOR_DO_NOT_ONLINE_CORES_AT_STARTUP is not set -CONFIG_GATOR_WITH_MALI_SUPPORT=y +# CONFIG_GATOR_WITH_MALI_SUPPORT is not set # CONFIG_GATOR_MALI_4XXMP is not set -CONFIG_GATOR_MALI_MIDGARD=y -CONFIG_GATOR_MALI_MIDGARD_PATH="drivers/gpu/arm/tHEx/r9p0" +# CONFIG_GATOR_MALI_MIDGARD is no set +# CONFIG_GATOR_MALI_MIDGARD_PATH="drivers/gpu/arm/tHEx/r9p0" is not set CONFIG_FIVE_TEE_DRIVER=y # CONFIG_FIVE_USE_EMULATOR is not set CONFIG_FIVE_USE_TRUSTONIC=y @@ -5327,7 +5363,7 @@ CONFIG_FRAME_WARN=4096 # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y @@ -5550,7 +5586,7 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y +# CONFIG_CRYPTO_FIPS is not set CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y @@ -5690,7 +5726,7 @@ CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_CCP is not set CONFIG_EXYNOS_SMU=y CONFIG_EXYNOS_FMP=y -CONFIG_EXYNOS_FMP_FIPS=y +# CONFIG_EXYNOS_FMP_FIPS is not set CONFIG_NODE_FOR_SELFTEST_FAIL=y # CONFIG_PANIC_FOR_SELFTEST_FAIL is not set CONFIG_ASYMMETRIC_KEY_TYPE=y diff --git a/arch/arm64/configs/exynos9810-starlte_defconfig b/arch/arm64/configs/exynos9810-starlte_defconfig index cab7241e3a61..dfe99d66739e 100644 --- a/arch/arm64/configs/exynos9810-starlte_defconfig +++ b/arch/arm64/configs/exynos9810-starlte_defconfig @@ -219,7 +219,7 @@ CONFIG_SLUB=y CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_DEFERRED_INITCALLS=y -CONFIG_PROFILING=y +# CONFIG_PROFILING is not set CONFIG_TRACEPOINTS=y # CONFIG_JUMP_LABEL is not set # CONFIG_UPROBES is not set @@ -2972,7 +2972,7 @@ CONFIG_MEDIA_SUBDRV_AUTOSELECT=y # ARM GPU Configuration # CONFIG_MALI_MIDGARD=y -CONFIG_MALI_GATOR_SUPPORT=y +# CONFIG_MALI_GATOR_SUPPORT is not set # CONFIG_MALI_MIDGARD_DVFS is not set CONFIG_MALI_MIDGARD_ENABLE_TRACE=y # CONFIG_MALI_DEVFREQ is not set @@ -2982,6 +2982,7 @@ CONFIG_MALI_EXPERT=y # CONFIG_MALI_PRFCNT_SET_SECONDARY is not set CONFIG_MALI_PLATFORM_THIRDPARTY=y CONFIG_MALI_PLATFORM_THIRDPARTY_NAME="exynos" +CONFIG_MALI_PLATFORM_NAME="exynos" # CONFIG_MALI_DEBUG is not set # CONFIG_MALI_FENCE_DEBUG is not set # CONFIG_MALI_NO_MALI is not set @@ -2996,6 +2997,7 @@ CONFIG_MALI_SEC_CL_BOOST=y CONFIG_MALI_PM_QOS=y # CONFIG_MALI_BTS_OPTIMIZATION is not set CONFIG_MALI_DEBUG_KERNEL_SYSFS=y +CONFIG_MALI_DDK_VERSION=y CONFIG_MALI_EXYNOS_SECURE_RENDERING=y CONFIG_MALI_THEX=y # CONFIG_MALI_THEX_R5P0 is not set @@ -3006,6 +3008,7 @@ CONFIG_MALI_THEX=y # CONFIG_MALI_THEX_R15P0 is not set # CONFIG_MALI_THEX_R16P0 is not set # CONFIG_MALI_BIFROST_R19P0_Q is not set +# CONFIG_MALI_BIFROST_R26P0 is not set CONFIG_MALI_BIFROST_R32P1=y # CONFIG_MALI_2MB_ALLOC is not set # CONFIG_MALI_SEC_JOB_STATUS_CHECK is not set @@ -3017,9 +3020,42 @@ CONFIG_MALI_REAL_HW=y # CONFIG_MALI_MEMORY_FULLY_BACKED is not set # CONFIG_MALI_DMA_BUF_MAP_ON_DEMAND is not set CONFIG_MALI_DMA_BUF_LEGACY_COMPAT=y +# CONFIG_MALI_ARBITER_SUPPORT is not set +CONFIG_MALI_HW_ERRATA_1485982_NOT_AFFECTED=y +# CONFIG_MALI_GEM5_BUILD is not set CONFIG_MALI_SEC_VK_BOOST=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 + +# +# Platform specific options +# +CONFIG_MALI_EXYNOS_CLOCK=y +CONFIG_MALI_EXYNOS_DVFS=y +CONFIG_MALI_EXYNOS_PM=y +CONFIG_MALI_EXYNOS_RTPM=y +# CONFIG_MALI_EXYNOS_IFPO is not set +CONFIG_MALI_EXYNOS_QOS=y +CONFIG_MALI_EXYNOS_THERMAL=y +CONFIG_MALI_EXYNOS_BTS_MO=y +# CONFIG_MALI_EXYNOS_SECURE_RENDERING_ARM is not set +# CONFIG_MALI_EXYNOS_SECURE_RENDERING_LEGACY is not set +CONFIG_MALI_EXYNOS_DEBUG=y +CONFIG_MALI_EXYNOS_DEVICETREE=y +# CONFIG_MALI_EXYNOS_LLC is not set +CONFIG_MALI_EXYNOS_CL_BOOST=y +# CONFIG_MALI_NOTIFY_UTILISATION is not set +# CONFIG_MALI_TSG is not set +# CONFIG_MALI_EXYNOS_SECURE_SMC_NOTIFY_GPU is not set +# CONFIG_MALI_EXYNOS_WAKEUP_CLOCK_WA is not set +# CONFIG_MALI_EXYNOS_BLOCK_RPM_WHILE_SUSPEND_RESUME is not set +# CONFIG_MALI_SEC_G3D_PEAK_NOTI is not set +CONFIG_MALI_EXYNOS_EHMP=y +# CONFIG_MALI_EXYNOS_UNIT_TESTS is not set +CONFIG_MALI_PRFCNT_SET_PRIMARY=y +# CONFIG_MALI_PRFCNT_SET_TERTIARY is not set +# CONFIG_MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS is not set +# CONFIG_MALI_ARBITRATION is not set # CONFIG_DRM is not set # @@ -5037,12 +5073,12 @@ CONFIG_SENSORS_FINGERPRINT=y # CONFIG_SENSORS_VFS7XXX is not set # CONFIG_SENSORS_VFS8XXX is not set CONFIG_SENSORS_ET5XX=y -CONFIG_GATOR=y +# CONFIG_GATOR is not set # CONFIG_GATOR_DO_NOT_ONLINE_CORES_AT_STARTUP is not set -CONFIG_GATOR_WITH_MALI_SUPPORT=y +# CONFIG_GATOR_WITH_MALI_SUPPORT is not set # CONFIG_GATOR_MALI_4XXMP is not set -CONFIG_GATOR_MALI_MIDGARD=y -CONFIG_GATOR_MALI_MIDGARD_PATH="drivers/gpu/arm/tHEx/r9p0" +# CONFIG_GATOR_MALI_MIDGARD is no set +# CONFIG_GATOR_MALI_MIDGARD_PATH="drivers/gpu/arm/tHEx/r9p0" is not set CONFIG_FIVE_TEE_DRIVER=y # CONFIG_FIVE_USE_EMULATOR is not set CONFIG_FIVE_USE_TRUSTONIC=y @@ -5326,7 +5362,7 @@ CONFIG_FRAME_WARN=4096 # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y @@ -5549,7 +5585,7 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y +# CONFIG_CRYPTO_FIPS is not set CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y @@ -5689,7 +5725,7 @@ CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_CCP is not set CONFIG_EXYNOS_SMU=y CONFIG_EXYNOS_FMP=y -CONFIG_EXYNOS_FMP_FIPS=y +# CONFIG_EXYNOS_FMP_FIPS is not set CONFIG_NODE_FOR_SELFTEST_FAIL=y # CONFIG_PANIC_FOR_SELFTEST_FAIL is not set CONFIG_ASYMMETRIC_KEY_TYPE=y diff --git a/arch/arm64/crypto/first_file_asm.c b/arch/arm64/crypto/first_file_asm.c index 71527f229242..04959ada9dd8 100644 --- a/arch/arm64/crypto/first_file_asm.c +++ b/arch/arm64/crypto/first_file_asm.c @@ -4,5 +4,9 @@ const unsigned char first_crypto_asm_rodata = 0x10; __attribute__ ((section(".text"), unused)) void first_crypto_asm_text(void){} +#ifdef CC_USE_CLANG +__attribute__ ((section(".init.text"), unused)) +#else __attribute__ ((section(".init.text"), optimize("-O0"), unused)) +#endif static void first_crypto_asm_init(void){}; diff --git a/arch/arm64/crypto/last_file_asm.c b/arch/arm64/crypto/last_file_asm.c index 9f28aa9c0fe8..15ca6dde0663 100644 --- a/arch/arm64/crypto/last_file_asm.c +++ b/arch/arm64/crypto/last_file_asm.c @@ -4,5 +4,9 @@ const unsigned char last_crypto_asm_rodata = 0x20; __attribute__ ((section(".text"), unused)) void last_crypto_asm_text(void){} +#ifdef CC_USE_CLANG +__attribute__ ((section(".init.text"), unused)) +#else __attribute__ ((section(".init.text"), optimize("-O0"), unused)) +#endif static void last_crypto_asm_init(void){}; diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h index 1abad2315fa9..38b505c838e6 100644 --- a/arch/arm64/include/asm/percpu.h +++ b/arch/arm64/include/asm/percpu.h @@ -279,4 +279,4 @@ do { \ #include -#endif /* __ASM_PERCPU_H */ +#endif /* __ASM_PERCPU_H */ \ No newline at end of file diff --git a/crypto/first_file.c b/crypto/first_file.c index c0053f887feb..2e3bad3e0ea9 100644 --- a/crypto/first_file.c +++ b/crypto/first_file.c @@ -4,5 +4,9 @@ const unsigned char first_crypto_rodata = 0x10; __attribute__ ((section(".text"), unused)) void first_crypto_text(void){} +#ifdef CC_USE_CLANG +__attribute__ ((section(".init.text"), unused)) +#else __attribute__ ((section(".init.text"), optimize("-O0"), unused)) +#endif static void first_crypto_init(void){}; diff --git a/crypto/last_file.c b/crypto/last_file.c index e2dec544ae3d..1823bbb5fbe3 100644 --- a/crypto/last_file.c +++ b/crypto/last_file.c @@ -4,5 +4,9 @@ const unsigned char last_crypto_rodata = 0x20; __attribute__ ((section(".text"), unused)) void last_crypto_text(void){} +#ifdef CC_USE_CLANG +__attribute__ ((section(".init.text"), unused)) +#else __attribute__ ((section(".init.text"), optimize("-O0"), unused)) +#endif static void last_crypto_init(void){}; diff --git a/drivers/crypto/fmp/Makefile b/drivers/crypto/fmp/Makefile index 242064d9e25e..ba25a4e358e9 100644 --- a/drivers/crypto/fmp/Makefile +++ b/drivers/crypto/fmp/Makefile @@ -3,7 +3,9 @@ obj-$(CONFIG_EXYNOS_SMU) += smu_dev.o obj-$(CONFIG_EXYNOS_FMP_FIPS) += first_file.o obj-$(CONFIG_EXYNOS_FMP) += fmp_dev.o fmp_lib.o +ifneq ($(CC_USE_CLANG),) CFLAGS_fmp_fips_selftest.o = -fno-merge-constants +endif obj-$(CONFIG_EXYNOS_FMP_FIPS) += fmp_fips_main.o fmp_fips_fops.o fmp_fips_selftest.o \ fmp_fips_integrity.o hmac-sha256.o \ fmp_fips_cipher.o diff --git a/drivers/crypto/fmp/first_file.c b/drivers/crypto/fmp/first_file.c index acb91db114d3..551c6f464518 100644 --- a/drivers/crypto/fmp/first_file.c +++ b/drivers/crypto/fmp/first_file.c @@ -15,5 +15,9 @@ const unsigned char first_fmp_rodata = 0x10; __attribute__ ((section(".text"), unused)) void first_fmp_text(void){} +#ifdef CC_USE_CLANG +__attribute__ ((section(".init.text"), unused)) +#else __attribute__ ((section(".init.text"), optimize("-O0"), unused)) +#endif static void first_fmp_init(void){}; diff --git a/drivers/crypto/fmp/last_file.c b/drivers/crypto/fmp/last_file.c index c0d405d5d829..fc69e1dddb24 100644 --- a/drivers/crypto/fmp/last_file.c +++ b/drivers/crypto/fmp/last_file.c @@ -17,5 +17,9 @@ const unsigned char last_fmp_rodata = 0x20; __attribute__ ((section(".text"), unused)) void last_fmp_text(void){} +#ifdef CC_USE_CLANG +__attribute__ ((section(".init.text"), unused)) +#else __attribute__ ((section(".init.text"), optimize("-O0"), unused)) +#endif static void last_fmp_init(void){}; diff --git a/drivers/gpu/exynos/g2d/g2d_perf.h b/drivers/gpu/exynos/g2d/g2d_perf.h index 96c813292242..1c096db8220f 100644 --- a/drivers/gpu/exynos/g2d/g2d_perf.h +++ b/drivers/gpu/exynos/g2d/g2d_perf.h @@ -14,7 +14,7 @@ */ #ifndef _G2D_PERF_H_ -#define _G2D_PEEF_H_ +#define _G2D_PERF_H_ struct g2d_context; struct g2d_performance_data; diff --git a/drivers/input/touchscreen/sec_ts/sec_ts_fn.c b/drivers/input/touchscreen/sec_ts/sec_ts_fn.c index c3a55bffccaf..847502757518 100644 --- a/drivers/input/touchscreen/sec_ts/sec_ts_fn.c +++ b/drivers/input/touchscreen/sec_ts/sec_ts_fn.c @@ -4771,7 +4771,7 @@ static void clear_cover_mode(void *device_data) #endif } - if (!ts->power_status == SEC_TS_STATE_POWER_OFF && ts->reinit_done) { + if (!(ts->power_status == SEC_TS_STATE_POWER_OFF) && ts->reinit_done) { if (ts->flip_enable) sec_ts_set_cover_type(ts, true); else diff --git a/drivers/media/platform/exynos/fimc-is2/sensor/module/fimc-is-module-3h7_sunny.h b/drivers/media/platform/exynos/fimc-is2/sensor/module/fimc-is-module-3h7_sunny.h index 3e0d1c4106a1..26b73d10351e 100644 --- a/drivers/media/platform/exynos/fimc-is2/sensor/module/fimc-is-module-3h7_sunny.h +++ b/drivers/media/platform/exynos/fimc-is2/sensor/module/fimc-is-module-3h7_sunny.h @@ -10,7 +10,7 @@ */ #ifndef FIMC_IS_DEVICE_3H7_SUNNY_H -#define FIMC_IS_DEVICE_3H7_SYNNY_H +#define FIMC_IS_DEVICE_3H7_SUNNY_H #define SENSOR_S5K3H7_SUNNY_INSTANCE 0 #define SENSOR_S5K3H7_SUNNY_NAME SENSOR_NAME_S5K3H7_SUNNY diff --git a/drivers/media/platform/exynos/fimc-is2/vendor/mcd/fimc-is-sysfs.c b/drivers/media/platform/exynos/fimc-is2/vendor/mcd/fimc-is-sysfs.c index 6092f40877a3..0404ab70968b 100644 --- a/drivers/media/platform/exynos/fimc-is2/vendor/mcd/fimc-is-sysfs.c +++ b/drivers/media/platform/exynos/fimc-is2/vendor/mcd/fimc-is-sysfs.c @@ -244,7 +244,7 @@ static ssize_t camera_ssrm_camera_info_store(struct device *dev, ret_count = sscanf(buf, "%d%d%d%d%d%d%d", &temp.operation, &temp.cameraID, &temp.previewMinFPS, &temp.previewMaxFPS, &temp.previewSizeWidth, &temp.previewSizeHeight, &temp.sensorOn); - if (ret_count > sizeof(SsrmCameraInfo)/sizeof(int)) { + if (ret_count > sizeof(SsrmCameraInfo)/(sizeof(int))) { return -EINVAL; } diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 5103a13d163b..359913551844 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -768,7 +768,7 @@ config PANEL_BOOT_MESSAGE config UID_SYS_STATS bool "Per-UID statistics" - depends on PROFILING && TASK_XACCT && TASK_IO_ACCOUNTING + depends on TASK_XACCT && TASK_IO_ACCOUNTING help Per UID based cpu time statistics exported to /proc/uid_cputime Per UID based io statistics exported to /proc/uid_io diff --git a/drivers/mpsd/mpsd.c b/drivers/mpsd/mpsd.c index 51f837df14a0..55997229cadf 100644 --- a/drivers/mpsd/mpsd.c +++ b/drivers/mpsd/mpsd.c @@ -27,7 +27,6 @@ static atomic_t is_mpsd_enabled = ATOMIC_INIT(0); static atomic_t wakeup_user = ATOMIC_INIT(0); static atomic_t suspend = ATOMIC_INIT(0); -static struct mpsd_device mpsd_dev; static DECLARE_WAIT_QUEUE_HEAD(queue_wait); /** @@ -56,6 +55,8 @@ struct mpsd_device { unsigned int behavior; }; +static struct mpsd_device mpsd_dev; + bool get_mpsd_flag(void) { return (bool)atomic_read(&is_mpsd_enabled); diff --git a/drivers/mpsd/mpsd_read.c b/drivers/mpsd/mpsd_read.c index 51f8f314b826..e8d21c755f59 100644 --- a/drivers/mpsd/mpsd_read.c +++ b/drivers/mpsd/mpsd_read.c @@ -3086,7 +3086,7 @@ static void get_dev_mem_avail(struct dev_params_struct *data) si_meminfo(&meminfo); for (lru = LRU_BASE; lru < NR_LRU_LISTS; lru++) - pages[lru] = global_page_state(NR_LRU_BASE + lru); + pages[lru] = global_node_page_state(NR_LRU_BASE + lru); for_each_zone(zone) wmark_low += zone->watermark[WMARK_LOW]; @@ -3150,7 +3150,7 @@ static void get_dev_mem_cached(struct dev_params_struct *data) si_meminfo(&meminfo); - cached = global_page_state(NR_FILE_PAGES) - total_swapcache_pages() + cached = global_node_page_state(NR_FILE_PAGES) - total_swapcache_pages() - meminfo.bufferram; if (cached < 0) cached = 0; @@ -3243,7 +3243,7 @@ static void get_dev_mem_dirty(struct dev_params_struct *data) } data->mem_dirty = - (long long)global_page_state(NR_FILE_DIRTY); + (long long)global_node_page_state(NR_FILE_DIRTY); } /** @@ -3264,7 +3264,7 @@ static void get_dev_mem_anon_pages(struct dev_params_struct *data) } data->mem_anon_pages = - (long long)global_page_state(NR_ANON_MAPPED); + (long long)global_node_page_state(NR_ANON_MAPPED); } /** @@ -3285,7 +3285,7 @@ static void get_dev_mem_mapped(struct dev_params_struct *data) } data->mem_mapped = - (long long)global_page_state(NR_FILE_MAPPED); + (long long)global_node_page_state(NR_FILE_MAPPED); } /** @@ -3514,7 +3514,7 @@ static void get_dev_mem_params(struct dev_params_struct *dev_params) dev_params->mem_swap_free = (long long)meminfo.freeswap; for (lru = LRU_BASE; lru < NR_LRU_LISTS; lru++) - pages[lru] = global_page_state(NR_LRU_BASE + lru); + pages[lru] = global_node_page_state(NR_LRU_BASE + lru); for_each_zone(zone) wmark_low += zone->watermark[WMARK_LOW]; @@ -3530,7 +3530,7 @@ static void get_dev_mem_params(struct dev_params_struct *dev_params) dev_params->mem_avail = (long long)available; - cached = global_page_state(NR_FILE_PAGES) - total_swapcache_pages() + cached = global_node_page_state(NR_FILE_PAGES) - total_swapcache_pages() - meminfo.bufferram; if (cached < 0) cached = 0; @@ -3538,10 +3538,10 @@ static void get_dev_mem_params(struct dev_params_struct *dev_params) dev_params->mem_cached = (long long)cached; dev_params->mem_swap_cached = (long long)total_swapcache_pages(); - dev_params->mem_dirty = (long long)global_page_state(NR_FILE_DIRTY); + dev_params->mem_dirty = (long long)global_node_page_state(NR_FILE_DIRTY); dev_params->mem_anon_pages = - (long long)global_page_state(NR_ANON_MAPPED); - dev_params->mem_mapped = (long long)global_page_state(NR_FILE_MAPPED); + (long long)global_node_page_state(NR_ANON_MAPPED); + dev_params->mem_mapped = (long long)global_node_page_state(NR_FILE_MAPPED); dev_params->mem_sysheap = -1; dev_params->mem_sysheap_pool = -1; dev_params->mem_vmalloc_api = DEFAULT_PARAM_VAL_INT; diff --git a/drivers/net/wireless/bcmdhd_100_15/dhd_linux_pktdump.c b/drivers/net/wireless/bcmdhd_100_15/dhd_linux_pktdump.c index 7dcf35336f63..b92053976699 100644 --- a/drivers/net/wireless/bcmdhd_100_15/dhd_linux_pktdump.c +++ b/drivers/net/wireless/bcmdhd_100_15/dhd_linux_pktdump.c @@ -160,6 +160,7 @@ typedef struct pkt_cnt_log { #define PKT_CNT_RSN_VALID(rsn) \ (((rsn) > (PKT_CNT_RSN_INVALID)) && ((rsn) < (PKT_CNT_RSN_MAX))) +#ifdef DHD_PKTDUMP_ROAM static const char pkt_cnt_msg[][20] = { "INVALID", "ROAM_SUCCESS", @@ -167,6 +168,7 @@ static const char pkt_cnt_msg[][20] = { "CONNECT_SUCCESS", "INVALID" }; +#endif static const char tx_pktfate[][30] = { "TX_PKT_FATE_ACKED", /* 0: WLFC_CTL_PKTFLAG_DISCARD */ @@ -925,11 +927,13 @@ static char dhcp_types[][10] = { "NA", "DISCOVER", "OFFER", "REQUEST", "DECLINE", "ACK", "NAK", "RELEASE", "INFORM" }; +#ifdef DHD_STATUS_LOGGING static const int dhcp_types_stat[9] = { ST(INVALID), ST(DHCP_DISCOVER), ST(DHCP_OFFER), ST(DHCP_REQUEST), ST(DHCP_DECLINE), ST(DHCP_ACK), ST(DHCP_NAK), ST(DHCP_RELEASE), ST(DHCP_INFORM) }; +#endif void dhd_dhcp_dump(dhd_pub_t *dhdp, int ifidx, uint8 *pktdata, bool tx, diff --git a/drivers/net/wireless/bcmdhd_100_15/wl_android.c b/drivers/net/wireless/bcmdhd_100_15/wl_android.c index b31a85c011c5..45e3616b6515 100644 --- a/drivers/net/wireless/bcmdhd_100_15/wl_android.c +++ b/drivers/net/wireless/bcmdhd_100_15/wl_android.c @@ -8986,7 +8986,7 @@ wl_android_set_adps_mode(struct net_device *dev, const char* string_num) adps_mode = bcm_atoi(string_num); WL_ERR(("%s: SET_ADPS %d\n", __FUNCTION__, adps_mode)); - if ((adps_mode < 0) && (1 < adps_mode)) { + if ((adps_mode < 0) || (1 < adps_mode)) { WL_ERR(("wl_android_set_adps_mode: Invalid value %d.\n", adps_mode)); return -EINVAL; } diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 0a9aeec3146f..fc409ed917ca 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -8818,7 +8818,7 @@ static void ufs_sec_send_errinfo(void *data) { static struct ufs_hba *hba; struct SEC_UFS_counting *err_info; - char buf[22]; + char buf[23]; if (data) { hba = (struct ufs_hba *)data; diff --git a/drivers/sensorhub/brcm/bbdpl/bbd.h b/drivers/sensorhub/brcm/bbdpl/bbd.h index 34f41c8a948f..5c00487e9a9f 100644 --- a/drivers/sensorhub/brcm/bbdpl/bbd.h +++ b/drivers/sensorhub/brcm/bbdpl/bbd.h @@ -19,9 +19,11 @@ #define __BBD_H__ #pragma pack(4) +#ifndef CC_USE_CLANG typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned uint32_t; +#endif union long_union_t { diff --git a/drivers/sensorhub/brcm/factory/light_colorid.h b/drivers/sensorhub/brcm/factory/light_colorid.h index a92022b63fd5..6affc237bf3b 100644 --- a/drivers/sensorhub/brcm/factory/light_colorid.h +++ b/drivers/sensorhub/brcm/factory/light_colorid.h @@ -29,7 +29,7 @@ #define COLOR_ID_PREDEFINED_FILE_LENGTH 65 -#define COLOR_ID_IDS_LENGTH 20 +#define COLOR_ID_IDS_LENGTH 21 #define COLOR_ID_PREDEFINED_FILENAME_LENGTH 30 diff --git a/drivers/soc/samsung/cal-if/exynos9810/cmucal-node.c b/drivers/soc/samsung/cal-if/exynos9810/cmucal-node.c index aa72e35efdcf..ea503bb392ac 100644 --- a/drivers/soc/samsung/cal-if/exynos9810/cmucal-node.c +++ b/drivers/soc/samsung/cal-if/exynos9810/cmucal-node.c @@ -31,7 +31,7 @@ struct cmucal_pll_table pll_shared0_rate_table[] = { }; struct cmucal_pll_table pll_mmc_rate_table[] = { - PLL_RATE_MPSK(825999878, 31, 1, 0, 50412), + PLL_RATE_MPSK(825999878, 31, 1, 0, (short)50412), PLL_RATE_MPSK(26000000, 0, 0, 0, 0), }; diff --git a/drivers/soc/samsung/exynos-hotplug_governor.c b/drivers/soc/samsung/exynos-hotplug_governor.c index 41e76f1cd3da..63a4508cff49 100644 --- a/drivers/soc/samsung/exynos-hotplug_governor.c +++ b/drivers/soc/samsung/exynos-hotplug_governor.c @@ -587,7 +587,7 @@ static struct sched_group * get_cl_group(unsigned int cl) sd = rcu_dereference(per_cpu(sd_ea, 0)); if (!sd) - return false; + return NULL; sg = sd->groups; for (i = 0; i < cl; i++) diff --git a/drivers/staging/samsung/sec_debug_test.c b/drivers/staging/samsung/sec_debug_test.c index 58d3545d4f08..9da697af4c45 100644 --- a/drivers/staging/samsung/sec_debug_test.c +++ b/drivers/staging/samsung/sec_debug_test.c @@ -181,7 +181,7 @@ static void pull_down_other_cpus(void) static void simulate_KP(char *arg) { pr_crit("%s()\n", __func__); - *(unsigned int *)0x0 = 0x0; /* SVACE: intended */ + *(volatile unsigned int *)0x0 = 0x0; /* SVACE: intended */ } static void simulate_DP(char *arg) @@ -315,7 +315,7 @@ static void simulate_WARN(char *arg) static void simulate_DABRT(char *arg) { pr_crit("%s()\n", __func__); - *((int *)0) = 0; /* SVACE: intended */ + *((volatile int *)0) = 0; /* SVACE: intended */ } static void simulate_PABRT(char *arg) diff --git a/drivers/staging/sti/abc/abc_common.c b/drivers/staging/sti/abc/abc_common.c index b912c65c0ae0..5ee834300b71 100644 --- a/drivers/staging/sti/abc/abc_common.c +++ b/drivers/staging/sti/abc/abc_common.c @@ -354,7 +354,7 @@ static void sec_abc_work_func(struct work_struct *work) } sprintf(timestamp, "TIMESTAMP=%lu", ktime_ms); uevent_str[idx++] = ×tamp[0]; - uevent_str[idx] = '\0'; + uevent_str[idx] = NULL; strlcpy(event_type, uevent_str[1] + 6, sizeof(event_type)); ABC_PRINT("event type : %s\n", event_type); diff --git a/drivers/trace/exynos-ss.c b/drivers/trace/exynos-ss.c index ab0218ca525a..0fd15a7022eb 100644 --- a/drivers/trace/exynos-ss.c +++ b/drivers/trace/exynos-ss.c @@ -43,7 +43,9 @@ extern void register_hook_logbuf(void (*)(const char *, size_t)); #endif extern void register_hook_logger(void (*)(const char *, const char *, size_t)); +#ifndef CC_USE_CLANG typedef int (*ess_initcall_t)(const struct device_node *); +#endif struct exynos_ss_interface { struct exynos_ss_log *info_event; diff --git a/drivers/usb/gadget/function/f_conn_gadget.ioctl.h b/drivers/usb/gadget/function/f_conn_gadget.ioctl.h index 2738f58a7a2a..d1c2b1f15492 100644 --- a/drivers/usb/gadget/function/f_conn_gadget.ioctl.h +++ b/drivers/usb/gadget/function/f_conn_gadget.ioctl.h @@ -24,7 +24,6 @@ enum { CONN_GADGET_IOCTL_BIND_STATUS_UNBIND = 2 }; -#if defined(__ANDROID__) || defined(__TIZEN__) enum { CONN_GADGET_IOCTL_NR_0 = 0, CONN_GADGET_IOCTL_NR_1, @@ -41,4 +40,3 @@ enum { #define CONN_GADGET_IOCTL_BIND_GET_STATUS _IOR(CONN_GADGET_IOCTL_MAGIC_SIG, CONN_GADGET_IOCTL_NR_2, int) #define CONN_GADGET_IOCTL_MAX_NR CONN_GADGET_IOCTL_NR_MAX #endif -#endif diff --git a/drivers/video/fbdev/exynos/dpu_9810/decon_core.c b/drivers/video/fbdev/exynos/dpu_9810/decon_core.c index 0f7eeec1c69c..3a5aecef1184 100644 --- a/drivers/video/fbdev/exynos/dpu_9810/decon_core.c +++ b/drivers/video/fbdev/exynos/dpu_9810/decon_core.c @@ -104,8 +104,9 @@ void tracing_mark_write(struct decon_device *decon, char id, char *str1, int val decon_err("%s:argument fail\n", __func__); return; } +#ifdef CONFIG_PROFILING trace_puts(buf); - +#endif } static void decon_dump_using_dpp(struct decon_device *decon) @@ -3541,7 +3542,7 @@ static void decon_parse_dt(struct decon_device *decon) } } - if ((decon->dt.out_type == DECON_OUT_DSI)) { + if (decon->dt.out_type == DECON_OUT_DSI) { te_eint = of_get_child_by_name(decon->dev->of_node, "te_eint"); if (!te_eint) { decon_info("No DT node for te_eint\n"); diff --git a/drivers/vision/iva/iva_rt_table.c b/drivers/vision/iva/iva_rt_table.c index 2b880f7d1a49..9a4c220ce85a 100644 --- a/drivers/vision/iva/iva_rt_table.c +++ b/drivers/vision/iva/iva_rt_table.c @@ -56,7 +56,7 @@ typedef struct _rt_iva_table_t { uint8_t is_updated; uint8_t empty; uint32_t reserved; -} rt_iva_table_t, *rt_iva_table; +} rt_iva_table_t; static inline rt_iva_entry_t *rt_iva_get_first_iva_entry(const rt_iva_table_t *iva_table) { diff --git a/include/linux/cpu_cooling.h b/include/linux/cpu_cooling.h index f0c0fe21de55..5bccdb2c3b85 100644 --- a/include/linux/cpu_cooling.h +++ b/include/linux/cpu_cooling.h @@ -28,9 +28,6 @@ #include #include -typedef int (*get_static_t)(cpumask_t *cpumask, int interval, - unsigned long voltage, u32 *power); - /** * struct cpufreq_cooling_device - data for cooling device with cpufreq * @id: unique integer value corresponding to each cpufreq_cooling_device diff --git a/include/linux/gpu_cooling.h b/include/linux/gpu_cooling.h index e12db2bc3758..67d9ceaaf859 100644 --- a/include/linux/gpu_cooling.h +++ b/include/linux/gpu_cooling.h @@ -31,9 +31,6 @@ #define GPU_TABLE_END ~1 -typedef int (*get_static_t)(cpumask_t *cpumask, int interval, - unsigned long voltage, u32 *power); - #ifdef CONFIG_GPU_THERMAL /** * gpufreq_cooling_register - function to create gpufreq cooling device. diff --git a/include/linux/thermal.h b/include/linux/thermal.h index f5fe8ce49e6b..b88fbc6f90e5 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -75,6 +75,9 @@ struct thermal_zone_device; struct thermal_cooling_device; struct thermal_instance; +typedef int (*get_static_t)(cpumask_t *cpumask, int interval, + unsigned long voltage, u32 *power); + enum thermal_device_mode { THERMAL_DEVICE_DISABLED = 0, THERMAL_DEVICE_ENABLED, diff --git a/scripts/dtbtool_exynos/dtbtool b/scripts/dtbtool_exynos/dtbtool deleted file mode 100755 index 36c52031c6c520fd603ace877d8af78f68141159..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31608 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 R2IK!p8>hG+iy