~ubuntu-kernel/ubuntu/+source/linux/+git/utopic:final

Last commit made on 2014-10-21
Get this branch:
git clone -b final https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/utopic
Members of Ubuntu Kernel Repositories can upload to this branch. Log in for directions.

Branch merges

Branch information

Recent commits

b75ea40... by Andy Whitcroft

UBUNTU: Ubuntu-3.16.0-23.31

Signed-off-by: Andy Whitcroft <email address hidden>

272ffb3... by Dmitry Torokhov

Input: synaptics - gate forcepad support by DMI check

Unfortunately, ForcePad capability is not actually exported over PS/2, so
we have to resort to DMI checks.

Cc: <email address hidden>
Reported-by: Nicole Faerber <email address hidden>
Signed-off-by: Dmitry Torokhov <email address hidden>

(backported from commit aa972409951e0675e07918620427517cad5090e0)
BugLink: http://bugs.launchpad.net/bugs/1381815
Conflicts:
 drivers/input/mouse/synaptics.c
Signed-off-by: Andy Whitcroft <email address hidden>

f354531... by Tim Gardner

UBUNTU: Start new release

Ignore: yes
Signed-off-by: Tim Gardner <email address hidden>

92a0e72... by Andy Whitcroft

UBUNTU: Ubuntu-3.16.0-23.30

Signed-off-by: Andy Whitcroft <email address hidden>

7bceebf... by Paolo Pisati

UBUNTU: [Config] armhf: disable JUMP_LABEL

JUMP_LABEL is a branch optimization technic that
makes certain branch conditions cheaper to execute within the kernel,
(e.g. trace points, scheduler functionality, networking code and KVM).

It works by injecting 'nop' at those branch points, and then rewriting
the correct jump instruction when the branch condition becomes true.

Unfortunately, the code rewriting that JUMP_LABEL does interferes with another
security option called DEBUG_SET_MODULE_RONX that marks text and data section
read-only upon modules loading.

While arch like x86 have grown finer control over module's section protection,
armhf has not, and thus the loading of a module that use the JUMP_LABEL optimization
ends up with an oops.

There are some patches that could solve this condition for arm, but those are not
upstream yet and haven't seen broader testing thus i don't feel comfortable in
pulling those in, and i prefer to disable the JUMP_LABEL optimization.

BugLink: http://bugs.launchpad.net/bugs/1378856
Signed-off-by: Paolo Pisati <email address hidden>
Signed-off-by: Tim Gardner <email address hidden>

53c8e13... by Andy Whitcroft

UBUNTU: [Config] CONFIG_DRM_BOCHS=n

BugLink: http://bugs.launchpad.net/bugs/1378648
Signed-off-by: Andy Whitcroft <email address hidden>

20000f0... by Tim Gardner

UBUNTU: Start new release

Ignore: yes
Signed-off-by: Tim Gardner <email address hidden>

fc53bb8... by Tim Gardner

UBUNTU: Ubuntu-3.16.0-22.29

Signed-off-by: Tim Gardner <email address hidden>

a4b8ac5... by Guenter Roeck

seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock

BugLink: http://bugs.launchpad.net/bugs/1379020

Current upstream kernel hangs with mips and powerpc targets in
uniprocessor mode if SECCOMP is configured.

Bisect points to commit dbd952127d11 ("seccomp: introduce writer locking").
Turns out that code such as
 BUG_ON(!spin_is_locked(&list_lock));
can not be used in uniprocessor mode because spin_is_locked() always
returns false in this configuration, and that assert_spin_locked()
exists for that very purpose and must be used instead.

Fixes: dbd952127d11 ("seccomp: introduce writer locking")
Cc: Kees Cook <email address hidden>
Signed-off-by: Guenter Roeck <email address hidden>
Signed-off-by: Kees Cook <email address hidden>
(cherry picked from commit 69f6a34bdeea4fec50bb90619bc9602973119572)
Signed-off-by: Tim Gardner <email address hidden>

f55c9f2... by Kees Cook

seccomp: implement SECCOMP_FILTER_FLAG_TSYNC

BugLink: http://bugs.launchpad.net/bugs/1379020

Applying restrictive seccomp filter programs to large or diverse
codebases often requires handling threads which may be started early in
the process lifetime (e.g., by code that is linked in). While it is
possible to apply permissive programs prior to process start up, it is
difficult to further restrict the kernel ABI to those threads after that
point.

This change adds a new seccomp syscall flag to SECCOMP_SET_MODE_FILTER for
synchronizing thread group seccomp filters at filter installation time.

When calling seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC,
filter) an attempt will be made to synchronize all threads in current's
threadgroup to its new seccomp filter program. This is possible iff all
threads are using a filter that is an ancestor to the filter current is
attempting to synchronize to. NULL filters (where the task is running as
SECCOMP_MODE_NONE) are also treated as ancestors allowing threads to be
transitioned into SECCOMP_MODE_FILTER. If prctrl(PR_SET_NO_NEW_PRIVS,
...) has been set on the calling thread, no_new_privs will be set for
all synchronized threads too. On success, 0 is returned. On failure,
the pid of one of the failing threads will be returned and no filters
will have been applied.

The race conditions against another thread are:
- requesting TSYNC (already handled by sighand lock)
- performing a clone (already handled by sighand lock)
- changing its filter (already handled by sighand lock)
- calling exec (handled by cred_guard_mutex)
The clone case is assisted by the fact that new threads will have their
seccomp state duplicated from their parent before appearing on the tasklist.

Holding cred_guard_mutex means that seccomp filters cannot be assigned
while in the middle of another thread's exec (potentially bypassing
no_new_privs or similar). The call to de_thread() may kill threads waiting
for the mutex.

Changes across threads to the filter pointer includes a barrier.

Based on patches by Will Drewry.

Suggested-by: Julien Tinnes <email address hidden>
Signed-off-by: Kees Cook <email address hidden>
Reviewed-by: Oleg Nesterov <email address hidden>
Reviewed-by: Andy Lutomirski <email address hidden>
(cherry picked from commit c2e1f2e30daa551db3c670c0ccfeab20a540b9e1)
Signed-off-by: Tim Gardner <email address hidden>