Backport hsmmc driver
Sync lib/hexdump.c with 3.12.y

Signed-off-by: artas182x <artas182x@gmail.com>
Added Samsung exfat source, modded by @rxrz @lqs and me :)

This driver can replace FAT16/32 driver!

This driver can be built on 3.0.y up to 3.10.y :)

source came from here!
http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=exfat

then tuned in here
https://github.com/rxrz/exfat-nofuse/commits/master

and then update be me :)
https://github.com/dorimanx/exfat-nofuse

Mazal tov :)

Conflicts:
	fs/Makefile

Signed-off-by: artas182x <artas182x@gmail.com>
EXFAT some ports and corrections to fix small bugs

Signed-off-by: artas182x <artas182x@gmail.com>
exFAT Kconfig and build bits

Signed-off-by: artas182x <artas182x@gmail.com>
Backport AIO from Linux 3.6.x

Signed-off-by: artas182x <artas182x@gmail.com>
add zbud and backport zswap from linux 3.11 (DerTeufel)

Change-Id: Id8ce272892e6ef5c749fe63c1b2a69a5ac29050a

Conflicts:
	mm/Kconfig
	mm/Makefile
	mm/zswap.c

Conflicts:
	mm/Kconfig

Signed-off-by: artas182x <artas182x@gmail.com>
-fs Backport Flash-Friendly FileSystems (f2fs) --nowcomputing

Signed-off-by: artas182x <artas182x@gmail.com>
readahead: Optimize divide/multiply by power of 2 using L/R shift - Thanks Ramgear ---anarkia1976

Signed-off-by: artas182x <artas182x@gmail.com>
-vfp build with neon

Signed-off-by: artas182x <artas182x@gmail.com>
lib/decompressors: fix "no limit" output buffer length

When decompressing into memory, the output buffer length is set to some
arbitrarily high value (0x7fffffff) to indicate the output is, virtually,
unlimited in size.

The problem with this is that some platforms have their physical memory at
high physical addresses (0x80000000 or more), and that the output buffer
address and its "unlimited" length cannot be added without overflowing.
An example of this can be found in inflate_fast():

/* next_out is the output buffer address */
out = strm->next_out - OFF;
/* avail_out is the output buffer size. end will overflow if the output
 * address is >= 0x80000104 */
end = out + (strm->avail_out - 257);

This has huge consequences on the performance of kernel decompression,
since the following exit condition of inflate_fast() will be always true:

} while (in < last && out < end);

Indeed, "end" has overflowed and is now always lower than "out".  As a
result, inflate_fast() will return after processing one single byte of
input data, and will thus need to be called an unreasonably high number of
times.  This probably went unnoticed because kernel decompression is fast
enough even with this issue.

Nonetheless, adjusting the output buffer length in such a way that the
above pointer arithmetic never overflows results in a kernel decompression
that is about 3 times faster on affected machines.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Tested-by: Jon Medhurst <tixy@linaro.org>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Signed-off-by: Amperific <amperific@gmail.com>
Signed-off-by: artas182x <artas182x@gmail.com>
Proportional Rate Reduction for TCP.

This patch implements Proportional Rate Reduction (PRR) for TCP.
PRR is an algorithm that determines TCP's sending rate in fast
recovery. PRR avoids excessive window reductions and aims for
the actual congestion window size at the end of recovery to be as
close as possible to the window determined by the congestion control
algorithm. PRR also improves accuracy of the amount of data sent
during loss recovery.

The patch implements the recommended flavor of PRR called PRR-SSRB
(Proportional rate reduction with slow start reduction bound) and
replaces the existing rate halving algorithm. PRR improves upon the
existing Linux fast recovery under a number of conditions including:
  1) burst losses where the losses implicitly reduce the amount of
outstanding data (pipe) below the ssthresh value selected by the
congestion control algorithm and,
  2) losses near the end of short flows where application runs out of
data to send.

As an example, with the existing rate halving implementation a single
loss event can cause a connection carrying short Web transactions to
go into the slow start mode after the recovery. This is because during
recovery Linux pulls the congestion window down to packets_in_flight+1
on every ACK. A short Web response often runs out of new data to send
and its pipe reduces to zero by the end of recovery when all its packets
are drained from the network. Subsequent HTTP responses using the same
connection will have to slow start to raise cwnd to ssthresh. PRR on
the other hand aims for the cwnd to be as close as possible to ssthresh
by the end of recovery.

A description of PRR and a discussion of its performance can be found at
the following links:
- IETF Draft:
    http://tools.ietf.org/html/draft-mathis-tcpm-proportional-rate-reduction-01
- IETF Slides:
    http://www.ietf.org/proceedings/80/slides/tcpm-6.pdf
    http://tools.ietf.org/agenda/81/slides/tcpm-2.pdf
- Paper to appear in Internet Measurements Conference (IMC) 2011:
    Improving TCP Loss Recovery
    Nandita Dukkipati, Matt Mathis, Yuchung Cheng

Signed-off-by: Nandita Dukkipati <nanditad@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: artas182x <artas182x@gmail.com>
Never append '+' symbol to kernel version string.

Signed-off-by: Dan Trifan <jimsth@gmail.com>
Signed-off-by: artas182x <artas182x@gmail.com>