]> git.pld-linux.org Git - packages/kernel.git/blob - kernel-small_fixes.patch
- 3.1.101
[packages/kernel.git] / kernel-small_fixes.patch
1 --- linux-2.6.33/scripts/mod/modpost.c~ 2010-02-24 19:52:17.000000000 +0100
2 +++ linux-2.6.33/scripts/mod/modpost.c  2010-03-07 14:26:47.242168558 +0100
3 @@ -15,7 +15,8 @@
4  #include <stdio.h>
5  #include <ctype.h>
6  #include "modpost.h"
7 -#include "../../include/generated/autoconf.h"
8 +// PLD architectures don't use CONFIG_SYMBOL_PREFIX
9 +//#include "../../include/generated/autoconf.h"
10  #include "../../include/linux/license.h"
11  
12  /* Some toolchains use a `_' prefix for all user symbols. */
13
14 --- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~       2011-07-22 04:17:23.000000000 +0200
15 +++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh        2011-08-25 21:26:04.799150642 +0200
16 @@ -9,6 +9,12 @@
17                         $cc -print-file-name=lib${lib}.${ext} | grep -q /
18                         if [ $? -eq 0 ]; then
19                                 echo "-l${lib}"
20 +                               for libt in tinfow tinfo ; do
21 +                                       $cc -print-file-name=lib${libt}.${ext} | grep -q /
22 +                                       if [ $? -eq 0 ]; then
23 +                                               echo "-l${libt}"
24 +                                       fi
25 +                               done
26                                 exit
27                         fi
28                 done
29
30 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
31 index 7a0c800..ec5ebbb 100644
32 --- a/drivers/net/ethernet/realtek/r8169.c
33 +++ b/drivers/net/ethernet/realtek/r8169.c
34 @@ -6927,6 +6927,14 @@ rtl_init_one(struct pci_dev *pdev, const
35         for (i = 0; i < ETH_ALEN; i++)
36                 dev->dev_addr[i] = RTL_R8(MAC0 + i);
37  
38 +       if (!is_valid_ether_addr(dev->dev_addr)) {
39 +               /* Report it and use a random ethernet address instead */
40 +               netdev_err(dev, "Invalid MAC address: %pM\n", dev->dev_addr);
41 +               random_ether_addr(dev->dev_addr);
42 +               netdev_info(dev, "Using random MAC address: %pM\n",
43 +                               dev->dev_addr);
44 +       }
45 +
46         SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops);
47         dev->watchdog_timeo = RTL8169_TX_TIMEOUT;
48  
49 [PATCH] SCSI: Don't attempt to send extended INQUIRY command if skip_vpd_pages is set
50
51 If a device has the skip_vpd_pages flag set we should simply fail the
52 scsi_get_vpd_page() call.
53
54 Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
55 Acked-by: Alan Stern <stern@rowland.harvard.edu>
56 Tested-by: Stuart Foster <smf.linux@ntlworld.com>
57 Cc: stable@vger.kernel.org
58
59 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
60 index 3b1ea34..eaa808e 100644
61 --- a/drivers/scsi/scsi.c
62 +++ b/drivers/scsi/scsi.c
63 @@ -1031,6 +1031,9 @@
64  {
65         int i, result;
66  
67 +       if (sdev->skip_vpd_pages)
68 +           goto fail;
69 +
70         /* Ask for all the pages supported by this device */
71         result = scsi_vpd_inquiry(sdev, buf, 0, buf_len);
72         if (result)
73
74 From 1e2ee49f7f1b79f0b14884fe6a602f0411b39552 Mon Sep 17 00:00:00 2001
75 From: Will Woods <wwoods@redhat.com>
76 Date: Tue, 6 May 2014 12:50:10 -0700
77 Subject: fanotify: fix -EOVERFLOW with large files on 64-bit
78
79 On 64-bit systems, O_LARGEFILE is automatically added to flags inside
80 the open() syscall (also openat(), blkdev_open(), etc).  Userspace
81 therefore defines O_LARGEFILE to be 0 - you can use it, but it's a
82 no-op.  Everything should be O_LARGEFILE by default.
83
84 But: when fanotify does create_fd() it uses dentry_open(), which skips
85 all that.  And userspace can't set O_LARGEFILE in fanotify_init()
86 because it's defined to 0.  So if fanotify gets an event regarding a
87 large file, the read() will just fail with -EOVERFLOW.
88
89 This patch adds O_LARGEFILE to fanotify_init()'s event_f_flags on 64-bit
90 systems, using the same test as open()/openat()/etc.
91
92 Addresses https://bugzilla.redhat.com/show_bug.cgi?id=696821
93
94 Signed-off-by: Will Woods <wwoods@redhat.com>
95 Acked-by: Eric Paris <eparis@redhat.com>
96 Reviewed-by: Jan Kara <jack@suse.cz>
97 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
98 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
99
100 diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
101 index 4e565c8..732648b 100644
102 --- a/fs/notify/fanotify/fanotify_user.c
103 +++ b/fs/notify/fanotify/fanotify_user.c
104 @@ -698,6 +698,8 @@ SYSCALL_DEFINE2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags)
105         }
106         group->overflow_event = &oevent->fse;
107  
108 +       if (force_o_largefile())
109 +               event_f_flags |= O_LARGEFILE;
110         group->fanotify_data.f_flags = event_f_flags;
111  #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
112         spin_lock_init(&group->fanotify_data.access_lock);
113 -- 
114 cgit v0.10.1
115 --- a/drivers/pnp/pnpbios/bioscalls.c   2014-03-31 05:40:15.000000000 +0200
116 +++ b/drivers/pnp/pnpbios/bioscalls.c   2015-08-30 20:34:09.000000000 +0200
117 @@ -21,7 +21,7 @@
118  
119  #include "pnpbios.h"
120  
121 -static struct {
122 +__visible struct {
123         u16 offset;
124         u16 segment;
125  } pnp_bios_callpoint;
126 @@ -37,10 +37,11 @@
127   * kernel begins at offset 3GB...
128   */
129  
130 -asmlinkage void pnp_bios_callfunc(void);
131 +asmlinkage __visible void pnp_bios_callfunc(void);
132  
133  __asm__(".text                 \n"
134         __ALIGN_STR "\n"
135 +       ".globl pnp_bios_callfunc\n"
136         "pnp_bios_callfunc:\n"
137         "       pushl %edx      \n"
138         "       pushl %ecx      \n"
139 @@ -66,9 +67,9 @@
140   * after PnP BIOS oopses.
141   */
142  
143 -u32 pnp_bios_fault_esp;
144 -u32 pnp_bios_fault_eip;
145 -u32 pnp_bios_is_utter_crap = 0;
146 +__visible u32 pnp_bios_fault_esp;
147 +__visible u32 pnp_bios_fault_eip;
148 +__visible u32 pnp_bios_is_utter_crap = 0;
149  
150  static spinlock_t pnp_bios_lock;
151  
152 --- a/arch/x86/kernel/apm_32.c  2013-07-01 00:13:29.000000000 +0200
153 +++ b/arch/x86/kernel/apm_32.c  2015-08-30 20:34:09.000000000 +0200
154 @@ -392,7 +391,7 @@
155  /*
156   * Local variables
157   */
158 -static struct {
159 +__visible struct {
160         unsigned long   offset;
161         unsigned short  segment;
162  } apm_bios_entry;
163 --- a/drivers/lguest/x86/core.c 2015-09-25 08:30:28.714249731 +0200
164 +++ b/drivers/lguest/x86/core.c 2015-08-30 20:34:09.000000000 +0200
165 @@ -157,7 +158,7 @@
166          * stack, then the address of this call.  This stack layout happens to
167          * exactly match the stack layout created by an interrupt...
168          */
169 -       asm volatile("pushf; lcall *lguest_entry"
170 +       asm volatile("pushf; lcall *%4"
171                      /*
172                       * This is how we tell GCC that %eax ("a") and %ebx ("b")
173                       * are changed by this routine.  The "=" means output.
174 @@ -169,7 +170,9 @@
175                       * physical address of the Guest's top-level page
176                       * directory.
177                       */
178 -                    : "0"(pages), "1"(__pa(cpu->lg->pgdirs[cpu->cpu_pgd].pgdir))
179 +                    : "0"(pages), 
180 +                      "1"(__pa(cpu->lg->pgdirs[cpu->cpu_pgd].pgdir)),
181 +                      "m"(lguest_entry)
182                      /*
183                       * We tell gcc that all these registers could change,
184                       * which means we don't have to save and restore them in
This page took 0.058306 seconds and 3 git commands to generate.