Merge AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.057 on remote branch

Change-Id: I586a8e1767f4c0ed4f0d92a83d95cc485fe3224f
Merge "Merge AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.057 on remote branch"
Merge pull request #2 from varunchitre15/cm-11.0

Update kernel
Merge AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.058 on remote branch

Change-Id: I18209ef21d286248210d222c33ad761c532c4ee5
Merge "Merge AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.058 on remote branch"
Merge pull request #3 from varunchitre15/cm-11.0

Necessary patches
Merge AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.059 on remote branch

Change-Id: I691dfcf7eb0a035164ee7162ff46ce05823b0490
Merge "Merge AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.059 on remote branch"
pm8xxx-vibrator: implement sysfs for intensity level

Node: /sys/devices/virtual/timed_output/vibrator/level
Range: 12 - 31

Change-Id: I7c2d390cb55c9d39ad9a8cc7e6eb7687832d4465
Revert "Enable SELinux"

This reverts commit f72d24613d4ce5a936c64f6b1b27349daabd31e9.
defconfig: use cleaner and standard format

Signed-off-by: Varun Chitre <varun.chitre15@gmail.com>
re-enable prima
re-enable selinux

Signed-off-by: Varun Chitre <varun.chitre15@gmail.com>
exFAT support

Signed-off-by: flar2 <asegaert@gmail.com>
enable exfat support
taoshan: enable full ntfs support for external storages
do not optimize for size

we have enough partition space for the kernel(16mb), don't do anything at the cost of performance
fixup a forbidden warning
Merge remote-tracking branch 'fxp/cm-11.0' into cm-11.0
n_tty: Fix n_tty_write crash when echoing in raw mode

The tty atomic_write_lock does not provide an exclusion guarantee for
the tty driver if the termios settings are LECHO & !OPOST.  And since
it is unexpected and not allowed to call TTY buffer helpers like
tty_insert_flip_string concurrently, this may lead to crashes when
concurrect writers call pty_write. In that case the following two
writers:
* the ECHOing from a workqueue and
* pty_write from the process
race and can overflow the corresponding TTY buffer like follows.

If we look into tty_insert_flip_string_fixed_flag, there is:
  int space = __tty_buffer_request_room(port, goal, flags);
  struct tty_buffer *tb = port->buf.tail;
  ...
  memcpy(char_buf_ptr(tb, tb->used), chars, space);
  ...
  tb->used += space;

so the race of the two can result in something like this:
              A                                B
__tty_buffer_request_room
                                  __tty_buffer_request_room
memcpy(buf(tb->used), ...)
tb->used += space;
                                  memcpy(buf(tb->used), ...) ->BOOM

B's memcpy is past the tty_buffer due to the previous A's tb->used
increment.

Since the N_TTY line discipline input processing can output
concurrently with a tty write, obtain the N_TTY ldisc output_lock to
serialize echo output with normal tty writes.  This ensures the tty
buffer helper tty_insert_flip_string is not called concurrently and
everything is fine.

Note that this is nicely reproducible by an ordinary user using
forkpty and some setup around that (raw termios + ECHO). And it is
present in kernels at least after commit
d945cb9cce20ac7143c2de8d88b187f62db99bdc (pty: Rework the pty layer to
use the normal buffering logic) in 2.6.31-rc3.

js: add more info to the commit log
js: switch to bool
js: lock unconditionally
js: lock only the tty->ops->write call

References: CVE-2014-0196
Reported-and-tested-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.2: output_lock is a member of struct tty_struct]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>