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