Commit graph

883,295 commits

Author SHA1 Message Date
Sangmoon Kim
2ea974a00c ANDROID: workqueue: add vendor hook for wq lockup information
- Add the hook to provide additional information like
   a task scheduling log.

Bug: 169374262

Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
Change-Id: I203dbc6faa77687ea48769f76658d28b29ef46fd
2020-10-05 10:27:15 +09:00
John Stultz
d240b6929c ANDROID: db845c_gki.fragment: Add missing qcom drivers required for cpufreq functionality
Some additional drivers are now needed for cpufreq to work, so
add them to the db845c_gki.fragment

Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Ie126f4613b9e5e31c9862d3d4b9c2afb4a5562e6
Bug: 146449535
2020-09-30 22:10:23 +00:00
Mayank Grover
81e694dedc ANDROID: ABI: update allowed list for QCOM
Update the android/abi_gki_aarch64_qcom with recent symbol additions.

Simple change and no need to update the .xml file, as no new symbol
addition.

Bug: 169739756
Change-Id: I3e992c3ecf4a06eed4b3459cb6343cc5a4f8941d
Signed-off-by: Mayank Grover <groverm@codeaurora.org>
2020-09-30 18:03:33 +05:30
wangting11
de645857ee ANDROID: GKI: add allowed list file for xiaomi
add abi_gki_aarch64_xiaomi

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 2 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

2 Added functions:

  [A] 'function int __kfifo_from_user(__kfifo*, void*, unsigned long int, unsigned int*)'
  [A] 'function int kobject_set_name(kobject*, const char*, ...)'

Bug: 169498251
Change-Id: I43d9c59e8833e76f943e3d1df066165e2fd60dc2
Signed-off-by: wangting11 <wangting11@xiaomi.com>
2020-09-30 12:02:30 +08:00
Daniel Mentz
2318165502 ANDROID: Disable kthread delayed work fp check in CFI builds
With non-canonical CFI, LLVM generates jump table entries for external
symbols in modules and as a result, a function pointer passed from a
module to the core kernel will have a different address.

Disable the warning for now.

Bug: 145210207
Signed-off-by: Daniel Mentz <danielmentz@google.com>
Change-Id: I576a07206a465902773481e51a84529f0ac2e84b
2020-09-29 15:26:34 +00:00
Mayank Grover
f4c28ebfcd ANDROID: ABI: update allowed list for QCOM
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function void hrtimer_init_sleeper(hrtimer_sleeper*, clockid_t, hrtimer_mode)'

Bug: 169648430
Change-Id: I3dd359f8af64fbca2ef364becfb4b1f5f75510c0
Signed-off-by: Mayank Grover <groverm@codeaurora.org>
2020-09-29 17:41:47 +05:30
Abhilasha Rao
92bfdf631e ANDROID: GKI: pid: Export for find_task_by_vpid
- Add EXPORT_SYMBOL_GPL for find_task_by_vpid() so that drivers
    can be loadable as a module.

    - This API is required by loadable driver module from samsung to
    read process related information based on pid and thread id.
    To get information on when a certain process or thread was started,
    duration of run, Average load contributed by it.

Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I0db9cc50c93eedff0f3e9dea0ac09a5d17d118f0
(cherry picked from commit bee18dd57e89f4e7aa79f6054b9238b99e45c191)
2020-09-28 18:10:49 +00:00
Abhilasha Rao
6765da7d2c ANDROID: GKI: core: Export for runqueues
- Add EXPORT_SYMBOL_GPL for runqueues().

    - This API is required by loadable driver module,to get number of
    jobs in the run queue (state R) or waiting for disk I/O (state D)
    averaged over 1 min.

Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I3e80a46bef2e7c92714b68cc5b6b617ac50bc478
(cherry picked from commit 6b0a9dc6df8d8be21c8d178a01e0711b0fe6ce73)
2020-09-28 18:10:39 +00:00
Abhilasha Rao
9b5925ce78 ANDROID: GKI: time: Export for nsec_to_clock_t
- Add EXPORT_SYMBOL_GPL for nsec_to_clock_t() so that drivers
    be loadable as a module.

    - This API is required by loadable driver module from samsung to
    fetch process uptime based on CPU clock ticks to get the exact time
    during which app is scheduled in user mode.
Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I45be5fd7873dc7c21aa583313499f48f8b10bb1b
(cherry picked from commit 0575bec804810d9b8abf533c4ef4a957968553fc)
2020-09-28 18:10:29 +00:00
Abhilasha Rao
c283224524 ANDROID: GKI: signal: Export for __lock_task_sighand
- Add EXPORT_SYMBOL_GPL for __lock_task_sighand()

    - This API is required by loadable driver module from samsung to
      Lock task structure, when reading task/process related information.

Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: Ia54e17b1f2630bcc648e7840cf36e743f08ba9c9
(cherry picked from commit a719abf03114cfc0b9f68937d9cd900d74d65cae)
2020-09-28 18:10:21 +00:00
Abhilasha Rao
91c336eebe ANDROID: GKI: cputime: Export for thread_group_cputime_adjusted
- Add EXPORT_SYMBOL_GPL for thread_group_cputime_adjusted()
    to allow drivers to be loadable as a module.

    - This API is required by loadable driver module from samsung
    to fetch process uptime based on CPU clock ticks to get the
    exact duration of time app is scheduled in user mode.

Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I1843de08edf5bb2eee806845f4b5e0a305da5fe7
(cherry picked from commit bf679b941237ae76d0bba8d98e670819e029847a)
2020-09-28 18:10:12 +00:00
Abhilasha Rao
a4b35b7869 ANDROID: GKI: loadavg: Export for get_avenrun
- Add EXPORT_SYMBOL_GPL for get_avenrun() so that drivers
    be loadable as a module.

    - This API is required by loadable driver module
    to get Number of jobs in the run queue  (state R) or waiting
    for disk I/O(state D) averaged over 1 min.

Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Signed-off-by: Todd Kjos <tkjos@google.com>
Bug: 158067689
Change-Id: I56c12c908be068f78e16004df876be3bee0e7229
(cherry picked from commit 64ea6f327359a90eca8ec9fe2a8f0caba0188e45)
2020-09-28 18:10:02 +00:00
Matthias Maennich
527c28ed21 ANDROID: Refresh ABI.xmls with libabigail 1.8.0-98bbf30d
This adds missing anonymous to union types, creating some one-time
churn.

Bug: 167563393
Change-Id: I08f55d48793870c6a82ff2c76d3460733ffdbe41
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-09-28 17:55:13 +00:00
Yun Hsiang
1642b4f813 ANDROID: sched: add cpumask parameter to cpu capacity vendor hook
Different cpu type will have different suppression ration.
So we add cpumask parameter to cpu capacity vendor hook.

Bug: 167126223

Signed-off-by: Yun Hsiang <yun.hsiang@mediatek.com>
Change-Id: I983a3aca2195f7c37c43d31fa588c999a825ee49
2020-09-28 16:04:11 +00:00
黄烁生
2d498bbf53 ANDROID: ABI: Added symbols for allwinner
Leaf changes summary: 4 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 4 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

4 Added functions:

  [A] 'function device_node* dev_pm_opp_of_get_opp_desc_node(device*)'
  [A] 'function void dev_pm_opp_put_prop_name(opp_table*)'
  [A] 'function void dev_pm_opp_put_supported_hw(opp_table*)'
  [A] 'function opp_table* dev_pm_opp_set_prop_name(device*, const char*)'

Bug: 169550958
Signed-off-by: huangshuosheng <huangshuosheng@SWCExdroid03.allwinnertech.com>
Signed-off-by: Frank Lee <frank@allwinnertech.com>
Change-Id: I5b97ea1e58825918e19e530fdc9bbda9682ab621
2020-09-28 20:23:09 +08:00
Greg Kroah-Hartman
605376176c ANDROID: ABI: Update allowed list for EXYNOS
Update the android/abi_gki_aarch64_exynos with recent symbol additions.

Note, no new symbols are needed to be exported here, making this a
simple change and no need to update the .xml file.

Bug: 168666574
Signed-off-by: Jaehyoung Choi <jkkkkk.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibe92486f6f84163990b65c75be96236f76f8af1e
2020-09-27 11:59:13 +02:00
Raghavendra Rao Ananta
e1cc5b3eb6 ANDROID: ABI: Update allowed list for QCOM
Add the following symbols to QCOM allowed-list:
- __cfi_slowpath
- of_find_i2c_device_by_node

Bug: 169419618
Change-Id: Ief629d53312c8d843361261454d77638438da6f3
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
2020-09-25 13:45:35 -07:00
Will McVicker
b8f04a0f4a ANDROID: drop KERNEL_DIR setting in build.config.common
And replace many references of ${ROOT_DIR}/common with
${ROOT_DIR}/${KERNEL_DIR}, which makes it a lot easier
to branch off of ACK and update the KERNEL_DIR.

The variable of KERNEL_DIR will be set in build/_setup_env.sh
to the directory of the build config file by default if it's
not set explicitly in the build config file or in environment.

Test: build test with following configs
        common/build.config.gki.aarch64
        common/build.config.db845c
        common/build.config.hikey960
        common-modules/virtual-device/build.config.cuttlefish.aarch64
        common-modules/virtual-device/build.config.goldfish.aarch64

Bug: 162785964
Change-Id: I790ac0ded10bd790484f14c6f93d53e06c38b830
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
(cherry picked from commit 931718fa65fe5e34d143250c048f591a7d74e5f8)
2020-09-25 14:50:31 +08:00
Raghavendra Rao Ananta
e32adae0a6 ANDROID: ABI: Update allowed list for QCOM
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added
function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added
variable

1 Added function:

  [A] 'function int check_zeroed_user(void*, unsigned long int)'

Bug: 169321538
Change-Id: Iaa693ec807daf12485d14c54a7205b4703c12de7
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
2020-09-24 11:22:02 -07:00
Greg Kroah-Hartman
7dded4ebf0 Revert "UPSTREAM: ehci-hcd: Move include to keep CRC stable"
Revert submission 1437052

Reason for revert: ABI is changed.  While is is correct, we will hold off doing this for another week.

Reverted Changes:
Iae19ae10f:UPSTREAM: ehci-hcd: Move include to keep CRC stabl...
I85a933434:ANDROID: Update android/abi_gki_aarch64.xml

Change-Id: I2859f7b3ffa293371f842c01ecf433a84d5e1179
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-09-24 16:22:26 +00:00
Greg Kroah-Hartman
a24fabe78a Revert "ANDROID: Update android/abi_gki_aarch64.xml"
Revert submission 1437052

Reason for revert: ABI is changed.  While is is correct, we will hold off doing this for another week.

Reverted Changes:
Iae19ae10f:UPSTREAM: ehci-hcd: Move include to keep CRC stabl...
I85a933434:ANDROID: Update android/abi_gki_aarch64.xml

Change-Id: If22472924ae1a42956123806eeb4fed750db5204
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-09-24 16:21:58 +00:00
Quentin Perret
9ed03658fe ANDROID: Update android/abi_gki_aarch64.xml
Leaf changes summary: 5 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 5 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

5 functions with some sub-type change:

  [C] 'function int ehci_handshake(ehci_hcd*, void*, u32, u32, int)' at ehci-hcd.c:148:1 has some sub-type changes:

    CRC value (modversions) changed from 0xab5f23a3 to 0xe32dc66c

  [C] 'function void ehci_init_driver(hc_driver*, const ehci_driver_overrides*)' at ehci.h:879:1 has some sub-type changes:

    CRC value (modversions) changed from 0x70c01a65 to 0x5bd6ac93

  [C] 'function int ehci_resume(usb_hcd*, bool)' at ehci.h:887:1 has some sub-type changes:

    CRC value (modversions) changed from 0x51dbddda to 0xa250ac83

  [C] 'function int ehci_setup(usb_hcd*)' at ehci.h:881:1 has some sub-type changes:

    CRC value (modversions) changed from 0x175f644c to 0xda517721

  [C] 'function int ehci_suspend(usb_hcd*, bool)' at ehci-hcd.c:1085:1 has some sub-type changes:

    CRC value (modversions) changed from 0x3afe7f3 to 0x5a7df441

Bug: 167230325
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: I85a93343482eacce6e989f545dcd89432ad70c85
2020-09-24 13:56:52 +01:00
Quentin Perret
ce50287a2b UPSTREAM: ehci-hcd: Move include to keep CRC stable
The CRC calculation done by genksyms is triggered when the parser hits
EXPORT_SYMBOL*() macros. At this point, genksyms recursively expands the
types of the function parameters, and uses that as the input for the CRC
calculation. In the case of forward-declared structs, the type expands
to 'UNKNOWN'. Following this, it appears that the result of the
expansion of each type is cached somewhere, and seems to be re-used
when/if the same type is seen again for another exported symbol in the
same C file.

Unfortunately, this can cause CRC 'stability' issues when a struct
definition becomes visible in the middle of a C file. For example, let's
assume code with the following pattern:

    struct foo;

    int bar(struct foo *arg)
    {
	/* Do work ... */
    }
    EXPORT_SYMBOL_GPL(bar);

    /* This contains struct foo's definition */
    #include "foo.h"

    int baz(struct foo *arg)
    {
	/* Do more work ... */
    }
    EXPORT_SYMBOL_GPL(baz);

Here, baz's CRC will be computed using the expansion of struct foo that
was cached after bar's CRC calculation ('UNKOWN' here). But if
EXPORT_SYMBOL_GPL(bar) is removed from the file (because of e.g. symbol
trimming using CONFIG_TRIM_UNUSED_KSYMS), struct foo will be expanded
late, during baz's CRC calculation, which now has visibility over the
full struct definition, hence resulting in a different CRC for baz.

The proper fix for this certainly is in genksyms, but that will take me
some time to get right. In the meantime, we have seen one occurrence of
this in the ehci-hcd code which hits this problem because of the way it
includes C files halfway through the code together with an unlucky mix
of symbol trimming.

In order to workaround this, move the include done in ehci-hub.c early
in ehci-hcd.c, hence making sure the struct definitions are visible to
the entire file. This improves CRC stability of the ehci-hcd exports
even when symbol trimming is enabled.

Bug: 167230325
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Quentin Perret <qperret@google.com>
Link: https://lore.kernel.org/r/20200916171825.3228122-1-qperret@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 29231826f3bd65500118c473fccf31c0cf14dbc0)
Change-Id: Iae19ae10feb15fd775076acdd2e0b29d7ccb6b20
2020-09-24 12:47:37 +00:00
Masahiro Yamada
bc93285fae UPSTREAM: kbuild: use CONFIG_CC_VERSION_TEXT to construct LINUX_COMPILER macro
scripts/mkcompile_h runs $(CC) just for getting the version string.
Reuse CONFIG_CC_VERSION_TEXT for optimization.

For GCC, this slightly changes the version string. I do not think it
is a big deal as we do not have the defined format for LINUX_COMPILER.
In fact, the recent commit 4831f7ad6c ("kbuild: mkcompile_h:
Include $LD version in /proc/version") added the linker version.

Bug: 168274246

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 9a950154668729a472d17b8e307d92e7c60f45f7)
Signed-off-by: Mars Lin <marslin@google.com>
Change-Id: I66bac5b44bf764e7c0e432ae17bcdf06d79c96d0
2020-09-24 10:02:57 +00:00
Masahiro Yamada
68aee2bc3d UPSTREAM: kbuild: do not pass $(KBUILD_CFLAGS) to scripts/mkcompile_h
scripts/mkcompile_h uses $(CC) only for getting the version string.

I suspected there was a specific reason why the additional flags were
needed, and dug the commit history. This code dates back to at least
2002 [1], but I could not get any more clue.

Just get rid of it.

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=29f3df7eba8ddf91a55183f9967f76fbcc3ab742

Bug: 168274246

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
(cherry picked from commit 01a6126b5f7efdf75480a2b970377f5724cb885a)
Signed-off-by: Mars Lin <marslin@google.com>
Change-Id: If887ea1e9e43b9ce83bf8fe9cc0db809818c3bb8
2020-09-24 10:02:48 +00:00
Masahiro Yamada
eed9382d52 UPSTREAM: kbuild: ensure full rebuild when the compiler is updated
Commit 21c54b7747 ("kconfig: show compiler version text in the top
comment") added the environment variable, CC_VERSION_TEXT in the comment
of the top Kconfig file. It can detect the compiler update, and invoke
the syncconfig because all environment variables referenced in Kconfig
files are recorded in include/config/auto.conf.cmd

This commit makes it a CONFIG option in order to ensure the full rebuild
when the compiler is updated.

This works like follows:

include/config/kconfig.h contains "CONFIG_CC_VERSION_TEXT" in the comment
block.

The top Makefile specifies "-include $(srctree)/include/linux/kconfig.h"
to guarantee it is included from all kernel source files.

fixdep parses every source file and all headers included from it,
searching for words prefixed with "CONFIG_". Then, fixdep finds
CONFIG_CC_VERSION_TEXT in include/config/kconfig.h and adds
include/config/cc/version/text.h into every .*.cmd file.

When the compiler is updated, syncconfig is invoked because init/Kconfig
contains the reference to the environment variable CC_VERTION_TEXT.
CONFIG_CC_VERSION_TEXT is updated to the new version string, and
include/config/cc/version/text.h is touched.

In the next rebuild, Make will rebuild every files since the timestamp
of include/config/cc/version/text.h is newer than that of target.

Bug: 168274246

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 8b59cd81dc5e724eaea283fa6006985891c7bff4)
Signed-off-by: Mars Lin <marslin@google.com>
Change-Id: Ie52bb8e33b95d0e97998024d28c0d8d7caf8aa59
2020-09-24 10:02:38 +00:00
Yongqin Liu
3a95b9057a ANDROID: abi: update for hikey960
Leaf changes summary: 9 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 9 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

9 Added functions:

  [A] 'function void tcpm_cc_change(tcpm_port*)'
  [A] 'function void tcpm_pd_hard_reset(tcpm_port*)'
  [A] 'function void tcpm_pd_receive(tcpm_port*, const pd_message*)'
  [A] 'function void tcpm_pd_transmit_complete(tcpm_port*, tcpm_transmit_status)'
  [A] 'function tcpm_port* tcpm_register_port(device*, tcpc_dev*)'
  [A] 'function void tcpm_tcpc_reset(tcpm_port*)'
  [A] 'function void tcpm_unregister_port(tcpm_port*)'
  [A] 'function void tcpm_vbus_change(tcpm_port*)'
  [A] 'function usb_role usb_role_switch_get_role(usb_role_switch*)'

and fix insmod failures reported like the following when use the gki kernel:
    [    5.829264] hisi_hikey_usb: Unknown symbol usb_role_switch_get_role (err -2)

    [    7.989462] tcpci: Unknown symbol tcpm_cc_change (err -2)
    [    7.994896] tcpci: Unknown symbol tcpm_tcpc_reset (err -2)
    [    8.000384] tcpci: Unknown symbol tcpm_vbus_change (err -2)
    [    8.005961] tcpci: Unknown symbol tcpm_pd_receive (err -2)
    [    8.011462] tcpci: Unknown symbol tcpm_pd_hard_reset (err -2)
    [    8.017221] tcpci: Unknown symbol tcpm_pd_transmit_complete (err -2)
    [    8.023576] tcpci: Unknown symbol tcpm_register_port (err -2)
    [    8.029323] tcpci: Unknown symbol tcpm_unregister_port (err -2)

Via the following commands:
    $ ./build/abi/bootstrap
    <follow instructions for adding needed path variables>
    $ BUILD_CONFIG=common/build.config.hikey960 build/build_abi.sh --update --print-report
    $ BUILD_CONFIG=common/build.config.gki.aarch64 build/build_abi.sh --update --print-report

Test: boot tested with hikey960 android11 builds

Fixes: bb765ef8427e ("ANDROID: GKI: enable QCOM and HISI UFS drivers")
Fixes: 5625a6460e96 ("ANDROID: GKI: enable CONFIG_TYPEC_TCPM")
Fixes: f82716d6b7 ("ANDROID: hikey960_gki.fragment: Remove UFS and USB bits")

Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
Change-Id: I700cc535d7281ea43b72a5268493656151c77d3d
2020-09-23 18:23:27 +00:00
John Stultz
1d65a4b7a6 ANDROID: dts: hi3660: Fix duplicate adv7533 nodes
The adv7533 node had a duplicate entry in the hi3660.dtsi
which is misplaced as that hardware is board specific and
not soc specific.

A recent changes upstream were backported to -stable which
recently broke the driver from loading properly, so this
patch moves the details from the incorrect node into its
proper place, resolving the issue.

Fixes: 274f4e9c57 ("arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding")
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Iffe78badb08a1a49ed99fb8ab2257cb95e368f3f
(cherry picked from commit 623715b470c6c51e54344a274ca90df19556b56a)
2020-09-23 07:34:28 +00:00
Jack Pham
eaf38dc2bb ANDROID: kallsyms: ignore ThinLTO+CFI hash suffix in kallsyms_lookup_name()
Similar to commit f683c8dc7f ("ANDROID: kallsyms: strip hashes from
static functions with ThinLTO and CFI"), since LLVM adds a hash to
static function names when CONFIG_THINLTO and CFI are enabled, callers
of kallsyms_lookup_name() which aren't aware of the additional suffix
will fail to find the symbol. One example is kprobes (both compiled
and the dynamic events) which rely on this to resolve the function
name to attach a kprobe/kretprobe to.

Address this by also calling the cleanup_symbol_name() helper from
kallsyms_lookup_name() when failing to match a symbol by name.
This will strip off the hash suffix, if any, and attempt the
strcmp() again.

Bug: 167595670
Change-Id: I4c79c818c29b4b82a94a5a7e86ae9783a41e853d
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2020-09-22 20:17:26 +00:00
Matthias Maennich
1bb4dcbb7a ANDROID: Refresh ABI.xmls with libabigail 1.8.0-1dca710a
This upgrades some types from declaration-only tracking to full type
tracking, but creates this one-time churn.

Bug: 158736583
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I39f778d7660fb4065eec2ecb6dd1ed47816e25b6
2020-09-22 17:44:09 +01:00
Mayank Grover
1944a78d12 ANDROID: ABI: update allowed list for QCOM
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function void devm_of_clk_del_provider(device*)'

Bug: 169127322
Change-Id: I7a05b43ba95bcde895cff221727fcc36ea7b5468
Signed-off-by: Mayank Grover <groverm@codeaurora.org>
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
2020-09-22 18:18:09 +05:30
Matthias Maennich
e83321764f ANDROID: KMI symbol lists: migrate section name
Libabigail learned to accept 'symbol_list' as a valid suffix for symbol
list sections. Hence make use of it consistently.

Bug: 162536543
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I1454b0068769c9e57a533dafb6267e63adb7ceb0
2020-09-17 13:14:10 +00:00
Jeehong Kim
ba4ec0ee1b ANDROID: ABI: Update allowed list for GALAXY
Leaf changes summary: 10 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 8 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 2 Added variables

8 Added functions:

  [A] 'function void __napi_schedule_irqoff(napi_struct*)'
  [A] 'function void drm_edid_get_monitor_name(edid*, char*, int)'
  [A] 'function char* get_options(const char*, int, int*)'
  [A] 'function packet_offload* gro_find_complete_by_type(unsigned short int)'
  [A] 'function packet_offload* gro_find_receive_by_type(unsigned short int)'
  [A] 'function __be32 in_aton(const char*)'
  [A] 'function void kfree_skb_partial(sk_buff*, bool)'
  [A] 'function int smp_call_function_single_async(int, __call_single_data*)'

2 Added variables:

  [A] 'tracepoint __tracepoint_android_vh_kfree_skb'
  [A] 'tracepoint __tracepoint_android_vh_ptype_head'

Bug: 168666995

Signed-off-by: Jeehong Kim <jhez.kim@samsung.com>
Change-Id: Ie93e39ef988e2287741819a81cd44d41d7f0fcd7
2020-09-16 15:14:34 +00:00
John Stultz
f82716d6b7 ANDROID: hikey960_gki.fragment: Remove UFS and USB bits
Remove CONFIG_SCSI_UFS_HISI=m and CONFIG_TYPEC_TCPM=m
from the hikey960_gki.fragment, as those configs have
been added to the gki_defconfig

Fixes: bb765ef8427e ("ANDROID: GKI: enable QCOM and HISI UFS drivers")
Fixes: 5625a6460e96 ("ANDROID: GKI: enable CONFIG_TYPEC_TCPM")
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I124a0d050c7170557d9672968729af196ad2f81c
(cherry picked from commit ae78c73104aa2fa957cbb7b4524c3e3e862174fd)
2020-09-16 03:32:40 +00:00
Prasad Sodagudi
5d5378d608 ANDROID: lkdtm/usercopy: Use __va_function to find proper vm_mmap address
With CFI enabled compiler replacing the reference to vm_mmap
passed to copy_to_user with a pointer to the CFI jump table
in the module itself. So use the __va_function API for
finding the proper address of vm_mmap.

Bug: 166220312
Suggested-by: Sami Tolvanen <samitolvanen@google.com>
Change-Id: Id5bd96cc9bfa1aa99f34bd4785792e0a4eeae5b1
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
2020-09-15 13:01:00 -07:00
Sami Tolvanen
a3cb7a0327 ANDROID: mm: add generic __va_function and __pa_function
We use non-canonical CFI jump tables with CONFIG_CFI_CLANG, which
means the compiler replaces function address references with the
address of the function's CFI jump table entry. This results in
__pa_symbol(function), for example, returning the physical address
of the jump table entry, which can lead to address space confusion
since the jump table itself points to a virtual address.

This change adds generic definitions for __pa/va_function, which
architectures that support CFI can override.

Bug: 166220312
Change-Id: If4a162de7854547d8437bf59be03eb6d16220832
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
2020-09-15 18:20:31 +00:00
yong qian
802f342713 ANDROID: vendor_hooks: Add hooks for debugging exception context
When some processes crashed, we want to save cpu regs(x0-x30、pc、sp),
and context(task_struct、thread_info) to log for debugging

Bug: 166228327

Signed-off-by: yong qian <qianyong@oppo.com>
Change-Id: I4f49ffed583a0e20f1aaa7e445e85a0cbb603bbe
2020-09-15 18:02:49 +00:00
Suren Baghdasaryan
40f057fb2d FROMGIT: mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
Currently __set_oom_adj loops through all processes in the system to
keep oom_score_adj and oom_score_adj_min in sync between processes
sharing their mm. This is done for any task with more that one mm_users,
which includes processes with multiple threads (sharing mm and signals).
However for such processes the loop is unnecessary because their signal
structure is shared as well.
Android updates oom_score_adj whenever a tasks changes its role
(background/foreground/...) or binds to/unbinds from a service, making
it more/less important. Such operation can happen frequently.
We noticed that updates to oom_score_adj became more expensive and after
further investigation found out that the patch mentioned in "Fixes"
introduced a regression. Using Pixel 4 with a typical Android workload,
write time to oom_score_adj increased from ~3.57us to ~362us. Moreover
this regression linearly depends on the number of multi-threaded
processes running on the system.
Mark the mm with a new MMF_MULTIPROCESS flag bit when task is created with
(CLONE_VM && !CLONE_THREAD && !CLONE_VFORK). Change __set_oom_adj to use
MMF_MULTIPROCESS instead of mm_users to decide whether oom_score_adj
update should be synchronized between multiple processes. To prevent
races between clone() and __set_oom_adj(), when oom_score_adj of the
process being cloned might be modified from userspace, we use
oom_adj_mutex. Its scope is changed to global. The combination of
(CLONE_VM && !CLONE_THREAD) is rarely used except for the case of vfork().
To prevent performance regressions of vfork(), we skip taking oom_adj_mutex
and setting MMF_MULTIPROCESS when CLONE_VFORK is specified. Clearing the
MMF_MULTIPROCESS flag (when the last process sharing the mm exits) is left
out of this patch to keep it simple and because it is believed that this
threading model is rare. Should there ever be a need for optimizing that
case as well, it can be done by hooking into the exit path, likely
following the mm_update_next_owner pattern.
With the combination of (CLONE_VM && !CLONE_THREAD && !CLONE_VFORK) being
quite rare, the regression is gone after the change is applied.

Fixes: 44a70adec9 ("mm, oom_adj: make sure processes sharing mm have same view of oom_score_adj")
Reported-by: Tim Murray <timmurray@google.com>
Debugged-by: Minchan Kim <minchan@kernel.org>
Suggested-by: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Bug: 168521639
Link: https://lore.kernel.org/linux-fsdevel/20200902012558.2335613-1-surenb@google.com/
[isaacm: upstream bound, no cherry-pick info because patch is in mm tree]
Change-Id: I20352a77815fbc358c36e686bb1503fdeea658ed
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
2020-09-15 09:34:00 -07:00
Giuliano Procida
45adb8186e ANDROID: ABI: refresh with latest libabigail 94f5d4ae
This is a one-off change that updates the type ids of anonymous
structs and unions to a more stable id.

Bug: 163532421
Change-Id: I2ae8b1fa19fab489412fca3f83fa9e2c7361c2b7
Signed-off-by: Giuliano Procida <gprocida@google.com>
2020-09-15 10:56:02 +00:00
Changki Kim
bad091cc4b ANDROID: vendor_hooks: Add vendor hooks for getting printk messages
When sudden reset by watchdog occurs, kernel log is very helpful.
But the log has saved structure type in log_buf.
So we want to collect the log on runtime to string format at other
reserved memory.

Bug: 167766040

Change-Id: Ic9686acc7c284e2ab81395fb9cc076fafe142bf9
Signed-off-by: Changki Kim <changki.kim@samsung.com>
2020-09-14 14:42:20 +00:00
Liangcai Fan
8a8be5c013 ANDROID: ABI: add already existing symbols of mali_gondul.ko to unisoc
Bug: 160255258
Change-Id: I891eab1de6d3f0973501ee1199566978475fafff
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-09-14 11:28:08 +08:00
Changki Kim
bb168ca180 Revert "ANDROID: vendor_hooks: Add vendor hooks for key combination"
This reverts commit 72f2bc5fc2.

You can use input_handle_event instead of this vendor hook.

Change-Id: I8c6c5705f07181710c99a01239d75ecf43f9c5bf
Signed-off-by: Changki Kim <changki.kim@samsung.com>
2020-09-11 11:47:54 +09:00
Haitao Shan
a52bcdb85f ANDROID: Setting up GS before calling __restore_processor_state.
Android Common Kernel compiled by clang with Shadow Call Stack will
use GS segment. However, __restore_processor_state is called when
system wakes up from S3 and at the moment GS is not restored yet.

This is a hack by copying a small code snippet(setting gs base) from
__restore_processor_state to restore_processor_state. It prepares GS
before __restore_processor_state is called. At the same time,
restore_processor_state is still small enough so that SCS is not on,
as SCS seems to be on only for large functions.

Bug: 166163480
Change-Id: I3bfe4ac61dee876da57de6578c9a7f01431a1743
Signed-off-by: Haitao Shan <hshan@google.com>
2020-09-10 20:16:24 +00:00
Martijn Coenen
dea54268fb FROMGIT: binder: print warnings when detecting oneway spamming.
The most common cause of the binder transaction buffer filling up is a
client rapidly firing oneway transactions into a process, before it has
a chance to handle them. Yet the root cause of this is often hard to
debug, because either the system or the app will stop, and by that time
binder debug information we dump in bugreports is no longer relevant.

This change warns as soon as a process dips below 80% of its oneway
space (less than 100kB available in the configuration), when any one
process is responsible for either more than 50 transactions, or more
than 50% of the oneway space.

Signed-off-by: Martijn Coenen <maco@android.com>
Signed-off-by: Martijn Coenen <maco@google.com>
Acked-by: Todd Kjos <tkjos@google.com>
Link: https://lore.kernel.org/r/20200821122544.1277051-1-maco@android.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 261e7818f06ec51e488e007f787ccd7e77272918
git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/
char-misc-next)
Signed-off-by: Martijn Coenen <maco@android.com>

Bug: 147795659
Change-Id: Idc2b03ddc779880ca4716fdae47a70df43211f25
2020-09-10 15:52:35 +00:00
Matthias Maennich
415c56cf53 ANDROID: Address flaky behaviour in genksyms affecting CRC stability.
Commit 1278a5bf16 ("ANDROID: ABI: Added symbols for allwinner")
introduced ehci_* symbols to the symbol list. Due to a bug in genksyms,
the CRC of those is not resilient to whether other symbols are exported
as well. In particular, the CRC changes with the export/trimming of
ehci_handshake. Add an artificial symbol list to contain ehci_handshake
to make this stable.

Also update the ABI representation accordingly:

1 Added function:

  [A] 'function int ehci_handshake(ehci_hcd*, void*, u32, u32, int)'

Bug: 167230325
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I58d3a93f49e70a66f34b66f9f8784b9c19c5a58b
2020-09-10 13:46:00 +00:00
Greg Kroah-Hartman
54d9896ccd Revert "Revert "BACKPORT: net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()""
This reverts commit a81a69408b as it is needed, and is in the upstream 5.4.y tree now.

Bug: 167477898
Change-Id: Ica5a915027546a7f6f655c336db2489897b007f0
Cc: Hyunsoon Kim <h10.kim@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-09-10 11:56:32 +00:00
Subbaraman Narayanamurthy
1869fba86a ANDROID: ABI: update allowed list for QCOM
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 2 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

2 Added functions:

  [A] 'function int led_classdev_flash_register_ext(device*, led_classdev_flash*, led_init_data*)'
  [A] 'function void led_classdev_flash_unregister(led_classdev_flash*)'

Bug: 168090628
Change-Id: I4006604af3341a67a253ca4184ed9daff2990cba
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2020-09-09 10:31:50 -07:00
Xin Long
3a3ba4b7dd UPSTREAM: udp: initialize is_flist with 0 in udp_gro_receive
Without NAPI_GRO_CB(skb)->is_flist initialized, when the dev doesn't
support NETIF_F_GRO_FRAGLIST, is_flist can still be set and fraglist
will be used in udp_gro_receive().

So fix it by initializing is_flist with 0 in udp_gro_receive.

Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Bug: 167707933
Change-Id: Icd2977dfb7506ce0f83d88f52184aa282bc2cac3
(cherry picked from commit bde1b56f898ca8112912d7b36e55e1543b3be0cf)
Signed-off-by: Hyunsoon Kim <h10.kim@samsung.com>
2020-09-09 08:48:11 +00:00
Steffen Klassert
88ca8b3fc2 UPSTREAM: udp: Support UDP fraglist GRO/GSO.
This patch extends UDP GRO to support fraglist GRO/GSO
by using the previously introduced infrastructure.
If the feature is enabled, all UDP packets are going to
fraglist GRO (local input and forward).

After validating the csum,  we mark ip_summed as
CHECKSUM_UNNECESSARY for fraglist GRO packets to
make sure that the csum is not touched.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Bug: 167707933
Change-Id: I7756cb47212713efde64a246a42c88d0b0f5521a
(cherry picked from commit 9fd1ff5d2ac7181844735806b0a703c942365291)
Signed-off-by: Hyunsoon Kim <h10.kim@samsung.com>
2020-09-09 08:48:03 +00:00
Steffen Klassert
02803b1ce4 UPSTREAM: net: Support GRO/GSO fraglist chaining.
This patch adds the core functions to chain/unchain
GSO skbs at the frag_list pointer. This also adds
a new GSO type SKB_GSO_FRAGLIST and a is_flist
flag to napi_gro_cb which indicates that this
flow will be GROed by fraglist chaining.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Bug: 167707933
Change-Id: I4bb29cfcd13ccb48871070bf94ea5b87160d65d4
(cherry picked from commit 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596)
Signed-off-by: Hyunsoon Kim <h10.kim@samsung.com>
2020-09-09 08:47:55 +00:00