]> git.pld-linux.org Git - packages/kernel.git/blame - kernel-small_fixes.patch
- up to 3.2.7
[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
14commit 87b09f1f25cd1e01d7c50bf423c7fe33027d7511
15Author: stephen hemminger <shemminger@vyatta.com>
16Date: Fri Feb 12 06:58:00 2010 +0000
17
18 sky2: dont enable PME legacy mode
19
20 This bit is not changed by vendor driver, and should be left alone.
21 The documentation implies this a debug bit.
22 0 = WAKE# only asserted when VMAIN not available
23 1 = WAKE# is depend on wake events and independent of VMAIN.
24
25 Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
26 Signed-off-by: David S. Miller <davem@davemloft.net>
27
f0a92045 28diff --git b/drivers/net/ethernet/marvell/sky2.c a/drivers/net/ethernet/marvell/sky2.c
08aa9d92 29index 2494842..edf37aa 100644
f0a92045
JR
30--- b/drivers/net/ethernet/marvell/sky2.c
31+++ a/drivers/net/ethernet/marvell/sky2.c
08aa9d92 32@@ -733,6 +733,7 @@ static void sky2_wol_init(struct sky2_port *sky2)
33 unsigned port = sky2->port;
34 enum flow_control save_mode;
35 u16 ctrl;
36+ u32 reg1;
37
38 /* Bring hardware out of reset */
39 sky2_write16(hw, B0_CTST, CS_RST_CLR);
40@@ -786,6 +787,11 @@ static void sky2_wol_init(struct sky2_port *sky2)
41 /* Disable PiG firmware */
42 sky2_write16(hw, B0_CTST, Y2_HW_WOL_OFF);
43
44+ /* Turn on legacy PCI-Express PME mode */
45+ reg1 = sky2_pci_read32(hw, PCI_DEV_REG1);
46+ reg1 |= PCI_Y2_PME_LEGACY;
47+ sky2_pci_write32(hw, PCI_DEV_REG1, reg1);
48+
49 /* block receiver */
50 sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
51 }
23929ec1 52On Sat, 2 Jul 2011, Andi Kleen wrote:
2c2cf492 53
23929ec1
JR
54> > The problem is that blk_peek_request() calls scsi_prep_fn(), which
55> > does this:
56> >
57> > struct scsi_device *sdev = q->queuedata;
58> > int ret = BLKPREP_KILL;
59> >
60> > if (req->cmd_type == REQ_TYPE_BLOCK_PC)
61> > ret = scsi_setup_blk_pc_cmnd(sdev, req);
62> > return scsi_prep_return(q, req, ret);
63> >
64> > It doesn't check to see if sdev is NULL, nor does
65> > scsi_setup_blk_pc_cmnd(). That accounts for this error:
66>
67> I actually added a NULL check in scsi_setup_blk_pc_cmnd early on,
68> but that just caused RCU CPU stalls afterwards and then eventually
69> a hung system.
70
71The RCU problem is likely to be a separate issue. It might even be a
72result of the use-after-free problem with the elevator.
73
74At any rate, it's clear that the crash in the refcounting log you
75posted occurred because scsi_setup_blk_pc_cmnd() called
76scsi_prep_state_check(), which tried to dereference the NULL pointer.
77
78Would you like to try this patch to see if it fixes the problem? As I
79said before, I'm not certain it's the best thing to do, but it worked
80on my system.
81
82Alan Stern
83
84
85
86
87Index: usb-3.0/drivers/scsi/scsi_lib.c
88===================================================================
89--- usb-3.0.orig/drivers/scsi/scsi_lib.c
90+++ usb-3.0/drivers/scsi/scsi_lib.c
91@@ -1247,6 +1247,8 @@ int scsi_prep_fn(struct request_queue *q
92 struct scsi_device *sdev = q->queuedata;
93 int ret = BLKPREP_KILL;
94
95+ if (!sdev)
96+ return ret;
97 if (req->cmd_type == REQ_TYPE_BLOCK_PC)
98 ret = scsi_setup_blk_pc_cmnd(sdev, req);
99 return scsi_prep_return(q, req, ret);
100Index: usb-3.0/drivers/scsi/scsi_sysfs.c
101===================================================================
102--- usb-3.0.orig/drivers/scsi/scsi_sysfs.c
103+++ usb-3.0/drivers/scsi/scsi_sysfs.c
104@@ -322,6 +322,8 @@ static void scsi_device_dev_release_user
105 kfree(evt);
106 }
107
108+ /* Freeing the queue signals to block that we're done */
109+ scsi_free_queue(sdev->request_queue);
110 blk_put_queue(sdev->request_queue);
111 /* NULL queue means the device can't be used */
112 sdev->request_queue = NULL;
113@@ -936,8 +938,6 @@ void __scsi_remove_device(struct scsi_de
114 /* cause the request function to reject all I/O requests */
115 sdev->request_queue->queuedata = NULL;
116
117- /* Freeing the queue signals to block that we're done */
118- scsi_free_queue(sdev->request_queue);
119 put_device(dev);
120 }
121
122
123
23929ec1
JR
124--
125To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
126the body of a message to majordomo@vger.kernel.org
127More majordomo info at http://vger.kernel.org/majordomo-info.html
128Please read the FAQ at http://www.tux.org/lkml/
2136e199
AM
129--- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~ 2011-07-22 04:17:23.000000000 +0200
130+++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh 2011-08-25 21:26:04.799150642 +0200
131@@ -9,6 +9,12 @@
132 $cc -print-file-name=lib${lib}.${ext} | grep -q /
133 if [ $? -eq 0 ]; then
134 echo "-l${lib}"
135+ for libt in tinfow tinfo ; do
136+ $cc -print-file-name=lib${libt}.${ext} | grep -q /
137+ if [ $? -eq 0 ]; then
138+ echo "-l${libt}"
139+ fi
140+ done
141 exit
142 fi
143 done
44c0f99c 144
e0470645 145
c8aa6c21 146
This page took 0.177454 seconds and 4 git commands to generate.