usb: gadget: storage: Prevent race condition from stalling thread

Parts of the mass storage gadget driver are prone to race conditions
which could leave the main worker thread in an unwakeable state.
This will lead to the function to not be responsive to the host's
command requests and will result in a host-issued reset. Protect
concurrent accesses to certain state variables via spinlock to
prevent this from happening.

CRs-Fixed: 480025
Change-Id: I5232d9367ff311817f63f8bfbea0c78ef2b5a4db
Signed-off-by: Jack Pham <jackp@codeaurora.org>
scsi: ufs: fix null pointer access issue

If hba is null we can not use default module print.

Change-Id: Iece2405f6c391739fae055ee28a565ba271c2df1
Signed-off-by: Dolev Raviv <draviv@codeaurora.org>
sched: Set MC (multi-core) sched domain's busy_factor attribute to 1

busy_factor attribute of a scheduler domain causes busy CPUs (CPUs
that are not idle) to load balance less frequently in that domain,
which could impact performance by increasing scheduling latency for
tasks.

As an example, consider MC scheduler domain's attribute values of
max_interval = 4ms and busy_factor = 64. Further consider
max_load_balance_interval = 100 (HZ/10). In this case, a non-idle CPU
could put off load balance check in MC domain by 100ms. This
effectively means that a CPU running a single task in its queue could
fail to notice increased load on another CPU (that is in same MC
domain) for upto 100ms, before picking up load from the overloaded
CPU. Needless to say, this leads to increased scheduling latency for
tasks, affecting performance adversely.

By setting MC domain's busy_factor value to 1, we limit maximum
interval that busy CPU can put off load balance checks to 4ms
(effectively 10ms, given HZ value of 100).

Change-Id: Id45869d06f5556ea8eec602b65c2ffd2143fe060
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
mmc: sdhci: initialize sdhci_host lock in sdhci_alloc_host()

Currently, the sdhci host lock is initialized in sdhci_add_host()
but there can be a case where it is required even before that.
Hence, initialize it in sdhci_alloc_host() where sdhci_host
structure is allocated.

Change-Id: If99d82679c07bc2d36e0aad9354757288aa400b8
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
scsi: ufs: remove redundant check

The cmd null check is unnecessary. In addition, there is no third else
case thus no print is required.

Change-Id: Ibbe67bda955fce70ffea86f48133479e585d1c3c
Signed-off-by: Dolev Raviv <draviv@codeaurora.org>
Documentation: devicetree: Add DT bindings for UFS host controller

Compatible list is used in commit 03b1781 but is not documented.
Add necessary device tree bindings to describe on-chip UFS host
controllers.

Change-Id: I34e06cdeaf08f68855f7015ce94ef740ca327938
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
sched: remove migration notification from RT class

Commit 88a7e37d265 (sched: provide per cpu-cgroup option to
notify on migrations) added a notifier call when a task is moved
to a different CPU. Unfortunately the two call sites in the RT
sched class where this occurs happens with a runqueue lock held.
This can result in a deadlock if the notifier call attempts to do
something like wake up a task.

Fortunately the benefit of 88a7e37d265 comes mainly from notifying
on migration of non-RT tasks, so we can simply ignore the movements
of RT tasks.

CRs-Fixed: 491370
Change-Id: I8849d826bf1eeaf85a6f6ad872acb475247c5926
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
mmc: core: export mmc_host_may_gate_card function

MMC Host driver might want to use the mmc_host_may_gate_card() API
to know whether the clock can be gated to the card or not hence
export this function for usage outside its current scope.

Change-Id: I9ec4173063e2505eca179161cdf8cda033a3fd4b
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
arm: Prevent memory aliasing on non-LPAE kernels

Some LPAE-capable systems may use a Device Tree containing
memory nodes that describe memory extending beyond the 4GB
physical address boundary. Ignore or truncate these memory
nodes on kernels that have not been built with LPAE
support, to prevent the extended physical addresses from
being truncated and aliasing with physical addresses below
the 4GB boundary.

Change-Id: I910d272820344de8b5ba65078fa47528a816a65b
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
USB: dwc3: core.c: Add SW workaround for DRD device buffer overflow issue

When Host sends Vendor Device test request to device, USB core writes
Vendor device test event into event buffer which might cause buffer
overflow due to HW bug. This could lead to memory corruption. Hence
allocate 8 bytes more for event buffer than reported to controller
through GEVNTSIZE register.

CRs-Fixed: 493717
Change-Id: I42cf3af709021ec201288aec9cca5f3af473bf3c
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
drivers/staging: msm8610: Reduce android log buffer sizes

Savings of 768KB in the total kernel static size
which translates to an increase in the android userspace memory
Useful for memory constrained devices like msm8610, msm8226

Change-Id: I3766a6db0acb2247ea202c2c416b32643587ca21
Signed-off-by: Bhargav Upperla <bhargavuln@codeaurora.org>
ALSA: PCM: volume API implementation

Introduced a new helper function snd_pcm_add_volume_ctls() to
create control elements representing the volume for each PCM
(sub)stream.

Change-Id: Id483257c4fe84a909e7a4af3a5aa3e4f0d5d9ea5
Signed-off-by: Damir Didjusto <damird@codeaurora.org>
Turn off -Wmaybe-uninitialized when building with -Os

gcc-4.7 and higher add a lot of false positive warnings about
potential uses of uninitialized warnings, but only when optimizing
for size (-Os). This is the default when building allyesconfig,
which turns on CONFIG_CC_OPTIMIZE_FOR_SIZE.

In order to avoid getting a lot of patches that initialize such
variables and accidentally hide real errors along the way, let's
just turn off this warning on the respective gcc versions
when building with size optimizations. The -Wmaybe-uninitialized
option was introduced in the same gcc version (4.7) that is now
causing the false positives, so there is no effect on older compilers.

A side effect is that when building with CONFIG_CC_OPTIMIZE_FOR_SIZE,
we might now see /fewer/ warnings about possibly uninitialized
warnings than with -O2, but that is still much better than seeing
warnings known to be bogus.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Git-commit: e74fc973b6e531fef1fce8b101ffff05ecfb774c
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
gcc-wrapper: trim whitelist for gcc 4.7

With recent code and defconfig changes, the number warnings needing to
be ignored has gone done.  Update the wrapper accordingly.

Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
signal: always clear sa_restorer on execve

When the new signal handlers are set up, the location of sa_restorer is
not cleared, leaking a parent process's address space location to
children.  This allows for a potential bypass of the parent's ASLR by
examining the sa_restorer value returned when calling sigaction().

Based on what should be considered "secret" about addresses, it only
matters across the exec not the fork (since the VMAs haven't changed
until the exec).  But since exec sets SIG_DFL and keeps sa_restorer,
this is where it should be fixed.

Given the few uses of sa_restorer, a "set" function was not written
since this would be the only use.  Instead, we use
__ARCH_HAS_SA_RESTORER, as already done in other places.

Example of the leak before applying this patch:

  $ cat /proc/$$/maps
  ...
  7fb9f3083000-7fb9f3238000 r-xp 00000000 fd:01 404469 .../libc-2.15.so
  ...
  $ ./leak
  ...
  7f278bc74000-7f278be29000 r-xp 00000000 fd:01 404469 .../libc-2.15.so
  ...
  1 0 (nil) 0x7fb9f30b94a0
  2 4000000 (nil) 0x7f278bcaa4a0
  3 4000000 (nil) 0x7f278bcaa4a0
  4 0 (nil) 0x7fb9f30b94a0
  ...

[akpm@linux-foundation.org: use SA_RESTORER for backportability]
Signed-off-by: Kees Cook <keescook@chromium.org>
Reported-by: Emese Revfy <re.emese@gmail.com>
Cc: Emese Revfy <re.emese@gmail.com>
Cc: PaX Team <pageexec@freemail.hu>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Serge Hallyn <serge.hallyn@canonical.com>
Cc: Julien Tinnes <jln@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit:2ca39528c01a933f6689cd6505ce65bd6d68a530
Git-Repo:https://github.com/torvalds/linux
Git-link:https://github.com/torvalds/linux/commit/2ca39528c01a933f6689cd6505ce65bd6d68a530
Change-Id: I7ae396ee90c2339c86f7b773d15f5571f8fd54c5
Signed-off-by: Goberu Gopal <ggober@codeaurora.org>
Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
usb: ehci-msm: Specify DMA coherent mask

EHCI msm driver uses DMA coherent memory which requires setting
dma masks correctly.

Change-Id: I4b4983f451ba2eb07277ac315df69b82ca2588bd
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>