commit:     56df60d70f473e515a2b889709239ecc78bbf5c6
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  2 08:22:12 2016 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Nov  2 08:22:12 2016 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-patchset.git/commit/?id=56df60d7

grsecurity-3.1-4.7.10-201611011946

 4.7.10/0000_README                                 |   2 +-
 ... 4420_grsecurity-3.1-4.7.10-201611011946.patch} | 161 +++++++++++++++++++--
 2 files changed, 151 insertions(+), 12 deletions(-)

diff --git a/4.7.10/0000_README b/4.7.10/0000_README
index 5c79278..c596497 100644
--- a/4.7.10/0000_README
+++ b/4.7.10/0000_README
@@ -14,7 +14,7 @@ Patch:        1009_linux-4.7.10.patch
 From:  http://www.kernel.org
 Desc:  Linux 4.7.10
 
-Patch: 4420_grsecurity-3.1-4.7.10-201610262029.patch
+Patch: 4420_grsecurity-3.1-4.7.10-201611011946.patch
 From:  http://www.grsecurity.net
 Desc:  hardened-sources base patch from upstream grsecurity
 

diff --git a/4.7.10/4420_grsecurity-3.1-4.7.10-201610262029.patch 
b/4.7.10/4420_grsecurity-3.1-4.7.10-201611011946.patch
similarity index 99%
rename from 4.7.10/4420_grsecurity-3.1-4.7.10-201610262029.patch
rename to 4.7.10/4420_grsecurity-3.1-4.7.10-201611011946.patch
index 2148028..15bb765 100644
--- a/4.7.10/4420_grsecurity-3.1-4.7.10-201610262029.patch
+++ b/4.7.10/4420_grsecurity-3.1-4.7.10-201611011946.patch
@@ -960,7 +960,7 @@ index d50430c..01cc53b 100644
  # but it is being used too early to link to meaningful stack_chk logic.
  nossp_flags := $(call cc-option, -fno-stack-protector)
 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
-index 9e10c45..5fbb312 100644
+index 9e10c45..e4cd000 100644
 --- a/arch/arm/include/asm/atomic.h
 +++ b/arch/arm/include/asm/atomic.h
 @@ -18,17 +18,41 @@
@@ -1018,7 +1018,7 @@ index 9e10c45..5fbb312 100644
 +      "3:\n"
 +#define __OVERFLOW_POST_RETURN                \
 +      "       bvc     3f\n"           \
-+"     mov     %0, %1\n"               \
++      "       mov     %0, %1\n"       \
 +      "2:     " REFCOUNT_TRAP_INSN "\n"\
 +      "3:\n"
 +#define __OVERFLOW_EXTABLE            \
@@ -24176,7 +24176,7 @@ index dee8a70..a2c1bda 100644
  }
  
 diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
-index c3496619..3f3a7dc 100644
+index c3496619..a968182 100644
 --- a/arch/x86/include/asm/traps.h
 +++ b/arch/x86/include/asm/traps.h
 @@ -10,7 +10,7 @@
@@ -24188,7 +24188,15 @@ index c3496619..3f3a7dc 100644
  asmlinkage void nmi(void);
  asmlinkage void int3(void);
  asmlinkage void xen_debug(void);
-@@ -107,7 +107,7 @@ extern int panic_on_unrecovered_nmi;
+@@ -54,6 +54,7 @@ asmlinkage void trace_page_fault(void);
+ #define trace_alignment_check alignment_check
+ #define trace_simd_coprocessor_error simd_coprocessor_error
+ #define trace_async_page_fault async_page_fault
++#define trace_refcount_error refcount_error
+ #endif
+ 
+ dotraplinkage void do_divide_error(struct pt_regs *, long);
+@@ -107,7 +108,7 @@ extern int panic_on_unrecovered_nmi;
  
  void math_emulate(struct math_emu_info *);
  #ifndef CONFIG_X86_32
@@ -24198,7 +24206,7 @@ index c3496619..3f3a7dc 100644
  asmlinkage void smp_deferred_error_interrupt(void);
  #endif
 diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
-index 0328c2cc..b65e680d 100644
+index 0328c2cc..fb12bf2 100644
 --- a/arch/x86/include/asm/uaccess.h
 +++ b/arch/x86/include/asm/uaccess.h
 @@ -8,6 +8,7 @@
@@ -24294,7 +24302,7 @@ index 0328c2cc..b65e680d 100644
  
  /**
   * get_user: - Get a simple variable from user space.
-@@ -201,13 +247,11 @@ __typeof__(__builtin_choose_expr(sizeof(x) > 
sizeof(0UL), 0ULL, 0UL))
+@@ -201,14 +247,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > 
sizeof(0UL), 0ULL, 0UL))
        asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
                     : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
  
@@ -24305,22 +24313,26 @@ index 0328c2cc..b65e680d 100644
        asm volatile("\n"                                               \
 -                   "1:        movl %%eax,0(%2)\n"                     \
 -                   "2:        movl %%edx,4(%2)\n"                     \
+-                   "3:"                                               \
 +                   "1:        "__copyuser_seg"movl %%eax,0(%2)\n"     \
 +                   "2:        "__copyuser_seg"movl %%edx,4(%2)\n"     \
-                    "3:"                                               \
++                   "3:\n"                                             \
                     ".section .fixup,\"ax\"\n"                         \
                     "4:        movl %3,%0\n"                           \
-@@ -220,8 +264,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 
0ULL, 0UL))
+                    "  jmp 3b\n"                                       \
+@@ -220,9 +264,9 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 
0ULL, 0UL))
  
  #define __put_user_asm_ex_u64(x, addr)                                        
\
        asm volatile("\n"                                               \
 -                   "1:        movl %%eax,0(%1)\n"                     \
 -                   "2:        movl %%edx,4(%1)\n"                     \
+-                   "3:"                                               \
 +                   "1:        "__copyuser_seg"movl %%eax,0(%1)\n"     \
 +                   "2:        "__copyuser_seg"movl %%edx,4(%1)\n"     \
-                    "3:"                                               \
++                   "3:\n"                                             \
                     _ASM_EXTABLE_EX(1b, 2b)                            \
                     _ASM_EXTABLE_EX(2b, 3b)                            \
+                    : : "A" (x), "r" (addr))
 @@ -269,10 +313,10 @@ extern void __put_user_8(void);
  #define put_user(x, ptr)                                      \
  ({                                                            \
@@ -67040,7 +67052,7 @@ index d9f1394..ba6ee91 100644
  
        memset(buf, 0, sizeof(buf));
 diff --git a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c 
b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
-index 3e5fa78..ca2e051 100644
+index 3e5fa78..6d26beb 100644
 --- a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
 +++ b/drivers/net/wireless/intersil/hostap/hostap_ioctl.c
 @@ -101,8 +101,9 @@ static int prism2_get_datarates(struct net_device *dev, u8 
*rates)
@@ -67523,7 +67535,123 @@ index 3e5fa78..ca2e051 100644
  {
        struct hostap_interface *iface = netdev_priv(dev);
        local_info_t *local = iface->local;
-@@ -3943,10 +3981,10 @@ static const iw_handler prism2_handler[] =
+@@ -3883,70 +3921,70 @@ const struct ethtool_ops prism2_ethtool_ops = {
+ 
+ static const iw_handler prism2_handler[] =
+ {
+-      (iw_handler) NULL,                              /* SIOCSIWCOMMIT */
+-      (iw_handler) prism2_get_name,                   /* SIOCGIWNAME */
+-      (iw_handler) NULL,                              /* SIOCSIWNWID */
+-      (iw_handler) NULL,                              /* SIOCGIWNWID */
+-      (iw_handler) prism2_ioctl_siwfreq,              /* SIOCSIWFREQ */
+-      (iw_handler) prism2_ioctl_giwfreq,              /* SIOCGIWFREQ */
+-      (iw_handler) prism2_ioctl_siwmode,              /* SIOCSIWMODE */
+-      (iw_handler) prism2_ioctl_giwmode,              /* SIOCGIWMODE */
+-      (iw_handler) prism2_ioctl_siwsens,              /* SIOCSIWSENS */
+-      (iw_handler) prism2_ioctl_giwsens,              /* SIOCGIWSENS */
+-      (iw_handler) NULL /* not used */,               /* SIOCSIWRANGE */
+-      (iw_handler) prism2_ioctl_giwrange,             /* SIOCGIWRANGE */
+-      (iw_handler) NULL /* not used */,               /* SIOCSIWPRIV */
+-      (iw_handler) NULL /* kernel code */,            /* SIOCGIWPRIV */
+-      (iw_handler) NULL /* not used */,               /* SIOCSIWSTATS */
+-      (iw_handler) NULL /* kernel code */,            /* SIOCGIWSTATS */
+-      iw_handler_set_spy,                             /* SIOCSIWSPY */
+-      iw_handler_get_spy,                             /* SIOCGIWSPY */
+-      iw_handler_set_thrspy,                          /* SIOCSIWTHRSPY */
+-      iw_handler_get_thrspy,                          /* SIOCGIWTHRSPY */
+-      (iw_handler) prism2_ioctl_siwap,                /* SIOCSIWAP */
+-      (iw_handler) prism2_ioctl_giwap,                /* SIOCGIWAP */
+-      (iw_handler) prism2_ioctl_siwmlme,              /* SIOCSIWMLME */
+-      (iw_handler) prism2_ioctl_giwaplist,            /* SIOCGIWAPLIST */
+-      (iw_handler) prism2_ioctl_siwscan,              /* SIOCSIWSCAN */
+-      (iw_handler) prism2_ioctl_giwscan,              /* SIOCGIWSCAN */
+-      (iw_handler) prism2_ioctl_siwessid,             /* SIOCSIWESSID */
+-      (iw_handler) prism2_ioctl_giwessid,             /* SIOCGIWESSID */
+-      (iw_handler) prism2_ioctl_siwnickn,             /* SIOCSIWNICKN */
+-      (iw_handler) prism2_ioctl_giwnickn,             /* SIOCGIWNICKN */
+-      (iw_handler) NULL,                              /* -- hole -- */
+-      (iw_handler) NULL,                              /* -- hole -- */
+-      (iw_handler) prism2_ioctl_siwrate,              /* SIOCSIWRATE */
+-      (iw_handler) prism2_ioctl_giwrate,              /* SIOCGIWRATE */
+-      (iw_handler) prism2_ioctl_siwrts,               /* SIOCSIWRTS */
+-      (iw_handler) prism2_ioctl_giwrts,               /* SIOCGIWRTS */
+-      (iw_handler) prism2_ioctl_siwfrag,              /* SIOCSIWFRAG */
+-      (iw_handler) prism2_ioctl_giwfrag,              /* SIOCGIWFRAG */
+-      (iw_handler) prism2_ioctl_siwtxpow,             /* SIOCSIWTXPOW */
+-      (iw_handler) prism2_ioctl_giwtxpow,             /* SIOCGIWTXPOW */
+-      (iw_handler) prism2_ioctl_siwretry,             /* SIOCSIWRETRY */
+-      (iw_handler) prism2_ioctl_giwretry,             /* SIOCGIWRETRY */
+-      (iw_handler) prism2_ioctl_siwencode,            /* SIOCSIWENCODE */
+-      (iw_handler) prism2_ioctl_giwencode,            /* SIOCGIWENCODE */
+-      (iw_handler) prism2_ioctl_siwpower,             /* SIOCSIWPOWER */
+-      (iw_handler) prism2_ioctl_giwpower,             /* SIOCGIWPOWER */
+-      (iw_handler) NULL,                              /* -- hole -- */
+-      (iw_handler) NULL,                              /* -- hole -- */
+-      (iw_handler) prism2_ioctl_siwgenie,             /* SIOCSIWGENIE */
+-      (iw_handler) prism2_ioctl_giwgenie,             /* SIOCGIWGENIE */
+-      (iw_handler) prism2_ioctl_siwauth,              /* SIOCSIWAUTH */
+-      (iw_handler) prism2_ioctl_giwauth,              /* SIOCGIWAUTH */
+-      (iw_handler) prism2_ioctl_siwencodeext,         /* SIOCSIWENCODEEXT */
+-      (iw_handler) prism2_ioctl_giwencodeext,         /* SIOCGIWENCODEEXT */
+-      (iw_handler) NULL,                              /* SIOCSIWPMKSA */
+-      (iw_handler) NULL,                              /* -- hole -- */
++      NULL,                           /* SIOCSIWCOMMIT */
++      prism2_get_name,                /* SIOCGIWNAME */
++      NULL,                           /* SIOCSIWNWID */
++      NULL,                           /* SIOCGIWNWID */
++      prism2_ioctl_siwfreq,           /* SIOCSIWFREQ */
++      prism2_ioctl_giwfreq,           /* SIOCGIWFREQ */
++      prism2_ioctl_siwmode,           /* SIOCSIWMODE */
++      prism2_ioctl_giwmode,           /* SIOCGIWMODE */
++      prism2_ioctl_siwsens,           /* SIOCSIWSENS */
++      prism2_ioctl_giwsens,           /* SIOCGIWSENS */
++      NULL /* not used */,            /* SIOCSIWRANGE */
++      prism2_ioctl_giwrange,          /* SIOCGIWRANGE */
++      NULL /* not used */,            /* SIOCSIWPRIV */
++      NULL /* kernel code */,         /* SIOCGIWPRIV */
++      NULL /* not used */,            /* SIOCSIWSTATS */
++      NULL /* kernel code */,         /* SIOCGIWSTATS */
++      iw_handler_set_spy,             /* SIOCSIWSPY */
++      iw_handler_get_spy,             /* SIOCGIWSPY */
++      iw_handler_set_thrspy,          /* SIOCSIWTHRSPY */
++      iw_handler_get_thrspy,          /* SIOCGIWTHRSPY */
++      prism2_ioctl_siwap,             /* SIOCSIWAP */
++      prism2_ioctl_giwap,             /* SIOCGIWAP */
++      prism2_ioctl_siwmlme,           /* SIOCSIWMLME */
++      prism2_ioctl_giwaplist,         /* SIOCGIWAPLIST */
++      prism2_ioctl_siwscan,           /* SIOCSIWSCAN */
++      prism2_ioctl_giwscan,           /* SIOCGIWSCAN */
++      prism2_ioctl_siwessid,          /* SIOCSIWESSID */
++      prism2_ioctl_giwessid,          /* SIOCGIWESSID */
++      prism2_ioctl_siwnickn,          /* SIOCSIWNICKN */
++      prism2_ioctl_giwnickn,          /* SIOCGIWNICKN */
++      NULL,                           /* -- hole -- */
++      NULL,                           /* -- hole -- */
++      prism2_ioctl_siwrate,           /* SIOCSIWRATE */
++      prism2_ioctl_giwrate,           /* SIOCGIWRATE */
++      prism2_ioctl_siwrts,            /* SIOCSIWRTS */
++      prism2_ioctl_giwrts,            /* SIOCGIWRTS */
++      prism2_ioctl_siwfrag,           /* SIOCSIWFRAG */
++      prism2_ioctl_giwfrag,           /* SIOCGIWFRAG */
++      prism2_ioctl_siwtxpow,          /* SIOCSIWTXPOW */
++      prism2_ioctl_giwtxpow,          /* SIOCGIWTXPOW */
++      prism2_ioctl_siwretry,          /* SIOCSIWRETRY */
++      prism2_ioctl_giwretry,          /* SIOCGIWRETRY */
++      prism2_ioctl_siwencode,         /* SIOCSIWENCODE */
++      prism2_ioctl_giwencode,         /* SIOCGIWENCODE */
++      prism2_ioctl_siwpower,          /* SIOCSIWPOWER */
++      prism2_ioctl_giwpower,          /* SIOCGIWPOWER */
++      NULL,                           /* -- hole -- */
++      NULL,                           /* -- hole -- */
++      prism2_ioctl_siwgenie,          /* SIOCSIWGENIE */
++      prism2_ioctl_giwgenie,          /* SIOCGIWGENIE */
++      prism2_ioctl_siwauth,           /* SIOCSIWAUTH */
++      prism2_ioctl_giwauth,           /* SIOCGIWAUTH */
++      prism2_ioctl_siwencodeext,      /* SIOCSIWENCODEEXT */
++      prism2_ioctl_giwencodeext,      /* SIOCGIWENCODEEXT */
++      NULL,                           /* SIOCSIWPMKSA */
++      NULL,                           /* -- hole -- */
+ };
  
  static const iw_handler prism2_private_handler[] =
  {                                                     /* SIOCIWFIRSTPRIV + */
@@ -67538,6 +67666,17 @@ index 3e5fa78..ca2e051 100644
  };
  
  const struct iw_handler_def hostap_iw_handler_def =
+@@ -3954,8 +3992,8 @@ const struct iw_handler_def hostap_iw_handler_def =
+       .num_standard   = ARRAY_SIZE(prism2_handler),
+       .num_private    = ARRAY_SIZE(prism2_private_handler),
+       .num_private_args = ARRAY_SIZE(prism2_priv),
+-      .standard       = (iw_handler *) prism2_handler,
+-      .private        = (iw_handler *) prism2_private_handler,
++      .standard       = prism2_handler,
++      .private        = prism2_private_handler,
+       .private_args   = (struct iw_priv_args *) prism2_priv,
+       .get_wireless_stats = hostap_get_wireless_stats,
+ };
 diff --git a/drivers/net/wireless/intersil/orinoco/wext.c 
b/drivers/net/wireless/intersil/orinoco/wext.c
 index 1d4dae4..0508fc1 100644
 --- a/drivers/net/wireless/intersil/orinoco/wext.c

Reply via email to