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
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"
12 /* Some toolchains use a `_' prefix for all user symbols. */
14 commit 87b09f1f25cd1e01d7c50bf423c7fe33027d7511
15 Author: stephen hemminger <shemminger@vyatta.com>
16 Date: Fri Feb 12 06:58:00 2010 +0000
18 sky2: dont enable PME legacy mode
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.
25 Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
26 Signed-off-by: David S. Miller <davem@davemloft.net>
28 diff --git b/drivers/net/ethernet/marvell/sky2.c a/drivers/net/ethernet/marvell/sky2.c
29 index 2494842..edf37aa 100644
30 --- b/drivers/net/ethernet/marvell/sky2.c
31 +++ a/drivers/net/ethernet/marvell/sky2.c
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;
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);
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);
50 sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
52 On Sat, 2 Jul 2011, Andi Kleen wrote:
54 > > The problem is that blk_peek_request() calls scsi_prep_fn(), which
57 > > struct scsi_device *sdev = q->queuedata;
58 > > int ret = BLKPREP_KILL;
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);
64 > > It doesn't check to see if sdev is NULL, nor does
65 > > scsi_setup_blk_pc_cmnd(). That accounts for this error:
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
71 The RCU problem is likely to be a separate issue. It might even be a
72 result of the use-after-free problem with the elevator.
74 At any rate, it's clear that the crash in the refcounting log you
75 posted occurred because scsi_setup_blk_pc_cmnd() called
76 scsi_prep_state_check(), which tried to dereference the NULL pointer.
78 Would you like to try this patch to see if it fixes the problem? As I
79 said before, I'm not certain it's the best thing to do, but it worked
87 Index: 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;
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);
100 Index: 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
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;
117 - /* Freeing the queue signals to block that we're done */
118 - scsi_free_queue(sdev->request_queue);
125 To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
126 the body of a message to majordomo@vger.kernel.org
127 More majordomo info at http://vger.kernel.org/majordomo-info.html
128 Please read the FAQ at http://www.tux.org/lkml/
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
132 $cc -print-file-name=lib${lib}.${ext} | grep -q /
133 if [ $? -eq 0 ]; then
135 + for libt in tinfow tinfo ; do
136 + $cc -print-file-name=lib${libt}.${ext} | grep -q /
137 + if [ $? -eq 0 ]; then
147 From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
148 To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
149 Subject: [PATCH] small fixes to 3.3 (and 3.2) CPU hotplug code. (v1)
150 Date: Wed, 1 Feb 2012 16:16:38 -0500
152 While I was playing with 'xm vcpu-set X N' I realized that the VCPU hotplug
153 code in 3.2 spews tons of messages. Found out that we were missing an preempt_*
154 call. While at it, I fixed also an annoying message ("XENBUS: Unable to ..")
155 that shows up during bootup.
157 Anyhow, these are going for 3.3 and CC-ing stable on the:
158 [PATCH 1/2] xen/smp: Fix CPU online/offline bug triggering a BUG:
161 To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
162 the body of a message to majordomo@vger.kernel.org
163 More majordomo info at http://vger.kernel.org/majordomo-info.html
164 Please read the FAQ at http://www.tux.org/lkml/
166 From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
167 To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
168 Subject: [PATCH 1/2] xen/smp: Fix CPU online/offline bug triggering a BUG: scheduling while atomic.
169 Date: Wed, 1 Feb 2012 16:16:39 -0500
171 When a user offlines a VCPU and then onlines it, we get:
173 NMI watchdog disabled (cpu2): hardware events not enabled
174 BUG: scheduling while atomic: swapper/2/0/0x00000002
175 Modules linked in: dm_multipath dm_mod xen_evtchn iscsi_boot_sysfs iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi scsi_mod libcrc32c crc32c radeon fbco
176 ttm bitblit softcursor drm_kms_helper xen_blkfront xen_netfront xen_fbfront fb_sys_fops sysimgblt sysfillrect syscopyarea xen_kbdfront xenfs [last unloaded:
178 Pid: 0, comm: swapper/2 Tainted: G O 3.2.0phase15.1-00003-gd6f7f5b-dirty #4
180 [<ffffffff81070571>] __schedule_bug+0x61/0x70
181 [<ffffffff8158eb78>] __schedule+0x798/0x850
182 [<ffffffff8158ed6a>] schedule+0x3a/0x50
183 [<ffffffff810349be>] cpu_idle+0xbe/0xe0
184 [<ffffffff81583599>] cpu_bringup_and_idle+0xe/0x10
186 The reason for this should be obvious from this call-chain:
187 cpu_bringup_and_idle:
189 | \-[preempt_disable]
192 \- play_dead [assuming the user offlined the VCPU]
195 | \- HYPERVISOR_VCPU_off [so VCPU is dead, once user
196 | | onlines it starts from here]
197 | \- cpu_bringup [preempt_disable]
199 +- preempt_enable_no_reschedule()
203 So we have two preempt_disble() and one preempt_enable(). Calling
204 preempt_enable() after the cpu_bringup() in the xen_play_dead
207 Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
209 arch/x86/xen/smp.c | 7 +++++++
210 1 files changed, 7 insertions(+), 0 deletions(-)
212 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
213 index 041d4fe..501d4e0 100644
214 --- a/arch/x86/xen/smp.c
215 +++ b/arch/x86/xen/smp.c
216 @@ -409,6 +409,13 @@ static void __cpuinit xen_play_dead(void) /* used only with HOTPLUG_CPU */
218 HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL);
221 + * Balance out the preempt calls - as we are running in cpu_idle
222 + * loop which has been called at bootup from cpu_bringup_and_idle.
223 + * The cpucpu_bringup_and_idle called cpu_bringup which made a
224 + * preempt_disable() So this preempt_enable will balance it out.
229 #else /* !CONFIG_HOTPLUG_CPU */
234 To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
235 the body of a message to majordomo@vger.kernel.org
236 More majordomo info at http://vger.kernel.org/majordomo-info.html
237 Please read the FAQ at http://www.tux.org/lkml/
239 From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
240 To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
241 Subject: [PATCH 2/2] xen/bootup: During bootup suppress XENBUS: Unable to read cpu state
242 Date: Wed, 1 Feb 2012 16:16:40 -0500
244 When the initial domain starts, it prints (depending on the
245 amount of CPUs) a slew of
246 XENBUS: Unable to read cpu state
247 XENBUS: Unable to read cpu state
248 XENBUS: Unable to read cpu state
249 XENBUS: Unable to read cpu state
251 which provide no useful information - as the error is a valid
252 issue - but not on the initial domain. The reason is that the
253 XenStore is not accessible at that time (it is after all the
254 first guest) so the CPU hotplug watch cannot parse "availability/cpu"
257 Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
259 drivers/xen/cpu_hotplug.c | 3 ++-
260 1 files changed, 2 insertions(+), 1 deletions(-)
262 diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c
263 index 14e2d99..4dcfced 100644
264 --- a/drivers/xen/cpu_hotplug.c
265 +++ b/drivers/xen/cpu_hotplug.c
266 @@ -30,7 +30,8 @@ static int vcpu_online(unsigned int cpu)
267 sprintf(dir, "cpu/%u", cpu);
268 err = xenbus_scanf(XBT_NIL, dir, "availability", "%s", state);
270 - printk(KERN_ERR "XENBUS: Unable to read cpu state\n");
271 + if (!xen_initial_domain())
272 + printk(KERN_ERR "XENBUS: Unable to read cpu state\n");
280 To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
281 the body of a message to majordomo@vger.kernel.org
282 More majordomo info at http://vger.kernel.org/majordomo-info.html
283 Please read the FAQ at http://www.tux.org/lkml/