[gentoo-commits] proj/linux-patches:3.4 commit in: /

2016-12-09 Thread Mike Pagano
commit: aacb6d87890588e839500bcfeabb1fde7bf93e35
Author: Mike Pagano  gentoo  org>
AuthorDate: Fri Dec  9 23:49:24 2016 +
Commit: Mike Pagano  gentoo  org>
CommitDate: Fri Dec  9 23:49:24 2016 +
URL:https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=aacb6d87

Fix race condition in packet_set_ring. CVE-2016-8655. Bug #601926.

 _README  |  8 +--
 1520_fix-race-condition-in-packet-set-ring.patch | 62 
 2 files changed, 66 insertions(+), 4 deletions(-)

diff --git a/_README b/_README
index 6a446df..aa8adef 100644
--- a/_README
+++ b/_README
@@ -495,14 +495,14 @@ Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.
 
-Patch:  1500_selinux-add-SOCK_DIAG_BY_FAMILY-to-the-list-of-netli.patch
-From:   
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6a96e15096da6e7491107321cfa660c7c2aa119d
-Desc:   selinux: add SOCK_DIAG_BY_FAMILY to the list of netlink message types
-
 Patch:  1512_af_key-initialize-satype-in-key_notify_policy_flush.patch
 From:   
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=85dfb745ee40232876663ae206cba35f24ab2a40
 Desc:   af_key: initialize satype in key_notify_policy_flush()
 
+Patch:  1520_fix-race-condition-in-packet-set-ring.patch
+From:   
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=84ac7260236a49c79eede91617700174c2c19b0c
+Desc:   packet: fix race condition in packet_set_ring. CVE-2016-8655. Bug 
#601926.
+
 Patch:  1700_correct-bnx2-firware-ver-mips.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=424609
 Desc:   Correct firmware version for bnx2 on mips

diff --git a/1520_fix-race-condition-in-packet-set-ring.patch 
b/1520_fix-race-condition-in-packet-set-ring.patch
new file mode 100644
index 000..d85527f
--- /dev/null
+++ b/1520_fix-race-condition-in-packet-set-ring.patch
@@ -0,0 +1,62 @@
+--- a/net/packet/af_packet.c   2016-12-07 18:10:25.785812861 -0500
 b/net/packet/af_packet.c   2016-12-07 18:18:45.597933525 -0500
+@@ -3648,19 +3648,25 @@ packet_setsockopt(struct socket *sock, i
+ 
+   if (optlen != sizeof(val))
+   return -EINVAL;
+-  if (po->rx_ring.pg_vec || po->tx_ring.pg_vec)
+-  return -EBUSY;
+   if (copy_from_user(, optval, sizeof(val)))
+   return -EFAULT;
+   switch (val) {
+   case TPACKET_V1:
+   case TPACKET_V2:
+   case TPACKET_V3:
+-  po->tp_version = val;
+-  return 0;
++  break;
+   default:
+   return -EINVAL;
+   }
++  lock_sock(sk);
++  if (po->rx_ring.pg_vec || po->tx_ring.pg_vec) {
++  ret = -EBUSY;
++  } else {
++  po->tp_version = val;
++  ret = 0;
++  }
++  release_sock(sk);
++  return ret;
+   }
+   case PACKET_RESERVE:
+   {
+@@ -4164,6 +4170,7 @@ static int packet_set_ring(struct sock *
+   /* Added to avoid minimal code churn */
+   struct tpacket_req *req = _u->req;
+ 
++  lock_sock(sk);
+   /* Opening a Tx-ring is NOT supported in TPACKET_V3 */
+   if (!closing && tx_ring && (po->tp_version > TPACKET_V2)) {
+   net_warn_ratelimited("Tx-ring is not supported.\n");
+@@ -4245,8 +4252,6 @@ static int packet_set_ring(struct sock *
+   goto out;
+   }
+ 
+-  lock_sock(sk);
+-
+   /* Detach socket from network */
+   spin_lock(>bind_lock);
+   was_running = po->running;
+@@ -4294,11 +4299,11 @@ static int packet_set_ring(struct sock *
+   if (!tx_ring)
+   prb_shutdown_retire_blk_timer(po, rb_queue);
+   }
+-  release_sock(sk);
+ 
+   if (pg_vec)
+   free_pg_vec(pg_vec, order, req->tp_block_nr);
+ out:
++  release_sock(sk);
+   return err;
+ }
+ 



[gentoo-commits] proj/linux-patches:3.4 commit in: /

2016-04-27 Thread Mike Pagano
commit: c0e453500c330875aef0cc8f1c5669781dc4ee16
Author: Mike Pagano  gentoo  org>
AuthorDate: Wed Apr 27 19:31:59 2016 +
Commit: Mike Pagano  gentoo  org>
CommitDate: Wed Apr 27 19:31:59 2016 +
URL:https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=c0e45350

Linux patch 3.4.112

 _README  |4 +
 _linux-3.4.112.patch | 3175 ++
 2 files changed, 3179 insertions(+)

diff --git a/_README b/_README
index efb1797..2dee9b4 100644
--- a/_README
+++ b/_README
@@ -483,6 +483,10 @@ Patch:  1110_linux-3.4.111.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.111
 
+Patch:  _linux-3.4.112.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.112
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/_linux-3.4.112.patch b/_linux-3.4.112.patch
new file mode 100644
index 000..0247885
--- /dev/null
+++ b/_linux-3.4.112.patch
@@ -0,0 +1,3175 @@
+diff --git a/Makefile b/Makefile
+index 8a3f507065f9..c63e1836d738 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 111
++SUBLEVEL = 112
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index 1d6402cbf4b2..4533386a2c84 100644
+--- a/arch/arm/Makefile
 b/arch/arm/Makefile
+@@ -53,6 +53,14 @@ endif
+ 
+ comma = ,
+ 
++#
++# The Scalar Replacement of Aggregates (SRA) optimization pass in GCC 4.9 and
++# later may result in code being generated that handles signed short and 
signed
++# char struct members incorrectly. So disable it.
++# (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932)
++#
++KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra)
++
+ # This selects which instruction set is used.
+ # Note that GCC does not numerically define an architecture version
+ # macro, but instead defines a whole series of macros which makes
+diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
+index d68d1b694680..13579aa1494e 100644
+--- a/arch/arm/kernel/signal.c
 b/arch/arm/kernel/signal.c
+@@ -437,12 +437,23 @@ setup_return(struct pt_regs *regs, struct k_sigaction 
*ka,
+*/
+   thumb = handler & 1;
+ 
++#if __LINUX_ARM_ARCH__ >= 6
++  /*
++   * Clear the If-Then Thumb-2 execution state.  ARM spec
++   * requires this to be all 000s in ARM mode.  Snapdragon
++   * S4/Krait misbehaves on a Thumb=>ARM signal transition
++   * without this.
++   *
++   * We must do this whenever we are running on a Thumb-2
++   * capable CPU, which includes ARMv6T2.  However, we elect
++   * to do this whenever we're on an ARMv6 or later CPU for
++   * simplicity.
++   */
++  cpsr &= ~PSR_IT_MASK;
++#endif
++
+   if (thumb) {
+   cpsr |= PSR_T_BIT;
+-#if __LINUX_ARM_ARCH__ >= 7
+-  /* clear the If-Then Thumb-2 execution state */
+-  cpsr &= ~PSR_IT_MASK;
+-#endif
+   } else
+   cpsr &= ~PSR_T_BIT;
+   }
+diff --git a/arch/m68k/include/asm/linkage.h b/arch/m68k/include/asm/linkage.h
+index 5a822bb790f7..066e74f666ae 100644
+--- a/arch/m68k/include/asm/linkage.h
 b/arch/m68k/include/asm/linkage.h
+@@ -4,4 +4,34 @@
+ #define __ALIGN .align 4
+ #define __ALIGN_STR ".align 4"
+ 
++/*
++ * Make sure the compiler doesn't do anything stupid with the
++ * arguments on the stack - they are owned by the *caller*, not
++ * the callee. This just fools gcc into not spilling into them,
++ * and keeps it from doing tailcall recursion and/or using the
++ * stack slots for temporaries, since they are live and "used"
++ * all the way to the end of the function.
++ */
++#define asmlinkage_protect(n, ret, args...) \
++  __asmlinkage_protect##n(ret, ##args)
++#define __asmlinkage_protect_n(ret, args...) \
++  __asm__ __volatile__ ("" : "=r" (ret) : "0" (ret), ##args)
++#define __asmlinkage_protect0(ret) \
++  __asmlinkage_protect_n(ret)
++#define __asmlinkage_protect1(ret, arg1) \
++  __asmlinkage_protect_n(ret, "m" (arg1))
++#define __asmlinkage_protect2(ret, arg1, arg2) \
++  __asmlinkage_protect_n(ret, "m" (arg1), "m" (arg2))
++#define __asmlinkage_protect3(ret, arg1, arg2, arg3) \
++  __asmlinkage_protect_n(ret, "m" (arg1), "m" (arg2), "m" (arg3))
++#define __asmlinkage_protect4(ret, arg1, arg2, arg3, arg4) \
++  __asmlinkage_protect_n(ret, "m" (arg1), "m" (arg2), "m" (arg3), \
++"m" (arg4))
++#define __asmlinkage_protect5(ret, arg1, arg2, arg3, arg4, arg5) \
++  __asmlinkage_protect_n(ret, "m" (arg1), "m" (arg2), "m" (arg3), \
++"m" (arg4), "m" (arg5))
++#define __asmlinkage_protect6(ret, 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2015-10-23 Thread Mike Pagano
commit: 5b7a43580499987a3360b75e807ace62b86df1b5
Author: Mike Pagano  gentoo  org>
AuthorDate: Fri Oct 23 23:33:36 2015 +
Commit: Mike Pagano  gentoo  org>
CommitDate: Fri Oct 23 23:33:36 2015 +
URL:https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=5b7a4358

Linux patch 3.4.110

 _README  |4 +
 1109_linux-3.4.110.patch | 2308 ++
 2 files changed, 2312 insertions(+)

diff --git a/_README b/_README
index 0fcce0d..42786be 100644
--- a/_README
+++ b/_README
@@ -475,6 +475,10 @@ Patch:  1108_linux-3.4.109.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.109
 
+Patch:  1109_linux-3.4.110.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.110
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1109_linux-3.4.110.patch b/1109_linux-3.4.110.patch
new file mode 100644
index 000..2178866
--- /dev/null
+++ b/1109_linux-3.4.110.patch
@@ -0,0 +1,2308 @@
+diff --git a/Documentation/networking/pktgen.txt 
b/Documentation/networking/pktgen.txt
+index 75e4fd708ccb..a03239c4163d 100644
+--- a/Documentation/networking/pktgen.txt
 b/Documentation/networking/pktgen.txt
+@@ -24,17 +24,33 @@ For monitoring and control pktgen creates:
+ /proc/net/pktgen/ethX
+ 
+ 
+-Viewing threads
+-===
+-/proc/net/pktgen/kpktgend_0 
+-Name: kpktgend_0  max_before_softirq: 1
+-Running: 
+-Stopped: eth1 
+-Result: OK: max_before_softirq=1
++Kernel threads
++==
++Pktgen creates a thread for each CPU with affinity to that CPU.
++Which is controlled through procfile /proc/net/pktgen/kpktgend_X.
++
++Example: /proc/net/pktgen/kpktgend_0
++
++ Running:
++ Stopped: eth4@0
++ Result: OK: add_device=eth4@0
++
++Most important are the devices assigned to the thread.
+ 
+-Most important the devices assigned to thread. Note! A device can only belong 
+-to one thread.
++The two basic thread commands are:
++ * add_device DEVICE@NAME -- adds a single device
++ * rem_device_all -- remove all associated devices
+ 
++When adding a device to a thread, a corrosponding procfile is created
++which is used for configuring this device. Thus, device names need to
++be unique.
++
++To support adding the same device to multiple threads, which is useful
++with multi queue NICs, a the device naming scheme is extended with "@":
++ device@something
++
++The part after "@" can be anything, but it is custom to use the thread
++number.
+ 
+ Viewing devices
+ ===
+@@ -42,29 +58,32 @@ Viewing devices
+ Parm section holds configured info. Current hold running stats. 
+ Result is printed after run or after interruption. Example:
+ 
+-/proc/net/pktgen/eth1   
++/proc/net/pktgen/eth4@0
+ 
+-Params: count 1000  min_pkt_size: 60  max_pkt_size: 60
+- frags: 0  delay: 0  clone_skb: 100  ifname: eth1
++ Params: count 10  min_pkt_size: 60  max_pkt_size: 60
++ frags: 0  delay: 0  clone_skb: 64  ifname: eth4@0
+  flows: 0 flowlen: 0
+- dst_min: 10.10.11.2  dst_max: 
+- src_min:   src_max: 
+- src_mac: 00:00:00:00:00:00  dst_mac: 00:04:23:AC:FD:82
+- udp_src_min: 9  udp_src_max: 9  udp_dst_min: 9  udp_dst_max: 9
+- src_mac_count: 0  dst_mac_count: 0 
+- Flags: 
+-Current:
+- pkts-sofar: 1000  errors: 39664
+- started: 1103053986245187us  stopped: 1103053999346329us idle: 880401us
+- seq_num: 1011  cur_dst_mac_offset: 0  cur_src_mac_offset: 0
+- cur_saddr: 0x10a0a0a  cur_daddr: 0x20b0a0a
+- cur_udp_dst: 9  cur_udp_src: 9
++ queue_map_min: 0  queue_map_max: 0
++ dst_min: 192.168.81.2  dst_max:
++ src_min:   src_max:
++ src_mac: 90:e2:ba:0a:56:b4 dst_mac: 00:1b:21:3c:9d:f8
++ udp_src_min: 9  udp_src_max: 109  udp_dst_min: 9  udp_dst_max: 9
++ src_mac_count: 0  dst_mac_count: 0
++ Flags: UDPSRC_RND  NO_TIMESTAMP  QUEUE_MAP_CPU
++ Current:
++ pkts-sofar: 10  errors: 0
++ started: 623913381008us  stopped: 623913396439us idle: 25us
++ seq_num: 11  cur_dst_mac_offset: 0  cur_src_mac_offset: 0
++ cur_saddr: 192.168.8.3  cur_daddr: 192.168.81.2
++ cur_udp_dst: 9  cur_udp_src: 42
++ cur_queue_map: 
+  flows: 0
+-Result: OK: 13101142(c12220741+d880401) usec, 1000 (60byte,0frags)
+-  763292pps 390Mb/sec (390805504bps) errors: 39664
++ Result: OK: 15430(c15405d25) usec, 10 (60byte,0frags)
++  6480562pps 3110Mb/sec (3110669760bps) errors: 0
+ 
+-Configuring threads and devices
+-
++
++Configuring devices
++===
+ This is done via the /proc interface easiest done via pgset in the scripts
+ 
+ Examples:
+@@ -177,6 +196,8 @@ Note when adding devices to a specific CPU there good idea 
to also assign
+ /proc/irq/XX/smp_affinity so the TX-interrupts gets bound to the same CPU.
+ as this reduces cache bouncing when 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2015-01-02 Thread Mike Pagano
commit: dfe6365f65151c8d97374bb967301fd419b38a88
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Fri Jan  2 19:13:17 2015 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Fri Jan  2 19:13:17 2015 +
URL:
http://sources.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=dfe6365f

Add DEVPTS_MULTIPLE_INSTANCES when GENTOO_LINUX_INIT_SYSTEMD is selected. See 
bug #534216

---
 4567_distro-Gentoo-Kconfig.patch | 15 +++
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/4567_distro-Gentoo-Kconfig.patch b/4567_distro-Gentoo-Kconfig.patch
index 850cabc..690454a 100644
--- a/4567_distro-Gentoo-Kconfig.patch
+++ b/4567_distro-Gentoo-Kconfig.patch
@@ -1,5 +1,5 @@
 a/Kconfig  2014-04-02 10:11:12.959212144 -0400
-+++ b/Kconfig  2014-04-02 10:11:41.139211921 -0400
+--- a/Kconfig  2014-04-02 09:45:05.389224541 -0400
 b/Kconfig  2014-04-02 09:45:39.269224273 -0400
 @@ -8,4 +8,6 @@ config SRCARCH
string
option env=SRCARCH
@@ -7,9 +7,9 @@
 +source distro/Kconfig
 +
  source arch/$SRCARCH/Kconfig
1969-12-31 19:00:00.0 -0500
-+++ b/distro/Kconfig   2014-04-02 10:14:34.049210553 -0400
-@@ -0,0 +1,110 @@
+--- a/distro/Kconfig   1969-12-31 19:00:00.0 -0500
 b/distro/Kconfig   2015-01-02 13:54:45.589830665 -0500
+@@ -0,0 +1,109 @@
 +menu Gentoo Linux
 +
 +config GENTOO_LINUX
@@ -35,7 +35,6 @@
 +  select TMPFS
 +
 +  select MMU
-+  select HOTPLUG
 +  select SHMEM
 +
 +  help
@@ -88,13 +87,13 @@
 +  select AUTOFS4_FS
 +  select BLK_DEV_BSG
 +  select CGROUPS
++  select DEVPTS_MULTIPLE_INSTANCES
 +  select EPOLL
 +  select FANOTIFY
 +  select FHANDLE
-+  select HOTPLUG
 +  select INOTIFY_USER
 +  select NET
-+  select NET_NS
++  select NET_NS 
 +  select PROC_FS
 +  select SIGNALFD
 +  select SYSFS



[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-12-20 Thread Mike Pagano
commit: 2832899181c3b1374453562aeabe9d4f09194445
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Sun Dec 21 00:09:58 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Sun Dec 21 00:09:58 2014 +
URL:
http://sources.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=28328991

Linux patch 3.4.105

---
 _README  |4 +
 1104_linux-3.4.105.patch | 3019 ++
 2 files changed, 3023 insertions(+)

diff --git a/_README b/_README
index 544ba0b..5ff1506 100644
--- a/_README
+++ b/_README
@@ -455,6 +455,10 @@ Patch:  1103_linux-3.4.104.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.104
 
+Patch:  1104_linux-3.4.105.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.105
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1104_linux-3.4.105.patch b/1104_linux-3.4.105.patch
new file mode 100644
index 000..05fe15c
--- /dev/null
+++ b/1104_linux-3.4.105.patch
@@ -0,0 +1,3019 @@
+diff --git a/Documentation/cgroups/cpusets.txt 
b/Documentation/cgroups/cpusets.txt
+index cefd3d8bbd11..a52a39f8a8d4 100644
+--- a/Documentation/cgroups/cpusets.txt
 b/Documentation/cgroups/cpusets.txt
+@@ -345,14 +345,14 @@ the named feature on.
+ The implementation is simple.
+ 
+ Setting the flag 'cpuset.memory_spread_page' turns on a per-process flag
+-PF_SPREAD_PAGE for each task that is in that cpuset or subsequently
++PFA_SPREAD_PAGE for each task that is in that cpuset or subsequently
+ joins that cpuset.  The page allocation calls for the page cache
+-is modified to perform an inline check for this PF_SPREAD_PAGE task
++is modified to perform an inline check for this PFA_SPREAD_PAGE task
+ flag, and if set, a call to a new routine cpuset_mem_spread_node()
+ returns the node to prefer for the allocation.
+ 
+ Similarly, setting 'cpuset.memory_spread_slab' turns on the flag
+-PF_SPREAD_SLAB, and appropriately marked slab caches will allocate
++PFA_SPREAD_SLAB, and appropriately marked slab caches will allocate
+ pages from the node returned by cpuset_mem_spread_node().
+ 
+ The cpuset_mem_spread_node() routine is also simple.  It uses the
+diff --git a/Makefile b/Makefile
+index b66396efb001..cf2c8a82ca3e 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 104
++SUBLEVEL = 105
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
+index fc000e3ac44e..17f4ea2fe3cf 100644
+--- a/arch/arm/mm/alignment.c
 b/arch/arm/mm/alignment.c
+@@ -39,6 +39,7 @@
+  * This code is not portable to processors with late data abort handling.
+  */
+ #define CODING_BITS(i)(i  0x0e00)
++#define COND_BITS(i)  (i  0xf000)
+ 
+ #define LDST_I_BIT(i) (i  (1  26)) /* Immediate constant   */
+ #define LDST_P_BIT(i) (i  (1  24)) /* Preindex */
+@@ -813,6 +814,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct 
pt_regs *regs)
+   break;
+ 
+   case 0x0400:/* ldr or str immediate */
++  if (COND_BITS(instr) == 0xf000) /* NEON VLDn, VSTn */
++  goto bad;
+   offset.un = OFFSET_BITS(instr);
+   handler = do_alignment_ldrstr;
+   break;
+diff --git a/arch/mips/boot/compressed/decompress.c 
b/arch/mips/boot/compressed/decompress.c
+index 5cad0faefa17..ca51d69a99ff 100644
+--- a/arch/mips/boot/compressed/decompress.c
 b/arch/mips/boot/compressed/decompress.c
+@@ -13,6 +13,7 @@
+ 
+ #include linux/types.h
+ #include linux/kernel.h
++#include linux/string.h
+ 
+ #include asm/addrspace.h
+ 
+diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S
+index 4c968e7efb74..55eca41c91c2 100644
+--- a/arch/mips/kernel/mcount.S
 b/arch/mips/kernel/mcount.S
+@@ -119,7 +119,11 @@ NESTED(_mcount, PT_SIZE, ra)
+nop
+ #endif
+   b   ftrace_stub
++#ifdef CONFIG_32BIT
++   addiu sp, sp, 8
++#else
+nop
++#endif
+ 
+ static_trace:
+   MCOUNT_SAVE_REGS
+@@ -129,6 +133,9 @@ static_trace:
+move   a1, AT  /* arg2: parent's return address */
+ 
+   MCOUNT_RESTORE_REGS
++#ifdef CONFIG_32BIT
++  addiu sp, sp, 8
++#endif
+   .globl ftrace_stub
+ ftrace_stub:
+   RETURN_BACK
+@@ -177,6 +184,11 @@ NESTED(ftrace_graph_caller, PT_SIZE, ra)
+   jal prepare_ftrace_return
+nop
+   MCOUNT_RESTORE_REGS
++#ifndef CONFIG_DYNAMIC_FTRACE
++#ifdef CONFIG_32BIT
++  addiu sp, sp, 8
++#endif
++#endif
+   RETURN_BACK
+   END(ftrace_graph_caller)
+ 
+diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
+index 19ab7b2ea1cd..ac93ca20b7e2 100644
+--- a/arch/parisc/Makefile
 b/arch/parisc/Makefile
+@@ -51,7 +51,12 @@ cflags-y:= -pipe
+ 
+ # These flags should be implied by an 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-08-19 Thread Mike Pagano
commit: 48d5e762de93d7df88c6f216d9947f5ac8a8c9a0
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Fri Aug  8 17:22:57 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Fri Aug  8 17:22:57 2014 +
URL:
http://sources.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=48d5e762

Linux patch 3.4.102

---
 _README  |4 +
 1101_linux-3.4.102.patch | 1221 ++
 2 files changed, 1225 insertions(+)

diff --git a/_README b/_README
index 0f65113..4747723 100644
--- a/_README
+++ b/_README
@@ -443,6 +443,10 @@ Patch:  1100_linux-3.4.101.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.101
 
+Patch:  1101_linux-3.4.102.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.102
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1101_linux-3.4.102.patch b/1101_linux-3.4.102.patch
new file mode 100644
index 000..c444b8d
--- /dev/null
+++ b/1101_linux-3.4.102.patch
@@ -0,0 +1,1221 @@
+diff --git a/Documentation/x86/x86_64/mm.txt b/Documentation/x86/x86_64/mm.txt
+index d6498e3cd713..f33a9369e35b 100644
+--- a/Documentation/x86/x86_64/mm.txt
 b/Documentation/x86/x86_64/mm.txt
+@@ -12,6 +12,8 @@ c900 - e8ff (=45 bits) 
vmalloc/ioremap space
+ e900 - e9ff (=40 bits) hole
+ ea00 - eaff (=40 bits) virtual memory map (1TB)
+ ... unused hole ...
++ff00 - ff7f (=39 bits) %esp fixup stacks
++... unused hole ...
+ 8000 - a000 (=512 MB)  kernel text mapping, from phys 0
+ a000 - fff0 (=1536 MB) module mapping space
+ 
+diff --git a/Makefile b/Makefile
+index a22bcb567348..dd03fa5777a0 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 101
++SUBLEVEL = 102
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/arm/mm/idmap.c b/arch/arm/mm/idmap.c
+index ab88ed4f8e08..ef8f2df02540 100644
+--- a/arch/arm/mm/idmap.c
 b/arch/arm/mm/idmap.c
+@@ -22,6 +22,13 @@ static void idmap_add_pmd(pud_t *pud, unsigned long addr, 
unsigned long end,
+   pr_warning(Failed to allocate identity pmd.\n);
+   return;
+   }
++  /*
++   * Copy the original PMD to ensure that the PMD entries for
++   * the kernel image are preserved.
++   */
++  if (!pud_none(*pud))
++  memcpy(pmd, pmd_offset(pud, 0),
++ PTRS_PER_PMD * sizeof(pmd_t));
+   pud_populate(init_mm, pud, pmd);
+   pmd += pmd_index(addr);
+   } else
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index 9df4ea1caaf1..917c1098775b 100644
+--- a/arch/x86/Kconfig
 b/arch/x86/Kconfig
+@@ -915,10 +915,27 @@ config VM86
+   default y
+   depends on X86_32
+   ---help---
+-This option is required by programs like DOSEMU to run 16-bit legacy
+-code on X86 processors. It also may be needed by software like
+-XFree86 to initialize some video cards via BIOS. Disabling this
+-option saves about 6k.
++This option is required by programs like DOSEMU to run
++16-bit real mode legacy code on x86 processors. It also may
++be needed by software like XFree86 to initialize some video
++cards via BIOS. Disabling this option saves about 6K.
++
++config X86_16BIT
++  bool Enable support for 16-bit segments if EXPERT
++  default y
++  ---help---
++This option is required by programs like Wine to run 16-bit
++protected mode legacy code on x86 processors.  Disabling
++this option saves about 300 bytes on i386, or around 6K text
++plus 16K runtime memory on x86-64,
++
++config X86_ESPFIX32
++  def_bool y
++  depends on X86_16BIT  X86_32
++
++config X86_ESPFIX64
++  def_bool y
++  depends on X86_16BIT  X86_64
+ 
+ config TOSHIBA
+   tristate Toshiba Laptop support
+diff --git a/arch/x86/include/asm/espfix.h b/arch/x86/include/asm/espfix.h
+new file mode 100644
+index ..99efebb2f69d
+--- /dev/null
 b/arch/x86/include/asm/espfix.h
+@@ -0,0 +1,16 @@
++#ifndef _ASM_X86_ESPFIX_H
++#define _ASM_X86_ESPFIX_H
++
++#ifdef CONFIG_X86_64
++
++#include asm/percpu.h
++
++DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_stack);
++DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_waddr);
++
++extern void init_espfix_bsp(void);
++extern void init_espfix_ap(void);
++
++#endif /* CONFIG_X86_64 */
++
++#endif /* _ASM_X86_ESPFIX_H */
+diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h
+index bba3cf88e624..0a8b519226b8 100644
+--- a/arch/x86/include/asm/irqflags.h
 b/arch/x86/include/asm/irqflags.h
+@@ -129,7 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-08-19 Thread Mike Pagano
commit: da70b949627e538e9465762c96f64ef07190e788
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Mon Jul 28 16:50:30 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Mon Jul 28 16:50:30 2014 +
URL:
http://sources.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=da70b949

Linux patch 3.4.100

---
 _README  |   4 +
 1099_linux-3.4.100.patch | 929 +++
 2 files changed, 933 insertions(+)

diff --git a/_README b/_README
index d5d9d81..af7f3f3 100644
--- a/_README
+++ b/_README
@@ -435,6 +435,10 @@ Patch:  1098_linux-3.4.99.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.99
 
+Patch:  1099_linux-3.4.100.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.100
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1099_linux-3.4.100.patch b/1099_linux-3.4.100.patch
new file mode 100644
index 000..597e1fd
--- /dev/null
+++ b/1099_linux-3.4.100.patch
@@ -0,0 +1,929 @@
+diff --git a/Makefile b/Makefile
+index ed97caf40f71..d6c64eb82525 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 99
++SUBLEVEL = 100
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/x86/kernel/cpu/perf_event_intel.c 
b/arch/x86/kernel/cpu/perf_event_intel.c
+index 268b2455e7b0..b1cbcff69cdb 100644
+--- a/arch/x86/kernel/cpu/perf_event_intel.c
 b/arch/x86/kernel/cpu/perf_event_intel.c
+@@ -1070,6 +1070,15 @@ again:
+   intel_pmu_lbr_read();
+ 
+   /*
++   * CondChgd bit 63 doesn't mean any overflow status. Ignore
++   * and clear the bit.
++   */
++  if (__test_and_clear_bit(63, (unsigned long *)status)) {
++  if (!status)
++  goto done;
++  }
++
++  /*
+* PEBS overflow sets bit 62 in the global status register
+*/
+   if (__test_and_clear_bit(62, (unsigned long *)status)) {
+diff --git a/crypto/testmgr.h b/crypto/testmgr.h
+index 36e5a8ee0e1e..1ae2e0ea5492 100644
+--- a/crypto/testmgr.h
 b/crypto/testmgr.h
+@@ -14558,38 +14558,40 @@ static struct pcomp_testvec 
zlib_decomp_tv_template[] = {
+ static struct comp_testvec lzo_comp_tv_template[] = {
+   {
+   .inlen  = 70,
+-  .outlen = 46,
++  .outlen = 57,
+   .input  = Join us now and share the software 
+   Join us now and share the software ,
+   .output = \x00\x0d\x4a\x6f\x69\x6e\x20\x75
+-  \x73\x20\x6e\x6f\x77\x20\x61\x6e
+-  \x64\x20\x73\x68\x61\x72\x65\x20
+-  \x74\x68\x65\x20\x73\x6f\x66\x74
+-  \x77\x70\x01\x01\x4a\x6f\x69\x6e
+-  \x3d\x88\x00\x11\x00\x00,
++\x73\x20\x6e\x6f\x77\x20\x61\x6e
++\x64\x20\x73\x68\x61\x72\x65\x20
++\x74\x68\x65\x20\x73\x6f\x66\x74
++\x77\x70\x01\x32\x88\x00\x0c\x65
++\x20\x74\x68\x65\x20\x73\x6f\x66
++\x74\x77\x61\x72\x65\x20\x11\x00
++\x00,
+   }, {
+   .inlen  = 159,
+-  .outlen = 133,
++  .outlen = 131,
+   .input  = This document describes a compression method based 
on the LZO 
+   compression algorithm.  This document defines the 
application of 
+   the LZO algorithm used in UBIFS.,
+-  .output = \x00\x2b\x54\x68\x69\x73\x20\x64
++  .output = \x00\x2c\x54\x68\x69\x73\x20\x64
+ \x6f\x63\x75\x6d\x65\x6e\x74\x20
+ \x64\x65\x73\x63\x72\x69\x62\x65
+ \x73\x20\x61\x20\x63\x6f\x6d\x70
+ \x72\x65\x73\x73\x69\x6f\x6e\x20
+ \x6d\x65\x74\x68\x6f\x64\x20\x62
+ \x61\x73\x65\x64\x20\x6f\x6e\x20
+-\x74\x68\x65\x20\x4c\x5a\x4f\x2b
+-\x8c\x00\x0d\x61\x6c\x67\x6f\x72
+-\x69\x74\x68\x6d\x2e\x20\x20\x54
+-\x68\x69\x73\x2a\x54\x01\x02\x66
+-\x69\x6e\x65\x73\x94\x06\x05\x61
+-\x70\x70\x6c\x69\x63\x61\x74\x76
+-\x0a\x6f\x66\x88\x02\x60\x09\x27
+-\xf0\x00\x0c\x20\x75\x73\x65\x64
+-\x20\x69\x6e\x20\x55\x42\x49\x46
+-\x53\x2e\x11\x00\x00,
++\x74\x68\x65\x20\x4c\x5a\x4f\x20
++\x2a\x8c\x00\x09\x61\x6c\x67\x6f
++\x72\x69\x74\x68\x6d\x2e\x20\x20
++\x2e\x54\x01\x03\x66\x69\x6e\x65
++\x73\x20\x74\x06\x05\x61\x70\x70

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-08-19 Thread Mike Pagano
commit: 6170daa192bd78ce9c1c618fdcf4acb5e0bb0c8c
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Sat Aug  2 14:41:21 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Sat Aug  2 14:41:21 2014 +
URL:
http://sources.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=6170daa1

Linux patch 3.4.101

---
 _README  |   4 +
 1100_linux-3.4.101.patch | 349 +++
 2 files changed, 353 insertions(+)

diff --git a/_README b/_README
index af7f3f3..0f65113 100644
--- a/_README
+++ b/_README
@@ -439,6 +439,10 @@ Patch:  1099_linux-3.4.100.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.100
 
+Patch:  1100_linux-3.4.101.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.101
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1100_linux-3.4.101.patch b/1100_linux-3.4.101.patch
new file mode 100644
index 000..54832f4
--- /dev/null
+++ b/1100_linux-3.4.101.patch
@@ -0,0 +1,349 @@
+diff --git a/Makefile b/Makefile
+index d6c64eb82525..a22bcb567348 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 100
++SUBLEVEL = 101
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+@@ -592,6 +592,8 @@ KBUILD_CFLAGS  += -fomit-frame-pointer
+ endif
+ endif
+ 
++KBUILD_CFLAGS   += $(call cc-option, -fno-var-tracking-assignments)
++
+ ifdef CONFIG_DEBUG_INFO
+ KBUILD_CFLAGS += -g
+ KBUILD_AFLAGS += -gdwarf-2
+diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
+index 02f300fbf070..e0a8707dd137 100644
+--- a/arch/s390/kernel/ptrace.c
 b/arch/s390/kernel/ptrace.c
+@@ -292,7 +292,9 @@ static int __poke_user(struct task_struct *child, addr_t 
addr, addr_t data)
+* psw and gprs are stored on the stack
+*/
+   if (addr == (addr_t) dummy-regs.psw.mask 
+-  ((data  ~PSW_MASK_USER) != psw_user_bits ||
++  (((data^psw_user_bits)  ~PSW_MASK_USER) ||
++   (((data^psw_user_bits)  PSW_MASK_ASC) 
++((data|psw_user_bits)  PSW_MASK_ASC) == PSW_MASK_ASC) ||
+((data  PSW_MASK_EA)  !(data  PSW_MASK_BA
+   /* Invalid psw mask. */
+   return -EINVAL;
+@@ -595,7 +597,10 @@ static int __poke_user_compat(struct task_struct *child,
+*/
+   if (addr == (addr_t) dummy32-regs.psw.mask) {
+   /* Build a 64 bit psw mask from 31 bit mask. */
+-  if ((tmp  ~PSW32_MASK_USER) != psw32_user_bits)
++  if (((tmp^psw32_user_bits)  ~PSW32_MASK_USER) ||
++  (((tmp^psw32_user_bits)  PSW32_MASK_ASC) 
++   ((tmp|psw32_user_bits)  PSW32_MASK_ASC)
++   == PSW32_MASK_ASC))
+   /* Invalid psw mask. */
+   return -EINVAL;
+   regs-psw.mask = (regs-psw.mask  ~PSW_MASK_USER) |
+diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
+index e1e7f9c831da..e36c5cf38fde 100644
+--- a/arch/x86/kernel/entry_32.S
 b/arch/x86/kernel/entry_32.S
+@@ -428,8 +428,8 @@ sysenter_do_call:
+   cmpl $(NR_syscalls), %eax
+   jae sysenter_badsys
+   call *sys_call_table(,%eax,4)
+-  movl %eax,PT_EAX(%esp)
+ sysenter_after_call:
++  movl %eax,PT_EAX(%esp)
+   LOCKDEP_SYS_EXIT
+   DISABLE_INTERRUPTS(CLBR_ANY)
+   TRACE_IRQS_OFF
+@@ -510,6 +510,7 @@ ENTRY(system_call)
+   jae syscall_badsys
+ syscall_call:
+   call *sys_call_table(,%eax,4)
++syscall_after_call:
+   movl %eax,PT_EAX(%esp)  # store the return value
+ syscall_exit:
+   LOCKDEP_SYS_EXIT
+@@ -678,12 +679,12 @@ syscall_fault:
+ END(syscall_fault)
+ 
+ syscall_badsys:
+-  movl $-ENOSYS,PT_EAX(%esp)
+-  jmp syscall_exit
++  movl $-ENOSYS,%eax
++  jmp syscall_after_call
+ END(syscall_badsys)
+ 
+ sysenter_badsys:
+-  movl $-ENOSYS,PT_EAX(%esp)
++  movl $-ENOSYS,%eax
+   jmp sysenter_after_call
+ END(syscall_badsys)
+   CFI_ENDPROC
+diff --git a/block/blk-tag.c b/block/blk-tag.c
+index 4af6f5cc1167..f606487bba56 100644
+--- a/block/blk-tag.c
 b/block/blk-tag.c
+@@ -27,18 +27,15 @@ struct request *blk_queue_find_tag(struct request_queue 
*q, int tag)
+ EXPORT_SYMBOL(blk_queue_find_tag);
+ 
+ /**
+- * __blk_free_tags - release a given set of tag maintenance info
++ * blk_free_tags - release a given set of tag maintenance info
+  * @bqt:  the tag map to free
+  *
+- * Tries to free the specified @bqt.  Returns true if it was
+- * actually freed and false if there are still references using it
++ * Drop the reference count on @bqt and frees it when the last reference
++ * is dropped.
+  */
+-static int 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-08-14 Thread Mike Pagano
commit: b4ff8e8d4d51f14358d6a01bc8ddc449a85729c9
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Thu Aug 14 11:42:09 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Thu Aug 14 11:42:09 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=b4ff8e8d

Linux patch 3.4.103

---
 _README  |4 +
 1102_linux-3.4.103.patch | 1133 ++
 2 files changed, 1137 insertions(+)

diff --git a/_README b/_README
index 4747723..9f3e940 100644
--- a/_README
+++ b/_README
@@ -447,6 +447,10 @@ Patch:  1101_linux-3.4.102.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.102
 
+Patch:  1102_linux-3.4.103.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.103
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1102_linux-3.4.103.patch b/1102_linux-3.4.103.patch
new file mode 100644
index 000..8d0b2b8
--- /dev/null
+++ b/1102_linux-3.4.103.patch
@@ -0,0 +1,1133 @@
+diff --git a/Makefile b/Makefile
+index dd03fa5777a0..36f0913bd1d6 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 102
++SUBLEVEL = 103
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/sparc/include/asm/pgtable_64.h 
b/arch/sparc/include/asm/pgtable_64.h
+index 656de8bc0ed6..cd24caf1732d 100644
+--- a/arch/sparc/include/asm/pgtable_64.h
 b/arch/sparc/include/asm/pgtable_64.h
+@@ -24,7 +24,8 @@
+ 
+ /* The kernel image occupies 0x400 to 0x600 (4MB -- 96MB).
+  * The page copy blockops can use 0x600 to 0x800.
+- * The TSB is mapped in the 0x800 to 0xa00 range.
++ * The 8K TSB is mapped in the 0x800 to 0x840 range.
++ * The 4M TSB is mapped in the 0x840 to 0x880 range.
+  * The PROM resides in an area spanning 0xf000 to 0x1.
+  * The vmalloc area spans 0x1 to 0x2.
+  * Since modules need to be in the lowest 32-bits of the address space,
+@@ -33,7 +34,8 @@
+  * 0x4.
+  */
+ #define   TLBTEMP_BASE_AC(0x0600,UL)
+-#define   TSBMAP_BASE _AC(0x0800,UL)
++#define   TSBMAP_8K_BASE  _AC(0x0800,UL)
++#define   TSBMAP_4M_BASE  _AC(0x0840,UL)
+ #define MODULES_VADDR _AC(0x1000,UL)
+ #define MODULES_LEN   _AC(0xe000,UL)
+ #define MODULES_END   _AC(0xf000,UL)
+diff --git a/arch/sparc/include/asm/tlbflush_64.h 
b/arch/sparc/include/asm/tlbflush_64.h
+index f0d6a9700f4c..1a4bb971e06d 100644
+--- a/arch/sparc/include/asm/tlbflush_64.h
 b/arch/sparc/include/asm/tlbflush_64.h
+@@ -35,6 +35,8 @@ static inline void flush_tlb_range(struct vm_area_struct 
*vma,
+ {
+ }
+ 
++void flush_tlb_kernel_range(unsigned long start, unsigned long end);
++
+ #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
+ 
+ extern void flush_tlb_pending(void);
+@@ -49,11 +51,6 @@ extern void __flush_tlb_kernel_range(unsigned long start, 
unsigned long end);
+ 
+ #ifndef CONFIG_SMP
+ 
+-#define flush_tlb_kernel_range(start,end) \
+-do {  flush_tsb_kernel_range(start,end); \
+-  __flush_tlb_kernel_range(start,end); \
+-} while (0)
+-
+ static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long 
vaddr)
+ {
+   __flush_tlb_page(CTX_HWBITS(mm-context), vaddr);
+@@ -64,11 +61,6 @@ static inline void global_flush_tlb_page(struct mm_struct 
*mm, unsigned long vad
+ extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long 
end);
+ extern void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr);
+ 
+-#define flush_tlb_kernel_range(start, end) \
+-do {  flush_tsb_kernel_range(start,end); \
+-  smp_flush_tlb_kernel_range(start, end); \
+-} while (0)
+-
+ #define global_flush_tlb_page(mm, vaddr) \
+   smp_flush_tlb_page(mm, vaddr)
+ 
+diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c
+index 435e406fdec3..1beaf60a5f78 100644
+--- a/arch/sparc/kernel/ldc.c
 b/arch/sparc/kernel/ldc.c
+@@ -1339,7 +1339,7 @@ int ldc_connect(struct ldc_channel *lp)
+   if (!(lp-flags  LDC_FLAG_ALLOCED_QUEUES) ||
+   !(lp-flags  LDC_FLAG_REGISTERED_QUEUES) ||
+   lp-hs_state != LDC_HS_OPEN)
+-  err = -EINVAL;
++  err = ((lp-hs_state  LDC_HS_OPEN) ? 0 : -EINVAL);
+   else
+   err = start_handshake(lp);
+ 
+diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
+index bb2886ac1df3..bbf7e955cb19 100644
+--- a/arch/sparc/kernel/smp_64.c
 b/arch/sparc/kernel/smp_64.c
+@@ -151,7 +151,7 @@ void cpu_panic(void)
+ #define NUM_ROUNDS64  /* magic value */
+ #define NUM_ITERS 5   /* likewise */
+ 
+-static DEFINE_SPINLOCK(itc_sync_lock);
++static DEFINE_RAW_SPINLOCK(itc_sync_lock);
+ static unsigned long 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-08-08 Thread Mike Pagano
commit: 48d5e762de93d7df88c6f216d9947f5ac8a8c9a0
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Fri Aug  8 17:22:57 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Fri Aug  8 17:22:57 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=48d5e762

Linux patch 3.4.102

---
 _README  |4 +
 1101_linux-3.4.102.patch | 1221 ++
 2 files changed, 1225 insertions(+)

diff --git a/_README b/_README
index 0f65113..4747723 100644
--- a/_README
+++ b/_README
@@ -443,6 +443,10 @@ Patch:  1100_linux-3.4.101.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.101
 
+Patch:  1101_linux-3.4.102.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.102
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1101_linux-3.4.102.patch b/1101_linux-3.4.102.patch
new file mode 100644
index 000..c444b8d
--- /dev/null
+++ b/1101_linux-3.4.102.patch
@@ -0,0 +1,1221 @@
+diff --git a/Documentation/x86/x86_64/mm.txt b/Documentation/x86/x86_64/mm.txt
+index d6498e3cd713..f33a9369e35b 100644
+--- a/Documentation/x86/x86_64/mm.txt
 b/Documentation/x86/x86_64/mm.txt
+@@ -12,6 +12,8 @@ c900 - e8ff (=45 bits) 
vmalloc/ioremap space
+ e900 - e9ff (=40 bits) hole
+ ea00 - eaff (=40 bits) virtual memory map (1TB)
+ ... unused hole ...
++ff00 - ff7f (=39 bits) %esp fixup stacks
++... unused hole ...
+ 8000 - a000 (=512 MB)  kernel text mapping, from phys 0
+ a000 - fff0 (=1536 MB) module mapping space
+ 
+diff --git a/Makefile b/Makefile
+index a22bcb567348..dd03fa5777a0 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 101
++SUBLEVEL = 102
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/arm/mm/idmap.c b/arch/arm/mm/idmap.c
+index ab88ed4f8e08..ef8f2df02540 100644
+--- a/arch/arm/mm/idmap.c
 b/arch/arm/mm/idmap.c
+@@ -22,6 +22,13 @@ static void idmap_add_pmd(pud_t *pud, unsigned long addr, 
unsigned long end,
+   pr_warning(Failed to allocate identity pmd.\n);
+   return;
+   }
++  /*
++   * Copy the original PMD to ensure that the PMD entries for
++   * the kernel image are preserved.
++   */
++  if (!pud_none(*pud))
++  memcpy(pmd, pmd_offset(pud, 0),
++ PTRS_PER_PMD * sizeof(pmd_t));
+   pud_populate(init_mm, pud, pmd);
+   pmd += pmd_index(addr);
+   } else
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index 9df4ea1caaf1..917c1098775b 100644
+--- a/arch/x86/Kconfig
 b/arch/x86/Kconfig
+@@ -915,10 +915,27 @@ config VM86
+   default y
+   depends on X86_32
+   ---help---
+-This option is required by programs like DOSEMU to run 16-bit legacy
+-code on X86 processors. It also may be needed by software like
+-XFree86 to initialize some video cards via BIOS. Disabling this
+-option saves about 6k.
++This option is required by programs like DOSEMU to run
++16-bit real mode legacy code on x86 processors. It also may
++be needed by software like XFree86 to initialize some video
++cards via BIOS. Disabling this option saves about 6K.
++
++config X86_16BIT
++  bool Enable support for 16-bit segments if EXPERT
++  default y
++  ---help---
++This option is required by programs like Wine to run 16-bit
++protected mode legacy code on x86 processors.  Disabling
++this option saves about 300 bytes on i386, or around 6K text
++plus 16K runtime memory on x86-64,
++
++config X86_ESPFIX32
++  def_bool y
++  depends on X86_16BIT  X86_32
++
++config X86_ESPFIX64
++  def_bool y
++  depends on X86_16BIT  X86_64
+ 
+ config TOSHIBA
+   tristate Toshiba Laptop support
+diff --git a/arch/x86/include/asm/espfix.h b/arch/x86/include/asm/espfix.h
+new file mode 100644
+index ..99efebb2f69d
+--- /dev/null
 b/arch/x86/include/asm/espfix.h
+@@ -0,0 +1,16 @@
++#ifndef _ASM_X86_ESPFIX_H
++#define _ASM_X86_ESPFIX_H
++
++#ifdef CONFIG_X86_64
++
++#include asm/percpu.h
++
++DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_stack);
++DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_waddr);
++
++extern void init_espfix_bsp(void);
++extern void init_espfix_ap(void);
++
++#endif /* CONFIG_X86_64 */
++
++#endif /* _ASM_X86_ESPFIX_H */
+diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h
+index bba3cf88e624..0a8b519226b8 100644
+--- a/arch/x86/include/asm/irqflags.h
 b/arch/x86/include/asm/irqflags.h
+@@ 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-08-02 Thread Mike Pagano
commit: 6170daa192bd78ce9c1c618fdcf4acb5e0bb0c8c
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Sat Aug  2 14:41:21 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Sat Aug  2 14:41:21 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=6170daa1

Linux patch 3.4.101

---
 _README  |   4 +
 1100_linux-3.4.101.patch | 349 +++
 2 files changed, 353 insertions(+)

diff --git a/_README b/_README
index af7f3f3..0f65113 100644
--- a/_README
+++ b/_README
@@ -439,6 +439,10 @@ Patch:  1099_linux-3.4.100.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.100
 
+Patch:  1100_linux-3.4.101.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.101
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1100_linux-3.4.101.patch b/1100_linux-3.4.101.patch
new file mode 100644
index 000..54832f4
--- /dev/null
+++ b/1100_linux-3.4.101.patch
@@ -0,0 +1,349 @@
+diff --git a/Makefile b/Makefile
+index d6c64eb82525..a22bcb567348 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 100
++SUBLEVEL = 101
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+@@ -592,6 +592,8 @@ KBUILD_CFLAGS  += -fomit-frame-pointer
+ endif
+ endif
+ 
++KBUILD_CFLAGS   += $(call cc-option, -fno-var-tracking-assignments)
++
+ ifdef CONFIG_DEBUG_INFO
+ KBUILD_CFLAGS += -g
+ KBUILD_AFLAGS += -gdwarf-2
+diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
+index 02f300fbf070..e0a8707dd137 100644
+--- a/arch/s390/kernel/ptrace.c
 b/arch/s390/kernel/ptrace.c
+@@ -292,7 +292,9 @@ static int __poke_user(struct task_struct *child, addr_t 
addr, addr_t data)
+* psw and gprs are stored on the stack
+*/
+   if (addr == (addr_t) dummy-regs.psw.mask 
+-  ((data  ~PSW_MASK_USER) != psw_user_bits ||
++  (((data^psw_user_bits)  ~PSW_MASK_USER) ||
++   (((data^psw_user_bits)  PSW_MASK_ASC) 
++((data|psw_user_bits)  PSW_MASK_ASC) == PSW_MASK_ASC) ||
+((data  PSW_MASK_EA)  !(data  PSW_MASK_BA
+   /* Invalid psw mask. */
+   return -EINVAL;
+@@ -595,7 +597,10 @@ static int __poke_user_compat(struct task_struct *child,
+*/
+   if (addr == (addr_t) dummy32-regs.psw.mask) {
+   /* Build a 64 bit psw mask from 31 bit mask. */
+-  if ((tmp  ~PSW32_MASK_USER) != psw32_user_bits)
++  if (((tmp^psw32_user_bits)  ~PSW32_MASK_USER) ||
++  (((tmp^psw32_user_bits)  PSW32_MASK_ASC) 
++   ((tmp|psw32_user_bits)  PSW32_MASK_ASC)
++   == PSW32_MASK_ASC))
+   /* Invalid psw mask. */
+   return -EINVAL;
+   regs-psw.mask = (regs-psw.mask  ~PSW_MASK_USER) |
+diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
+index e1e7f9c831da..e36c5cf38fde 100644
+--- a/arch/x86/kernel/entry_32.S
 b/arch/x86/kernel/entry_32.S
+@@ -428,8 +428,8 @@ sysenter_do_call:
+   cmpl $(NR_syscalls), %eax
+   jae sysenter_badsys
+   call *sys_call_table(,%eax,4)
+-  movl %eax,PT_EAX(%esp)
+ sysenter_after_call:
++  movl %eax,PT_EAX(%esp)
+   LOCKDEP_SYS_EXIT
+   DISABLE_INTERRUPTS(CLBR_ANY)
+   TRACE_IRQS_OFF
+@@ -510,6 +510,7 @@ ENTRY(system_call)
+   jae syscall_badsys
+ syscall_call:
+   call *sys_call_table(,%eax,4)
++syscall_after_call:
+   movl %eax,PT_EAX(%esp)  # store the return value
+ syscall_exit:
+   LOCKDEP_SYS_EXIT
+@@ -678,12 +679,12 @@ syscall_fault:
+ END(syscall_fault)
+ 
+ syscall_badsys:
+-  movl $-ENOSYS,PT_EAX(%esp)
+-  jmp syscall_exit
++  movl $-ENOSYS,%eax
++  jmp syscall_after_call
+ END(syscall_badsys)
+ 
+ sysenter_badsys:
+-  movl $-ENOSYS,PT_EAX(%esp)
++  movl $-ENOSYS,%eax
+   jmp sysenter_after_call
+ END(syscall_badsys)
+   CFI_ENDPROC
+diff --git a/block/blk-tag.c b/block/blk-tag.c
+index 4af6f5cc1167..f606487bba56 100644
+--- a/block/blk-tag.c
 b/block/blk-tag.c
+@@ -27,18 +27,15 @@ struct request *blk_queue_find_tag(struct request_queue 
*q, int tag)
+ EXPORT_SYMBOL(blk_queue_find_tag);
+ 
+ /**
+- * __blk_free_tags - release a given set of tag maintenance info
++ * blk_free_tags - release a given set of tag maintenance info
+  * @bqt:  the tag map to free
+  *
+- * Tries to free the specified @bqt.  Returns true if it was
+- * actually freed and false if there are still references using it
++ * Drop the reference count on @bqt and frees it when the last reference
++ * is dropped.
+  */
+-static int 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-07-28 Thread Mike Pagano
commit: da70b949627e538e9465762c96f64ef07190e788
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Mon Jul 28 16:50:30 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Mon Jul 28 16:50:30 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=da70b949

Linux patch 3.4.100

---
 _README  |   4 +
 1099_linux-3.4.100.patch | 929 +++
 2 files changed, 933 insertions(+)

diff --git a/_README b/_README
index d5d9d81..af7f3f3 100644
--- a/_README
+++ b/_README
@@ -435,6 +435,10 @@ Patch:  1098_linux-3.4.99.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.99
 
+Patch:  1099_linux-3.4.100.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.100
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1099_linux-3.4.100.patch b/1099_linux-3.4.100.patch
new file mode 100644
index 000..597e1fd
--- /dev/null
+++ b/1099_linux-3.4.100.patch
@@ -0,0 +1,929 @@
+diff --git a/Makefile b/Makefile
+index ed97caf40f71..d6c64eb82525 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 99
++SUBLEVEL = 100
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/x86/kernel/cpu/perf_event_intel.c 
b/arch/x86/kernel/cpu/perf_event_intel.c
+index 268b2455e7b0..b1cbcff69cdb 100644
+--- a/arch/x86/kernel/cpu/perf_event_intel.c
 b/arch/x86/kernel/cpu/perf_event_intel.c
+@@ -1070,6 +1070,15 @@ again:
+   intel_pmu_lbr_read();
+ 
+   /*
++   * CondChgd bit 63 doesn't mean any overflow status. Ignore
++   * and clear the bit.
++   */
++  if (__test_and_clear_bit(63, (unsigned long *)status)) {
++  if (!status)
++  goto done;
++  }
++
++  /*
+* PEBS overflow sets bit 62 in the global status register
+*/
+   if (__test_and_clear_bit(62, (unsigned long *)status)) {
+diff --git a/crypto/testmgr.h b/crypto/testmgr.h
+index 36e5a8ee0e1e..1ae2e0ea5492 100644
+--- a/crypto/testmgr.h
 b/crypto/testmgr.h
+@@ -14558,38 +14558,40 @@ static struct pcomp_testvec 
zlib_decomp_tv_template[] = {
+ static struct comp_testvec lzo_comp_tv_template[] = {
+   {
+   .inlen  = 70,
+-  .outlen = 46,
++  .outlen = 57,
+   .input  = Join us now and share the software 
+   Join us now and share the software ,
+   .output = \x00\x0d\x4a\x6f\x69\x6e\x20\x75
+-  \x73\x20\x6e\x6f\x77\x20\x61\x6e
+-  \x64\x20\x73\x68\x61\x72\x65\x20
+-  \x74\x68\x65\x20\x73\x6f\x66\x74
+-  \x77\x70\x01\x01\x4a\x6f\x69\x6e
+-  \x3d\x88\x00\x11\x00\x00,
++\x73\x20\x6e\x6f\x77\x20\x61\x6e
++\x64\x20\x73\x68\x61\x72\x65\x20
++\x74\x68\x65\x20\x73\x6f\x66\x74
++\x77\x70\x01\x32\x88\x00\x0c\x65
++\x20\x74\x68\x65\x20\x73\x6f\x66
++\x74\x77\x61\x72\x65\x20\x11\x00
++\x00,
+   }, {
+   .inlen  = 159,
+-  .outlen = 133,
++  .outlen = 131,
+   .input  = This document describes a compression method based 
on the LZO 
+   compression algorithm.  This document defines the 
application of 
+   the LZO algorithm used in UBIFS.,
+-  .output = \x00\x2b\x54\x68\x69\x73\x20\x64
++  .output = \x00\x2c\x54\x68\x69\x73\x20\x64
+ \x6f\x63\x75\x6d\x65\x6e\x74\x20
+ \x64\x65\x73\x63\x72\x69\x62\x65
+ \x73\x20\x61\x20\x63\x6f\x6d\x70
+ \x72\x65\x73\x73\x69\x6f\x6e\x20
+ \x6d\x65\x74\x68\x6f\x64\x20\x62
+ \x61\x73\x65\x64\x20\x6f\x6e\x20
+-\x74\x68\x65\x20\x4c\x5a\x4f\x2b
+-\x8c\x00\x0d\x61\x6c\x67\x6f\x72
+-\x69\x74\x68\x6d\x2e\x20\x20\x54
+-\x68\x69\x73\x2a\x54\x01\x02\x66
+-\x69\x6e\x65\x73\x94\x06\x05\x61
+-\x70\x70\x6c\x69\x63\x61\x74\x76
+-\x0a\x6f\x66\x88\x02\x60\x09\x27
+-\xf0\x00\x0c\x20\x75\x73\x65\x64
+-\x20\x69\x6e\x20\x55\x42\x49\x46
+-\x53\x2e\x11\x00\x00,
++\x74\x68\x65\x20\x4c\x5a\x4f\x20
++\x2a\x8c\x00\x09\x61\x6c\x67\x6f
++\x72\x69\x74\x68\x6d\x2e\x20\x20
++\x2e\x54\x01\x03\x66\x69\x6e\x65
++

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-07-18 Thread Mike Pagano
commit: a8a5bb77ad98f84e3bc415ffcb4953058ca6c37d
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Fri Jul 18 11:33:46 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Fri Jul 18 11:33:46 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=a8a5bb77

Linux patch 3.4.99

---
 _README |   4 +
 1098_linux-3.4.99.patch | 797 
 2 files changed, 801 insertions(+)

diff --git a/_README b/_README
index 3c72076..d5d9d81 100644
--- a/_README
+++ b/_README
@@ -431,6 +431,10 @@ Patch:  1097_linux-3.4.98.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.98
 
+Patch:  1098_linux-3.4.99.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.99
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1098_linux-3.4.99.patch b/1098_linux-3.4.99.patch
new file mode 100644
index 000..8bde200
--- /dev/null
+++ b/1098_linux-3.4.99.patch
@@ -0,0 +1,797 @@
+diff --git a/Makefile b/Makefile
+index d277446ee8ee..ed97caf40f71 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 98
++SUBLEVEL = 99
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
+index 02aee03e713c..1eef567f177a 100644
+--- a/arch/powerpc/perf/core-book3s.c
 b/arch/powerpc/perf/core-book3s.c
+@@ -472,7 +472,22 @@ static void power_pmu_read(struct perf_event *event)
+   } while (local64_cmpxchg(event-hw.prev_count, prev, val) != prev);
+ 
+   local64_add(delta, event-count);
+-  local64_sub(delta, event-hw.period_left);
++
++  /*
++   * A number of places program the PMC with (0x8000 - period_left).
++   * We never want period_left to be less than 1 because we will program
++   * the PMC with a value = 0x8 and an edge detected PMC will
++   * roll around to 0 before taking an exception. We have seen this
++   * on POWER8.
++   *
++   * To fix this, clamp the minimum value of period_left to 1.
++   */
++  do {
++  prev = local64_read(event-hw.period_left);
++  val = prev - delta;
++  if (val  1)
++  val = 1;
++  } while (local64_cmpxchg(event-hw.period_left, prev, val) != prev);
+ }
+ 
+ /*
+diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
+index be1ef574ce9a..dec49d34c048 100644
+--- a/arch/x86/mm/ioremap.c
 b/arch/x86/mm/ioremap.c
+@@ -50,6 +50,21 @@ int ioremap_change_attr(unsigned long vaddr, unsigned long 
size,
+   return err;
+ }
+ 
++static int __ioremap_check_ram(unsigned long start_pfn, unsigned long 
nr_pages,
++ void *arg)
++{
++  unsigned long i;
++
++  for (i = 0; i  nr_pages; ++i)
++  if (pfn_valid(start_pfn + i) 
++  !PageReserved(pfn_to_page(start_pfn + i)))
++  return 1;
++
++  WARN_ONCE(1, ioremap on RAM pfn 0x%lx\n, start_pfn);
++
++  return 0;
++}
++
+ /*
+  * Remap an arbitrary physical address space into the kernel virtual
+  * address space. Needed when the kernel wants to access high addresses
+@@ -93,14 +108,11 @@ static void __iomem *__ioremap_caller(resource_size_t 
phys_addr,
+   /*
+* Don't allow anybody to remap normal RAM that we're using..
+*/
++  pfn  = phys_addr  PAGE_SHIFT;
+   last_pfn = last_addr  PAGE_SHIFT;
+-  for (pfn = phys_addr  PAGE_SHIFT; pfn = last_pfn; pfn++) {
+-  int is_ram = page_is_ram(pfn);
+-
+-  if (is_ram  pfn_valid(pfn)  !PageReserved(pfn_to_page(pfn)))
+-  return NULL;
+-  WARN_ON_ONCE(is_ram);
+-  }
++  if (walk_system_ram_range(pfn, last_pfn - pfn + 1, NULL,
++__ioremap_check_ram) == 1)
++  return NULL;
+ 
+   /*
+* Mappings have to be page-aligned
+diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
+index 9bdfcf50a190..93f3034ea85d 100644
+--- a/drivers/acpi/battery.c
 b/drivers/acpi/battery.c
+@@ -34,6 +34,7 @@
+ #include linux/dmi.h
+ #include linux/slab.h
+ #include linux/suspend.h
++#include linux/delay.h
+ #include asm/unaligned.h
+ 
+ #ifdef CONFIG_ACPI_PROCFS_POWER
+@@ -1055,6 +1056,28 @@ static int battery_notify(struct notifier_block *nb,
+   return 0;
+ }
+ 
++/*
++ * Some machines'(E,G Lenovo Z480) ECs are not stable
++ * during boot up and this causes battery driver fails to be
++ * probed due to failure of getting battery information
++ * from EC sometimes. After several retries, the operation
++ * may work. So add retry code here and 20ms sleep between
++ * every retries.
++ */
++static int acpi_battery_update_retry(struct acpi_battery *battery)
++{
++  int retry, ret;
++
++  

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-07-09 Thread Mike Pagano
commit: ceafe7df41a12a32bf25b8e5917f5975e27b72ea
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Wed Jul  9 23:17:24 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Wed Jul  9 23:17:24 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=ceafe7df

Linux patch 3.4.98

---
 _README |4 +
 1097_linux-3.4.98.patch | 1534 +++
 2 files changed, 1538 insertions(+)

diff --git a/_README b/_README
index bacfd0f..3c72076 100644
--- a/_README
+++ b/_README
@@ -427,6 +427,10 @@ Patch:  1096_linux-3.4.97.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.97
 
+Patch:  1097_linux-3.4.98.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.98
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1097_linux-3.4.98.patch b/1097_linux-3.4.98.patch
new file mode 100644
index 000..db655a8
--- /dev/null
+++ b/1097_linux-3.4.98.patch
@@ -0,0 +1,1534 @@
+diff --git a/Makefile b/Makefile
+index fdd7c32ea1f7..d277446ee8ee 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 97
++SUBLEVEL = 98
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
+index 65c33911341f..90b33c55ac1b 100644
+--- a/arch/arm/mach-omap2/mux.c
 b/arch/arm/mach-omap2/mux.c
+@@ -184,8 +184,10 @@ static int __init _omap_mux_get_by_name(struct 
omap_mux_partition *partition,
+   m0_entry = mux-muxnames[0];
+ 
+   /* First check for full name in mode0.muxmode format */
+-  if (mode0_len  strncmp(muxname, m0_entry, mode0_len))
+-  continue;
++  if (mode0_len)
++  if (strncmp(muxname, m0_entry, mode0_len) ||
++  (strlen(m0_entry) != mode0_len))
++  continue;
+ 
+   /* Then check for muxmode only */
+   for (i = 0; i  OMAP_MUX_NR_MODES; i++) {
+diff --git a/arch/powerpc/kernel/exceptions-64s.S 
b/arch/powerpc/kernel/exceptions-64s.S
+index 8f880bc77c56..846a16378d01 100644
+--- a/arch/powerpc/kernel/exceptions-64s.S
 b/arch/powerpc/kernel/exceptions-64s.S
+@@ -491,7 +491,7 @@ machine_check_common:
+   STD_EXCEPTION_COMMON(0xb00, trap_0b, .unknown_exception)
+   STD_EXCEPTION_COMMON(0xd00, single_step, .single_step_exception)
+   STD_EXCEPTION_COMMON(0xe00, trap_0e, .unknown_exception)
+-STD_EXCEPTION_COMMON(0xe40, emulation_assist, 
.program_check_exception)
++  STD_EXCEPTION_COMMON(0xe40, emulation_assist, 
.emulation_assist_interrupt)
+ STD_EXCEPTION_COMMON(0xe60, hmi_exception, .unknown_exception)
+   STD_EXCEPTION_COMMON_ASYNC(0xf00, performance_monitor, 
.performance_monitor_exception)
+   STD_EXCEPTION_COMMON(0x1300, instruction_breakpoint, 
.instruction_breakpoint_exception)
+diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c
+index f5725bce9ed2..f62fda1b6d61 100644
+--- a/arch/powerpc/kernel/lparcfg.c
 b/arch/powerpc/kernel/lparcfg.c
+@@ -35,7 +35,13 @@
+ #include asm/vdso_datapage.h
+ #include asm/vio.h
+ #include asm/mmu.h
++#include asm/machdep.h
+ 
++
++/*
++ * This isn't a module but we expose that to userspace
++ * via /proc so leave the definitions here
++ */
+ #define MODULE_VERS 1.9
+ #define MODULE_NAME lparcfg
+ 
+@@ -301,6 +307,7 @@ static void parse_system_parameter_string(struct seq_file 
*m)
+   __pa(rtas_data_buf),
+   RTAS_DATA_BUF_SIZE);
+   memcpy(local_buffer, rtas_data_buf, SPLPAR_MAXLENGTH);
++  local_buffer[SPLPAR_MAXLENGTH - 1] = '\0';
+   spin_unlock(rtas_data_buf_lock);
+ 
+   if (call_status != 0) {
+@@ -419,7 +426,8 @@ static void parse_em_data(struct seq_file *m)
+ {
+   unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
+ 
+-  if (plpar_hcall(H_GET_EM_PARMS, retbuf) == H_SUCCESS)
++  if (firmware_has_feature(FW_FEATURE_LPAR) 
++  plpar_hcall(H_GET_EM_PARMS, retbuf) == H_SUCCESS)
+   seq_printf(m, power_mode_data=%016lx\n, retbuf[0]);
+ }
+ 
+@@ -678,7 +686,6 @@ static int lparcfg_open(struct inode *inode, struct file 
*file)
+ }
+ 
+ static const struct file_operations lparcfg_fops = {
+-  .owner  = THIS_MODULE,
+   .read   = seq_read,
+   .write  = lparcfg_write,
+   .open   = lparcfg_open,
+@@ -704,15 +711,4 @@ static int __init lparcfg_init(void)
+   proc_ppc64_lparcfg = ent;
+   return 0;
+ }
+-
+-static void __exit lparcfg_cleanup(void)
+-{
+-  if (proc_ppc64_lparcfg)
+-  remove_proc_entry(lparcfg, proc_ppc64_lparcfg-parent);
+-}
+-
+-module_init(lparcfg_init);
+-module_exit(lparcfg_cleanup);
+-MODULE_DESCRIPTION(Interface for 

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-07-07 Thread Mike Pagano
commit: 713c343a0ce53d7ca7edf8a0177795d066f151c6
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Mon Jul  7 23:49:15 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Mon Jul  7 23:49:15 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=713c343a

Linux patch 3.4.97

---
 _README |   4 +
 1096_linux-3.4.97.patch | 552 
 2 files changed, 556 insertions(+)

diff --git a/_README b/_README
index a4ce565..bacfd0f 100644
--- a/_README
+++ b/_README
@@ -423,6 +423,10 @@ Patch:  1095_linux-3.4.96.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.96
 
+Patch:  1096_linux-3.4.97.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.97
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1096_linux-3.4.97.patch b/1096_linux-3.4.97.patch
new file mode 100644
index 000..6007072
--- /dev/null
+++ b/1096_linux-3.4.97.patch
@@ -0,0 +1,552 @@
+diff --git a/Makefile b/Makefile
+index e4ecdedbfe27..fdd7c32ea1f7 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 96
++SUBLEVEL = 97
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/mips/kernel/irq-msc01.c b/arch/mips/kernel/irq-msc01.c
+index 14ac52c5ae86..884de3433ad7 100644
+--- a/arch/mips/kernel/irq-msc01.c
 b/arch/mips/kernel/irq-msc01.c
+@@ -131,7 +131,7 @@ void __init init_msc_irqs(unsigned long icubase, unsigned 
int irqbase, msc_irqma
+ 
+   board_bind_eic_interrupt = msc_bind_eic_interrupt;
+ 
+-  for (; nirq = 0; nirq--, imp++) {
++  for (; nirq  0; nirq--, imp++) {
+   int n = imp-im_irq;
+ 
+   switch (imp-im_type) {
+diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
+index e7dba0b2a170..eb6b72faec0d 100644
+--- a/arch/powerpc/kernel/time.c
 b/arch/powerpc/kernel/time.c
+@@ -496,7 +496,7 @@ void timer_interrupt(struct pt_regs * regs)
+ 
+   __get_cpu_var(irq_stat).timer_irqs++;
+ 
+-#if defined(CONFIG_PPC32)  defined(CONFIG_PMAC)
++#if defined(CONFIG_PPC32)  defined(CONFIG_PPC_PMAC)
+   if (atomic_read(ppc_n_lost_interrupts) != 0)
+   do_IRQ(regs);
+ #endif
+diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
+index 9a52349874ee..e3b28e34bd78 100644
+--- a/arch/powerpc/lib/sstep.c
 b/arch/powerpc/lib/sstep.c
+@@ -1395,7 +1395,7 @@ int __kprobes emulate_step(struct pt_regs *regs, 
unsigned int instr)
+   regs-gpr[rd] = byterev_4(val);
+   goto ldst_done;
+ 
+-#ifdef CONFIG_PPC_CPU
++#ifdef CONFIG_PPC_FPU
+   case 535:   /* lfsx */
+   case 567:   /* lfsux */
+   if (!(regs-msr  MSR_FP))
+diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c 
b/arch/powerpc/platforms/pseries/eeh_pseries.c
+index 8a811d98a795..9c9e24512f28 100644
+--- a/arch/powerpc/platforms/pseries/eeh_pseries.c
 b/arch/powerpc/platforms/pseries/eeh_pseries.c
+@@ -319,6 +319,7 @@ static int pseries_eeh_get_state(struct device_node *dn, 
int *state)
+   } else {
+   result = EEH_STATE_NOT_SUPPORT;
+   }
++  break;
+   default:
+   result = EEH_STATE_NOT_SUPPORT;
+   }
+diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
+index 19f16ebaf4fa..0b60cd9dcf16 100644
+--- a/arch/x86/include/asm/ptrace.h
 b/arch/x86/include/asm/ptrace.h
+@@ -286,6 +286,22 @@ static inline unsigned long 
regs_get_kernel_stack_nth(struct pt_regs *regs,
+ 
+ #define ARCH_HAS_USER_SINGLE_STEP_INFO
+ 
++/*
++ * When hitting ptrace_stop(), we cannot return using SYSRET because
++ * that does not restore the full CPU state, only a minimal set.  The
++ * ptracer can change arbitrary register values, which is usually okay
++ * because the usual ptrace stops run off the signal delivery path which
++ * forces IRET; however, ptrace_event() stops happen in arbitrary places
++ * in the kernel and don't force IRET path.
++ *
++ * So force IRET path after a ptrace stop.
++ */
++#define arch_ptrace_stop_needed(code, info)   \
++({\
++  set_thread_flag(TIF_NOTIFY_RESUME); \
++  false;  \
++})
++
+ struct user_desc;
+ extern int do_get_thread_area(struct task_struct *p, int idx,
+ struct user_desc __user *info);
+diff --git a/drivers/infiniband/core/user_mad.c 
b/drivers/infiniband/core/user_mad.c
+index f0d588f8859e..1acb99100556 100644
+--- a/drivers/infiniband/core/user_mad.c
 b/drivers/infiniband/core/user_mad.c

[gentoo-commits] proj/linux-patches:3.4 commit in: /

2014-07-01 Thread Mike Pagano
commit: 4cfc1e2967b4fbddf2d3fc251cdb8ee10b62ccd5
Author: Mike Pagano mpagano AT gentoo DOT org
AuthorDate: Tue Jul  1 16:06:53 2014 +
Commit: Mike Pagano mpagano AT gentoo DOT org
CommitDate: Tue Jul  1 16:06:53 2014 +
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/linux-patches.git;a=commit;h=4cfc1e29

Linux patch 3.4.96

---
 _README |4 +
 1095_linux-3.4.96.patch | 1326 +++
 2 files changed, 1330 insertions(+)

diff --git a/_README b/_README
index 1db991a..a4ce565 100644
--- a/_README
+++ b/_README
@@ -419,6 +419,10 @@ Patch:  1094_linux-3.4.95.patch
 From:   http://www.kernel.org
 Desc:   Linux 3.4.95
 
+Patch:  1095_linux-3.4.96.patch
+From:   http://www.kernel.org
+Desc:   Linux 3.4.96
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1095_linux-3.4.96.patch b/1095_linux-3.4.96.patch
new file mode 100644
index 000..8c229d5
--- /dev/null
+++ b/1095_linux-3.4.96.patch
@@ -0,0 +1,1326 @@
+diff --git a/Makefile b/Makefile
+index fda1dab589be..e4ecdedbfe27 100644
+--- a/Makefile
 b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 3
+ PATCHLEVEL = 4
+-SUBLEVEL = 95
++SUBLEVEL = 96
+ EXTRAVERSION =
+ NAME = Saber-toothed Squirrel
+ 
+diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c
+index af4e8c8a5422..6582c4adc182 100644
+--- a/arch/arm/kernel/stacktrace.c
 b/arch/arm/kernel/stacktrace.c
+@@ -83,13 +83,16 @@ static int save_trace(struct stackframe *frame, void *d)
+   return trace-nr_entries = trace-max_entries;
+ }
+ 
+-void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
++/* This must be noinline to so that our skip calculation works correctly */
++static noinline void __save_stack_trace(struct task_struct *tsk,
++  struct stack_trace *trace, unsigned int nosched)
+ {
+   struct stack_trace_data data;
+   struct stackframe frame;
+ 
+   data.trace = trace;
+   data.skip = trace-skip;
++  data.no_sched_functions = nosched;
+ 
+   if (tsk != current) {
+ #ifdef CONFIG_SMP
+@@ -102,7 +105,6 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct 
stack_trace *trace)
+   trace-entries[trace-nr_entries++] = ULONG_MAX;
+   return;
+ #else
+-  data.no_sched_functions = 1;
+   frame.fp = thread_saved_fp(tsk);
+   frame.sp = thread_saved_sp(tsk);
+   frame.lr = 0;   /* recovered from the stack */
+@@ -111,11 +113,12 @@ void save_stack_trace_tsk(struct task_struct *tsk, 
struct stack_trace *trace)
+   } else {
+   register unsigned long current_sp asm (sp);
+ 
+-  data.no_sched_functions = 0;
++  /* We don't want this function nor the caller */
++  data.skip += 2;
+   frame.fp = (unsigned long)__builtin_frame_address(0);
+   frame.sp = current_sp;
+   frame.lr = (unsigned long)__builtin_return_address(0);
+-  frame.pc = (unsigned long)save_stack_trace_tsk;
++  frame.pc = (unsigned long)__save_stack_trace;
+   }
+ 
+   walk_stackframe(frame, save_trace, data);
+@@ -123,9 +126,14 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct 
stack_trace *trace)
+   trace-entries[trace-nr_entries++] = ULONG_MAX;
+ }
+ 
++void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
++{
++  __save_stack_trace(tsk, trace, 1);
++}
++
+ void save_stack_trace(struct stack_trace *trace)
+ {
+-  save_stack_trace_tsk(current, trace);
++  __save_stack_trace(current, trace, 0);
+ }
+ EXPORT_SYMBOL_GPL(save_stack_trace);
+ #endif
+diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h
+index 47853debb3b9..025415e7346a 100644
+--- a/arch/s390/include/asm/lowcore.h
 b/arch/s390/include/asm/lowcore.h
+@@ -142,9 +142,9 @@ struct _lowcore {
+   __u8pad_0x02fc[0x0300-0x02fc];  /* 0x02fc */
+ 
+   /* Interrupt response block */
+-  __u8irb[64];/* 0x0300 */
++  __u8irb[96];/* 0x0300 */
+ 
+-  __u8pad_0x0340[0x0e00-0x0340];  /* 0x0340 */
++  __u8pad_0x0360[0x0e00-0x0360];  /* 0x0360 */
+ 
+   /*
+* 0xe00 contains the address of the IPL Parameter Information
+@@ -288,12 +288,13 @@ struct _lowcore {
+   __u8pad_0x03a0[0x0400-0x03a0];  /* 0x03a0 */
+ 
+   /* Interrupt response block. */
+-  __u8irb[64];/* 0x0400 */
++  __u8irb[96];/* 0x0400 */
++  __u8pad_0x0460[0x0480-0x0460];  /* 0x0460 */
+ 
+   /* Per cpu primary space access list */
+-  __u32   paste[16];  /* 0x0440 */
++  __u32   paste[16];  /* 0x0480