Skip to content
Snippets Groups Projects
Unverified Commit 292e7422 authored by Tito Ragusa's avatar Tito Ragusa Committed by Oliver Smith
Browse files

oppo-find-7a: linux: various improvements (!580)

* add dev-package
* modularize some kernel drivers
* modernize Makefile to silence some warnings
* fix various warnings
* add some CVE patches

[ci:skip-build]: already built successfully in CI
parent 1544b5da
Branches
No related tags found
No related merge requests found
Pipeline #197119 passed
Showing
with 5091 additions and 163 deletions
--- android_kernel_oppo_msm8974/Makefile.orig 2019-07-03 00:12:18.390452000 +0200
+++ android_kernel_oppo_msm8974/Makefile 2019-08-29 14:25:12.283001293 +0200
@@ -358,13 +358,21 @@ CFLAGS_KERNEL =
AFLAGS_KERNEL =
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
-
+# Use USERINCLUDE when you must reference the UAPI directories only.
+USERINCLUDE := \
+ -I$(srctree)/arch/$(hdr-arch)/include/uapi \
+ -Iarch/$(hdr-arch)/include/generated/uapi \
+ -I$(srctree)/include/uapi \
+ -Iinclude/generated/uapi \
+ -include $(srctree)/include/linux/kconfig.h
+
# Use LINUXINCLUDE when you must reference the include/ directory.
# Needed to be compatible with the O= option
LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include \
-Iarch/$(hdr-arch)/include/generated -Iinclude \
$(if $(KBUILD_SRC), -I$(srctree)/include) \
- -include $(srctree)/include/linux/kconfig.h
+ -include $(srctree)/include/linux/kconfig.h \
+ $(USERINCLUDE)
KBUILD_CPPFLAGS := -D__KERNEL__
@@ -562,13 +570,31 @@ endif # $(dot-config)
# Defaults to vmlinux, but the arch makefile usually adds further targets
all: vmlinux
-KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
+KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
+KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
+KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
+KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
+KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context)
+KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
+KBUILD_CFLAGS += $(call cc-disable-warning, misleading-indentation)
+KBUILD_CFLAGS += $(call cc-disable-warning, duplicate-decl-specifier)
+KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
-KBUILD_CFLAGS += -Os
+KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
+else
+ifdef CONFIG_PROFILE_ALL_BRANCHES
+KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
else
KBUILD_CFLAGS += -O2
endif
+endif
+
+KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \
+ $(call cc-disable-warning,maybe-uninitialized,))
+
+# Tell gcc to never replace conditional load with a non-conditional one
+KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
include $(srctree)/arch/$(SRCARCH)/Makefile
From 28c6631f59b1091df33fcdc8441bdea2aa4033a8 Mon Sep 17 00:00:00 2001
From: anarkia1976 <stefano.villa1976@gmail.com>
Date: Mon, 30 Mar 2015 08:59:44 +0200
Subject: [PATCH] gcc5: sound/soc/codecs/wcd9xxx-mbhc.c fix warning:
initialization discards 'const' qualifier from pointer target type
---
sound/soc/codecs/wcd9xxx-mbhc.c | 2 +-
sound/soc/codecs/wcd9xxx-mbhc.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/wcd9xxx-mbhc.c b/sound/soc/codecs/wcd9xxx-mbhc.c
index c4ed685fe9f..267deaf8739 100644
--- a/sound/soc/codecs/wcd9xxx-mbhc.c
+++ b/sound/soc/codecs/wcd9xxx-mbhc.c
@@ -465,7 +465,7 @@ static s16 wcd9xxx_get_current_v(struct wcd9xxx_mbhc *mbhc,
}
void *wcd9xxx_mbhc_cal_btn_det_mp(
- const struct wcd9xxx_mbhc_btn_detect_cfg *btn_det,
+ struct wcd9xxx_mbhc_btn_detect_cfg *btn_det,
const enum wcd9xxx_mbhc_btn_det_mem mem)
{
void *ret = &btn_det->_v_btn_low;
diff --git a/sound/soc/codecs/wcd9xxx-mbhc.h b/sound/soc/codecs/wcd9xxx-mbhc.h
index 91edacaeac4..dff22bc88cc 100644
--- a/sound/soc/codecs/wcd9xxx-mbhc.h
+++ b/sound/soc/codecs/wcd9xxx-mbhc.h
@@ -440,7 +440,7 @@ int wcd9xxx_mbhc_init(struct wcd9xxx_mbhc *mbhc, struct wcd9xxx_resmgr *resmgr,
bool impedance_det_en);
void wcd9xxx_mbhc_deinit(struct wcd9xxx_mbhc *mbhc);
void *wcd9xxx_mbhc_cal_btn_det_mp(
- const struct wcd9xxx_mbhc_btn_detect_cfg *btn_det,
+ struct wcd9xxx_mbhc_btn_detect_cfg *btn_det,
const enum wcd9xxx_mbhc_btn_det_mem mem);
int wcd9xxx_mbhc_get_impedance(struct wcd9xxx_mbhc *mbhc, uint32_t *zl,
uint32_t *zr);
--
2.21.0
--- android_kernel_oppo_msm8974/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c.orig 2019-07-02 22:24:37.259764000 +0200
+++ android_kernel_oppo_msm8974/drivers/video/msm/mdss/mdss_mdp_intf_cmd.c 2019-08-25 14:52:09.260796927 +0200
@@ -685,10 +685,10 @@ int mdss_mdp_cmd_kickoff(struct mdss_mdp
return -ENODEV;
}
- if (ctx->intf_stopped) {
- pr_err("ctx=%d stopped already\n", ctx->pp_num);
- return -EPERM;
- }
+ //if (ctx->intf_stopped) {
+ // pr_err("ctx=%d stopped already\n", ctx->pp_num);
+ // return -EPERM;
+ //}
mdss_mdp_ctl_perf_set_transaction_status(ctl,
PERF_HW_MDP_STATE, PERF_STATUS_BUSY);
@@ -889,6 +890,7 @@ panel_events:
}
pr_debug("%s: turn off panel\n", __func__);
memset(ctx, 0, sizeof(*ctx));
+ ctx->intf_stopped = 1;
ctl->priv_data = NULL;
ctl->stop_fnc = NULL;
diff --git a/fs/exec.c b/fs/exec.c
index 6be2aa0ab26f..3e8012afe440 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1218,9 +1218,9 @@ static int de_thread(struct task_struct *tsk)
char *get_task_comm(char *buf, struct task_struct *tsk)
{
- /* buf must be at least sizeof(tsk->comm) in size */
+ /* buf must be at least TASK_COMM_LEN in size */
task_lock(tsk);
- strncpy(buf, tsk->comm, sizeof(tsk->comm));
+ strlcpy(buf, tsk->comm, TASK_COMM_LEN);
task_unlock(tsk);
return buf;
}
--- android_kernel_oppo_msm8974/drivers/base/regmap/regcache-rbtree.c.orig 2019-07-02 22:24:34.527751000 +0200
+++ android_kernel_oppo_msm8974/drivers/base/regmap/regcache-rbtree.c 2019-08-13 15:43:15.121024959 +0200
@@ -31,7 +31,7 @@ struct regcache_rbtree_node {
void *block;
/* number of registers available in the block */
unsigned int blklen;
-} __attribute__ ((packed));
+};
struct regcache_rbtree_ctx {
struct rb_root root;
From 0d0246768aa46d69b6cd96a4f71f46f374533d1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc?= <4661917+HacKurx@users.noreply.github.com>
Date: Sat, 1 Dec 2018 18:52:23 +0100
Subject: [PATCH] fix warning of 'vos_mem_compare'
drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c:99:58: warning: passing argument 2 of 'vos_mem_compare' discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers]
---
drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c b/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c
index 9729489d..c6fc8dc2 100644
--- a/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c
+++ b/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c
@@ -77,7 +77,7 @@
// Temporarily (maybe for all of Alpha-1), assuming TIM = 0
//
-const tANI_U8 P2pOui[] = {0x50, 0x6F, 0x9A, 0x9};
+tANI_U8 P2pOui[] = {0x50, 0x6F, 0x9A, 0x9};
tSirRetStatus schGetP2pIeOffset(tANI_U8 *pExtraIe, tANI_U32 extraIeLen, tANI_U16 *pP2pIeOffset)
The related code can be simplified, and also can avoid related warnings
Signed-off-by: Chen Gang <gang.chen.5i5j at gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo at soleta.eu>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
net/netfilter/nfnetlink_cthelper.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c
index 7f035f0772ee..54330fb5efaf 100644
--- a/net/netfilter/nfnetlink_cthelper.c
+++ b/net/netfilter/nfnetlink_cthelper.c
@@ -89,7 +89,7 @@ nfnl_cthelper_parse_tuple(struct nf_conntrack_tuple *tuple,
static int
nfnl_cthelper_from_nlattr(struct nlattr *attr, struct nf_conn *ct)
{
- const struct nf_conn_help *help = nfct_help(ct);
+ struct nf_conn_help *help = nfct_help(ct);
if (attr == NULL)
return -EINVAL;
@@ -97,7 +97,7 @@ nfnl_cthelper_from_nlattr(struct nlattr *attr, struct nf_conn *ct)
if (help->helper->data_len == 0)
return -EINVAL;
- memcpy(&help->data, nla_data(attr), help->helper->data_len);
+ memcpy(help->data, nla_data(attr), help->helper->data_len);
return 0;
}
From 58e989760f0bd01822b3a16ac7ea4906b7f9374c Mon Sep 17 00:00:00 2001
From: SiddheshK15 <kolisiddhesh@gmail.com>
Date: Sat, 2 May 2015 23:31:26 +0530
Subject: [PATCH] gcc5: drivers/staging/prima/CORE/HDD/src/wlan_hdd_wmm.c: fix
warning:logical not is only applied to the left hand side of comparison
Signed-off-by: kirananto <kirananto@gmail.com>
---
drivers/staging/prima/CORE/HDD/src/wlan_hdd_wmm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_wmm.c b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_wmm.c
index dea56c0eb22b..85ca61002b40 100644
--- a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_wmm.c
+++ b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_wmm.c
@@ -876,7 +876,7 @@ static eHalStatus hdd_wmm_sme_callback (tHalHandle hHal,
VOS_TRACE( VOS_MODULE_ID_HDD, WMM_TRACE_LEVEL_ERROR,
"%s: Setup failed, not a QoS AP",
__func__);
- if (!HDD_WMM_HANDLE_IMPLICIT == pQosContext->handle)
+ if ((!HDD_WMM_HANDLE_IMPLICIT) == pQosContext->handle)
{
VOS_TRACE(VOS_MODULE_ID_HDD, WMM_TRACE_LEVEL_INFO,
"%s: Explicit Qos, notifying userspace",
From a4c4914ebf40413c38f955236a8e139085328778 Mon Sep 17 00:00:00 2001
From: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
Date: Mon, 1 May 2017 15:52:29 -0700
Subject: [PATCH] ion: fix logical-not comparison warning
Fixes compiler warning when a logical-not on a variable
is applied while comparing it with value zero.
Change-Id: I92aa16bd0d57a0d59ecd26eef1ac92220332998d
Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org>
---
drivers/staging/android/ion/ion.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/ion/ion.c b/drivers/gpu/ion/ion.c
index 56508266d59d..1cf5962f1249 100644
--- a/drivers/gpu/ion/ion.c
+++ b/drivers/gpu/ion/ion.c
@@ -704,7 +704,7 @@ static void user_ion_free_nolock(struct ion_client *client,
WARN(1, "%s: invalid handle passed to free.\n", __func__);
return;
}
- if (!handle->user_ref_count > 0) {
+ if (handle->user_ref_count == 0) {
WARN(1, "%s: User does not have access!\n", __func__);
return;
}
--
2.21.0
From e0ed96b93d2428834b23265903dfa3b6e1ccc431 Mon Sep 17 00:00:00 2001
From: sub77 <sub77@ymail.com>
Date: Wed, 10 Feb 2016 12:07:37 +0100
Subject: [PATCH] gcc5: drivers/video/msm/mdss/mdss_mdp_pp.c: fix warning:
comparison of constant '15' with boolean expression is always false
---
drivers/video/msm/mdss/mdss_mdp_pp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/msm/mdss/mdss_mdp_pp.c b/drivers/video/msm/mdss/mdss_mdp_pp.c
index ea133ee2a9f..3c97e086f79 100644
--- a/drivers/video/msm/mdss/mdss_mdp_pp.c
+++ b/drivers/video/msm/mdss/mdss_mdp_pp.c
@@ -4173,7 +4173,7 @@ int mdss_mdp_ad_input(struct msm_fb_data_type *mfd,
mutex_lock(&ad->lock);
if ((!PP_AD_STATE_IS_INITCFG(ad->state) &&
!PP_AD_STS_IS_DIRTY(ad->sts)) &&
- !input->mode == MDSS_AD_MODE_CALIB) {
+ input->mode == MDSS_AD_MODE_CALIB) {
pr_warn("AD not initialized or configured.");
ret = -EPERM;
goto error;
--
2.21.0
......@@ -3,15 +3,16 @@
pkgname="linux-oppo-find-7a"
pkgver=3.4.113
pkgrel=2
pkgrel=3
pkgdesc="OPPO Find 7a kernel fork"
arch="armv7"
_carch="arm"
_flavor="oppo-find-7a"
_abi_release=$pkgver
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps"
makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-libelf devicepkg-dev dtbtool xz"
makedepends="perl sed installkernel bash gmp-dev bc elfutils-libelf devicepkg-dev dtbtool xz"
# Compiler: latest GCC from Alpine
HOSTCC="${CC:-gcc}"
......@@ -29,7 +30,21 @@ source="
kernel-use-the-gnu89-standard-explicitly.patch
0001-fix-video-argb-setting.patch
0002-mdss_fb.patch
0003_Makefile_fix_and_disable_ggc_warnings.patch
0004_3.4_android_CVE_d3752ba7de67976f5f09a7bb2b74d4298eb32f8b.patch
0005_wcd9xxx_warning_fix_28c6631f59b1091df33fcdc8441bdea2aa4033a8.patch
0006_mdss_stop_log_flood.patch
0007_get_task_warning.patch
0008_regcache_rbtree_node_warning.patch
0009_vos_mem_compare_warning.patch
0010_nfnl_cthelper_from_nlattr_warning.patch
0011_wlan_hdd_wmm_fix_warning.patch
0012_ion_warning_a4c4914ebf40413c38f955236a8e139085328778.patch
0013_mdss_mdp_pp_warning_e0ed96b93d2428834b23265903dfa3b6e1ccc431.patch
"
subpackages="$pkgname-dev"
builddir="$srcdir/${_repository}-${_commit}"
prepare() {
......@@ -68,12 +83,43 @@ package() {
# Master DTB (deviceinfo_bootimg_qcdt)
install -Dm644 "$builddir/arch/arm/boot/dt.img" \
"$pkgdir/boot/dt.img"
cd "$builddir"
make -j1 modules_install ARCH="$_carch" INSTALL_MOD_PATH="$pkgdir"
}
dev() {
pkgdesc="Headers and script for third party modules for $pkgname kernel"
depends="gmp-devbash perl"
cd "$builddir"
local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}
mkdir -p "$dir"
make -j1 headers_install ARCH="$_carch" INSTALL_HDR_PATH="$dir"
mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
install -Dm644 "$builddir"/Module.symvers \
"$subpkgdir"/lib/modules/${_abi_release}/Module.symvers
ln -sf /usr/src/linux-headers-${_abi_release} \
"$subpkgdir"/lib/modules/${_abi_release}/build
}
sha512sums="e3fa1f9ab51a2b6213b9abaa3bb5e010fd2c41e98f572022fcfff66f17fc3639e1b29184b923c437ab4ed3411feb7e5667303304600fac3e929793c10a16daa2 linux-oppo-find-7a-60e8a8df2d253b053cdac10a0ffd196b7b9c3925.tar.gz
30134ad4cbd9cc3c906425847dbc095b4db37011e98d0c200bb7bd4fc8c6bb468f7537b2f77e542ae401c65c75feed9e16abde1d8d9787f83131684c5a52c8bc config-oppo-find-7a.armv7
4604900b231262bab6e73160d79e69313c6379278bff700b34be07c843daa6b1e1790f497524ff92549d81cb7ccd2ac42a4a2de0f849460daa25ff37116dbcae config-oppo-find-7a.armv7
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
ad0182a483791fc88e058838bc331b2f04a75ba291e763767babdb815efadfc3b4fda97e69e2e3f00a426cabea088e35297a92bd287592597d1e309be68ee92c kernel-use-the-gnu89-standard-explicitly.patch
a48336bbfead6ad0c84d2fce0c40a3f5530aebdff356a6835cceaf59a50a6f860d2f8027703a92927955fbb18857ba78788e010d017bf67730f069b36e96fe87 0001-fix-video-argb-setting.patch
5b3aabb59ae7a06c4c13668dde2033be477116626a423c4828e53330afebf8e07fc907a3add193f9dc263a6c9a80771475703e5d4c28a9bddd0597e2a8cd9b89 0002-mdss_fb.patch"
5b3aabb59ae7a06c4c13668dde2033be477116626a423c4828e53330afebf8e07fc907a3add193f9dc263a6c9a80771475703e5d4c28a9bddd0597e2a8cd9b89 0002-mdss_fb.patch
a4e9a5f901f741f9fdf1d6d077d445ba80ea84344203dd62cd97010b44da0f2754be93d11676f808600cd98f665abb01a450c3ab6c41483ab7f0a749562f62fb 0003_Makefile_fix_and_disable_ggc_warnings.patch
b908cbc66e801ca03db4a41e6e3a27715a6d9c6d89f8dfc4fd991fbe8a626f536055421be0d807e803692396c0e738d3ec0bb8a8212ea21b4099436b164600ed 0004_3.4_android_CVE_d3752ba7de67976f5f09a7bb2b74d4298eb32f8b.patch
2a8d2f0034629d3a9ea688e05592dcc129756e34bd9d330e1cd359661321dc21516f2c3e1a61fa68559abd879abe672e75bf2c2569c1806db669a4962f32df53 0005_wcd9xxx_warning_fix_28c6631f59b1091df33fcdc8441bdea2aa4033a8.patch
cd3bd996d5f12a40dee0d7ce67189072b18827def2821e60d89a1c8aad076adaab84c379da696e9418ca89adc84d9d242f49873f2222e520b5c14e229eec19e7 0006_mdss_stop_log_flood.patch
d6cc918e339974d2fc0bd92668f82f7dd339d5566fe7ab28a3a8b863992524fb10170a701ef0f0100fce6dfd1e500c272cc590b0a86705bf61902cda2740da6b 0007_get_task_warning.patch
797807fc211415bc885d843c29628e0cba1cc347331bb0ad69cad20962dc91e045c43c449870c17ba370573425f09d67b4fb9553157814c49fad43ffef2e0c3a 0008_regcache_rbtree_node_warning.patch
78ad23c9990ab04316b8576f45b35977fce8d37df3fa3a1989841e16c3d4eb98ec56056d4534f2281772ddc023c7b727d1495dcec7458422daaab5b6c3d462fa 0009_vos_mem_compare_warning.patch
d55d47b737407c7b4842bbf0f126377cc59e2079e376d64708e18358a16c2e749e751df8b75be72cff3a613b4af36342f23d8a563845b3b84689ffc9b209270e 0010_nfnl_cthelper_from_nlattr_warning.patch
2291830da4c7fbd1df86ad4bae3e4b6fd1254d23ad59854d6ce6d375be894f6c54ff5fd63478dea215367a361623662dbef495ca2c0e353bcdcc9c0d4e2357cd 0011_wlan_hdd_wmm_fix_warning.patch
c58507768810803fa00f728d998d9f189d10df6a948945e5e6b43b547765cc528d93e0aac6ba0516a5e54bae3cbc69430374ec6e94f861b82a669b506d168a61 0012_ion_warning_a4c4914ebf40413c38f955236a8e139085328778.patch
bb8dceda93d637978ebd255ce3fa68c1b65525ae27181d3e6bf438b76581fe3bbbec03ed55a3d2d0309072a763dfde544026715dfec34c537fff978cb5aaba28 0013_mdss_mdp_pp_warning_e0ed96b93d2428834b23265903dfa3b6e1ccc431.patch"
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment