selinux: fix inode security list corruption

sb_finish_set_opts() can race with inode_free_security()
when initializing inode security structures for inodes
created prior to initial policy load or by the filesystem
during ->mount().   This appears to have always been
a possible race, but commit 3dc91d4 ("SELinux:  Fix possible
NULL pointer dereference in selinux_inode_permission()")
made it more evident by immediately reusing the unioned
list/rcu element  of the inode security structure for call_rcu()
upon an inode_free_security().  But the underlying issue
was already present before that commit as a possible use-after-free
of isec.

Shivnandan Kumar reported the list corruption and proposed
a patch to split the list and rcu elements out of the union
as separate fields of the inode_security_struct so that setting
the rcu element would not affect the list element.  However,
this would merely hide the issue and not truly fix the code.

This patch instead moves up the deletion of the list entry
prior to dropping the sbsec->isec_lock initially.  Then,
if the inode is dropped subsequently, there will be no further
references to the isec.

Reported-by: Shivnandan Kumar <shivnandan.k@samsung.com>
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
Cc: stable@vger.kernel.org
Signed-off-by: Paul Moore <pmoore@redhat.com>
unlzo: fix input buffer free

unlzo modifies the pointer to in_buf, so we have to free the original
buffer, not the modified pointer.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Lasse Collin <lasse.collin@tukaani.org>
Cc: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lzo: properly check for overruns

The lzo decompressor can, if given some really crazy data, possibly
overrun some variable types.  Modify the checking logic to properly
detect overruns before they happen.

Reported-by: "Don A. Bailey" <donb@securitymouse.com>
Tested-by: "Don A. Bailey" <donb@securitymouse.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Revert "init.rc: prep tcp_default_init_rwnd, set the default to 60"

This reverts commit 0105ea69991cb30a2ea5bfcc5827a1d20be874c9.
tcp: add a sysctl to config the tcp_default_init_rwnd

The default initial rwnd was hardcoded to 10.

Now we allow it to be controlled via
  /proc/sys/net/ipv4/tcp_default_init_rwnd
which limits the values from 3 to 100

This is somewhat needed because ipv6 routes are
autoconfigured by the kernel.

See "An Argument for Increasing TCP's Initial Congestion Window"
in https://developers.google.com/speed/articles/tcp_initcwnd_paper.pdf

Change-Id: I7eac8a0a5133371aea9ecb9aec0b608bd7f2cc57
Signed-off-by: JP Abgrall <jpa@google.com>
add property to adjust extra_free_kbytes kernel vm tunable

ActivityManager can't directly write to extra_free_kbytes because
/proc/sys rejects all chown and chmod syscalls.  Proxy the writes
through init by using the sys.sysctl.extra_free_kbytes property.

Bug: 10024467
Change-Id: I441e00478421254355fcafb252bc878166483d4c

Signed-off-by: arter97 <qkrwngud825@gmail.com>
init.rc: prep tcp_default_init_rwnd, set the default to 60

The kernel's default is between 4~20.

Prepare for javaland to modify the value at runtime.

It can be done via
  setprop sys.sysctl.tcp_def_init_rwnd  <value>

Bug: 12020135
Change-Id: Id34194b085206fd02e316401c0fbbb9eb52522d2
(cherry picked from commit 7c862c8b5e59cbe216a5bc092c01f1ecba8e9de4)

Signed-off-by: arter97 <qkrwngud825@gmail.com>
Boeffla-Sound: Engine 1.6.0
Boeffla Sound: FM radio not available with LTE models

set #ifdef conditional to disable unused logic

Credits to faux123 for the proper exclusions using #ifdefs instead of just removing the FM radio related code
Boeffla-Sound: Engine 1.6.3

- delayed apply of changed register settings (credits to Yank) to
  fix issues on CM
- delay time configurable via sysfs (credits to Yank)
- different headphone detection for s3 and note devices
- different call detection
Boeffla-Sound: Engine 1.6.4

- show settings in sysfs even if boeffla sound is switched off
- remove legacy interfaces for alternative eq settings + mic mode
- some code cleanup
Boeffla-Sound: Engine 1.6.5

- allow speaker minimum level of 20
Boeffla-Sound: Engine 1.6.6

- allow minimum volume of 0 for both speaker and headphones
Boeffla Sound: Improved sysfs input validation
Boeffla Sound: Fixed bug in improved sysfs input validation
defconfig updated

Signed-off-by: arter97 <qkrwngud825@gmail.com>
battery: add old bootloader compatibility for LPM mode

Signed-off-by: arter97 <qkrwngud825@gmail.com>