Annotation of /trunk/kernel-magellan/patches-3.11/0100-3.11.1-all-fixes.patch
Parent Directory | Revision Log
Revision 2284 -
(hide annotations)
(download)
Mon Sep 16 12:01:46 2013 UTC (11 years ago) by niro
File size: 13415 byte(s)
Mon Sep 16 12:01:46 2013 UTC (11 years ago) by niro
File size: 13415 byte(s)
-patches for linux-3.11
1 | niro | 2284 | diff --git a/Documentation/hwmon/k10temp b/Documentation/hwmon/k10temp |
2 | index 90956b6..4dfdc8f 100644 | ||
3 | --- a/Documentation/hwmon/k10temp | ||
4 | +++ b/Documentation/hwmon/k10temp | ||
5 | @@ -12,6 +12,7 @@ Supported chips: | ||
6 | * AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series) | ||
7 | * AMD Family 14h processors: "Brazos" (C/E/G/Z-Series) | ||
8 | * AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity" | ||
9 | +* AMD Family 16h processors: "Kabini" | ||
10 | |||
11 | Prefix: 'k10temp' | ||
12 | Addresses scanned: PCI space | ||
13 | diff --git a/Makefile b/Makefile | ||
14 | index fe8204b..efd2396 100644 | ||
15 | --- a/Makefile | ||
16 | +++ b/Makefile | ||
17 | @@ -1,6 +1,6 @@ | ||
18 | VERSION = 3 | ||
19 | PATCHLEVEL = 11 | ||
20 | -SUBLEVEL = 0 | ||
21 | +SUBLEVEL = 1 | ||
22 | EXTRAVERSION = | ||
23 | NAME = Linux for Workgroups | ||
24 | |||
25 | diff --git a/arch/x86/include/asm/xor_avx.h b/arch/x86/include/asm/xor_avx.h | ||
26 | index 7ea79c5..492b298 100644 | ||
27 | --- a/arch/x86/include/asm/xor_avx.h | ||
28 | +++ b/arch/x86/include/asm/xor_avx.h | ||
29 | @@ -167,12 +167,12 @@ static struct xor_block_template xor_block_avx = { | ||
30 | |||
31 | #define AVX_XOR_SPEED \ | ||
32 | do { \ | ||
33 | - if (cpu_has_avx) \ | ||
34 | + if (cpu_has_avx && cpu_has_osxsave) \ | ||
35 | xor_speed(&xor_block_avx); \ | ||
36 | } while (0) | ||
37 | |||
38 | #define AVX_SELECT(FASTEST) \ | ||
39 | - (cpu_has_avx ? &xor_block_avx : FASTEST) | ||
40 | + (cpu_has_avx && cpu_has_osxsave ? &xor_block_avx : FASTEST) | ||
41 | |||
42 | #else | ||
43 | |||
44 | diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c | ||
45 | index 80403c1..45af90a 100644 | ||
46 | --- a/drivers/acpi/ec.c | ||
47 | +++ b/drivers/acpi/ec.c | ||
48 | @@ -987,6 +987,10 @@ static struct dmi_system_id __initdata ec_dmi_table[] = { | ||
49 | ec_skip_dsdt_scan, "HP Folio 13", { | ||
50 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
51 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Folio 13"),}, NULL}, | ||
52 | + { | ||
53 | + ec_validate_ecdt, "ASUS hardware", { | ||
54 | + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTek Computer Inc."), | ||
55 | + DMI_MATCH(DMI_PRODUCT_NAME, "L4R"),}, NULL}, | ||
56 | {}, | ||
57 | }; | ||
58 | |||
59 | diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c | ||
60 | index 0df7590..461f47b 100644 | ||
61 | --- a/drivers/hv/channel_mgmt.c | ||
62 | +++ b/drivers/hv/channel_mgmt.c | ||
63 | @@ -262,6 +262,13 @@ static void vmbus_process_offer(struct work_struct *work) | ||
64 | } | ||
65 | |||
66 | /* | ||
67 | + * This state is used to indicate a successful open | ||
68 | + * so that when we do close the channel normally, we | ||
69 | + * can cleanup properly | ||
70 | + */ | ||
71 | + newchannel->state = CHANNEL_OPEN_STATE; | ||
72 | + | ||
73 | + /* | ||
74 | * Start the process of binding this offer to the driver | ||
75 | * We need to set the DeviceObject field before calling | ||
76 | * vmbus_child_dev_add() | ||
77 | @@ -287,13 +294,6 @@ static void vmbus_process_offer(struct work_struct *work) | ||
78 | kfree(newchannel->device_obj); | ||
79 | |||
80 | free_channel(newchannel); | ||
81 | - } else { | ||
82 | - /* | ||
83 | - * This state is used to indicate a successful open | ||
84 | - * so that when we do close the channel normally, we | ||
85 | - * can cleanup properly | ||
86 | - */ | ||
87 | - newchannel->state = CHANNEL_OPEN_STATE; | ||
88 | } | ||
89 | } | ||
90 | |||
91 | diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig | ||
92 | index e989f7f..1e27838 100644 | ||
93 | --- a/drivers/hwmon/Kconfig | ||
94 | +++ b/drivers/hwmon/Kconfig | ||
95 | @@ -296,8 +296,8 @@ config SENSORS_K10TEMP | ||
96 | If you say yes here you get support for the temperature | ||
97 | sensor(s) inside your CPU. Supported are later revisions of | ||
98 | the AMD Family 10h and all revisions of the AMD Family 11h, | ||
99 | - 12h (Llano), 14h (Brazos) and 15h (Bulldozer/Trinity) | ||
100 | - microarchitectures. | ||
101 | + 12h (Llano), 14h (Brazos), 15h (Bulldozer/Trinity) and | ||
102 | + 16h (Kabini) microarchitectures. | ||
103 | |||
104 | This driver can also be built as a module. If so, the module | ||
105 | will be called k10temp. | ||
106 | diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c | ||
107 | index e3b037c..e633856 100644 | ||
108 | --- a/drivers/hwmon/k10temp.c | ||
109 | +++ b/drivers/hwmon/k10temp.c | ||
110 | @@ -1,5 +1,5 @@ | ||
111 | /* | ||
112 | - * k10temp.c - AMD Family 10h/11h/12h/14h/15h processor hardware monitoring | ||
113 | + * k10temp.c - AMD Family 10h/11h/12h/14h/15h/16h processor hardware monitoring | ||
114 | * | ||
115 | * Copyright (c) 2009 Clemens Ladisch <clemens@ladisch.de> | ||
116 | * | ||
117 | @@ -211,6 +211,7 @@ static DEFINE_PCI_DEVICE_TABLE(k10temp_id_table) = { | ||
118 | { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_CNB17H_F3) }, | ||
119 | { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) }, | ||
120 | { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) }, | ||
121 | + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) }, | ||
122 | {} | ||
123 | }; | ||
124 | MODULE_DEVICE_TABLE(pci, k10temp_id_table); | ||
125 | diff --git a/drivers/misc/hpilo.c b/drivers/misc/hpilo.c | ||
126 | index 621c7a3..b83e3ca 100644 | ||
127 | --- a/drivers/misc/hpilo.c | ||
128 | +++ b/drivers/misc/hpilo.c | ||
129 | @@ -759,7 +759,7 @@ static int ilo_probe(struct pci_dev *pdev, | ||
130 | |||
131 | /* Ignore subsystem_device = 0x1979 (set by BIOS) */ | ||
132 | if (pdev->subsystem_device == 0x1979) | ||
133 | - goto out; | ||
134 | + return 0; | ||
135 | |||
136 | if (max_ccb > MAX_CCB) | ||
137 | max_ccb = MAX_CCB; | ||
138 | @@ -899,7 +899,7 @@ static void __exit ilo_exit(void) | ||
139 | class_destroy(ilo_class); | ||
140 | } | ||
141 | |||
142 | -MODULE_VERSION("1.4"); | ||
143 | +MODULE_VERSION("1.4.1"); | ||
144 | MODULE_ALIAS(ILO_NAME); | ||
145 | MODULE_DESCRIPTION(ILO_NAME); | ||
146 | MODULE_AUTHOR("David Altobelli <david.altobelli@hp.com>"); | ||
147 | diff --git a/drivers/misc/mei/hw-me.c b/drivers/misc/mei/hw-me.c | ||
148 | index b22c7e2..3412adc 100644 | ||
149 | --- a/drivers/misc/mei/hw-me.c | ||
150 | +++ b/drivers/misc/mei/hw-me.c | ||
151 | @@ -176,21 +176,18 @@ static int mei_me_hw_reset(struct mei_device *dev, bool intr_enable) | ||
152 | struct mei_me_hw *hw = to_me_hw(dev); | ||
153 | u32 hcsr = mei_hcsr_read(hw); | ||
154 | |||
155 | - dev_dbg(&dev->pdev->dev, "before reset HCSR = 0x%08x.\n", hcsr); | ||
156 | - | ||
157 | - hcsr |= (H_RST | H_IG); | ||
158 | + hcsr |= H_RST | H_IG | H_IS; | ||
159 | |||
160 | if (intr_enable) | ||
161 | hcsr |= H_IE; | ||
162 | else | ||
163 | - hcsr |= ~H_IE; | ||
164 | + hcsr &= ~H_IE; | ||
165 | |||
166 | - mei_hcsr_set(hw, hcsr); | ||
167 | + mei_me_reg_write(hw, H_CSR, hcsr); | ||
168 | |||
169 | if (dev->dev_state == MEI_DEV_POWER_DOWN) | ||
170 | mei_me_hw_reset_release(dev); | ||
171 | |||
172 | - dev_dbg(&dev->pdev->dev, "current HCSR = 0x%08x.\n", mei_hcsr_read(hw)); | ||
173 | return 0; | ||
174 | } | ||
175 | |||
176 | diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c | ||
177 | index 1753431..108267d 100644 | ||
178 | --- a/drivers/net/wireless/mwifiex/main.c | ||
179 | +++ b/drivers/net/wireless/mwifiex/main.c | ||
180 | @@ -458,20 +458,6 @@ static void mwifiex_fw_dpc(const struct firmware *firmware, void *context) | ||
181 | dev_err(adapter->dev, "cannot create default STA interface\n"); | ||
182 | goto err_add_intf; | ||
183 | } | ||
184 | - | ||
185 | - /* Create AP interface by default */ | ||
186 | - if (!mwifiex_add_virtual_intf(adapter->wiphy, "uap%d", | ||
187 | - NL80211_IFTYPE_AP, NULL, NULL)) { | ||
188 | - dev_err(adapter->dev, "cannot create default AP interface\n"); | ||
189 | - goto err_add_intf; | ||
190 | - } | ||
191 | - | ||
192 | - /* Create P2P interface by default */ | ||
193 | - if (!mwifiex_add_virtual_intf(adapter->wiphy, "p2p%d", | ||
194 | - NL80211_IFTYPE_P2P_CLIENT, NULL, NULL)) { | ||
195 | - dev_err(adapter->dev, "cannot create default P2P interface\n"); | ||
196 | - goto err_add_intf; | ||
197 | - } | ||
198 | rtnl_unlock(); | ||
199 | |||
200 | mwifiex_drv_get_driver_version(adapter, fmt, sizeof(fmt) - 1); | ||
201 | diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c | ||
202 | index 9915cb9..9efe118 100644 | ||
203 | --- a/drivers/rtc/rtc-max77686.c | ||
204 | +++ b/drivers/rtc/rtc-max77686.c | ||
205 | @@ -240,9 +240,9 @@ static int max77686_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) | ||
206 | } | ||
207 | |||
208 | alrm->pending = 0; | ||
209 | - ret = regmap_read(info->max77686->regmap, MAX77686_REG_STATUS1, &val); | ||
210 | + ret = regmap_read(info->max77686->regmap, MAX77686_REG_STATUS2, &val); | ||
211 | if (ret < 0) { | ||
212 | - dev_err(info->dev, "%s:%d fail to read status1 reg(%d)\n", | ||
213 | + dev_err(info->dev, "%s:%d fail to read status2 reg(%d)\n", | ||
214 | __func__, __LINE__, ret); | ||
215 | goto out; | ||
216 | } | ||
217 | diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c | ||
218 | index 9854a1d..6bc205b 100644 | ||
219 | --- a/drivers/staging/imx-drm/imx-drm-core.c | ||
220 | +++ b/drivers/staging/imx-drm/imx-drm-core.c | ||
221 | @@ -678,6 +678,7 @@ found: | ||
222 | |||
223 | return i; | ||
224 | } | ||
225 | +EXPORT_SYMBOL_GPL(imx_drm_encoder_get_mux_id); | ||
226 | |||
227 | /* | ||
228 | * imx_drm_remove_encoder - remove an encoder | ||
229 | diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c | ||
230 | index f73da43..3a17930 100644 | ||
231 | --- a/drivers/target/iscsi/iscsi_target.c | ||
232 | +++ b/drivers/target/iscsi/iscsi_target.c | ||
233 | @@ -1086,7 +1086,6 @@ int iscsit_process_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, | ||
234 | if (cmd->reject_reason) | ||
235 | return 0; | ||
236 | |||
237 | - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd); | ||
238 | return 1; | ||
239 | } | ||
240 | /* | ||
241 | @@ -1124,14 +1123,10 @@ after_immediate_data: | ||
242 | */ | ||
243 | cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd, | ||
244 | (unsigned char *)hdr, hdr->cmdsn); | ||
245 | - if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER) { | ||
246 | + if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER) | ||
247 | return -1; | ||
248 | - } else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) { | ||
249 | - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd); | ||
250 | - return 0; | ||
251 | - } | ||
252 | |||
253 | - if (cmd->sense_reason) { | ||
254 | + if (cmd->sense_reason || cmdsn_ret == CMDSN_LOWER_THAN_EXP) { | ||
255 | int rc; | ||
256 | |||
257 | rc = iscsit_dump_data_payload(cmd->conn, | ||
258 | @@ -1527,6 +1522,10 @@ int iscsit_setup_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd, | ||
259 | if (hdr->itt == RESERVED_ITT && !(hdr->opcode & ISCSI_OP_IMMEDIATE)) { | ||
260 | pr_err("NOPOUT ITT is reserved, but Immediate Bit is" | ||
261 | " not set, protocol error.\n"); | ||
262 | + if (!cmd) | ||
263 | + return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR, | ||
264 | + (unsigned char *)hdr); | ||
265 | + | ||
266 | return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, | ||
267 | (unsigned char *)hdr); | ||
268 | } | ||
269 | @@ -1536,6 +1535,10 @@ int iscsit_setup_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd, | ||
270 | " greater than MaxXmitDataSegmentLength: %u, protocol" | ||
271 | " error.\n", payload_length, | ||
272 | conn->conn_ops->MaxXmitDataSegmentLength); | ||
273 | + if (!cmd) | ||
274 | + return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR, | ||
275 | + (unsigned char *)hdr); | ||
276 | + | ||
277 | return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, | ||
278 | (unsigned char *)hdr); | ||
279 | } | ||
280 | diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c | ||
281 | index 3402241..bc788c5 100644 | ||
282 | --- a/drivers/target/iscsi/iscsi_target_login.c | ||
283 | +++ b/drivers/target/iscsi/iscsi_target_login.c | ||
284 | @@ -1163,12 +1163,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np) | ||
285 | if (np->np_thread_state == ISCSI_NP_THREAD_RESET) { | ||
286 | spin_unlock_bh(&np->np_thread_lock); | ||
287 | complete(&np->np_restart_comp); | ||
288 | - if (ret == -ENODEV) { | ||
289 | - iscsit_put_transport(conn->conn_transport); | ||
290 | - kfree(conn); | ||
291 | - conn = NULL; | ||
292 | + iscsit_put_transport(conn->conn_transport); | ||
293 | + kfree(conn); | ||
294 | + conn = NULL; | ||
295 | + if (ret == -ENODEV) | ||
296 | goto out; | ||
297 | - } | ||
298 | /* Get another socket */ | ||
299 | return 1; | ||
300 | } | ||
301 | diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c | ||
302 | index 4cb667d..9fabbf7 100644 | ||
303 | --- a/drivers/target/target_core_spc.c | ||
304 | +++ b/drivers/target/target_core_spc.c | ||
305 | @@ -97,9 +97,12 @@ spc_emulate_inquiry_std(struct se_cmd *cmd, unsigned char *buf) | ||
306 | |||
307 | buf[7] = 0x2; /* CmdQue=1 */ | ||
308 | |||
309 | - snprintf(&buf[8], 8, "LIO-ORG"); | ||
310 | - snprintf(&buf[16], 16, "%s", dev->t10_wwn.model); | ||
311 | - snprintf(&buf[32], 4, "%s", dev->t10_wwn.revision); | ||
312 | + memcpy(&buf[8], "LIO-ORG ", 8); | ||
313 | + memset(&buf[16], 0x20, 16); | ||
314 | + memcpy(&buf[16], dev->t10_wwn.model, | ||
315 | + min_t(size_t, strlen(dev->t10_wwn.model), 16)); | ||
316 | + memcpy(&buf[32], dev->t10_wwn.revision, | ||
317 | + min_t(size_t, strlen(dev->t10_wwn.revision), 4)); | ||
318 | buf[4] = 31; /* Set additional length to 31 */ | ||
319 | |||
320 | return 0; | ||
321 | diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c | ||
322 | index 7172d00..d8e49d7 100644 | ||
323 | --- a/drivers/target/target_core_transport.c | ||
324 | +++ b/drivers/target/target_core_transport.c | ||
325 | @@ -2134,6 +2134,7 @@ static void transport_write_pending_qf(struct se_cmd *cmd) | ||
326 | |||
327 | int transport_generic_free_cmd(struct se_cmd *cmd, int wait_for_tasks) | ||
328 | { | ||
329 | + unsigned long flags; | ||
330 | int ret = 0; | ||
331 | |||
332 | if (!(cmd->se_cmd_flags & SCF_SE_LUN_CMD)) { | ||
333 | @@ -2144,6 +2145,16 @@ int transport_generic_free_cmd(struct se_cmd *cmd, int wait_for_tasks) | ||
334 | } else { | ||
335 | if (wait_for_tasks) | ||
336 | transport_wait_for_tasks(cmd); | ||
337 | + /* | ||
338 | + * Handle WRITE failure case where transport_generic_new_cmd() | ||
339 | + * has already added se_cmd to state_list, but fabric has | ||
340 | + * failed command before I/O submission. | ||
341 | + */ | ||
342 | + if (cmd->state_active) { | ||
343 | + spin_lock_irqsave(&cmd->t_state_lock, flags); | ||
344 | + target_remove_from_state_list(cmd); | ||
345 | + spin_unlock_irqrestore(&cmd->t_state_lock, flags); | ||
346 | + } | ||
347 | |||
348 | if (cmd->se_lun) | ||
349 | transport_lun_remove_cmd(cmd); | ||
350 | diff --git a/drivers/usb/gadget/f_acm.c b/drivers/usb/gadget/f_acm.c | ||
351 | index 4b7e33e..ab1065a 100644 | ||
352 | --- a/drivers/usb/gadget/f_acm.c | ||
353 | +++ b/drivers/usb/gadget/f_acm.c | ||
354 | @@ -285,6 +285,7 @@ static struct usb_string acm_string_defs[] = { | ||
355 | [ACM_CTRL_IDX].s = "CDC Abstract Control Model (ACM)", | ||
356 | [ACM_DATA_IDX].s = "CDC ACM Data", | ||
357 | [ACM_IAD_IDX ].s = "CDC Serial", | ||
358 | + { } /* end of list */ | ||
359 | }; | ||
360 | |||
361 | static struct usb_gadget_strings acm_string_table = { | ||
362 | diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig | ||
363 | index aa43854..805b83e 100644 | ||
364 | --- a/sound/soc/fsl/Kconfig | ||
365 | +++ b/sound/soc/fsl/Kconfig | ||
366 | @@ -109,11 +109,11 @@ config SND_SOC_IMX_SSI | ||
367 | tristate | ||
368 | |||
369 | config SND_SOC_IMX_PCM_FIQ | ||
370 | - bool | ||
371 | + tristate | ||
372 | select FIQ | ||
373 | |||
374 | config SND_SOC_IMX_PCM_DMA | ||
375 | - bool | ||
376 | + tristate | ||
377 | select SND_SOC_GENERIC_DMAENGINE_PCM | ||
378 | |||
379 | config SND_SOC_IMX_AUDMUX | ||
380 | diff --git a/sound/soc/fsl/imx-pcm.h b/sound/soc/fsl/imx-pcm.h | ||
381 | index 67f656c..0e3619e 100644 | ||
382 | --- a/sound/soc/fsl/imx-pcm.h | ||
383 | +++ b/sound/soc/fsl/imx-pcm.h | ||
384 | @@ -32,7 +32,7 @@ imx_pcm_dma_params_init_data(struct imx_dma_data *dma_data, | ||
385 | dma_data->peripheral_type = IMX_DMATYPE_SSI; | ||
386 | } | ||
387 | |||
388 | -#ifdef CONFIG_SND_SOC_IMX_PCM_DMA | ||
389 | +#if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_DMA) | ||
390 | int imx_pcm_dma_init(struct platform_device *pdev); | ||
391 | void imx_pcm_dma_exit(struct platform_device *pdev); | ||
392 | #else | ||
393 | @@ -46,7 +46,7 @@ static inline void imx_pcm_dma_exit(struct platform_device *pdev) | ||
394 | } | ||
395 | #endif | ||
396 | |||
397 | -#ifdef CONFIG_SND_SOC_IMX_PCM_FIQ | ||
398 | +#if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_FIQ) | ||
399 | int imx_pcm_fiq_init(struct platform_device *pdev); | ||
400 | void imx_pcm_fiq_exit(struct platform_device *pdev); | ||
401 | #else |