Commit graph

879,493 commits

Author SHA1 Message Date
Liangcai Fan
175ec95fc4 ANDROID: ABI/Whitelist: update pcie whitelist to unisoc whitelist
Update whitelist for the symbols used by the unisoc device and
updates the ABI representation accordingly.

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

6 Added functions:

  [A] 'function bool pci_check_and_mask_intx(pci_dev*)'
  [A] 'function bool pci_check_and_unmask_intx(pci_dev*)'
  [A] 'function void* pci_ioremap_wc_bar(pci_dev*, int)'
  [A] 'function int pci_reset_function(pci_dev*)'
  [A] 'function u16 sdio_readw(sdio_func*, unsigned int, int*)'
  [A] 'function void sdio_writew(sdio_func*, u16, unsigned int, int*)'

Bug: 147075469

Change-Id: I3b2cb2b6430323a588093feca8b71f8c50f6be9e
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-04-28 16:15:47 +08:00
Alistair Delva
276f1eecfc ANDROID: GKI: Update ABI for DRM core changes
Leaf changes summary: 23 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 22 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable

22 Added functions:

  [A] 'function int dma_buf_get_uuid(dma_buf*, uuid_t*)'
  [A] 'function void ttm_bo_add_to_lru(ttm_buffer_object*)'
  [A] 'function void ttm_bo_del_sub_from_lru(ttm_buffer_object*)'
  [A] 'function int ttm_bo_device_init(ttm_bo_device*, ttm_bo_driver*, address_space*, bool)'
  [A] 'function int ttm_bo_device_release(ttm_bo_device*)'
  [A] 'function size_t ttm_bo_dma_acc_size(ttm_bo_device*, unsigned long int, unsigned int)'
  [A] 'function bool ttm_bo_eviction_valuable(ttm_buffer_object*, const ttm_place*)'
  [A] 'function int ttm_bo_init(ttm_bo_device*, ttm_buffer_object*, unsigned long int, ttm_bo_type, ttm_placement*, uint32_t, bool, size_t, sg_table*, dma_resv*, void ()*)'
  [A] 'function int ttm_bo_init_mm(ttm_bo_device*, unsigned int, unsigned long int)'
  [A] 'function int ttm_bo_kmap(ttm_buffer_object*, unsigned long int, unsigned long int, ttm_bo_kmap_obj*)'
  [A] 'function void ttm_bo_kunmap(ttm_bo_kmap_obj*)'
  [A] 'function int ttm_bo_mmap(file*, vm_area_struct*, ttm_bo_device*)'
  [A] 'function void ttm_bo_move_to_lru_tail(ttm_buffer_object*, ttm_lru_bulk_move*)'
  [A] 'function void ttm_bo_put(ttm_buffer_object*)'
  [A] 'function int ttm_bo_validate(ttm_buffer_object*, ttm_placement*, ttm_operation_ctx*)'
  [A] 'function int ttm_bo_wait(ttm_buffer_object*, bool, bool)'
  [A] 'function void ttm_dma_tt_fini(ttm_dma_tt*)'
  [A] 'function int ttm_dma_tt_init(ttm_dma_tt*, ttm_buffer_object*, uint32_t)'
  [A] 'function void ttm_eu_backoff_reservation(ww_acquire_ctx*, list_head*)'
  [A] 'function void ttm_eu_fence_buffer_objects(ww_acquire_ctx*, list_head*, dma_fence*)'
  [A] 'function int ttm_eu_reserve_buffers(ww_acquire_ctx*, list_head*, bool, list_head*, bool)'
  [A] 'function int ttm_tt_init(ttm_tt*, ttm_buffer_object*, uint32_t)'

1 Added variable:

  [A] 'const ttm_mem_type_manager_func ttm_bo_manager_func'

Bug: 153580313
Change-Id: I2514adb9dd0692587f45dffc83bfdb7025c1a144
Signed-off-by: Alistair Delva <adelva@google.com>
2020-04-27 20:25:28 -07:00
Mark Salyzyn
4bd540de1f ANDROID: add compat cross compiler
Allows compilation of vdso32

Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I9b2c5995acfbb8a45c059078fcb2c6aa5db86398
2020-04-27 20:20:28 -07:00
Vincenzo Frascino
e0d0da83da UPSTREAM: arm64: vdso32: Enable Clang Compilation
Enable Clang Compilation for the vdso32 library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Nathan Chancellor <natechancellor@gmail.com> # build
Tested-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lkml.kernel.org/r/20200320145351.32292-27-vincenzo.frascino@arm.com
(cherry picked from commit a5d442f50a41d7c5a6a97b19c49d8a1ee0cf128b)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ib9d9fa06b69797a8ecc6d0fdce4b0b02e71b16ce
2020-04-27 18:37:47 -07:00
Vincenzo Frascino
47cd8b3214 BACKPORT: lib/vdso: Enable common headers
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Refactor the unified vdso code to use the common headers.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-26-vincenzo.frascino@arm.com
(cherry picked from commit 8c59ab839f526437831ff6d1405c9a6d93f475eb)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ic0890fed51d4e570e50da6c553bdcbce412d0683
2020-04-27 18:37:47 -07:00
Vincenzo Frascino
b89333c606 BACKPORT: arm: vdso: Enable arm to use common headers
Enable arm to use only the common headers in the implementation
of the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Russell King <linux@armlinux.org.uk>
Link: https://lkml.kernel.org/r/20200320145351.32292-25-vincenzo.frascino@arm.com
(cherry picked from commit 78c8516141014cf6322ac899c3832f66612504bb)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I6a1aa15a3973253d9a158886785b07b343b4b014
2020-04-27 18:37:47 -07:00
Vincenzo Frascino
dfad1d4211 BACKPORT: x86/vdso: Enable x86 to use common headers
Enable x86 to use only the common headers in the implementation
of the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-24-vincenzo.frascino@arm.com
(cherry picked from commit abc22418db02b986fc5623c035507b6357e191ed)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I05311771de9a6cf52a5b98812ac9ae0d933ac84a
2020-04-27 18:37:47 -07:00
Vincenzo Frascino
80f67037ab UPSTREAM: arm64: vdso32: Include common headers in the vdso library
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Refactor the vdso32 implementation to include common headers.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lkml.kernel.org/r/20200320145351.32292-22-vincenzo.frascino@arm.com
(cherry picked from commit 5340e873576ee04186eca3c70844c576d714cc6a)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I7ab0a1b114185a609e522cfe77efd19599f117a5
2020-04-27 18:37:47 -07:00
Vincenzo Frascino
8a03bdbf34 UPSTREAM: arm64: vdso: Include common headers in the vdso library
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Refactor the vdso implementation to include common headers.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lkml.kernel.org/r/20200320145351.32292-21-vincenzo.frascino@arm.com
(cherry picked from commit 60ad903e9477a832e4575734540db32023a605e9)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I875fe0854f7381ff62eb700701cf6e9428361b79
2020-04-27 18:37:47 -07:00
Vincenzo Frascino
4d03205aad UPSTREAM: arm64: Introduce asm/vdso/processor.h
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Introduce asm/vdso/processor.h to contain all the arm64 specific
functions that are suitable for vDSO inclusion.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lkml.kernel.org/r/20200320145351.32292-20-vincenzo.frascino@arm.com
(cherry picked from commit f511e079177a9b97175a9a3b0ee2374d55682403)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I9a291dc86b9c7c910331811c2f3c93db7406e956
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
1072485885 UPSTREAM: arm64: vdso32: Code clean up
The compat vdso library had some checks that are not anymore relevant.

Remove the unused code from the compat vDSO library.

Note: This patch is preparatory for a future one that will introduce
asm/vdso/processor.h on arm64.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/lkml/20200317122220.30393-19-vincenzo.frascino@arm.com
Link: https://lkml.kernel.org/r/20200320145351.32292-19-vincenzo.frascino@arm.com
(cherry picked from commit 94d0f5be885ce1e6ca2886af1543165c16745d13)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I4b86b4b1e636b5149183ff716382ef28bfbe166a
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
0399caed15 UPSTREAM: linux/elfnote.h: Replace elf.h with UAPI equivalent
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Replace linux/elf.h with UAPI equivalent in elfnote.h to make the header
suitable for vDSO inclusion.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-18-vincenzo.frascino@arm.com
(cherry picked from commit b558051725c5f7caa1f390ab28f3ab9db085cbfc)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ia80df895c00cf38e1d62231ca3f7700f557e1342
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
26e5e8083d UPSTREAM: scripts: Fix the inclusion order in modpost
In the process of creating the source file of a module modpost injects a
set of includes that are not required if the compilation unit is
statically built into the kernel.

The order of inclusion of the headers can cause redefinition problems
(e.g.):

   In file included from include/linux/elf.h:5:0,
                    from include/linux/module.h:18,
                    from crypto/arc4.mod.c:2:
    #define ELF_OSABI  ELFOSABI_LINUX

   In file included from include/linux/elfnote.h:62:0,
                    from include/linux/build-salt.h:4,
                    from crypto/arc4.mod.c:1:
   include/uapi/linux/elf.h:363:0: note: this is the location of
   the previous definition
    #define ELF_OSABI ELFOSABI_NONE

The issue was exposed during the development of the series [1].

[1] https://lore.kernel.org/lkml/20200306133242.26279-1-vincenzo.frascino@arm.com/

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Michal Marek <michal.lkml@markovi.net>
Link: https://lkml.kernel.org/r/20200320145351.32292-17-vincenzo.frascino@arm.com
(cherry picked from commit f58dd03b1157bdf3b64c36e9525f8d7f69c25df2)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I4e1bd72315263f155f485431de5eb69824e2b398
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
82dc3ae802 UPSTREAM: common: Introduce processor.h
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Introduce processor.h to contain all the processor specific functions
that are suitable for vDSO inclusion.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-16-vincenzo.frascino@arm.com
(cherry picked from commit d8bb6993d871f5d3cd6d65d3772e4b1f4ef17380)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ibb70f49f4a711f4549d5a5efe8009b1903b144f3
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
d75c6d06d4 UPSTREAM: linux/ktime.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split ktime.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-15-vincenzo.frascino@arm.com
(cherry picked from commit cc56f32f00154ff3586e8346c91f5253882cd8a5)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ic61901306ce17d5c73170cd8dc02ea50ba7d40e9
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
8ded406ace UPSTREAM: linux/jiffies.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split jiffies.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-14-vincenzo.frascino@arm.com
(cherry picked from commit 97b01d2eabd8c0fa650a9d513febeae35dbc6de4)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I68b8450986462838343cb3e1badcf58a5f739b26
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
13c82be060 UPSTREAM: linux/time64.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split time64.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-13-vincenzo.frascino@arm.com
(cherry picked from commit b72a9c5e023bf405e62b858eb5384eb34e2b7a74)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I1605b57089a74c4701e8aa0157eb38313e560634
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
024bf3096a BACKPORT: linux/time32.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split time32.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-12-vincenzo.frascino@arm.com
(cherry picked from commit 9a4162316965818ea73701b611915deca97afece)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ibdee6540c150092e67497e932d93d6ea1246f753
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
5f5abb5404 BACKPORT: linux/time.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split time.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-11-vincenzo.frascino@arm.com
(cherry picked from commit 639fff1cce0f7462bb4440deeffc1048ecfc6ebb)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Id860dccf0d8afea3d6f65a243ed8cdf1760ba789
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
06b7636cf2 UPSTREAM: linux/math64.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split math64.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-10-vincenzo.frascino@arm.com
(cherry picked from commit b874b8358c756f2503c55686af842d99f5b1f312)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I5d15f64ab32e1c9630d64dc5dc446d666bbf0bc1
2020-04-27 18:37:46 -07:00
Vincenzo Frascino
f51a416502 BACKPORT: linux/clocksource.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split clocksource.h into linux and common headers to make the latter
suitable for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-9-vincenzo.frascino@arm.com
(cherry picked from commit 14ee2ac618e49e767c9af4aa007f951eb9e35153)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I685711da05a1fe1414b93064e9be8b7f9888d8c0
2020-04-27 18:37:45 -07:00
Vincenzo Frascino
976b0e40e6 BACKPORT: arm64: Introduce asm/vdso/clocksource.h
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Introduce asm/vdso/clocksource.h to contain all the arm64 specific
functions that are suitable for vDSO inclusion.

This header will be required by a future patch that will generalize
vdso/clocksource.h.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lkml.kernel.org/r/20200320145351.32292-7-vincenzo.frascino@arm.com
(cherry picked from commit 31fdcac07f679848b5ba371500292b685fd39217)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I14a1ecd16f960d7b70388ee3587dc5abe63e2f6a
2020-04-27 18:37:45 -07:00
Vincenzo Frascino
d09adb4c51 BACKPORT: arm: Introduce asm/vdso/clocksource.h
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Introduce asm/vdso/clocksource.h to contain all the arm64 specific
functions that are suitable for vDSO inclusion.

This header will be required by a future patch that will generalize
vdso/clocksource.h.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Russell King <linux@armlinux.org.uk>
Link: https://lkml.kernel.org/r/20200320145351.32292-6-vincenzo.frascino@arm.com
(cherry picked from commit c16b270b171177d1a602b270aef9bff45585bfa2)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I0f3f58c95e64fbb706f49dc66e28562ca95f22d3
2020-04-27 18:37:45 -07:00
Vincenzo Frascino
0fc2061eab BACKPORT: x86: Introduce asm/vdso/clocksource.h
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Introduce asm/vdso/clocksource.h to contain all the arm64 specific
functions that are suitable for vDSO inclusion.

This header will be required by a future patch that will generalize
vdso/clocksource.h.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-5-vincenzo.frascino@arm.com
(cherry picked from commit 659a9faa3f3c89de4c34c30c3da676059864e0fe)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I43f978de32471f017fc1ed05f377ce52cdd7e7f4
2020-04-27 18:37:45 -07:00
Vincenzo Frascino
7363564881 UPSTREAM: linux/limits.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split limits.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-4-vincenzo.frascino@arm.com
(cherry picked from commit 3e0e9f8c6e3ca92154a74edc23a8872da921d2b6)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I44a17919f0155af9efcb514041c01350bb80c16f
2020-04-27 18:37:45 -07:00
Vincenzo Frascino
91da4ec2e7 UPSTREAM: linux/bits.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split bits.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-3-vincenzo.frascino@arm.com
(cherry picked from commit 3945ff37d2f48d39fd1751d282c80176654049e4)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I0c162a012e930398c657a0b6e32f15037130a7b3
2020-04-27 18:37:45 -07:00
Vincenzo Frascino
cb55b5fbb8 UPSTREAM: linux/const.h: Extract common header for vDSO
The vDSO library should only include the necessary headers required for
a userspace library (UAPI and a minimal set of kernel headers). To make
this possible it is necessary to isolate from the kernel headers the
common parts that are strictly necessary to build the library.

Split const.h into linux and common headers to make the latter suitable
for inclusion in the vDSO library.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200320145351.32292-2-vincenzo.frascino@arm.com
(cherry picked from commit 8165b57bca2167acc150b708a9a6b7322f235e91)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I8411963b53e307e1fa77aa58b54d4206dc382b13
2020-04-27 18:37:45 -07:00
Thomas Gleixner
db97a397d6 BACKPORT: lib/vdso: Allow the high resolution parts to be compiled out
If the architecture knows at compile time that there is no VDSO capable
clocksource supported it makes sense to optimize the guts of the high
resolution parts of the VDSO out at build time. Add a helper function to
check whether the VDSO should be high resolution capable and provide a stub
which can be overridden by an architecture.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Link: https://lkml.kernel.org/r/20200207124402.530143168@linutronix.de
(cherry picked from commit 1dff4156d1f63b525c54aea7f097a657cbbbf837)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ib024363345b8d75ffc78b3e5598a5720926f9358
2020-04-27 18:37:45 -07:00
Christophe Leroy
b27e87ed00 BACKPORT: lib/vdso: Only read hrtimer_res when needed in __cvdso_clock_getres()
Only perform READ_ONCE(vd[CS_HRES_COARSE].hrtimer_res) for
HRES and RAW clocks.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/7ac2f0d21652f95e2bbdfa6bd514ae6c7caf53ab.1579196675.git.christophe.leroy@c-s.fr
(cherry picked from commit 49a101d7169c7729c7bab6b2f896faae34bd6c3d)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I0441a793d4703755e8026f23c07e5c1f12544319
2020-04-27 18:37:45 -07:00
Andrei Vagin
af746c2416 UPSTREAM: lib/vdso: Mark do_hres() and do_coarse() as __always_inline
Performance numbers for Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
(more clock_gettime() cycles - the better):

clock            | before     | after      | diff
----------------------------------------------------------
monotonic        |  153222105 |  166775025 | 8.8%
monotonic-coarse |  671557054 |  691513017 | 3.0%
monotonic-raw    |  147116067 |  161057395 | 9.5%
boottime         |  153446224 |  166962668 | 9.1%

The improvement for arm64 for monotonic and boottime is around 3.5%.

clock            | before     | after      | diff
==================================================
monotonic          17326692     17951770     3.6%
monotonic-coarse   43624027     44215292     1.3%
monotonic-raw      17541809     17554932     0.1%
boottime           17334982     17954361     3.5%

[ tglx: Avoid the goto ]

Signed-off-by: Andrei Vagin <avagin@gmail.com>
Signed-off-by: Dmitry Safonov <dima@arista.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20191112012724.250792-3-dima@arista.com
(cherry picked from commit c966533f8c6c45f93c52599f8460e7695f0b7eaa)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I2cfa723d61783bc00b4a4ce4a7f63d4b7d1d3931
2020-04-27 18:37:45 -07:00
Christophe Leroy
d4cceccbdb UPSTREAM: lib/vdso: Avoid duplication in __cvdso_clock_getres()
VDSO_HRES and VDSO_RAW clocks are handled the same way.

Avoid the code duplication.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Andy Lutomirski <luto@kernel.org>
Link: https://lore.kernel.org/r/fdf1a968a8f7edd61456f1689ac44082ebb19c15.1577111367.git.christophe.leroy@c-s.fr
(cherry picked from commit cdb7c5a9c897ab2e5c56df647dd84c84e150e925)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I765c9ddf53427d970e8b186cf4d37623c9218f25
2020-04-27 18:37:45 -07:00
Christophe Leroy
5c3b92173c UPSTREAM: lib/vdso: Let do_coarse() return 0 to simplify the callsite
do_coarse() is similar to do_hres() except that it never fails.

Change its type to int instead of void and let it always return success (0)
to simplify the call site.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/21e8afa38c02ca8672c2690307383507fe63b454.1577111367.git.christophe.leroy@c-s.fr
(cherry picked from commit 8463cf80529d0fd80b84cd5ab8b9b952b01c7eb9)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ia57b47a7ed90e102fa3323311d998b2f77989bda
2020-04-27 18:37:44 -07:00
Vincenzo Frascino
c0ce4485ac UPSTREAM: lib/vdso: Remove checks on return value for 32 bit vDSO
Since all the architectures that support the generic vDSO library have
been converted to support the 32 bit fallbacks it is not required
anymore to check the return value of __cvdso_clock_get*time32_common()
before updating the old_timespec fields.

Remove the related checks from the generic vdso library.

References: c60a32ea4f ("lib/vdso/32: Provide legacy syscall fallbacks")
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20190830135902.20861-6-vincenzo.frascino@arm.com
(cherry picked from commit a279235ddbe975670afe2267162028ec0a312293)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I31637fcdac30262c1837b098345a2c057794ea17
2020-04-27 18:37:44 -07:00
Vincenzo Frascino
8283155a0c UPSTREAM: lib/vdso: Build 32 bit specific functions in the right context
clock_gettime32 and clock_getres_time32 should be compiled only with a
32 bit vdso library.

Exclude these symbols when BUILD_VDSO32 is not defined.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Andy Lutomirski <luto@kernel.org>
Link: https://lore.kernel.org/r/20190830135902.20861-3-vincenzo.frascino@arm.com
(cherry picked from commit bf279849ad59538a1518c667c0795ec1fe9dbd66)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I4d3563ab9aaa839da2b314b3a1eb96d68f78e2c6
2020-04-27 18:37:44 -07:00
Vincenzo Frascino
da3b307b4c UPSTREAM: lib/vdso: Make __cvdso_clock_getres() static
Fix the following sparse warning in the generic vDSO library:

  linux/lib/vdso/gettimeofday.c:224:5: warning: symbol
  '__cvdso_clock_getres' was not declared. Should it be static?

Make it static and also mark it __maybe_unsed.

Fixes: 502a590a17 ("lib/vdso: Move fallback invocation to the callers")
Reported-by: Marc Gonzalez <marc.w.gonzalez@free.fr>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20191128111719.8282-1-vincenzo.frascino@arm.com
(cherry picked from commit ffd08731b2d632459428612431060cf902324a8d)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: I9842a0811350fc325315b25ba3f41e4b626a97c0
2020-04-27 18:37:44 -07:00
Vincenzo Frascino
1e9a6408ef UPSTREAM: arm64: compat: vdso: Expose BUILD_VDSO32
clock_gettime32 and clock_getres_time32 should be compiled only with the
32 bit vdso library.

Expose BUILD_VDSO32 when arm64 compat is compiled, to provide an
indication to the generic library to include these symbols.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20190830135902.20861-2-vincenzo.frascino@arm.com
(cherry picked from commit 3b5584afeef05319ade0fbf5f634a64fd3e5772b)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154668398
Change-Id: Ie4f5b438ef48a41b3f61e4868e5727176dcdb464
2020-04-27 18:37:44 -07:00
Alistair Delva
478f57776e ANDROID: GKI: Enable GENERIC_IRQ_CHIP
This feature is only used by arm/arm64 boards but it builds on x86 too
so enable it everywhere for build coverage.

Bug: 153699377
Bug: 154880035
Change-Id: I30c78c394c7d95a02d75d39101c414d37b824024
Signed-off-by: Alistair Delva <adelva@google.com>
2020-04-27 16:00:17 +00:00
Liangcai Fan
5277cd529b ANDROID: ABI/Whitelist: update unisoc Whitelist after CONFIG_PPP =m
Update whitelist after CONFIG_PPP =m and updates the ABI representation
accordingly.

update list:
 - ppp
 - wcn_bsp
 - remove kernel_read/write from wcn_bsp.ko

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

49 Added functions:

  [A] 'function void __ip_select_ident(net*, iphdr*, int)'
  [A] 'function int __usb_get_extra_descriptor(char*, unsigned int, unsigned char, void**, size_t)'
  [A] 'function int bpf_prog_create(bpf_prog**, sock_fprog_kern*)'
  [A] 'function void bpf_prog_destroy(bpf_prog*)'
  [A] 'function int crypto_has_ahash(const char*, unsigned int, unsigned int)'
  [A] 'function int gre_add_protocol(const gre_protocol*, unsigned char)'
  [A] 'function int gre_del_protocol(const gre_protocol*, unsigned char)'
  [A] 'function hid_report* hid_validate_values(hid_device*, unsigned int, unsigned int, unsigned int, unsigned int)'
  [A] 'function void iov_iter_init(iov_iter*, unsigned int, const iovec*, unsigned long int, unsigned long int)'
  [A] 'function l2tp_session* l2tp_session_create(int, l2tp_tunnel*, unsigned int, unsigned int, l2tp_session_cfg*)'
  [A] 'function int l2tp_session_delete(l2tp_session*)'
  [A] 'function void l2tp_session_free(l2tp_session*)'
  [A] 'function l2tp_session* l2tp_session_get_nth(l2tp_tunnel*, int)'
  [A] 'function int l2tp_session_register(l2tp_session*, l2tp_tunnel*)'
  [A] 'function void l2tp_session_set_header_len(l2tp_session*, int)'
  [A] 'function int l2tp_tunnel_create(net*, int, int, unsigned int, unsigned int, l2tp_tunnel_cfg*, l2tp_tunnel**)'
  [A] 'function void l2tp_tunnel_delete(l2tp_tunnel*)'
  [A] 'function void l2tp_tunnel_free(l2tp_tunnel*)'
  [A] 'function l2tp_tunnel* l2tp_tunnel_get(const net*, unsigned int)'
  [A] 'function l2tp_tunnel* l2tp_tunnel_get_nth(const net*, int)'
  [A] 'function l2tp_session* l2tp_tunnel_get_session(l2tp_tunnel*, unsigned int)'
  [A] 'function int l2tp_tunnel_register(l2tp_tunnel*, net*, l2tp_tunnel_cfg*)'
  [A] 'function int l2tp_udp_encap_recv(sock*, sk_buff*)'
  [A] 'function int l2tp_xmit_skb(l2tp_session*, sk_buff*, int)'
  [A] 'function void netdev_printk(const char*, const net_device*, const char*, ...)'
  [A] 'function void pci_disable_msix(pci_dev*)'
  [A] 'function int pci_enable_msix_range(pci_dev*, msix_entry*, int, int)'
  [A] 'function int pci_enable_wake(pci_dev*, pci_power_t, bool)'
  [A] 'function int pci_msi_vec_count(pci_dev*)'
  [A] 'function int pcie_capability_read_dword(pci_dev*, int, u32*)'
  [A] 'function char* ppp_dev_name(ppp_channel*)'
  [A] 'function int ppp_register_compressor(compressor*)'
  [A] 'function void ppp_unregister_compressor(compressor*)'
  [A] 'function void security_sk_classify_flow(sock*, flowi*)'
  [A] 'function void sk_setup_caps(sock*, dst_entry*)'
  [A] 'function void skb_scrub_packet(sk_buff*, bool)'
  [A] 'function int slhc_compress(slcompress*, unsigned char*, int, unsigned char*, unsigned char**, int)'
  [A] 'function void slhc_free(slcompress*)'
  [A] 'function slcompress* slhc_init(int, int)'
  [A] 'function int slhc_remember(slcompress*, unsigned char*, int)'
  [A] 'function int slhc_toss(slcompress*)'
  [A] 'function int slhc_uncompress(slcompress*, unsigned char*, int)'
  [A] 'function int zlib_deflate(z_stream_s*, int)'
  [A] 'function int zlib_deflateEnd(z_stream_s*)'
  [A] 'function int zlib_deflateInit2(z_stream_s*, int, int, int, int, int)'
  [A] 'function int zlib_deflateReset(z_stream_s*)'
  [A] 'function int zlib_deflate_workspacesize(int, int)'
  [A] 'function int zlib_inflateIncomp(z_stream_s*)'
  [A] 'function int zlib_inflateReset(z_stream_s*)'

Bug: 147075469
Change-Id: Ib75fde69129ea751c63b619f7acba5323ffbe188
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-04-27 17:02:00 +08:00
zhaoyouyi
7dd4f5d051 ANDROID: ABI/Whitelist: update for allwinner.
Add initial ABI whitelist file for Allwinner SoC,
and updates the ABI representation accordingly.

Total of 154 functions and 2 variables were added.

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

154 Added functions:

  [A] 'function void __dev_kfree_skb_irq(sk_buff*, skb_free_reason)'
  [A] 'function void __devm_release_region(device*, resource*, resource_size_t, resource_size_t)'
  [A] 'function void __hw_addr_init(netdev_hw_addr_list*)'
  [A] 'function int __hw_addr_sync(netdev_hw_addr_list*, netdev_hw_addr_list*, int)'
  [A] 'function void __hw_addr_unsync(netdev_hw_addr_list*, netdev_hw_addr_list*, int)'
  [A] 'function void __lock_page(page*)'
  [A] 'function int __media_entity_setup_link(media_link*, u32)'
  [A] 'function unsigned int __sw_hweight16(unsigned int)'
  [A] 'function void* __vmalloc(unsigned long int, gfp_t, pgprot_t)'
  [A] 'function void __wait_on_buffer(buffer_head*)'
  [A] 'function int block_is_partially_uptodate(page*, unsigned long int, unsigned long int)'
  [A] 'function int buffer_migrate_page(address_space*, page*, page*, migrate_mode)'
  [A] 'function void cfg80211_assoc_timeout(net_device*, cfg80211_bss*)'
  [A] 'function void cfg80211_auth_timeout(net_device*, const u8*)'
  [A] 'function unsigned int cfg80211_classify8021d(sk_buff*, cfg80211_qos_map*)'
  [A] 'function void cfg80211_cqm_pktloss_notify(net_device*, const u8*, u32, gfp_t)'
  [A] 'function void cfg80211_rx_assoc_resp(net_device*, cfg80211_bss*, const u8*, size_t, int, const u8*, size_t)'
  [A] 'function void cfg80211_rx_mlme_mgmt(net_device*, const u8*, size_t)'
  [A] 'function void cfg80211_sched_scan_stopped(wiphy*, u64)'
  [A] 'function void cfg80211_tx_mlme_mgmt(net_device*, const u8*, size_t)'
  [A] 'function int class_create_file_ns(class*, const class_attribute*, void*)'
  [A] 'function void class_remove_file_ns(class*, const class_attribute*, void*)'
  [A] 'function int clk_notifier_register(clk*, notifier_block*)'
  [A] 'function unsigned int crc32_be(unsigned int, const unsigned char*, unsigned long int)'
  [A] 'function void create_empty_buffers(page*, unsigned long int, unsigned long int)'
  [A] 'function int crypto_register_ahash(ahash_alg*)'
  [A] 'function int crypto_register_rng(rng_alg*)'
  [A] 'function int crypto_unregister_ahash(ahash_alg*)'
  [A] 'function void crypto_unregister_rng(rng_alg*)'
  [A] 'function dentry* d_add_ci(dentry*, inode*, qstr*)'
  [A] 'function dentry* d_obtain_alias(inode*)'
  [A] 'function int dev_pm_set_wake_irq(device*, int)'
  [A] 'function void device_remove_groups(device*, const attribute_group**)'
  [A] 'function int devm_devfreq_register_opp_notifier(device*, devfreq*)'
  [A] 'function void* devm_of_iomap(device*, device_node*, int, resource_size_t*)'
  [A] 'function int down_interruptible(semaphore*)'
  [A] 'function void dump_page(page*, const char*)'
  [A] 'function void end_buffer_read_sync(buffer_head*, int)'
  [A] 'function frame_vector* frame_vector_create(unsigned int)'
  [A] 'function void frame_vector_destroy(frame_vector*)'
  [A] 'function int frame_vector_to_pages(frame_vector*)'
  [A] 'function void frame_vector_to_pfns(frame_vector*)'
  [A] 'function unsigned long int gen_pool_best_fit(unsigned long int*, unsigned long int, unsigned long int, unsigned int, void*, gen_pool*, unsigned long int)'
  [A] 'function void gen_pool_set_algo(gen_pool*, void ()*, void*)'
  [A] 'function long long unsigned int gen_pool_virt_to_phys(gen_pool*, unsigned long int)'
  [A] 'function int generic_error_remove_page(address_space*, page*)'
  [A] 'function int generic_file_open(inode*, file*)'
  [A] 'function int get_tree_bdev(fs_context*, void ()*)'
  [A] 'function int get_vaddr_frames(unsigned long int, unsigned int, unsigned int, frame_vector*)'
  [A] 'function void handle_fasteoi_irq(irq_desc*)'
  [A] 'function void ieee80211_amsdu_to_8023s(sk_buff*, sk_buff_head*, const u8*, nl80211_iftype, const unsigned int, const u8*, const u8*)'
  [A] 'function const element* ieee80211_bss_get_elem(cfg80211_bss*, u8)'
  [A] 'function int ieee80211_data_to_8023_exthdr(sk_buff*, ethhdr*, const u8*, nl80211_iftype, u8)'
  [A] 'function int ieee80211_radiotap_iterator_init(ieee80211_radiotap_iterator*, ieee80211_radiotap_header*, int, const ieee80211_radiotap_vendor_namespaces*)'
  [A] 'function int ieee80211_radiotap_iterator_next(ieee80211_radiotap_iterator*)'
  [A] 'function void iget_failed(inode*)'
  [A] 'function inode* iget_locked(super_block*, unsigned long int)'
  [A] 'function void ihold(inode*)'
  [A] 'function void inode_nohighmem(inode*)'
  [A] 'function void int_to_scsilun(u64, scsi_lun*)'
  [A] 'function void io_schedule()'
  [A] 'function iommu_group* iommu_group_alloc()'
  [A] 'function int iommu_group_register_notifier(iommu_group*, notifier_block*)'
  [A] 'function bool is_bad_inode(inode*)'
  [A] 'function void kernel_param_lock(module*)'
  [A] 'function void kernel_param_unlock(module*)'
  [A] 'function void* kmalloc_order(size_t, gfp_t, unsigned int)'
  [A] 'function void ll_rw_block(int, int, int, buffer_head**)'
  [A] 'function nls_table* load_nls_default()'
  [A] 'function void logfc(fs_context*, const char*, ...)'
  [A] 'function void make_bad_inode(inode*)'
  [A] 'function int media_create_pad_link(media_entity*, u16, media_entity*, u16, u32)'
  [A] 'function media_link* media_entity_find_link(media_pad*, media_pad*)'
  [A] 'function media_pad* media_entity_remote_pad(const media_pad*)'
  [A] 'function int media_entity_setup_link(media_link*, u32)'
  [A] 'function int media_graph_walk_init(media_graph*, media_device*)'
  [A] 'function media_entity* media_graph_walk_next(media_graph*)'
  [A] 'function void media_graph_walk_start(media_graph*, media_entity*)'
  [A] 'function int of_clk_hw_register(device_node*, clk_hw*)'
  [A] 'function i2c_client* of_find_i2c_device_by_node(device_node*)'
  [A] 'function device_node* of_find_node_by_type(device_node*, const char*)'
  [A] 'function void* of_io_request_and_map(device_node*, int, const char*)'
  [A] 'function pwm_device* of_pwm_xlate_with_flags(pwm_chip*, const of_phandle_args*)'
  [A] 'function const char* page_get_link(dentry*, inode*, delayed_call*)'
  [A] 'function page* pagecache_get_page(address_space*, unsigned long int, int, unsigned int)'
  [A] 'function pinctrl* pinctrl_get(device*)'
  [A] 'function int pinctrl_gpio_set_config(unsigned int, unsigned long int)'
  [A] 'function void put_vaddr_frames(frame_vector*)'
  [A] 'function page* read_cache_page(address_space*, unsigned long int, void ()*, void*)'
  [A] 'function int reset_controller_register(reset_controller_dev*)'
  [A] 'function unsigned long int round_jiffies_relative(unsigned long int)'
  [A] 'function void rq_flush_dcache_pages(request*)'
  [A] 'function void scmd_printk(const char*, const scsi_cmnd*, const char*, ...)'
  [A] 'function void scsi_block_requests(Scsi_Host*)'
  [A] 'function int scsi_change_queue_depth(scsi_device*, int)'
  [A] 'function void scsi_print_command(scsi_cmnd*)'
  [A] 'function void scsi_unblock_requests(Scsi_Host*)'
  [A] 'function unsigned int sdio_align_size(sdio_func*, unsigned int)'
  [A] 'function int setup_irq(unsigned int, irqaction*)'
  [A] 'function int snd_dmaengine_pcm_close_release_chan(snd_pcm_substream*)'
  [A] 'function dma_chan* snd_dmaengine_pcm_get_chan(snd_pcm_substream*)'
  [A] 'function int snd_dmaengine_pcm_open_request_chan(snd_pcm_substream*, dma_filter_fn, void*)'
  [A] 'function snd_pcm_uframes_t snd_dmaengine_pcm_pointer(snd_pcm_substream*)'
  [A] 'function int snd_dmaengine_pcm_trigger(snd_pcm_substream*, int)'
  [A] 'function int snd_hwparams_to_dma_slave_config(const snd_pcm_substream*, const snd_pcm_hw_params*, dma_slave_config*)'
  [A] 'function int snd_soc_add_card_controls(snd_soc_card*, const snd_kcontrol_new*, int)'
  [A] 'function int snd_soc_dai_set_clkdiv(snd_soc_dai*, int, int)'
  [A] 'function int snd_soc_dai_set_pll(snd_soc_dai*, int, int, unsigned int, unsigned int)'
  [A] 'function int snd_soc_register_card(snd_soc_card*)'
  [A] 'function spi_controller* spi_busnum_to_master(u16)'
  [A] 'function void spi_unregister_device(spi_device*)'
  [A] 'function void truncate_inode_pages_final(address_space*)'
  [A] 'function unsigned int uart_get_divisor(uart_port*, unsigned int)'
  [A] 'function void uart_handle_cts_change(uart_port*, unsigned int)'
  [A] 'function void uart_handle_dcd_change(uart_port*, unsigned int)'
  [A] 'function void uart_insert_char(uart_port*, unsigned int, unsigned int, unsigned int, unsigned int)'
  [A] 'function int unregister_console(console*)'
  [A] 'function void unregister_syscore_ops(syscore_ops*)'
  [A] 'function int usb_alloc_streams(usb_interface*, usb_host_endpoint**, unsigned int, unsigned int, gfp_t)'
  [A] 'function int usb_bulk_msg(usb_device*, unsigned int, void*, int, int*, int)'
  [A] 'function int usb_free_streams(usb_interface*, usb_host_endpoint**, unsigned int, gfp_t)'
  [A] 'function void usb_kill_anchored_urbs(usb_anchor*)'
  [A] 'function int usb_reset_configuration(usb_device*)'
  [A] 'function int usb_set_interface(usb_device*, int, int)'
  [A] 'function void usb_unanchor_urb(urb*)'
  [A] 'function int usb_wait_anchor_empty_timeout(usb_anchor*, unsigned int)'
  [A] 'function void v4l2_ctrl_cluster(unsigned int, v4l2_ctrl**)'
  [A] 'function v4l2_ctrl* v4l2_ctrl_new_int_menu(v4l2_ctrl_handler*, const v4l2_ctrl_ops*, u32, u8, u8, const s64*)'
  [A] 'function int v4l2_ctrl_subdev_subscribe_event(v4l2_subdev*, v4l2_fh*, v4l2_event_subscription*)'
  [A] 'function int v4l2_ctrl_subscribe_event(v4l2_fh*, const v4l2_event_subscription*)'
  [A] 'function int v4l2_event_subdev_unsubscribe(v4l2_subdev*, v4l2_fh*, v4l2_event_subscription*)'
  [A] 'function int v4l2_g_ctrl(v4l2_ctrl_handler*, v4l2_control*)'
  [A] 'function v4l2_subdev* v4l2_i2c_new_subdev(v4l2_device*, i2c_adapter*, const char*, u8, const unsigned short int*)'
  [A] 'function void v4l2_i2c_subdev_init(v4l2_subdev*, i2c_client*, const v4l2_subdev_ops*)'
  [A] 'function v4l2_subdev* v4l2_spi_new_subdev(v4l2_device*, spi_controller*, spi_board_info*)'
  [A] 'function void v4l_bound_align_image(u32*, unsigned int, unsigned int, unsigned int, u32*, unsigned int, unsigned int, unsigned int, unsigned int)'
  [A] 'function int vb2_fop_mmap(file*, vm_area_struct*)'
  [A] 'function __poll_t vb2_fop_poll(file*, poll_table*)'
  [A] 'function ssize_t vb2_fop_read(file*, char*, size_t, loff_t*)'
  [A] 'function int vb2_fop_release(file*)'
  [A] 'function int vb2_ioctl_dqbuf(file*, void*, v4l2_buffer*)'
  [A] 'function int vb2_ioctl_expbuf(file*, void*, v4l2_exportbuffer*)'
  [A] 'function int vb2_ioctl_qbuf(file*, void*, v4l2_buffer*)'
  [A] 'function int vb2_ioctl_querybuf(file*, void*, v4l2_buffer*)'
  [A] 'function int vb2_ioctl_reqbufs(file*, void*, v4l2_requestbuffers*)'
  [A] 'function int vb2_ioctl_streamoff(file*, void*, v4l2_buf_type)'
  [A] 'function int vb2_ioctl_streamon(file*, void*, v4l2_buf_type)'
  [A] 'function void vb2_ops_wait_finish(vb2_queue*)'
  [A] 'function void vb2_ops_wait_prepare(vb2_queue*)'
  [A] 'function void* vb2_plane_cookie(vb2_buffer*, unsigned int)'
  [A] 'function int zlib_inflate(z_stream_s*, int)'
  [A] 'function int zlib_inflateEnd(z_stream_s*)'
  [A] 'function int zlib_inflateInit2(z_stream_s*, int)'
  [A] 'function int zlib_inflate_workspacesize()'

2 Added variables:

  [A] 'const unsigned char bridge_tunnel_header[6]'
  [A] 'const file_operations generic_ro_fops'

Bug: 155001886
Change-Id: Iea31e0b21432c399c1dcb6b808954520f15b515b
Signed-off-by: zhaoyouyi <zhaoyouyi@allwinnertech.com>
2020-04-26 16:59:58 +00:00
huangshuosheng
dd7b0d0aaa ANDROID: gki_defconfig: enable CONFIG_PM_DEVFREQ_EVENT.
Enable support for devfreq driver to adjust DDR frequency.

Bug: 154672404
Change-Id: Ic42139c54c62c6ee1bea1da002af06088e2ef268
Signed-off-by: huangshuosheng <huangshuosheng@allwinnertech.com>
2020-04-26 16:18:03 +08:00
Paul Lawrence
48794a1b63 ANDROID: Incremental fs: Use simple compression in log buffer
Bug: 154342202
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ibcc641dd92596018c9f10b5bc7bd0db2642a80c7
(cherry picked from commit b6b4a3a404ccd9c62347e27c4fc7883d776c2cbb)
2020-04-25 13:33:53 +00:00
hyeongseok.kim
f651e6024c ANDROID: dm-bow: Fix not to skip trim at framented range
If free blocks hole is smaller than discard_granularity,
TRIM to this range can be skipped.
Fix this by changing the granularity to 4kb at dm-bow layer,
not to skip TRIM to every tiny free blocks.

Bug: 154411183
Signed-off-by: hyeongseok.kim <hyeongseok@gmail.com>
Cc: hyeongseok.kim <hyeongseok.kim@lge.com>
Change-Id: Ic7c33d94a016d0ad5a75514eae1056c328c9c1ba
(cherry picked from commit ca986e448cf2f92f1bb672fe9bc0b651fa6b76c5)
Signed-off-by: Paul Lawrence <paullawrence@google.com>
2020-04-24 21:53:22 +00:00
Alistair Delva
a50509b2d5 ANDROID: Remove VLA from uid_sys_stats.c
Remove one more VLA that was not caught.

Bug: 154930031
Change-Id: I2c6c1f6d5e6ef23769c117a47689e1539b85c882
Signed-off-by: Alistair Delva <adelva@google.com>
2020-04-24 17:09:50 +00:00
Liangcai Fan
a2aae965c6 ANDROID: ABI/Whitelist: add net whitelist to unisoc Whitelist
Update whitelist for the symbols used by the unisoc device of and
updates the ABI representation accordingly.

add list:
 - NET
 - CRYPTO
 - NF

Leaf changes summary: 214 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 205 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 9 Added variables

205 Added functions:

  [A] 'function int __clocksource_register_scale(clocksource*, u32, u32)'
  [A] 'function unsigned long int __crypto_memneq(void*, void*, size_t)'
  [A] 'function void __crypto_xor(u8*, const u8*, const u8*, unsigned int)'
  [A] 'function int __fib_lookup(net*, flowi4*, fib_result*, unsigned int)'
  [A] 'function nf_conntrack_expect* __nf_ct_expect_find(net*, const nf_conntrack_zone*, const nf_conntrack_tuple*)'
  [A] 'function void __nf_ct_refresh_acct(nf_conn*, ip_conntrack_info, const sk_buff*, u32, bool)'
  [A] 'function int __nf_ip6_route(net*, dst_entry**, flowi*, bool)'
  [A] 'function bool __nf_nat_mangle_tcp_packet(sk_buff*, nf_conn*, ip_conntrack_info, unsigned int, unsigned int, unsigned int, const char*, unsigned int, bool)'
  [A] 'function sock* __raw_v4_lookup(net*, sock*, unsigned short int, __be32, __be32, int, int)'
  [A] 'function sock* __raw_v6_lookup(net*, sock*, unsigned short int, const in6_addr*, const in6_addr*, int, int)'
  [A] 'function int __sk_receive_skb(sock*, sk_buff*, const int, unsigned int, bool)'
  [A] 'function void __xfrm_state_destroy(xfrm_state*, bool)'
  [A] 'function void aes_encrypt(const crypto_aes_ctx*, unsigned char*, const unsigned char*)'
  [A] 'function int aes_expandkey(crypto_aes_ctx*, const unsigned char*, unsigned int)'
  [A] 'function void arc4_crypt(arc4_ctx*, unsigned char*, const unsigned char*, unsigned int)'
  [A] 'function int arc4_setkey(arc4_ctx*, const unsigned char*, unsigned int)'
  [A] 'function request_queue* blk_mq_init_sq_queue(blk_mq_tag_set*, const blk_mq_ops*, unsigned int, unsigned int)'
  [A] 'function int ce_aes_expandkey(crypto_aes_ctx*, const unsigned char*, unsigned int)'
  [A] 'function void clockevents_config_and_register(clock_event_device*, u32, unsigned long int, unsigned long int)'
  [A] 'function bool cpu_have_feature(unsigned int)'
  [A] 'function int crypto_ahash_digest(ahash_request*)'
  [A] 'function int crypto_ahash_setkey(crypto_ahash*, const unsigned char*, unsigned int)'
  [A] 'function crypto_ahash* crypto_alloc_ahash(const char*, unsigned int, unsigned int)'
  [A] 'function void* crypto_alloc_instance(const char*, crypto_alg*, unsigned int)'
  [A] 'function crypto_alg* crypto_attr_alg2(rtattr*, const crypto_type*, unsigned int, unsigned int)'
  [A] 'function int crypto_check_attr_type(rtattr**, unsigned int)'
  [A] 'function void crypto_inc(unsigned char*, unsigned int)'
  [A] 'function int crypto_init_spawn(crypto_spawn*, crypto_alg*, crypto_instance*, unsigned int)'
  [A] 'function void crypto_mod_put(crypto_alg*)'
  [A] 'function int crypto_register_aead(aead_alg*)'
  [A] 'function int crypto_register_shash(shash_alg*)'
  [A] 'function int crypto_register_shashes(shash_alg*, int)'
  [A] 'function int crypto_register_skcipher(skcipher_alg*)'
  [A] 'function int crypto_register_skciphers(skcipher_alg*, int)'
  [A] 'function int crypto_register_template(crypto_template*)'
  [A] 'function int crypto_sha1_finup(shash_desc*, const u8*, unsigned int, u8*)'
  [A] 'function int crypto_sha1_update(shash_desc*, const u8*, unsigned int)'
  [A] 'function int crypto_shash_digest(shash_desc*, const unsigned char*, unsigned int, unsigned char*)'
  [A] 'function crypto_tfm* crypto_spawn_tfm(crypto_spawn*, unsigned int, unsigned int)'
  [A] 'function void crypto_unregister_aead(aead_alg*)'
  [A] 'function int crypto_unregister_shash(shash_alg*)'
  [A] 'function int crypto_unregister_shashes(shash_alg*, int)'
  [A] 'function void crypto_unregister_skcipher(skcipher_alg*)'
  [A] 'function void crypto_unregister_skciphers(skcipher_alg*, int)'
  [A] 'function void crypto_unregister_template(crypto_template*)'
  [A] 'function net_device* dev_get_by_name_rcu(net*, const char*)'
  [A] 'function void devm_thermal_zone_of_sensor_unregister(device*, thermal_zone_device*)'
  [A] 'function bool fib_info_nh_uses_dev(fib_info*, const net_device*)'
  [A] 'function int fib_table_lookup(fib_table*, const flowi4*, fib_result*, int)'
  [A] 'function int generic_key_instantiate(key*, key_preparsed_payload*)'
  [A] 'function void gf128mul_lle(be128*, const be128*)'
  [A] 'function i2c_client* i2c_new_dummy_device(i2c_adapter*, u16)'
  [A] 'function void icmpv6_send(sk_buff*, unsigned char, unsigned char, unsigned int)'
  [A] 'function unsigned int inet_dev_addr_type(net*, const net_device*, __be32)'
  [A] 'function int inet_diag_bc_sk(const nlattr*, sock*)'
  [A] 'function int inet_diag_register(const inet_diag_handler*)'
  [A] 'function void inet_diag_unregister(const inet_diag_handler*)'
  [A] 'function void inet_proto_csum_replace4(unsigned short int*, sk_buff*, unsigned int, unsigned int, bool)'
  [A] 'function int inet_sk_diag_fill(sock*, inet_connection_sock*, sk_buff*, const inet_diag_req_v2*, user_namespace*, unsigned int, unsigned int, unsigned short int, const nlmsghdr*, bool)'
  [A] 'function int input_scancode_to_scalar(const input_keymap_entry*, unsigned int*)'
  [A] 'function void ip6_redirect(sk_buff*, net*, int, unsigned int, __anonymous_struct__)'
  [A] 'function void ip6_update_pmtu(sk_buff*, net*, unsigned int, int, unsigned int, __anonymous_struct__)'
  [A] 'function void* ip6t_alloc_initial_table(const xt_table*)'
  [A] 'function unsigned int ip6t_do_table(sk_buff*, const nf_hook_state*, xt_table*)'
  [A] 'function int ip6t_register_table(net*, const xt_table*, const ip6t_replace*, const nf_hook_ops*, xt_table**)'
  [A] 'function void ip6t_unregister_table(net*, xt_table*, const nf_hook_ops*)'
  [A] 'function int ip_route_me_harder(net*, sk_buff*, unsigned int)'
  [A] 'function void ipcomp_destroy(xfrm_state*)'
  [A] 'function int ipcomp_init_state(xfrm_state*)'
  [A] 'function int ipcomp_input(xfrm_state*, sk_buff*)'
  [A] 'function int ipcomp_output(xfrm_state*, sk_buff*)'
  [A] 'function void ipv4_redirect(sk_buff*, net*, int, unsigned char)'
  [A] 'function void ipv4_update_pmtu(sk_buff*, net*, unsigned int, int, unsigned char)'
  [A] 'function void kernel_neon_begin()'
  [A] 'function void kernel_neon_end()'
  [A] 'function void key_invalidate(key*)'
  [A] 'function void key_put(key*)'
  [A] 'function void key_revoke(key*)'
  [A] 'function int key_validate(const key*)'
  [A] 'function key* keyring_alloc(const char*, __anonymous_struct__, __anonymous_struct__1, const cred*, unsigned int, unsigned long int, key_restriction*, key*)'
  [A] 'function char* kmemdup_nul(const char*, unsigned long int, unsigned int)'
  [A] 'function char* kobject_get_path(kobject*, unsigned int)'
  [A] 'function u32* led_get_default_pattern(led_classdev*, unsigned int*)'
  [A] 'function void led_set_brightness(led_classdev*, led_brightness)'
  [A] 'function int led_trigger_register(led_trigger*)'
  [A] 'function void led_trigger_unregister(led_trigger*)'
  [A] 'function int mod_timer_pending(timer_list*, unsigned long int)'
  [A] 'function bool netlink_net_capable(const sk_buff*, int)'
  [A] 'function int nf_conntrack_helpers_register(nf_conntrack_helper*, unsigned int)'
  [A] 'function void nf_conntrack_helpers_unregister(nf_conntrack_helper*, unsigned int)'
  [A] 'function nf_conntrack_expect* nf_ct_expect_alloc(nf_conn*)'
  [A] 'function void nf_ct_expect_init(nf_conntrack_expect*, unsigned int, unsigned char, const nf_inet_addr*, const nf_inet_addr*, unsigned char, const unsigned short int*, const unsigned short int*)'
  [A] 'function void nf_ct_expect_put(nf_conntrack_expect*)'
  [A] 'function int nf_ct_expect_related_report(nf_conntrack_expect*, unsigned int, int, unsigned int)'
  [A] 'function void* nf_ct_ext_add(nf_conn*, nf_ct_ext_id, unsigned int)'
  [A] 'function int nf_ct_extend_register(const nf_ct_ext_type*)'
  [A] 'function void nf_ct_extend_unregister(const nf_ct_ext_type*)'
  [A] 'function void nf_ct_helper_expectfn_register(nf_ct_helper_expectfn*)'
  [A] 'function void nf_ct_helper_expectfn_unregister(nf_ct_helper_expectfn*)'
  [A] 'function void nf_ct_helper_init(nf_conntrack_helper*, unsigned short int, unsigned short int, const char*, unsigned short int, unsigned short int, unsigned int, const nf_conntrack_expect_policy*, unsigned int, void ()*, void ()*, module*)'
  [A] 'function void nf_ct_helper_log(sk_buff*, const nf_conn*, const char*, ...)'
  [A] 'function int nf_ct_netns_get(net*, unsigned char)'
  [A] 'function void nf_ct_netns_put(net*, unsigned char)'
  [A] 'function bool nf_ct_remove_expect(nf_conntrack_expect*)'
  [A] 'function int nf_ct_seqadj_init(nf_conn*, ip_conntrack_info, s32)'
  [A] 'function int nf_ct_seqadj_set(nf_conn*, ip_conntrack_info, __be32, s32)'
  [A] 'function nf_conn* nf_ct_tmpl_alloc(net*, const nf_conntrack_zone*, unsigned int)'
  [A] 'function void nf_ct_tmpl_free(nf_conn*)'
  [A] 'function void nf_ct_unexpect_related(nf_conntrack_expect*)'
  [A] 'function __sum16 nf_ip6_checksum(sk_buff*, unsigned int, unsigned int, u8)'
  [A] 'function __sum16 nf_ip_checksum(sk_buff*, unsigned int, unsigned int, u8)'
  [A] 'function int nf_ip_route(net*, dst_entry**, flowi*, bool)'
  [A] 'function int nf_log_buf_add(nf_log_buf*, const char*, ...)'
  [A] 'function void nf_log_buf_close(nf_log_buf*)'
  [A] 'function nf_log_buf* nf_log_buf_open()'
  [A] 'function void nf_log_packet(net*, unsigned char, unsigned int, const sk_buff*, const net_device*, const net_device*, const nf_loginfo*, const char*, ...)'
  [A] 'function int nf_log_register(unsigned char, nf_logger*)'
  [A] 'function int nf_log_set(net*, u_int8_t, const nf_logger*)'
  [A] 'function void nf_log_unregister(nf_logger*)'
  [A] 'function void nf_log_unset(net*, const nf_logger*)'
  [A] 'function int nf_logger_find_get(int, nf_log_type)'
  [A] 'function void nf_logger_put(int, nf_log_type)'
  [A] 'function void nf_nat_helper_register(nf_conntrack_nat_helper*)'
  [A] 'function void nf_nat_helper_unregister(nf_conntrack_nat_helper*)'
  [A] 'function int nf_nat_ipv6_register_fn(net*, const nf_hook_ops*)'
  [A] 'function void nf_nat_ipv6_unregister_fn(net*, const nf_hook_ops*)'
  [A] 'function bool nf_nat_mangle_udp_packet(sk_buff*, nf_conn*, ip_conntrack_info, unsigned int, unsigned int, unsigned int, const char*, unsigned int)'
  [A] 'function unsigned int nf_nat_setup_info(nf_conn*, const nf_nat_range2*, nf_nat_manip_type)'
  [A] 'function int of_parse_phandle_with_fixed_args(const device_node*, const char*, int, int, of_phandle_args*)'
  [A] 'function int ppp_channel_index(ppp_channel*)'
  [A] 'function void ppp_input(ppp_channel*, sk_buff*)'
  [A] 'function void ppp_input_error(ppp_channel*, int)'
  [A] 'function void ppp_output_wakeup(ppp_channel*)'
  [A] 'function int ppp_register_channel(ppp_channel*)'
  [A] 'function int ppp_register_net_channel(net*, ppp_channel*)'
  [A] 'function int ppp_unit_number(ppp_channel*)'
  [A] 'function void ppp_unregister_channel(ppp_channel*)'
  [A] 'function int pppox_compat_ioctl(socket*, unsigned int, unsigned long int)'
  [A] 'function int pppox_ioctl(socket*, unsigned int, unsigned long int)'
  [A] 'function void pppox_unbind_sock(sock*)'
  [A] 'function cred* prepare_kernel_cred(task_struct*)'
  [A] 'function int register_key_type(key_type*)'
  [A] 'function int register_pppox_proto(int, const pppox_proto*)'
  [A] 'function int register_tcf_proto_ops(tcf_proto_ops*)'
  [A] 'function key* request_key_tag(key_type*, const char*, key_tag*, const char*)'
  [A] 'function scatterlist* scatterwalk_ffwd(scatterlist*, scatterlist*, unsigned int)'
  [A] 'function void shash_free_instance(crypto_instance*)'
  [A] 'function int shash_register_instance(crypto_template*, shash_instance*)'
  [A] 'function simd_skcipher_alg* simd_skcipher_create_compat(const char*, const char*, const char*)'
  [A] 'function void simd_skcipher_free(simd_skcipher_alg*)'
  [A] 'function int skb_cow_data(sk_buff*, int, sk_buff**)'
  [A] 'function int skb_ensure_writable(sk_buff*, int)'
  [A] 'function int skb_to_sgvec_nomark(sk_buff*, scatterlist*, int, int)'
  [A] 'function int skcipher_walk_aead_decrypt(skcipher_walk*, aead_request*, bool)'
  [A] 'function int skcipher_walk_aead_encrypt(skcipher_walk*, aead_request*, bool)'
  [A] 'function int skcipher_walk_done(skcipher_walk*, int)'
  [A] 'function int skcipher_walk_virt(skcipher_walk*, skcipher_request*, bool)'
  [A] 'function int sock_diag_destroy(sock*, int)'
  [A] 'function sk_buff* sock_wmalloc(sock*, unsigned long int, int, unsigned int)'
  [A] 'function void start_tty(tty_struct*)'
  [A] 'function void static_key_slow_dec(static_key*)'
  [A] 'function void static_key_slow_inc(static_key*)'
  [A] 'function void stop_tty(tty_struct*)'
  [A] 'function int tcf_action_exec(sk_buff*, tc_action**, int, tcf_result*)'
  [A] 'function void tcf_exts_destroy(tcf_exts*)'
  [A] 'function int tcf_exts_dump(sk_buff*, tcf_exts*)'
  [A] 'function int tcf_exts_dump_stats(sk_buff*, tcf_exts*)'
  [A] 'function int tcf_exts_validate(net*, tcf_proto*, nlattr**, nlattr*, tcf_exts*, bool, bool, netlink_ext_ack*)'
  [A] 'function bool tcf_queue_work(rcu_work*, void ()*)'
  [A] 'function int tty_mode_ioctl(tty_struct*, file*, unsigned int, unsigned long int)'
  [A] 'function void unregister_key_type(key_type*)'
  [A] 'function void unregister_pppox_proto(int)'
  [A] 'function int unregister_tcf_proto_ops(tcf_proto_ops*)'
  [A] 'function void user_destroy(key*)'
  [A] 'function long int user_read(const key*, char*, size_t)'
  [A] 'function void user_revoke(key*)'
  [A] 'function void virtio_break_device(virtio_device*)'
  [A] 'function int xfrm4_protocol_deregister(xfrm4_protocol*, unsigned char)'
  [A] 'function int xfrm4_protocol_register(xfrm4_protocol*, unsigned char)'
  [A] 'function int xfrm4_rcv(sk_buff*)'
  [A] 'function int xfrm4_tunnel_deregister(xfrm_tunnel*, unsigned short int)'
  [A] 'function int xfrm4_tunnel_register(xfrm_tunnel*, unsigned short int)'
  [A] 'function int xfrm6_find_1stfragopt(xfrm_state*, sk_buff*, u8**)'
  [A] 'function int xfrm6_protocol_deregister(xfrm6_protocol*, unsigned char)'
  [A] 'function int xfrm6_protocol_register(xfrm6_protocol*, unsigned char)'
  [A] 'function int xfrm6_rcv(sk_buff*)'
  [A] 'function xfrm_algo_desc* xfrm_aalg_get_byname(const char*, int)'
  [A] 'function int xfrm_init_state(xfrm_state*)'
  [A] 'function int xfrm_input(sk_buff*, int, unsigned int, int)'
  [A] 'function int xfrm_input_resume(sk_buff*, int)'
  [A] 'function int xfrm_output_resume(sk_buff*, int)'
  [A] 'function int xfrm_register_type(const xfrm_type*, unsigned short int)'
  [A] 'function xfrm_state* xfrm_state_alloc(net*)'
  [A] 'function void xfrm_state_insert(xfrm_state*)'
  [A] 'function xfrm_state* xfrm_state_lookup(net*, unsigned int, const __anonymous_union__2*, unsigned int, unsigned char, unsigned short int)'
  [A] 'function void xfrm_unregister_type(const xfrm_type*, unsigned short int)'
  [A] 'function nf_hook_ops* xt_hook_ops_alloc(const xt_table*, void ()*)'
  [A] 'function int xt_register_match(xt_match*)'
  [A] 'function int xt_register_matches(xt_match*, unsigned int)'
  [A] 'function int xt_register_target(xt_target*)'
  [A] 'function int xt_register_targets(xt_target*, unsigned int)'
  [A] 'function void xt_unregister_match(xt_match*)'
  [A] 'function void xt_unregister_matches(xt_match*, unsigned int)'
  [A] 'function void xt_unregister_target(xt_target*)'
  [A] 'function void xt_unregister_targets(xt_target*, unsigned int)'

9 Added variables:

  [A] 'const u16 crc_ccitt_table[256]'
  [A] 'bool fpsimd_context_busy'
  [A] 'spinlock_t nf_conntrack_expect_lock'
  [A] 'const nf_conntrack_zone nf_ct_zone_dflt'
  [A] 'bool nf_skb_duplicated'
  [A] 'raw_hashinfo raw_v4_hashinfo'
  [A] 'raw_hashinfo raw_v6_hashinfo'
  [A] 'int sysctl_nf_log_all_netns'
  [A] 'static_key xt_tee_enabled'

Bug: 147075469
Change-Id: Id2ad758ad1eacc85ff71aece131ec9c7b18fc76e
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-04-24 19:38:18 +08:00
Satya Tangirala
2c6b2164e6 ANDROID: gki_defconfig: enable CONFIG_MMC_CRYPTO
Enable inline encryption support in MMC core.

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

'struct hc_driver at hcd.h:255:1' changed:
  type size changed from 3136 to 3264 (in bits)
  1 data member insertion:
    'unsigned long int hc_driver::android_vendor_data[2]', at offset 2880 (in bits) at hcd.h:419:1
  there are data member changes:
    'u64 hc_driver::android_kabi_reserved1' offset changed from 2880 to 3008 (in bits) (by +128 bits)
    'u64 hc_driver::android_kabi_reserved2' offset changed from 2944 to 3072 (in bits) (by +128 bits)
    'u64 hc_driver::android_kabi_reserved3' offset changed from 3008 to 3136 (in bits) (by +128 bits)
    'u64 hc_driver::android_kabi_reserved4' offset changed from 3072 to 3200 (in bits) (by +128 bits)
  16 impacted interfaces

'struct mmc_host at host.h:271:1' changed:
  type size changed from 12288 to 13312 (in bits)
  2 data member insertions:
    'keyslot_manager* mmc_host::ksm', at offset 12288 (in bits) at host.h:467:1
    'void* mmc_host::crypto_DO_NOT_USE[7]', at offset 12352 (in bits) at host.h:468:1
  there are data member changes:
    'bool mmc_host::hsq_enabled' offset changed from 12272 to 12800 (in bits) (by +528 bits)
    'unsigned long int mmc_host::private[]' offset changed from 12288 to 13312 (in bits) (by +1024 bits)
  87 impacted interfaces

'struct mmc_request at core.h:147:1' changed:
  type size changed from 1024 to 1216 (in bits)
  3 data member insertions:
    'int mmc_request::crypto_key_slot', at offset 1024 (in bits) at core.h:169:1
    'u64 mmc_request::data_unit_num', at offset 1088 (in bits) at core.h:170:1
    'const blk_crypto_key* mmc_request::crypto_key', at offset 1152 (in bits) at core.h:171:1
  87 impacted interfaces

'struct ufs_hba at ufshcd.h:589:1' changed:
  type size changed from 29440 to 29952 (in bits)
  1 data member insertion:
    'void* ufs_hba::crypto_DO_NOT_USE[8]', at offset 29184 (in bits) at ufshcd.h:826:1
  there are data member changes:
    'u64 ufs_hba::android_kabi_reserved1' offset changed from 29184 to 29696 (in bits) (by +512 bits)
    'u64 ufs_hba::android_kabi_reserved2' offset changed from 29248 to 29760 (in bits) (by +512 bits)
    'u64 ufs_hba::android_kabi_reserved3' offset changed from 29312 to 29824 (in bits) (by +512 bits)
    'u64 ufs_hba::android_kabi_reserved4' offset changed from 29376 to 29888 (in bits) (by +512 bits)
  13 impacted interfaces

'struct ufs_hba_crypto_variant_ops at ufshcd.h:371:1' changed:
  type size changed from 1024 to 1536 (in bits)
  1 data member insertion:
    'void* ufs_hba_crypto_variant_ops::crypto_DO_NOT_USE[8]', at offset 768 (in bits) at ufshcd.h:391:1
  there are data member changes:
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved1' offset changed from 768 to 1280 (in bits) (by +512 bits)
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved2' offset changed from 832 to 1344 (in bits) (by +512 bits)
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved3' offset changed from 896 to 1408 (in bits) (by +512 bits)
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved4' offset changed from 960 to 1472 (in bits) (by +512 bits)
  13 impacted interfaces

Bug: 153512828
Bug: 144046242
Change-Id: I1bdf922c2373c0d756864df2c329d7a8179fe09e
Signed-off-by: Satya Tangirala <satyat@google.com>
2020-04-23 21:17:05 +00:00
Satya Tangirala
5dfea78d00 ANDROID: Add padding for crypto related structs in UFS and MMC
Add padding to ufshcd_host and ufshcd_hba_variant_ops UFS, and mmc_host
in MMC to allow expansions in future if necessary, while keeping the
ABI stable. These fields are only for the purposes of keeping the ABI
stable, and in particular are *NOT* for vendor use.

Bug: 153512828
Bug: 144046242
Bug: 137270441
Change-Id: I7b780680bf3e8a3121c6f77b35a2a16d41f3bea6
Signed-off-by: Satya Tangirala <satyat@google.com>
2020-04-23 20:48:15 +00:00
Satya Tangirala
555cf12eb6 ANDROID: mmc: MMC crypto API
Make mmc core able to use the blk-crypto framework for inline
encryption. This patch introduces a pointer to struct keyslot_manager
to struct mmc_host, and handles setting up the request_queue for
devices using that keyslot_manager appropriately. It also inits struct
mmc_request's inline encryption fields before it's passed to
mmc_host::ops->request.

Users of the core code in host/ (e.g. cqhci.c) should initialize the
keyslot_manager in struct mmc_host appropriately, if they want to
support inline encryption. They should also handle any inline
encryption related work necessary when mmc_host::ops->request is
called.

This patch is only compile tested, as I don't have a device to
actually test these patches. Enable CONFIG_MMC_CRYPTO to test

Bug: 153512828
Bug: 144046242
Change-Id: I6f98ffadfa6e39d7fdc3752b069210ad97babd8b
Co-developed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Satya Tangirala <satyat@google.com>
2020-04-23 20:45:48 +00:00
Orson Zhai
5f5805ee7b ANDROID: GKI: USB: Add vendor specified variables to hc_driver
These data is used by Android vendor for specific purpose.

Bug: 154693739
Change-Id: I6fa39d3e79168105103a1a5ed67d1e690a599c1b
Signed-off-by: Orson Zhai <orson.zhai@unisoc.com>
2020-04-23 18:30:56 +00:00
Yongqin Liu
e986f06508 ANDROID: hikey960_gki.fragment enable CONFIG_SDCARD_FS=m
as the config of CONFIG_SDCARD_FS was disbaled in the gki_defconfig file
with the change here:
    https://android-review.googlesource.com/c/kernel/common/+/1235239

and we need to enable the sdcardfs module to have the sdcard directories
created to install apk files and to push files

Test: adb push xxx /sdcard/sdcard/Music/xxx works

Fixes: f0212822fa ("ANDROID: gki_defconfig: Disable SDCARD_FS")
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
Change-Id: I2ddd6a6ac383d55171fe842956f52b4e11775003
2020-04-23 18:05:34 +00:00
Greg Kroah-Hartman
ae42f3a91e ANDROID: GKI: update abi.xml due to additional Android ABI padding
Leaf changes summary: 13 artifacts changed
Changed leaf types summary: 12 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 1 Changed, 0 Added variable

1 Changed variable:

  [C] 'bio_set fs_bio_set' was changed at bio.c:47:1:
    type of variable changed:
      type size changed from 1920 to 2176 (in bits)
      4 data member insertions:
        'u64 bio_set::android_kabi_reserved1', at offset 1920 (in bits) at bio.h:729:1
        'u64 bio_set::android_kabi_reserved2', at offset 1984 (in bits) at bio.h:730:1
        'u64 bio_set::android_kabi_reserved3', at offset 2048 (in bits) at bio.h:731:1
        'u64 bio_set::android_kabi_reserved4', at offset 2112 (in bits) at bio.h:732:1
      126 impacted interfaces:

'struct bio_set at bio.h:704:1' changed:
  details were reported earlier

'struct dentry at dcache.h:89:1' changed:
  type size changed from 1536 to 1664 (in bits)
  2 data member insertions:
    'u64 dentry::android_kabi_reserved1', at offset 1536 (in bits) at dcache.h:123:1
    'u64 dentry::android_kabi_reserved2', at offset 1600 (in bits) at dcache.h:124:1
  2518 impacted interfaces:

'struct dentry_operations at dcache.h:135:1' changed:
  type size changed from 1024 to 1536 (in bits)
  4 data member insertions:
    'u64 dentry_operations::android_kabi_reserved1', at offset 896 (in bits) at dcache.h:155:1
    'u64 dentry_operations::android_kabi_reserved2', at offset 960 (in bits) at dcache.h:156:1
    'u64 dentry_operations::android_kabi_reserved3', at offset 1024 (in bits) at dcache.h:157:1
    'u64 dentry_operations::android_kabi_reserved4', at offset 1088 (in bits) at dcache.h:158:1
  2518 impacted interfaces:

'struct elevator_mq_ops at elevator.h:29:1' changed:
  type size changed from 1408 to 1664 (in bits)
  4 data member insertions:
    'u64 elevator_mq_ops::android_kabi_reserved1', at offset 1408 (in bits) at elevator.h:55:1
    'u64 elevator_mq_ops::android_kabi_reserved2', at offset 1472 (in bits) at elevator.h:56:1
    'u64 elevator_mq_ops::android_kabi_reserved3', at offset 1536 (in bits) at elevator.h:57:1
    'u64 elevator_mq_ops::android_kabi_reserved4', at offset 1600 (in bits) at elevator.h:58:1
  126 impacted interfaces:

'struct elevator_type at elevator.h:66:1' changed:
  type size changed from 2240 to 2624 (in bits)
  2 data member insertions:
    'u64 elevator_type::android_kabi_reserved1', at offset 2496 (in bits) at elevator.h:96:1
    'u64 elevator_type::android_kabi_reserved2', at offset 2560 (in bits) at elevator.h:97:1
  there are data member changes:
    type 'struct elevator_mq_ops' of 'elevator_type::ops' changed as reported earlier
    and size changed from 1408 to 1664 (in bits) (by +256 bits)
    'size_t elevator_type::icq_size' offset changed from 1472 to 1728 (in bits) (by +256 bits)
    'size_t elevator_type::icq_align' offset changed from 1536 to 1792 (in bits) (by +256 bits)
    'elv_fs_entry* elevator_type::elevator_attrs' offset changed from 1600 to 1856 (in bits) (by +256 bits)
    'const char* elevator_type::elevator_name' offset changed from 1664 to 1920 (in bits) (by +256 bits)
    'const char* elevator_type::elevator_alias' offset changed from 1728 to 1984 (in bits) (by +256 bits)
    'const unsigned int elevator_type::elevator_features' offset changed from 1792 to 2048 (in bits) (by +256 bits)
    'module* elevator_type::elevator_owner' offset changed from 1856 to 2112 (in bits) (by +256 bits)
    'char elevator_type::icq_cache_name[22]' offset changed from 1920 to 2176 (in bits) (by +256 bits)
    'list_head elevator_type::list' offset changed from 2112 to 2368 (in bits) (by +256 bits)
  126 impacted interfaces:

'struct request_queue at blkdev.h:395:1' changed:
  type size changed from 15488 to 15744 (in bits)
  there are data member changes:
    type 'struct bio_set' of 'request_queue::bio_split' changed as reported earlier
    and size changed from 1920 to 2176 (in bits) (by +256 bits)
    'bool request_queue::mq_sysfs_init_done' offset changed from 14656 to 14912 (in bits) (by +256 bits)
    'size_t request_queue::cmd_size' offset changed from 14720 to 14976 (in bits) (by +256 bits)
    'work_struct request_queue::release_work' offset changed from 14784 to 15040 (in bits) (by +256 bits)
    'u64 request_queue::write_hints[5]' offset changed from 15168 to 15424 (in bits) (by +256 bits)
  126 impacted interfaces:

'struct scsi_cmnd at scsi_cmnd.h:67:1' changed:
  type size changed from 3520 to 3776 (in bits)
  4 data member insertions:
    'u64 scsi_cmnd::android_kabi_reserved1', at offset 3520 (in bits) at scsi_cmnd.h:146:1
    'u64 scsi_cmnd::android_kabi_reserved2', at offset 3584 (in bits) at scsi_cmnd.h:147:1
    'u64 scsi_cmnd::android_kabi_reserved3', at offset 3648 (in bits) at scsi_cmnd.h:148:1
    'u64 scsi_cmnd::android_kabi_reserved4', at offset 3712 (in bits) at scsi_cmnd.h:149:1
  32 impacted interfaces:

'struct scsi_device at scsi_device.h:101:1' changed:
  type size changed from 18048 to 18304 (in bits)
  4 data member insertions:
    'u64 scsi_device::android_kabi_reserved1', at offset 18048 (in bits) at scsi_device.h:235:1
    'u64 scsi_device::android_kabi_reserved2', at offset 18112 (in bits) at scsi_device.h:236:1
    'u64 scsi_device::android_kabi_reserved3', at offset 18176 (in bits) at scsi_device.h:237:1
    'u64 scsi_device::android_kabi_reserved4', at offset 18240 (in bits) at scsi_device.h:238:1
  32 impacted interfaces:

'struct scsi_host_template at scsi_host.h:45:1' changed:
  type size changed from 2752 to 3008 (in bits)
  4 data member insertions:
    'u64 scsi_host_template::android_kabi_reserved1', at offset 2752 (in bits) at scsi_host.h:494:1
    'u64 scsi_host_template::android_kabi_reserved2', at offset 2816 (in bits) at scsi_host.h:495:1
    'u64 scsi_host_template::android_kabi_reserved3', at offset 2880 (in bits) at scsi_host.h:496:1
    'u64 scsi_host_template::android_kabi_reserved4', at offset 2944 (in bits) at scsi_host.h:497:1
  32 impacted interfaces:

'struct ufs_hba at ufshcd.h:578:1' changed:
  type size changed from 29184 to 29440 (in bits)
  4 data member insertions:
    'u64 ufs_hba::android_kabi_reserved1', at offset 29184 (in bits) at ufshcd.h:827:1
    'u64 ufs_hba::android_kabi_reserved2', at offset 29248 (in bits) at ufshcd.h:828:1
    'u64 ufs_hba::android_kabi_reserved3', at offset 29312 (in bits) at ufshcd.h:829:1
    'u64 ufs_hba::android_kabi_reserved4', at offset 29376 (in bits) at ufshcd.h:830:1
  13 impacted interfaces:

'struct ufs_hba_crypto_variant_ops at ufshcd.h:365:1' changed:
  type size changed from 768 to 1024 (in bits)
  4 data member insertions:
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved1', at offset 768 (in bits) at ufshcd.h:392:1
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved2', at offset 832 (in bits) at ufshcd.h:393:1
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved3', at offset 896 (in bits) at ufshcd.h:394:1
    'u64 ufs_hba_crypto_variant_ops::android_kabi_reserved4', at offset 960 (in bits) at ufshcd.h:395:1
  13 impacted interfaces:

'struct ufs_hba_variant_ops at ufshcd.h:329:1' changed:
  type size changed from 1344 to 1600 (in bits)
  4 data member insertions:
    'u64 ufs_hba_variant_ops::android_kabi_reserved1', at offset 1344 (in bits) at ufshcd.h:364:1
    'u64 ufs_hba_variant_ops::android_kabi_reserved2', at offset 1408 (in bits) at ufshcd.h:365:1
    'u64 ufs_hba_variant_ops::android_kabi_reserved3', at offset 1472 (in bits) at ufshcd.h:366:1
    'u64 ufs_hba_variant_ops::android_kabi_reserved4', at offset 1536 (in bits) at ufshcd.h:367:1
  13 impacted interfaces:

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ib8a5bd9c4917fc3cf93cf975718928c8027d583e
2020-04-23 19:26:28 +02:00