]> git.pld-linux.org Git - packages/kernel.git/blame - kernel-small_fixes.patch
- update (seem no real changes)
[packages/kernel.git] / kernel-small_fixes.patch
CommitLineData
3c03f5de 1diff -Nur linux-2.6.15.6/drivers/input/joystick/iforce/iforce-serio.c linux-2.6.15.6.iforce/drivers/input/joystick/iforce/iforce-serio.c
2--- linux-2.6.15.6/drivers/input/joystick/iforce/iforce-serio.c 2006-03-05 19:07:54.000000000 +0000
3+++ linux-2.6.15.6.iforce/drivers/input/joystick/iforce/iforce-serio.c 2006-04-29 23:17:59.000000000 +0000
4@@ -175,6 +175,12 @@
5 .id = SERIO_ANY,
6 .extra = SERIO_ANY,
7 },
8+ {
9+ .type = SERIO_RS232,
10+ .proto = 0x1f, // Trust ForceFeedback Race Master
11+ .id = SERIO_ANY,
12+ .extra = SERIO_ANY,
13+ },
14 { 0 }
15 };
16
1b3b3426
PS
17--- linux-2.6.27/arch/powerpc/include/asm/io.h~ 2006-06-18 01:49:35.000000000 +0000
18+++ linux-2.6.27/arch/powerpc/include/asm/io.h 2006-06-22 02:44:19.000000000 +0000
3c03f5de 19@@ -445,6 +445,10 @@
20 #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
21 #define page_to_bus(page) (page_to_phys(page) + PCI_DRAM_OFFSET)
22
23+#define isa_virt_to_bus virt_to_phys
24+#define isa_page_to_bus page_to_phys
25+#define isa_bus_to_virt phys_to_virt
26+
27 /* Enforce in-order execution of data I/O.
28 * No distinction between read/write on PPC; use eieio for all three.
29 */
ca74d27b 30--- linux-2.6.20/drivers/media/common/ir-keymaps.c.orig 2007-02-04 19:44:54.000000000 +0100
31+++ linux-2.6.20/drivers/media/common/ir-keymaps.c 2007-02-17 22:22:39.327414970 +0100
32@@ -151,10 +151,6 @@
33
34 IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
35
36- [ 0x1e ] = KEY_POWER, // power
37- [ 0x07 ] = KEY_MEDIA, // source
38- [ 0x1c ] = KEY_SEARCH, // scan
39-
40 /* FIXME: duplicate keycodes?
41 *
42 * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>>
43@@ -175,14 +171,10 @@
44 */
45
46 [ 0x03 ] = KEY_TUNER, // TV/FM
47+ [ 0x07 ] = KEY_SEARCH, // scan
48+ [ 0x1c ] = KEY_ZOOM, // zoom
49
50- [ 0x00 ] = KEY_RECORD,
51- [ 0x08 ] = KEY_STOP,
52- [ 0x11 ] = KEY_PLAY,
53-
54- [ 0x1a ] = KEY_PLAYPAUSE, // freeze
55- [ 0x19 ] = KEY_ZOOM, // zoom
56- [ 0x0f ] = KEY_TEXT, // min
57+ [ 0x1e ] = KEY_POWER, // power
58
59 [ 0x01 ] = KEY_1,
60 [ 0x0b ] = KEY_2,
61@@ -195,20 +187,22 @@
62 [ 0x12 ] = KEY_9,
63 [ 0x02 ] = KEY_0,
64 [ 0x10 ] = KEY_LAST, // +100
65- [ 0x13 ] = KEY_LIST, // recall
66+ [ 0x13 ] = KEY_LIST, // loop
67
68- [ 0x1f ] = KEY_CHANNELUP, // chn down
69- [ 0x17 ] = KEY_CHANNELDOWN, // chn up
70- [ 0x16 ] = KEY_VOLUMEUP, // vol down
71- [ 0x14 ] = KEY_VOLUMEDOWN, // vol up
72+ [ 0x1f ] = KEY_VOLUMEUP, // vol down
73+ [ 0x17 ] = KEY_VOLUMEDOWN, // vol up
74+ [ 0x16 ] = KEY_CHANNELUP, // chn down
75+ [ 0x14 ] = KEY_CHANNELDOWN, // chn up
76
77- [ 0x04 ] = KEY_KPMINUS, // <<<
78+ [ 0x00 ] = KEY_MEDIA, // source
79+ [ 0x18 ] = KEY_MUTE, // mute/unmute
80+
81+ [ 0x04 ] = KEY_KPMINUS, // -
82 [ 0x0e ] = KEY_SETUP, // function
83- [ 0x0c ] = KEY_KPPLUS, // >>>
84+ [ 0x0c ] = KEY_KPPLUS, // +
85
86- [ 0x0d ] = KEY_GOTO, // mts
87- [ 0x1d ] = KEY_REFRESH, // reset
88- [ 0x18 ] = KEY_MUTE // mute/unmute
89+ [ 0x0d ] = KEY_REFRESH, // reset
90+ [ 0x0f ] = KEY_PLAYPAUSE // freeze
91 };
92
93 EXPORT_SYMBOL_GPL(ir_codes_pixelview);
720c736c 94--- linux-2.6.22/drivers/sbus/char/cpwatchdog.c~ 2007-07-09 01:32:17.000000000 +0200
95+++ linux-2.6.22/drivers/sbus/char/cpwatchdog.c 2007-08-12 03:56:02.739993250 +0200
96@@ -28,6 +28,7 @@
97 #include <asm/ebus.h>
98 #include <asm/oplib.h>
99 #include <asm/uaccess.h>
100+#include <asm/io.h>
101
102 #include <asm/watchdog.h>
103
1b3b3426
PS
104--- linux-2.6.27/arch/powerpc/include/asm/suspend.h 2007-07-09 01:32:17.000000000 +0200
105+++ linux-2.6.27/arch/powerpc/include/asm/suspend.h 2007-08-28 23:26:16.629658848 +0200
88b2edbd 106@@ -6,4 +6,7 @@
107 void save_processor_state(void);
108 void restore_processor_state(void);
109
110+#define suspend2_faulted (0)
111+#define clear_suspend2_fault() do { } while(0)
112+
113 #endif /* __ASM_POWERPC_SUSPEND_H */
97c1e650 114--- linux-2.6.26/arch/powerpc/kernel/swsusp.c 2008-09-29 00:01:56.000000000 +0200
115+++ linux-2.6.26/arch/powerpc/kernel/swsusp.c 2008-09-29 00:01:42.000000000 +0200
116@@ -9,6 +9,7 @@
117 * 2 of the License, or (at your option) any later version.
118 */
119
120+#include <linux/module.h>
121 #include <linux/sched.h>
122 #include <asm/suspend.h>
123 #include <asm/system.h>
124@@ -30,6 +31,7 @@
125 #endif
126
127 }
128+EXPORT_SYMBOL(save_processor_state);
129
130 void restore_processor_state(void)
131 {
de227537
PS
132--- linux-2.6.27/security/security.c.orig 2008-10-09 22:13:53.000000000 +0000
133+++ linux-2.6.27/security/security.c 2008-10-20 17:27:49.000000000 +0000
134@@ -439,6 +439,7 @@
135 return 0;
136 return security_ops->inode_permission(inode, mask);
137 }
138+EXPORT_SYMBOL_GPL(security_inode_permission);
139
140 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
141 {
50988002 142--- a/drivers/net/mv643xx_eth.c
143+++ b/drivers/net/mv643xx_eth.c
144@@ -38,6 +38,7 @@
145 #include <linux/init.h>
146 #include <linux/dma-mapping.h>
147 #include <linux/in.h>
148+#include <linux/ip.h>
149 #include <linux/tcp.h>
150 #include <linux/udp.h>
151 #include <linux/etherdevice.h>
a6e445ed
JR
152From: Hannes Reinecke <hare@suse.de>
153Subject: Retry ALUA device handler initialization on Unit Attention
154
155Whenever we receive a UNIT ATTENTION sense code we should just retry
156the command. No point in checking the various sense codes here.
157
158Signed-off-by: Hannes Reinecke <hare@suse.de>
159
160diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
161index e356b43..a3660a6 100644
162--- a/drivers/scsi/device_handler/scsi_dh_alua.c
163+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
164@@ -444,24 +444,10 @@ static int alua_check_sense(struct scsi_device *sdev,
165 return SUCCESS;
166 break;
167 case UNIT_ATTENTION:
168- if (sense_hdr->asc == 0x29 && sense_hdr->ascq == 0x00)
169- /*
170- * Power On, Reset, or Bus Device Reset, just retry.
171- */
172- return ADD_TO_MLQUEUE;
173- if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) {
174- /*
175- * ALUA state changed
176- */
177- return ADD_TO_MLQUEUE;
178- }
179- if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) {
180- /*
181- * Implicit ALUA state transition failed
182- */
183- return ADD_TO_MLQUEUE;
184- }
185- break;
186+ /*
187+ * Just retry for UNIT_ATTENTION
188+ */
189+ return ADD_TO_MLQUEUE;
190 }
191
192 return SCSI_RETURN_NOT_HANDLED;
193From: Hannes Reinecke <hare@suse.de>
194Subject: Always send STPG for explicit tgps mode
195
196When we are in explicit tgps mode we should always send an STPG
197command to enable the active/optimized mode.
198
199Signed-off-by: Hannes Reinecke <hare@suse.de>
200
201---
202 drivers/scsi/device_handler/scsi_dh_alua.c | 10 ++++------
203 1 file changed, 4 insertions(+), 6 deletions(-)
204
205--- a/drivers/scsi/device_handler/scsi_dh_alua.c
206+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
207@@ -593,13 +593,11 @@ static int alua_activate(struct scsi_dev
208 struct alua_dh_data *h = get_alua_data(sdev);
209 int err = SCSI_DH_OK;
210
211- if (h->group_id != -1) {
212- err = alua_rtpg(sdev, h);
213- if (err != SCSI_DH_OK)
214- goto out;
215- }
216+ err = alua_rtpg(sdev, h);
217+ if (err != SCSI_DH_OK)
218+ goto out;
219
220- if (h->tpgs == TPGS_MODE_EXPLICIT && h->state != TPGS_STATE_OPTIMIZED)
221+ if ((h->tpgs & TPGS_MODE_EXPLICIT) && h->state != TPGS_STATE_OPTIMIZED)
222 err = alua_stpg(sdev, TPGS_STATE_OPTIMIZED, h);
223
224 out:
225Subject: Initialize path state to be passive when path is not owned
226From: Chandra Seetharaman <sekharan@us.ibm.com>
227Date: Thu Nov 20 14:14:39 2008 +0100:
228References: bnc#442676
229
230Set the path state to be passive when we learn that the controller does
231not own the path to the LUN.
232
233This will avoid sending even a single i/o thru the passive path at the
234probe time.
235
236Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
237Signed-off-by: Hannes Reinecke <hare@suse.de>
238
239---
240 drivers/scsi/device_handler/scsi_dh_rdac.c | 3 +++
241 1 file changed, 3 insertions(+)
242
243--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
244+++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
245@@ -403,6 +403,9 @@ static int check_ownership(struct scsi_d
246 }
247 }
248
249+ if (h->lun_state == RDAC_LUN_UNOWNED)
250+ h->state = RDAC_STATE_PASSIVE;
251+
252 return err;
253 }
254
255Subject: Retry mode select in RDAC device handler
256From: Chandra Seetharaman <sekharan@us.ibm.com>
257References: bnc#441337
258
259When the mode select sent to the controller fails with the retryable
260error, it is better to retry the mode_select from the hardware handler
261itself, instead of propagating the failure to dm-multipath.
262
263Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
264Signed-off-by: Hannes Reinecke <hare@suse.de>
265
266---
267---
268 drivers/scsi/device_handler/scsi_dh_rdac.c | 15 +++++++++++----
269 1 file changed, 11 insertions(+), 4 deletions(-)
270
271--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
272+++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
273@@ -24,6 +24,7 @@
274 #include <scsi/scsi_dh.h>
275
276 #define RDAC_NAME "rdac"
277+#define RDAC_RETRY_COUNT 5
278
279 /*
280 * LSI mode page stuff
281@@ -475,21 +476,27 @@ static int send_mode_select(struct scsi_
282 {
283 struct request *rq;
284 struct request_queue *q = sdev->request_queue;
285- int err = SCSI_DH_RES_TEMP_UNAVAIL;
286+ int err, retry_cnt = RDAC_RETRY_COUNT;
287
288+retry:
289+ err = SCSI_DH_RES_TEMP_UNAVAIL;
290 rq = rdac_failover_get(sdev, h);
291 if (!rq)
292 goto done;
293
294- sdev_printk(KERN_INFO, sdev, "queueing MODE_SELECT command.\n");
295+ sdev_printk(KERN_INFO, sdev, "%s MODE_SELECT command.\n",
296+ (retry_cnt == RDAC_RETRY_COUNT) ? "queueing" : "retrying");
297
298 err = blk_execute_rq(q, NULL, rq, 1);
299- if (err != SCSI_DH_OK)
300+ blk_put_request(rq);
301+ if (err != SCSI_DH_OK) {
302 err = mode_select_handle_sense(sdev, h->sense);
303+ if (err == SCSI_DH_RETRY && retry_cnt--)
304+ goto retry;
305+ }
306 if (err == SCSI_DH_OK)
307 h->state = RDAC_STATE_ACTIVE;
308
309- blk_put_request(rq);
310 done:
311 return err;
312 }
313Subject: scsi_dh_rdac: make sure the ownership is set correctly
314From: Chandra Seetharaman <sekharan@us.ibm.com>
315Patch-Mainline: 2.6.28
316References: bnc#441337
317
318When the controller ownership is changed (from passive to active),
319check_ownership() doesn't set the state of the device to ACTIVE.
320
321This patch fixes the problem.
322
323Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
324Reported and tested by: "Moger, Babu" <Babu.Moger@lsi.com>
325Signed-off-by: Hannes Reinecke <hare@suse.de>
326
327---
328---
329 drivers/scsi/device_handler/scsi_dh_rdac.c | 1 +
330 1 file changed, 1 insertion(+)
331
332--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
333+++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
334@@ -386,6 +386,7 @@ static int check_ownership(struct scsi_d
335 struct c9_inquiry *inqp;
336
337 h->lun_state = RDAC_LUN_UNOWNED;
338+ h->state = RDAC_STATE_ACTIVE;
339 err = submit_inquiry(sdev, 0xC9, sizeof(struct c9_inquiry), h);
340 if (err == SCSI_DH_OK) {
341 inqp = &h->inq.c9;
a8b31fb8
AM
342commit e8fa6b483feebd23ded5eb01afd7a6e82b6078c6
343Author: Christoph Hellwig <hch@infradead.org>
344Date: Tue Mar 3 14:48:36 2009 -0500
345
346 xfs: prevent kernel crash due to corrupted inode log format
347
348 Andras Korn reported an oops on log replay causes by a corrupted
349 xfs_inode_log_format_t passing a 0 size to kmem_zalloc. This patch handles
350 to small or too large numbers of log regions gracefully by rejecting the
351 log replay with a useful error message.
352
353 Signed-off-by: Christoph Hellwig <hch@lst.de>
354 Reported-by: Andras Korn <korn-sgi.com@chardonnay.math.bme.hu>
355 Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
356 Signed-off-by: Felix Blyakher <felixb@sgi.com>
357
358diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
359index 504d540..ceeba45 100644
360--- a/fs/xfs/xfs_log_recover.c
361+++ b/fs/xfs/xfs_log_recover.c
362@@ -1455,10 +1455,19 @@ xlog_recover_add_to_trans(
363 item = item->ri_prev;
364
365 if (item->ri_total == 0) { /* first region to be added */
366- item->ri_total = in_f->ilf_size;
367- ASSERT(item->ri_total <= XLOG_MAX_REGIONS_IN_ITEM);
368- item->ri_buf = kmem_zalloc((item->ri_total *
369- sizeof(xfs_log_iovec_t)), KM_SLEEP);
370+ if (in_f->ilf_size == 0 ||
371+ in_f->ilf_size > XLOG_MAX_REGIONS_IN_ITEM) {
372+ xlog_warn(
373+ "XFS: bad number of regions (%d) in inode log format",
374+ in_f->ilf_size);
375+ ASSERT(0);
376+ return XFS_ERROR(EIO);
377+ }
378+
379+ item->ri_total = in_f->ilf_size;
380+ item->ri_buf =
381+ kmem_zalloc(item->ri_total * sizeof(xfs_log_iovec_t),
382+ KM_SLEEP);
383 }
384 ASSERT(item->ri_total > item->ri_cnt);
385 /* Description region is ri_buf[0] */
0d908bdc
KK
386===================================================================
387--- a/kernel/cgroup.c 2008-12-11 04:41:51.000000000 +0530
388+++ b/kernel/cgroup.c 2008-12-18 21:55:58.000000000 +0530
389@@ -2934,9 +2934,6 @@
390 again:
391 root = subsys->root;
392 if (root == &rootnode) {
393- printk(KERN_INFO
394- "Not cloning cgroup for unused subsystem %s\n",
395- subsys->name);
396 mutex_unlock(&cgroup_mutex);
397 return 0;
398 }
399This patch removes spurious warning messages that are thrown into
400the console during cgroup operations.
401
402-----------------
403Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>
404Signed-off-by: Sharyathi Nagesh <sharyathi@xxxxxxxxxx>
405Acked-by: Serge E. Hallyn <serge@xxxxxxxxxx>
406-----------------
This page took 0.175875 seconds and 4 git commands to generate.