]> git.pld-linux.org Git - packages/kernel.git/blame - kernel-small_fixes.patch
- fix systemd-readahead: Failed to read event: File too large
[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)
e8792e4a
JR
73
74David Vrabel identified a regression when using automatic NUMA balancing
75under Xen whereby page table entries were getting corrupted due to the
76use of native PTE operations. Quoting him
77
78 Xen PV guest page tables require that their entries use machine
79 addresses if the preset bit (_PAGE_PRESENT) is set, and (for
80 successful migration) non-present PTEs must use pseudo-physical
81 addresses. This is because on migration MFNs in present PTEs are
82 translated to PFNs (canonicalised) so they may be translated back
83 to the new MFN in the destination domain (uncanonicalised).
84
85 pte_mknonnuma(), pmd_mknonnuma(), pte_mknuma() and pmd_mknuma()
86 set and clear the _PAGE_PRESENT bit using pte_set_flags(),
87 pte_clear_flags(), etc.
88
89 In a Xen PV guest, these functions must translate MFNs to PFNs
90 when clearing _PAGE_PRESENT and translate PFNs to MFNs when setting
91 _PAGE_PRESENT.
92
93His suggested fix converted p[te|md]_[set|clear]_flags to using
94paravirt-friendly ops but this is overkill. He suggested an alternative of
95using p[te|md]_modify in the NUMA page table operations but this is does
96more work than necessary and would require looking up a VMA for protections.
97
98This patch modifies the NUMA page table operations to use paravirt friendly
99operations to set/clear the flags of interest. Unfortunately this will take
100a performance hit when updating the PTEs on CONFIG_PARAVIRT but I do not
101see a way around it that does not break Xen.
102
103Cc: stable@vger.kernel.org
104Signed-off-by: Mel Gorman <mgorman@suse.de>
105Acked-by: David Vrabel <david.vrabel@citrix.com>
106Tested-by: David Vrabel <david.vrabel@citrix.com>
107---
108 include/asm-generic/pgtable.h | 31 +++++++++++++++++++++++--------
109 1 file changed, 23 insertions(+), 8 deletions(-)
110
111diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
112index 34c7bdc..38a7437 100644
113--- a/include/asm-generic/pgtable.h
114+++ b/include/asm-generic/pgtable.h
115@@ -680,24 +680,35 @@ static inline int pmd_numa(pmd_t pmd)
116 #ifndef pte_mknonnuma
117 static inline pte_t pte_mknonnuma(pte_t pte)
118 {
119- pte = pte_clear_flags(pte, _PAGE_NUMA);
120- return pte_set_flags(pte, _PAGE_PRESENT|_PAGE_ACCESSED);
121+ pteval_t val = pte_val(pte);
122+
123+ val &= ~_PAGE_NUMA;
124+ val |= (_PAGE_PRESENT|_PAGE_ACCESSED);
125+ return __pte(val);
126 }
127 #endif
128
129 #ifndef pmd_mknonnuma
130 static inline pmd_t pmd_mknonnuma(pmd_t pmd)
131 {
132- pmd = pmd_clear_flags(pmd, _PAGE_NUMA);
133- return pmd_set_flags(pmd, _PAGE_PRESENT|_PAGE_ACCESSED);
134+ pmdval_t val = pmd_val(pmd);
135+
136+ val &= ~_PAGE_NUMA;
137+ val |= (_PAGE_PRESENT|_PAGE_ACCESSED);
138+
139+ return __pmd(val);
140 }
141 #endif
142
143 #ifndef pte_mknuma
144 static inline pte_t pte_mknuma(pte_t pte)
145 {
146- pte = pte_set_flags(pte, _PAGE_NUMA);
147- return pte_clear_flags(pte, _PAGE_PRESENT);
148+ pteval_t val = pte_val(pte);
149+
150+ val &= ~_PAGE_PRESENT;
151+ val |= _PAGE_NUMA;
152+
153+ return __pte(val);
154 }
155 #endif
156
157@@ -716,8 +727,12 @@ static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr,
158 #ifndef pmd_mknuma
159 static inline pmd_t pmd_mknuma(pmd_t pmd)
160 {
161- pmd = pmd_set_flags(pmd, _PAGE_NUMA);
162- return pmd_clear_flags(pmd, _PAGE_PRESENT);
163+ pmdval_t val = pmd_val(pmd);
164+
165+ val &= ~_PAGE_PRESENT;
166+ val |= _PAGE_NUMA;
167+
168+ return __pmd(val);
169 }
170 #endif
171
172--
1731.8.4.5
174
175--
176To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
177the body of a message to majordomo@vger.kernel.org
178More majordomo info at http://vger.kernel.org/majordomo-info.html
179Please read the FAQ at http://www.tux.org/lkml/
f36e5ee2
AM
180From 1e2ee49f7f1b79f0b14884fe6a602f0411b39552 Mon Sep 17 00:00:00 2001
181From: Will Woods <wwoods@redhat.com>
182Date: Tue, 6 May 2014 12:50:10 -0700
183Subject: fanotify: fix -EOVERFLOW with large files on 64-bit
184
185On 64-bit systems, O_LARGEFILE is automatically added to flags inside
186the open() syscall (also openat(), blkdev_open(), etc). Userspace
187therefore defines O_LARGEFILE to be 0 - you can use it, but it's a
188no-op. Everything should be O_LARGEFILE by default.
189
190But: when fanotify does create_fd() it uses dentry_open(), which skips
191all that. And userspace can't set O_LARGEFILE in fanotify_init()
192because it's defined to 0. So if fanotify gets an event regarding a
193large file, the read() will just fail with -EOVERFLOW.
194
195This patch adds O_LARGEFILE to fanotify_init()'s event_f_flags on 64-bit
196systems, using the same test as open()/openat()/etc.
197
198Addresses https://bugzilla.redhat.com/show_bug.cgi?id=696821
199
200Signed-off-by: Will Woods <wwoods@redhat.com>
201Acked-by: Eric Paris <eparis@redhat.com>
202Reviewed-by: Jan Kara <jack@suse.cz>
203Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
204Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
205
206diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
207index 4e565c8..732648b 100644
208--- a/fs/notify/fanotify/fanotify_user.c
209+++ b/fs/notify/fanotify/fanotify_user.c
210@@ -698,6 +698,8 @@ SYSCALL_DEFINE2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags)
211 }
212 group->overflow_event = &oevent->fse;
213
214+ if (force_o_largefile())
215+ event_f_flags |= O_LARGEFILE;
216 group->fanotify_data.f_flags = event_f_flags;
217 #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
218 spin_lock_init(&group->fanotify_data.access_lock);
219--
220cgit v0.10.1
221
This page took 0.103453 seconds and 4 git commands to generate.