Commit Graph

34 Commits

Author SHA1 Message Date
Christian Hoff 6ddae19459 Another compile fix for kernel >= 5.8
With kernel 5.8, the return value of map_kernel_range_noflush()
was changed. This function now returns 0 on success (instead of
the number of successfully mapped pages).

This commit adjusts binder accordingly.
2021-03-08 21:23:59 +01:00
Christian Hoff 443f984b1a Compile fixes for kernel >= 5.8
With the commit 64fe66e8a95e in the Linux kernel, the member "mmap_sem" in the
struct mm_struct was renamed to "mmap_lock". This patch fixes the resulting
compile errors.
2021-03-08 20:44:14 +01:00
Christian Hoff 4af9d5d591 Fix compilation of binder and ashmem on kernel 5.7 and later
On kernel 5.7 and later, kallsyms_lookup_name() can no longer be called from a kernel
module for reasons described here: https://lwn.net/Articles/813350/
As binder really needs to use kallsysms_lookup_name() to access some kernel
functions that otherwise wouldn't be accessible, KProbes are used on later
kernels to get the address of kallsysms_lookup_name(). The function is
afterwards used just as before. This is a very dirty hack though and the much
better solution would be if all the functions that are currently resolved
with kallsysms_lookup_name() would get an EXPORT_SYMBOL() annotation to
make them directly accessible to kernel modules.
2021-03-08 20:19:16 +01:00
Simon Fels 98f0f3b3b1
Merge pull request #43 from pevik/kernel-v5.4
travis: Add kernel v5.4
2020-06-14 10:15:28 +02:00
Simon Fels 8f3d8b9235
Merge pull request #45 from devhammed/feat/add_script_that_automates_install_steps
feat: add script that automates install steps
2020-06-14 10:15:07 +02:00
Hammed Oyedele c9fe3e7d23
docs: describe the purpose of the INSTALL.sh 2020-03-04 10:25:36 +01:00
Hammed Oyedele 083cc573b6
feat: add script that automates install steps 2020-03-04 10:23:32 +01:00
Petr Vorel b9cd224b48 travis: Add kernel v5.4
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
2020-01-01 20:29:30 +01:00
Simon Fels e0a237e571
Merge pull request #38 from bentolor/fix/kernel-5.3
Add KVER=5.2 and KVER=5.3 to travis configuration
2019-11-14 15:13:46 -08:00
Benjamin Schmid 6ebb94b78a Add KVER=5.2 and KVER=5.3 to travis configuration 2019-10-29 12:12:20 +01:00
Simon Fels 816dd4d6e7
Merge pull request #19 from 86423355844265459587182778/master
Fix compilation on kernels >= 5.1
2019-07-13 11:32:21 +02:00
Anonymous 85d3854719 Update Travis configuration 2019-07-04 19:02:11 +09:00
Anonymous 2dc5e2e70a Update Travis configuration 2019-07-04 18:54:57 +09:00
Anonymous 0b96354396 Update Travis configuration 2019-07-04 18:44:11 +09:00
Anonymous c0518e945d Update Travis configuration to use GCC 8 2019-07-04 18:37:54 +09:00
Anonymous ec5b60a231 Add KVER=5.0 and KVER=5.1 to travis configuration 2019-06-04 15:43:43 +09:00
Anonymous ae35b8da22 Fix compilation on kernels >= 5.1 2019-05-12 12:45:44 +09:00
Simon Fels 27fd47e11e
Merge pull request #10 from mkhon/linux-3.10
Fix build on vzkernel 3.10
2018-09-08 14:57:43 +02:00
Max Khon 67172ec4bd Fix build on vzkernel 3.10 2018-09-06 07:30:17 -04:00
Simon Fels bb8a4c9972 Update changelog for release 12 and 13 2018-09-02 13:45:47 +02:00
Simon Fels 5061f6e5cb
Merge pull request #9 from morphis/fix-sigbus-with-newer-kernels
staging: ashmem: Fix SIGBUS crash when traversing mmaped ashmem pages
2018-09-02 12:20:21 +02:00
Simon Fels 0e31fc5ec5 ashmem: account for older kernel which don't have vma_set_anonymous
Was first introduced in 4.18 and needs to be called from ashmem when
running with a kernel >= 4.18.
2018-09-02 12:11:35 +02:00
John Stultz 0391d4fe2f staging: ashmem: Fix SIGBUS crash when traversing mmaped ashmem pages
Amit Pundir and Youling in parallel reported crashes with recent
mainline kernels running Android:

  F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
  F DEBUG   : Build fingerprint: 'Android/db410c32_only/db410c32_only:Q/OC-MR1/102:userdebug/test-key
  F DEBUG   : Revision: '0'
  F DEBUG   : ABI: 'arm'
  F DEBUG   : pid: 2261, tid: 2261, name: zygote  >>> zygote <<<
  F DEBUG   : signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 0xec00008
  ... <snip> ...
  F DEBUG   : backtrace:
  F DEBUG   :     #00 pc 00001c04  /system/lib/libc.so (memset+48)
  F DEBUG   :     #01 pc 0010c513  /system/lib/libart.so (create_mspace_with_base+82)
  F DEBUG   :     #02 pc 0015c601  /system/lib/libart.so (art::gc::space::DlMallocSpace::CreateMspace(void*, unsigned int, unsigned int)+40)
  F DEBUG   :     #03 pc 0015c3ed  /system/lib/libart.so (art::gc::space::DlMallocSpace::CreateFromMemMap(art::MemMap*, std::__1::basic_string<char, std::__ 1::char_traits<char>, std::__1::allocator<char>> const&, unsigned int, unsigned int, unsigned int, unsigned int, bool)+36)
  ...

This was bisected back to commit bfd40eaff5ab ("mm: fix
vma_is_anonymous() false-positives").

create_mspace_with_base() in the trace above, utilizes ashmem, and with
ashmem, for shared mappings we use shmem_zero_setup(), which sets the
vma->vm_ops to &shmem_vm_ops.  But for private ashmem mappings nothing
sets the vma->vm_ops.

Looking at the problematic patch, it seems to add a requirement that one
call vma_set_anonymous() on a vma, otherwise the dummy_vm_ops will be
used.  Using the dummy_vm_ops seem to triggger SIGBUS when traversing
unmapped pages.

Thus, this patch adds a call to vma_set_anonymous() for ashmem private
mappings and seems to avoid the reported problem.

Fixes: bfd40eaff5ab ("mm: fix vma_is_anonymous() false-positives")
Cc: Kirill Shutemov <kirill.shutemov@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hugh Dickins <hughd@google.com>
Cc: Joel Fernandes <joelaf@google.com>
Cc: Colin Cross <ccross@google.com>
Cc: Matthew Wilcox <willy@infradead.org>
Reported-by: Amit Pundir <amit.pundir@linaro.org>
Reported-by: Youling 257 <youling257@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-09-02 11:40:16 +02:00
Simon Fels 2a5ea7c88b
Merge pull request #5 from megies/patch-1
Fix modprobe call in README
2018-07-13 08:04:06 +02:00
Tobias Megies 1049f488ff
Update README.md
built module name for binder was not correct.. so the modprobe command needs changing compare c0c9d8f5d5/ashmem/dkms.conf (L5)
2018-07-12 15:38:08 +02:00
Simon Fels c0c9d8f5d5
Merge pull request #3 from zhsj/add-install-doc
add install instruction
2018-06-23 14:21:13 +02:00
Shengjing Zhu 7c5c2226b8 add install instruction
Signed-off-by: Shengjing Zhu <i@zhsj.me>
2018-06-22 22:50:18 +08:00
Simon Fels 5635fc41a2
Merge pull request #2 from zhsj/travis
add travis to test module build
2018-06-12 08:44:22 +02:00
Shengjing Zhu ad88288e8a add travis to test module build
Signed-off-by: Shengjing Zhu <i@zhsj.me>
2018-06-12 11:20:12 +08:00
Simon Fels c807ff7648
Merge pull request #1 from zhsj/master
WIP: improve debian package
2018-06-08 18:25:50 +02:00
Shengjing Zhu 3839bfd6e2 improve debian package
Signed-off-by: Shengjing Zhu <i@zhsj.me>
2018-06-09 00:22:45 +08:00
Simon Fels f6a8d43b1d Add travis CI build status to our README 2018-06-08 17:29:53 +02:00
Simon Fels f55cccbe65 scripts: add travis build support 2018-06-08 17:24:42 +02:00
Simon Fels f3d77d660c Import kernel module source from original Anbox repository 2018-06-08 17:20:21 +02:00