]> git.pld-linux.org Git - packages/kernel.git/blame - kernel-small_fixes.patch
- 3.1.101
[packages/kernel.git] / kernel-small_fixes.patch
CommitLineData
08aa9d92 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
2136e199
AM
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
44c0f99c 29
59e60efc
AM
30diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
31index 7a0c800..ec5ebbb 100644
32--- a/drivers/net/ethernet/realtek/r8169.c
33+++ b/drivers/net/ethernet/realtek/r8169.c
514e5dae 34@@ -6927,6 +6927,14 @@ rtl_init_one(struct pci_dev *pdev, const
59e60efc
AM
35 for (i = 0; i < ETH_ALEN; i++)
36 dev->dev_addr[i] = RTL_R8(MAC0 + i);
514e5dae 37
59e60efc
AM
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",
514e5dae 43+ dev->dev_addr);
59e60efc 44+ }
514e5dae 45+
59e60efc 46 SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops);
514e5dae
AM
47 dev->watchdog_timeo = RTL8169_TX_TIMEOUT;
48
20e3bfd4
KK
49[PATCH] SCSI: Don't attempt to send extended INQUIRY command if skip_vpd_pages is set
50
51If a device has the skip_vpd_pages flag set we should simply fail the
52scsi_get_vpd_page() call.
53
54Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
55Acked-by: Alan Stern <stern@rowland.harvard.edu>
56Tested-by: Stuart Foster <smf.linux@ntlworld.com>
57Cc: stable@vger.kernel.org
58
59diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
60index 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)
89e90749 73
4619f982
AM
74From 1e2ee49f7f1b79f0b14884fe6a602f0411b39552 Mon Sep 17 00:00:00 2001
75From: Will Woods <wwoods@redhat.com>
76Date: Tue, 6 May 2014 12:50:10 -0700
77Subject: fanotify: fix -EOVERFLOW with large files on 64-bit
78
79On 64-bit systems, O_LARGEFILE is automatically added to flags inside
80the open() syscall (also openat(), blkdev_open(), etc). Userspace
81therefore defines O_LARGEFILE to be 0 - you can use it, but it's a
82no-op. Everything should be O_LARGEFILE by default.
83
84But: when fanotify does create_fd() it uses dentry_open(), which skips
85all that. And userspace can't set O_LARGEFILE in fanotify_init()
86because it's defined to 0. So if fanotify gets an event regarding a
87large file, the read() will just fail with -EOVERFLOW.
88
89This patch adds O_LARGEFILE to fanotify_init()'s event_f_flags on 64-bit
90systems, using the same test as open()/openat()/etc.
91
92Addresses https://bugzilla.redhat.com/show_bug.cgi?id=696821
93
94Signed-off-by: Will Woods <wwoods@redhat.com>
95Acked-by: Eric Paris <eparis@redhat.com>
96Reviewed-by: Jan Kara <jack@suse.cz>
97Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
98Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
99
100diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
101index 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--
114cgit v0.10.1
ccf0b29c
JR
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
ba6a0841
JR
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 2.601268 seconds and 4 git commands to generate.