]>
Commit | Line | Data |
---|---|---|
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 | ||
14 | commit 87b09f1f25cd1e01d7c50bf423c7fe33027d7511 | |
15 | Author: stephen hemminger <shemminger@vyatta.com> | |
16 | Date: 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 | 28 | diff --git b/drivers/net/ethernet/marvell/sky2.c a/drivers/net/ethernet/marvell/sky2.c |
08aa9d92 | 29 | index 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 | 52 | On 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 | ||
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. | |
73 | ||
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. | |
77 | ||
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 | |
80 | on my system. | |
81 | ||
82 | Alan Stern | |
83 | ||
84 | ||
85 | ||
86 | ||
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; | |
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); | |
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 | |
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 | -- |
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/ | |
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 |