* [PATCH 3.12 01/62] ALSA: hda - Fix silent output on ASUS W7J laptop
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 02/62] ALSA: hda - Another fixup for ASUS laptop with ALC660 codec Greg Kroah-Hartman
` (63 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Takashi Iwai
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Takashi Iwai <tiwai@suse.de>
commit 6ddf0fd1c462a418a3cbb8b0653820dc48ffbd98 upstream.
The recent kernels got regressions on ASUS W7J with ALC660 codec where
no sound comes out. After a long debugging session, we found out that
setting the pin control on the unused NID 0x10 is mandatory for the
outputs. And, it was found out that another magic of NID 0x0f that is
required for other ASUS laptops isn't needed on this machine.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66081
Reported-and-tested-by: Andrey Lipaev <lipaev@mail.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_realtek.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4266,6 +4266,7 @@ enum {
ALC861_FIXUP_AMP_VREF_0F,
ALC861_FIXUP_NO_JACK_DETECT,
ALC861_FIXUP_ASUS_A6RP,
+ ALC660_FIXUP_ASUS_W7J,
};
/* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */
@@ -4315,10 +4316,21 @@ static const struct hda_fixup alc861_fix
.v.func = alc861_fixup_asus_amp_vref_0f,
.chained = true,
.chain_id = ALC861_FIXUP_NO_JACK_DETECT,
+ },
+ [ALC660_FIXUP_ASUS_W7J] = {
+ .type = HDA_FIXUP_VERBS,
+ .v.verbs = (const struct hda_verb[]) {
+ /* ASUS W7J needs a magic pin setup on unused NID 0x10
+ * for enabling outputs
+ */
+ {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24},
+ { }
+ },
}
};
static const struct snd_pci_quirk alc861_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x1043, 0x1253, "ASUS W7J", ALC660_FIXUP_ASUS_W7J),
SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP),
SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F),
SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT),
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 02/62] ALSA: hda - Another fixup for ASUS laptop with ALC660 codec
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 01/62] ALSA: hda - Fix silent output on ASUS W7J laptop Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 03/62] ALSA: hda - Use always amps for auto-mute on AD1986A codec Greg Kroah-Hartman
` (62 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Takashi Iwai
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Takashi Iwai <tiwai@suse.de>
commit e7ca237bfcf6a288702cb95e94ab94f642ccad88 upstream.
ASUS Z35HL laptop also needs the very same fix as the previous one
that was applied to ASUS W7J.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66231
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_realtek.c | 1 +
1 file changed, 1 insertion(+)
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4331,6 +4331,7 @@ static const struct hda_fixup alc861_fix
static const struct snd_pci_quirk alc861_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x1253, "ASUS W7J", ALC660_FIXUP_ASUS_W7J),
+ SND_PCI_QUIRK(0x1043, 0x1263, "ASUS Z35HL", ALC660_FIXUP_ASUS_W7J),
SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP),
SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F),
SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT),
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 03/62] ALSA: hda - Use always amps for auto-mute on AD1986A codec
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 01/62] ALSA: hda - Fix silent output on ASUS W7J laptop Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 02/62] ALSA: hda - Another fixup for ASUS laptop with ALC660 codec Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 04/62] ALSA: hda - Fix headset mic input after muted internal mic (Dell/Realtek) Greg Kroah-Hartman
` (61 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Takashi Iwai
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Takashi Iwai <tiwai@suse.de>
commit b3bd4fc3822a6b5883eaa556822487d87752d443 upstream.
It seems that AD1986A cannot manage the dynamic pin on/off for
auto-muting, but rather gets confused. Since each output has own amp,
let's use it instead.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_analog.c | 3 +++
1 file changed, 3 insertions(+)
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -345,6 +345,9 @@ static int patch_ad1986a(struct hda_code
*/
spec->gen.multiout.no_share_stream = 1;
+ /* AD1986A can't manage the dynamic pin on/off smoothly */
+ spec->gen.auto_mute_via_amp = 1;
+
snd_hda_pick_fixup(codec, ad1986a_fixup_models, ad1986a_fixup_tbl,
ad1986a_fixups);
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 04/62] ALSA: hda - Fix headset mic input after muted internal mic (Dell/Realtek)
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (2 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 03/62] ALSA: hda - Use always amps for auto-mute on AD1986A codec Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 05/62] ALSA: hda - Fix bad EAPD setup for HP machines with AD1984A Greg Kroah-Hartman
` (60 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, David Henningsson, Takashi Iwai
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Henningsson <david.henningsson@canonical.com>
commit d59915d0655c5864b514f21daaeac98c047875dc upstream.
By trial and error, I found this patch could work around an issue
where the headset mic would stop working if you switch between the
internal mic and the headset mic, and the internal mic was muted.
It still takes a second or two before the headset mic actually starts
working, but still better than nothing.
Information update from Kailang:
The verb was ADC digital mute(bit 6 default 1).
Switch internal mic and headset mic will run alc_headset_mode_default.
The coef index 0x11 will set to 0x0041.
Because headset mode was fixed type. It doesn't need to run
alc_determine_headset_type.
So, the value still keep 0x0041. ADC was muted.
BugLink: https://bugs.launchpad.net/bugs/1256840
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_realtek.c | 2 ++
1 file changed, 2 insertions(+)
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3231,6 +3231,7 @@ static void alc_headset_mode_ctia(struct
alc_write_coef_idx(codec, 0x18, 0x7388);
break;
case 0x10ec0668:
+ alc_write_coef_idx(codec, 0x11, 0x0001);
alc_write_coef_idx(codec, 0x15, 0x0d60);
alc_write_coef_idx(codec, 0xc3, 0x0000);
break;
@@ -3253,6 +3254,7 @@ static void alc_headset_mode_omtp(struct
alc_write_coef_idx(codec, 0x18, 0x7388);
break;
case 0x10ec0668:
+ alc_write_coef_idx(codec, 0x11, 0x0001);
alc_write_coef_idx(codec, 0x15, 0x0d50);
alc_write_coef_idx(codec, 0xc3, 0x0000);
break;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 05/62] ALSA: hda - Fix bad EAPD setup for HP machines with AD1984A
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (3 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 04/62] ALSA: hda - Fix headset mic input after muted internal mic (Dell/Realtek) Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 06/62] ALSA: hda - Fix silent output on MacBook Air 2,1 Greg Kroah-Hartman
` (59 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Takashi Iwai
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Takashi Iwai <tiwai@suse.de>
commit 1cd9b2f78bf29d5282e02b32f9b3ecebc5842a7c upstream.
It seems that EAPD on NID 0x16 is the only control over all outputs on
HP machines with AD1984A while turning EAPD on NID 0x12 breaks the
output. Thus we need to avoid fiddling EAPD on NID. As a quick
workaround, just set own_eapd_ctrl flag for the wrong EAPD, then
implement finer EAPD controls.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66321
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_analog.c | 1 +
1 file changed, 1 insertion(+)
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -964,6 +964,7 @@ static void ad1884_fixup_hp_eapd(struct
switch (action) {
case HDA_FIXUP_ACT_PRE_PROBE:
spec->gen.vmaster_mute.hook = ad1884_vmaster_hp_gpio_hook;
+ spec->gen.own_eapd_ctl = 1;
snd_hda_sequence_write_cache(codec, gpio_init_verbs);
break;
case HDA_FIXUP_ACT_PROBE:
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 06/62] ALSA: hda - Fix silent output on MacBook Air 2,1
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (4 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 05/62] ALSA: hda - Fix bad EAPD setup for HP machines with AD1984A Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 07/62] ALSA: hda - Add mono speaker quirk for Dell Inspiron 5439 Greg Kroah-Hartman
` (58 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Takashi Iwai
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Takashi Iwai <tiwai@suse.de>
commit 0756f09c4946fe2d9ce2ebcb6f2e3c58830d22a3 upstream.
MacBook Air 2,1 has a fairly different pin assignment from its brother
MBA 1,1, and yet another quirks are needed for pin 0x18 and 0x19,
similarly like what iMac 9,1 requires, in order to make the sound
working on it.
Reported-and-tested-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_realtek.c | 39 +++++++++++++++++++++++++++++++--------
1 file changed, 31 insertions(+), 8 deletions(-)
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1769,6 +1769,7 @@ enum {
ALC889_FIXUP_DAC_ROUTE,
ALC889_FIXUP_MBP_VREF,
ALC889_FIXUP_IMAC91_VREF,
+ ALC889_FIXUP_MBA21_VREF,
ALC882_FIXUP_INV_DMIC,
ALC882_FIXUP_NO_PRIMARY_HP,
ALC887_FIXUP_ASUS_BASS,
@@ -1872,17 +1873,13 @@ static void alc889_fixup_mbp_vref(struct
}
}
-/* Set VREF on speaker pins on imac91 */
-static void alc889_fixup_imac91_vref(struct hda_codec *codec,
- const struct hda_fixup *fix, int action)
+static void alc889_fixup_mac_pins(struct hda_codec *codec,
+ const hda_nid_t *nids, int num_nids)
{
struct alc_spec *spec = codec->spec;
- static hda_nid_t nids[2] = { 0x18, 0x1a };
int i;
- if (action != HDA_FIXUP_ACT_INIT)
- return;
- for (i = 0; i < ARRAY_SIZE(nids); i++) {
+ for (i = 0; i < num_nids; i++) {
unsigned int val;
val = snd_hda_codec_get_pin_target(codec, nids[i]);
val |= AC_PINCTL_VREF_50;
@@ -1891,6 +1888,26 @@ static void alc889_fixup_imac91_vref(str
spec->gen.keep_vref_in_automute = 1;
}
+/* Set VREF on speaker pins on imac91 */
+static void alc889_fixup_imac91_vref(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ static hda_nid_t nids[2] = { 0x18, 0x1a };
+
+ if (action == HDA_FIXUP_ACT_INIT)
+ alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
+}
+
+/* Set VREF on speaker pins on mba21 */
+static void alc889_fixup_mba21_vref(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ static hda_nid_t nids[2] = { 0x18, 0x19 };
+
+ if (action == HDA_FIXUP_ACT_INIT)
+ alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
+}
+
/* Don't take HP output as primary
* Strangely, the speaker output doesn't work on Vaio Z and some Vaio
* all-in-one desktop PCs (for example VGC-LN51JGB) through DAC 0x05
@@ -2087,6 +2104,12 @@ static const struct hda_fixup alc882_fix
.chained = true,
.chain_id = ALC882_FIXUP_GPIO1,
},
+ [ALC889_FIXUP_MBA21_VREF] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc889_fixup_mba21_vref,
+ .chained = true,
+ .chain_id = ALC889_FIXUP_MBP_VREF,
+ },
[ALC882_FIXUP_INV_DMIC] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc_fixup_inv_dmic_0x12,
@@ -2151,7 +2174,7 @@ static const struct snd_pci_quirk alc882
SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF),
SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD),
SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBP_VREF),
- SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBP_VREF),
+ SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF),
SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF),
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),
SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_FIXUP_MACPRO_GPIO),
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 07/62] ALSA: hda - Add mono speaker quirk for Dell Inspiron 5439
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (5 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 06/62] ALSA: hda - Fix silent output on MacBook Air 2,1 Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 08/62] crypto: s390 - Fix aes-xts parameter corruption Greg Kroah-Hartman
` (57 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, David Chen, David Henningsson,
Takashi Iwai
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Henningsson <david.henningsson@canonical.com>
commit eb82594b75b0cf54c667189e061934b7c49b5d42 upstream.
This machine also has mono output if run through DAC node 0x03.
BugLink: https://bugs.launchpad.net/bugs/1256212
Tested-by: David Chen <david.chen@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_realtek.c | 1 +
1 file changed, 1 insertion(+)
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4007,6 +4007,7 @@ static const struct snd_pci_quirk alc269
SND_PCI_QUIRK(0x1028, 0x0613, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1028, 0x0614, "Dell Inspiron 3135", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS),
+ SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS),
SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 08/62] crypto: s390 - Fix aes-xts parameter corruption
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (6 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 07/62] ALSA: hda - Add mono speaker quirk for Dell Inspiron 5439 Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 09/62] crypto: scatterwalk - Set the chain pointer indication bit Greg Kroah-Hartman
` (56 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Gerald Schaefer, Herbert Xu
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Gerald Schaefer <gerald.schaefer@de.ibm.com>
commit 9dda2769af4f3f3093434648c409bb351120d9e8 upstream.
Some s390 crypto algorithms incorrectly use the crypto_tfm structure to
store private data. As the tfm can be shared among multiple threads, this
can result in data corruption.
This patch fixes aes-xts by moving the xts and pcc parameter blocks from
the tfm onto the stack (48 + 96 bytes).
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/s390/crypto/aes_s390.c | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
--- a/arch/s390/crypto/aes_s390.c
+++ b/arch/s390/crypto/aes_s390.c
@@ -55,8 +55,7 @@ struct pcc_param {
struct s390_xts_ctx {
u8 key[32];
- u8 xts_param[16];
- struct pcc_param pcc;
+ u8 pcc_key[32];
long enc;
long dec;
int key_len;
@@ -591,7 +590,7 @@ static int xts_aes_set_key(struct crypto
xts_ctx->enc = KM_XTS_128_ENCRYPT;
xts_ctx->dec = KM_XTS_128_DECRYPT;
memcpy(xts_ctx->key + 16, in_key, 16);
- memcpy(xts_ctx->pcc.key + 16, in_key + 16, 16);
+ memcpy(xts_ctx->pcc_key + 16, in_key + 16, 16);
break;
case 48:
xts_ctx->enc = 0;
@@ -602,7 +601,7 @@ static int xts_aes_set_key(struct crypto
xts_ctx->enc = KM_XTS_256_ENCRYPT;
xts_ctx->dec = KM_XTS_256_DECRYPT;
memcpy(xts_ctx->key, in_key, 32);
- memcpy(xts_ctx->pcc.key, in_key + 32, 32);
+ memcpy(xts_ctx->pcc_key, in_key + 32, 32);
break;
default:
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
@@ -621,29 +620,33 @@ static int xts_aes_crypt(struct blkciphe
unsigned int nbytes = walk->nbytes;
unsigned int n;
u8 *in, *out;
- void *param;
+ struct pcc_param pcc_param;
+ struct {
+ u8 key[32];
+ u8 init[16];
+ } xts_param;
if (!nbytes)
goto out;
- memset(xts_ctx->pcc.block, 0, sizeof(xts_ctx->pcc.block));
- memset(xts_ctx->pcc.bit, 0, sizeof(xts_ctx->pcc.bit));
- memset(xts_ctx->pcc.xts, 0, sizeof(xts_ctx->pcc.xts));
- memcpy(xts_ctx->pcc.tweak, walk->iv, sizeof(xts_ctx->pcc.tweak));
- param = xts_ctx->pcc.key + offset;
- ret = crypt_s390_pcc(func, param);
+ memset(pcc_param.block, 0, sizeof(pcc_param.block));
+ memset(pcc_param.bit, 0, sizeof(pcc_param.bit));
+ memset(pcc_param.xts, 0, sizeof(pcc_param.xts));
+ memcpy(pcc_param.tweak, walk->iv, sizeof(pcc_param.tweak));
+ memcpy(pcc_param.key, xts_ctx->pcc_key, 32);
+ ret = crypt_s390_pcc(func, &pcc_param.key[offset]);
if (ret < 0)
return -EIO;
- memcpy(xts_ctx->xts_param, xts_ctx->pcc.xts, 16);
- param = xts_ctx->key + offset;
+ memcpy(xts_param.key, xts_ctx->key, 32);
+ memcpy(xts_param.init, pcc_param.xts, 16);
do {
/* only use complete blocks */
n = nbytes & ~(AES_BLOCK_SIZE - 1);
out = walk->dst.virt.addr;
in = walk->src.virt.addr;
- ret = crypt_s390_km(func, param, out, in, n);
+ ret = crypt_s390_km(func, &xts_param.key[offset], out, in, n);
if (ret < 0 || ret != n)
return -EIO;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 09/62] crypto: scatterwalk - Set the chain pointer indication bit
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (7 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 08/62] crypto: s390 - Fix aes-xts parameter corruption Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 10/62] crypto: ccm - Fix handling of zero plaintext when computing mac Greg Kroah-Hartman
` (55 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Tom Lendacky, Herbert Xu
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tom Lendacky <thomas.lendacky@amd.com>
commit 41da8b5adba77e22584f8b45f9641504fa885308 upstream.
The scatterwalk_crypto_chain function invokes the scatterwalk_sg_chain
function to chain two scatterlists, but the chain pointer indication
bit is not set. When the resulting scatterlist is used, for example,
by sg_nents to count the number of scatterlist entries, a segfault occurs
because sg_nents does not follow the chain pointer to the chained scatterlist.
Update scatterwalk_sg_chain to set the chain pointer indication bit as is
done by the sg_chain function.
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/crypto/scatterwalk.h | 1 +
1 file changed, 1 insertion(+)
--- a/include/crypto/scatterwalk.h
+++ b/include/crypto/scatterwalk.h
@@ -36,6 +36,7 @@ static inline void scatterwalk_sg_chain(
{
sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0);
sg1[num - 1].page_link &= ~0x02;
+ sg1[num - 1].page_link |= 0x01;
}
static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg)
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 10/62] crypto: ccm - Fix handling of zero plaintext when computing mac
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (8 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 09/62] crypto: scatterwalk - Set the chain pointer indication bit Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 11/62] crypto: authenc - Find proper IV address in ablkcipher callback Greg Kroah-Hartman
` (54 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Jussi Kivilinna, Horia Geanta,
Herbert Xu
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Horia Geanta <horia.geanta@freescale.com>
commit 5638cabf3e4883f38dfb246c30980cebf694fbda upstream.
There are cases when cryptlen can be zero in crypto_ccm_auth():
-encryptiom: input scatterlist length is zero (no plaintext)
-decryption: input scatterlist contains only the mac
plus the condition of having different source and destination buffers
(or else scatterlist length = max(plaintext_len, ciphertext_len)).
These are not handled correctly, leading to crashes like:
root@p4080ds:~/crypto# insmod tcrypt.ko mode=45
------------[ cut here ]------------
kernel BUG at crypto/scatterwalk.c:37!
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=8 P4080 DS
Modules linked in: tcrypt(+) crc32c xts xcbc vmac pcbc ecb gcm ghash_generic gf128mul ccm ctr seqiv
CPU: 3 PID: 1082 Comm: cryptomgr_test Not tainted 3.11.0 #14
task: ee12c5b0 ti: eecd0000 task.ti: eecd0000
NIP: c0204d98 LR: f9225848 CTR: c0204d80
REGS: eecd1b70 TRAP: 0700 Not tainted (3.11.0)
MSR: 00029002 <CE,EE,ME> CR: 22044022 XER: 20000000
GPR00: f9225c94 eecd1c20 ee12c5b0 eecd1c28 ee879400 ee879400 00000000 ee607464
GPR08: 00000001 00000001 00000000 006b0000 c0204d80 00000000 00000002 c0698e20
GPR16: ee987000 ee895000 fffffff4 ee879500 00000100 eecd1d58 00000001 00000000
GPR24: ee879400 00000020 00000000 00000000 ee5b2800 ee607430 00000004 ee607460
NIP [c0204d98] scatterwalk_start+0x18/0x30
LR [f9225848] get_data_to_compute+0x28/0x2f0 [ccm]
Call Trace:
[eecd1c20] [f9225974] get_data_to_compute+0x154/0x2f0 [ccm] (unreliable)
[eecd1c70] [f9225c94] crypto_ccm_auth+0x184/0x1d0 [ccm]
[eecd1cb0] [f9225d40] crypto_ccm_encrypt+0x60/0x2d0 [ccm]
[eecd1cf0] [c020d77c] __test_aead+0x3ec/0xe20
[eecd1e20] [c020f35c] test_aead+0x6c/0xe0
[eecd1e40] [c020f420] alg_test_aead+0x50/0xd0
[eecd1e60] [c020e5e4] alg_test+0x114/0x2e0
[eecd1ee0] [c020bd1c] cryptomgr_test+0x4c/0x60
[eecd1ef0] [c0047058] kthread+0xa8/0xb0
[eecd1f40] [c000eb0c] ret_from_kernel_thread+0x5c/0x64
Instruction dump:
0f080000 81290024 552807fe 0f080000 5529003a 4bffffb4 90830000 39400000
39000001 8124000c 2f890000 7d28579e <0f090000> 81240008 91230004 4e800020
---[ end trace 6d652dfcd1be37bd ]---
Cc: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
crypto/ccm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/crypto/ccm.c
+++ b/crypto/ccm.c
@@ -271,7 +271,8 @@ static int crypto_ccm_auth(struct aead_r
}
/* compute plaintext into mac */
- get_data_to_compute(cipher, pctx, plain, cryptlen);
+ if (cryptlen)
+ get_data_to_compute(cipher, pctx, plain, cryptlen);
out:
return err;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 11/62] crypto: authenc - Find proper IV address in ablkcipher callback
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (9 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 10/62] crypto: ccm - Fix handling of zero plaintext when computing mac Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 12/62] ARM: fix booting low-vectors machines Greg Kroah-Hartman
` (53 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Tom Lendacky, Herbert Xu
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tom Lendacky <thomas.lendacky@amd.com>
commit fc019c7122dfcd69c50142b57a735539aec5da95 upstream.
When performing an asynchronous ablkcipher operation the authenc
completion callback routine is invoked, but it does not locate and use
the proper IV.
The callback routine, crypto_authenc_encrypt_done, is updated to use
the same method of calculating the address of the IV as is done in
crypto_authenc_encrypt function which sets up the callback.
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
crypto/authenc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- a/crypto/authenc.c
+++ b/crypto/authenc.c
@@ -368,9 +368,10 @@ static void crypto_authenc_encrypt_done(
if (!err) {
struct crypto_aead *authenc = crypto_aead_reqtfm(areq);
struct crypto_authenc_ctx *ctx = crypto_aead_ctx(authenc);
- struct ablkcipher_request *abreq = aead_request_ctx(areq);
- u8 *iv = (u8 *)(abreq + 1) +
- crypto_ablkcipher_reqsize(ctx->enc);
+ struct authenc_request_ctx *areq_ctx = aead_request_ctx(areq);
+ struct ablkcipher_request *abreq = (void *)(areq_ctx->tail
+ + ctx->reqoff);
+ u8 *iv = (u8 *)abreq - crypto_ablkcipher_ivsize(ctx->enc);
err = crypto_authenc_genicv(areq, iv, 0);
}
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 12/62] ARM: fix booting low-vectors machines
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (10 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 11/62] crypto: authenc - Find proper IV address in ablkcipher callback Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 13/62] ARM: footbridge: fix VGA initialisation Greg Kroah-Hartman
` (52 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Russell King
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Russell King <rmk+kernel@arm.linux.org.uk>
commit d8aa712c30148ba26fd89a5dc14de95d4c375184 upstream.
Commit f6f91b0d9fd9 (ARM: allow kuser helpers to be removed from the
vector page) required two pages for the vectors code. Although the
code setting up the initial page tables was updated, the code which
allocates page tables for new processes wasn't, neither was the code
which tears down the mappings. Fix this.
Fixes: f6f91b0d9fd9 ("ARM: allow kuser helpers to be removed from the vector page")
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/include/asm/pgtable.h | 2 +-
arch/arm/mm/mmap.c | 2 +-
arch/arm/mm/pgd.c | 3 ++-
3 files changed, 4 insertions(+), 3 deletions(-)
--- a/arch/arm/include/asm/pgtable.h
+++ b/arch/arm/include/asm/pgtable.h
@@ -61,7 +61,7 @@ extern void __pgd_error(const char *file
* mapping to be mapped at. This is particularly important for
* non-high vector CPUs.
*/
-#define FIRST_USER_ADDRESS PAGE_SIZE
+#define FIRST_USER_ADDRESS (PAGE_SIZE * 2)
/*
* Use TASK_SIZE as the ceiling argument for free_pgtables() and
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -146,7 +146,7 @@ arch_get_unmapped_area_topdown(struct fi
info.flags = VM_UNMAPPED_AREA_TOPDOWN;
info.length = len;
- info.low_limit = PAGE_SIZE;
+ info.low_limit = FIRST_USER_ADDRESS;
info.high_limit = mm->mmap_base;
info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
info.align_offset = pgoff << PAGE_SHIFT;
--- a/arch/arm/mm/pgd.c
+++ b/arch/arm/mm/pgd.c
@@ -87,7 +87,8 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
init_pud = pud_offset(init_pgd, 0);
init_pmd = pmd_offset(init_pud, 0);
init_pte = pte_offset_map(init_pmd, 0);
- set_pte_ext(new_pte, *init_pte, 0);
+ set_pte_ext(new_pte + 0, init_pte[0], 0);
+ set_pte_ext(new_pte + 1, init_pte[1], 0);
pte_unmap(init_pte);
pte_unmap(new_pte);
}
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 13/62] ARM: footbridge: fix VGA initialisation
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (11 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 12/62] ARM: fix booting low-vectors machines Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 14/62] ARM: footbridge: fix EBSA285 LEDs Greg Kroah-Hartman
` (51 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Russell King
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Russell King <rmk+kernel@arm.linux.org.uk>
commit 43659222e7a0113912ed02f6b2231550b3e471ac upstream.
It's no good setting vga_base after the VGA console has been
initialised, because if we do that we get this:
Unable to handle kernel paging request at virtual address 000b8000
pgd = c0004000
[000b8000] *pgd=07ffc831, *pte=00000000, *ppte=00000000
0Internal error: Oops: 5017 [#1] ARM
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.0+ #49
task: c03e2974 ti: c03d8000 task.ti: c03d8000
PC is at vgacon_startup+0x258/0x39c
LR is at request_resource+0x10/0x1c
pc : [<c01725d0>] lr : [<c0022b50>] psr: 60000053
sp : c03d9f68 ip : 000b8000 fp : c03d9f8c
r10: 000055aa r9 : 4401a103 r8 : ffffaa55
r7 : c03e357c r6 : c051b460 r5 : 000000ff r4 : 000c0000
r3 : 000b8000 r2 : c03e0514 r1 : 00000000 r0 : c0304971
Flags: nZCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment kernel
which is an access to the 0xb8000 without the PCI offset required to
make it work.
Fixes: cc22b4c18540 ("ARM: set vga memory base at run-time")
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/mach-footbridge/common.c | 3 +++
arch/arm/mach-footbridge/dc21285.c | 2 --
2 files changed, 3 insertions(+), 2 deletions(-)
--- a/arch/arm/mach-footbridge/common.c
+++ b/arch/arm/mach-footbridge/common.c
@@ -15,6 +15,7 @@
#include <linux/init.h>
#include <linux/io.h>
#include <linux/spinlock.h>
+#include <video/vga.h>
#include <asm/pgtable.h>
#include <asm/page.h>
@@ -196,6 +197,8 @@ void __init footbridge_map_io(void)
iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc));
pci_map_io_early(__phys_to_pfn(DC21285_PCI_IO));
}
+
+ vga_base = PCIMEM_BASE;
}
void footbridge_restart(enum reboot_mode mode, const char *cmd)
--- a/arch/arm/mach-footbridge/dc21285.c
+++ b/arch/arm/mach-footbridge/dc21285.c
@@ -18,7 +18,6 @@
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/spinlock.h>
-#include <video/vga.h>
#include <asm/irq.h>
#include <asm/mach/pci.h>
@@ -291,7 +290,6 @@ void __init dc21285_preinit(void)
int cfn_mode;
pcibios_min_mem = 0x81000000;
- vga_base = PCIMEM_BASE;
mem_size = (unsigned int)high_memory - PAGE_OFFSET;
for (mem_mask = 0x00100000; mem_mask < 0x10000000; mem_mask <<= 1)
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 14/62] ARM: footbridge: fix EBSA285 LEDs
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (12 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 13/62] ARM: footbridge: fix VGA initialisation Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 15/62] ARM: multi_v7_defconfig: enable SDHCI_BCM_KONA and MMC_BLOCK_MINORS=16 Greg Kroah-Hartman
` (50 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Russell King
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Russell King <rmk+kernel@arm.linux.org.uk>
commit 67130c5464f50428aea0b4526a6729d61f9a1d53 upstream.
- The LEDs register is write-only: it can't be read-modify-written.
- The LEDs are write-1-for-off not 0.
- The check for the platform was inverted.
Fixes: cf6856d693dd ("ARM: mach-footbridge: retire custom LED code")
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/mach-footbridge/ebsa285.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
--- a/arch/arm/mach-footbridge/ebsa285.c
+++ b/arch/arm/mach-footbridge/ebsa285.c
@@ -30,21 +30,24 @@ static const struct {
const char *name;
const char *trigger;
} ebsa285_leds[] = {
- { "ebsa285:amber", "heartbeat", },
- { "ebsa285:green", "cpu0", },
+ { "ebsa285:amber", "cpu0", },
+ { "ebsa285:green", "heartbeat", },
{ "ebsa285:red",},
};
+static unsigned char hw_led_state;
+
static void ebsa285_led_set(struct led_classdev *cdev,
enum led_brightness b)
{
struct ebsa285_led *led = container_of(cdev,
struct ebsa285_led, cdev);
- if (b != LED_OFF)
- *XBUS_LEDS |= led->mask;
+ if (b == LED_OFF)
+ hw_led_state |= led->mask;
else
- *XBUS_LEDS &= ~led->mask;
+ hw_led_state &= ~led->mask;
+ *XBUS_LEDS = hw_led_state;
}
static enum led_brightness ebsa285_led_get(struct led_classdev *cdev)
@@ -52,18 +55,19 @@ static enum led_brightness ebsa285_led_g
struct ebsa285_led *led = container_of(cdev,
struct ebsa285_led, cdev);
- return (*XBUS_LEDS & led->mask) ? LED_FULL : LED_OFF;
+ return hw_led_state & led->mask ? LED_OFF : LED_FULL;
}
static int __init ebsa285_leds_init(void)
{
int i;
- if (machine_is_ebsa285())
+ if (!machine_is_ebsa285())
return -ENODEV;
- /* 3 LEDS All ON */
- *XBUS_LEDS |= XBUS_LED_AMBER | XBUS_LED_GREEN | XBUS_LED_RED;
+ /* 3 LEDS all off */
+ hw_led_state = XBUS_LED_AMBER | XBUS_LED_GREEN | XBUS_LED_RED;
+ *XBUS_LEDS = hw_led_state;
for (i = 0; i < ARRAY_SIZE(ebsa285_leds); i++) {
struct ebsa285_led *led;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 15/62] ARM: multi_v7_defconfig: enable SDHCI_BCM_KONA and MMC_BLOCK_MINORS=16
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (13 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 14/62] ARM: footbridge: fix EBSA285 LEDs Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 16/62] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx Greg Kroah-Hartman
` (49 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Olof Johansson
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Olof Johansson <olof@lixom.net>
commit f39918eec72c841037f16475867dac1a2b0bfc01 upstream.
Enable MMC/SD on the Broadcom mobile platforms, and increase the block
minors from the default 8 to 16 (since the Broadcom board by default
has root on the 8th partition).
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/configs/multi_v7_defconfig | 2 ++
1 file changed, 2 insertions(+)
--- a/arch/arm/configs/multi_v7_defconfig
+++ b/arch/arm/configs/multi_v7_defconfig
@@ -132,12 +132,14 @@ CONFIG_USB_GPIO_VBUS=y
CONFIG_USB_ISP1301=y
CONFIG_USB_MXS_PHY=y
CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=16
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_ESDHC_IMX=y
CONFIG_MMC_SDHCI_TEGRA=y
CONFIG_MMC_SDHCI_SPEAR=y
+CONFIG_MMC_SDHCI_BCM_KONA=y
CONFIG_MMC_OMAP=y
CONFIG_MMC_OMAP_HS=y
CONFIG_EDAC=y
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 16/62] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (14 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 15/62] ARM: multi_v7_defconfig: enable SDHCI_BCM_KONA and MMC_BLOCK_MINORS=16 Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 17/62] ARM: OMAPFB: panel-sony-acx565akm: fix bad unlock balance Greg Kroah-Hartman
` (48 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Balaji T K, Tony Lindgren
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Balaji T K <balajitk@ti.com>
commit 2ba2866f782f7f1c38abc3dd56d3295efd289264 upstream.
pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core
and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core.
Fix the following error message:
pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38)
pinctrl-single 4a31e040.pinmux: could not add functions for pinmux_wl12xx_pins 56x
SDIO card is not detected after moving pin mux to omap4_pmx_core since
sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card.
This fixes a regression where WLAN did not work after a warm reset
or after one up/down cycle that happened when we move omap4 to boot
using device tree only. For reference, the kernel bug is described at:
https://bugzilla.kernel.org/show_bug.cgi?id=63821
Signed-off-by: Balaji T K <balajitk@ti.com>
[tony@atomide.com: update comments to describe the regression]
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/boot/dts/omap4-panda-common.dtsi | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -239,15 +239,6 @@
0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
>;
};
-};
-
-&omap4_pmx_wkup {
- led_wkgpio_pins: pinmux_leds_wkpins {
- pinctrl-single,pins = <
- 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
- 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
- >;
- };
/*
* wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
@@ -267,7 +258,7 @@
pinctrl-single,pins = <
0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */
0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
- 0x108 (PIN_OUTPUT | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
+ 0x108 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
@@ -276,6 +267,15 @@
>;
};
};
+
+&omap4_pmx_wkup {
+ led_wkgpio_pins: pinmux_leds_wkpins {
+ pinctrl-single,pins = <
+ 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
+ 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
+ >;
+ };
+};
&i2c1 {
pinctrl-names = "default";
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 17/62] ARM: OMAPFB: panel-sony-acx565akm: fix bad unlock balance
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (15 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 16/62] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 18/62] ARM: at91: sama5d3: reduce TWI internal clock frequency Greg Kroah-Hartman
` (47 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Eduardo Valentin, Aaro Koskinen,
Tomi Valkeinen
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Aaro Koskinen <aaro.koskinen@iki.fi>
commit c37dd677988ca50bc8bc60ab5ab053720583c168 upstream.
When booting Nokia N900 smartphone with v3.12 + omap2plus_defconfig
(LOCKDEP enabled) and CONFIG_DISPLAY_PANEL_SONY_ACX565AKM enabled,
the following BUG is seen during the boot:
[ 7.302154] =====================================
[ 7.307128] [ BUG: bad unlock balance detected! ]
[ 7.312103] 3.12.0-los.git-2093492-00120-g5e01dc7 #3 Not tainted
[ 7.318450] -------------------------------------
[ 7.323425] kworker/u2:1/12 is trying to release lock (&ddata->mutex) at:
[ 7.330657] [<c031b760>] acx565akm_enable+0x12c/0x18c
[ 7.335998] but there are no more locks to release!
Fix by removing double unlock and handling the locking completely inside
acx565akm_panel_power_on() when doing the power on.
Reported-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/video/omap2/displays-new/panel-sony-acx565akm.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--- a/drivers/video/omap2/displays-new/panel-sony-acx565akm.c
+++ b/drivers/video/omap2/displays-new/panel-sony-acx565akm.c
@@ -526,6 +526,8 @@ static int acx565akm_panel_power_on(stru
struct omap_dss_device *in = ddata->in;
int r;
+ mutex_lock(&ddata->mutex);
+
dev_dbg(&ddata->spi->dev, "%s\n", __func__);
in->ops.sdi->set_timings(in, &ddata->videomode);
@@ -614,10 +616,7 @@ static int acx565akm_enable(struct omap_
if (omapdss_device_is_enabled(dssdev))
return 0;
- mutex_lock(&ddata->mutex);
r = acx565akm_panel_power_on(dssdev);
- mutex_unlock(&ddata->mutex);
-
if (r)
return r;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 18/62] ARM: at91: sama5d3: reduce TWI internal clock frequency
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (16 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 17/62] ARM: OMAPFB: panel-sony-acx565akm: fix bad unlock balance Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 19/62] ARM: mvebu: second PCIe unit of Armada XP mv78230 is only x1 capable Greg Kroah-Hartman
` (46 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Ludovic Desroches, Wolfram Sang,
Jean-Christophe PLAGNIOL-VILLARD, Nicolas Ferre
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ludovic Desroches <ludovic.desroches@atmel.com>
commit 58e7b1d5826ac6a64b1101d8a70162bc084a7d1e upstream.
With some devices, transfer hangs during I2C frame transmission. This issue
disappears when reducing the internal frequency of the TWI IP. Even if it is
indicated that internal clock max frequency is 66MHz, it seems we have
oversampling on I2C signals making TWI believe that a transfer in progress
is done.
This fix has no impact on the I2C bus frequency.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Acked-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/mach-at91/sama5d3.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/arch/arm/mach-at91/sama5d3.c
+++ b/arch/arm/mach-at91/sama5d3.c
@@ -95,19 +95,19 @@ static struct clk twi0_clk = {
.name = "twi0_clk",
.pid = SAMA5D3_ID_TWI0,
.type = CLK_TYPE_PERIPHERAL,
- .div = AT91_PMC_PCR_DIV2,
+ .div = AT91_PMC_PCR_DIV8,
};
static struct clk twi1_clk = {
.name = "twi1_clk",
.pid = SAMA5D3_ID_TWI1,
.type = CLK_TYPE_PERIPHERAL,
- .div = AT91_PMC_PCR_DIV2,
+ .div = AT91_PMC_PCR_DIV8,
};
static struct clk twi2_clk = {
.name = "twi2_clk",
.pid = SAMA5D3_ID_TWI2,
.type = CLK_TYPE_PERIPHERAL,
- .div = AT91_PMC_PCR_DIV2,
+ .div = AT91_PMC_PCR_DIV8,
};
static struct clk mmc0_clk = {
.name = "mci0_clk",
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 19/62] ARM: mvebu: second PCIe unit of Armada XP mv78230 is only x1 capable
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (17 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 18/62] ARM: at91: sama5d3: reduce TWI internal clock frequency Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 20/62] ARM: mvebu: fix second and third PCIe unit of Armada XP mv78260 Greg Kroah-Hartman
` (45 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Arnaud Ebalard, Thomas Petazzoni,
Jason Cooper
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Arnaud Ebalard <arno@natisbad.org>
commit 12b69a599745fc9e203f61fbb7160b2cc5f479dd upstream.
Various Marvell datasheets advertise second PCIe unit of mv78230
flavour of Armada XP as x4/quad x1 capable. This second unit is in
fact only x1 capable. This patch fixes current mv78230 .dtsi to
reflect that, i.e. makes 1.0 the second interface (instead of 2.0
at the moment). This was successfully tested on a mv78230-based
ReadyNAS 2120 platform with a x1 device (FL1009 XHCI controller)
connected to this second interface.
Signed-off-by: Arnaud Ebalard <arno@natisbad.org>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/boot/dts/armada-xp-mv78230.dtsi | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
--- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
@@ -47,7 +47,7 @@
/*
* MV78230 has 2 PCIe units Gen2.0: One unit can be
* configured as x4 or quad x1 lanes. One unit is
- * x4/x1.
+ * x1 only.
*/
pcie-controller {
compatible = "marvell,armada-xp-pcie";
@@ -61,10 +61,10 @@
ranges =
<0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */
- 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */
0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */
0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */
0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */
+ 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */
0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */
0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
@@ -73,8 +73,8 @@
0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */
0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */
- 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
- 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */>;
+ 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
+ 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */>;
pcie@1,0 {
device_type = "pci";
@@ -144,20 +144,20 @@
status = "disabled";
};
- pcie@9,0 {
+ pcie@5,0 {
device_type = "pci";
- assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
- reg = <0x4800 0 0 0 0>;
+ assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
+ reg = <0x2800 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
- ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
- 0x81000000 0 0 0x81000000 0x9 0 1 0>;
+ ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
+ 0x81000000 0 0 0x81000000 0x5 0 1 0>;
interrupt-map-mask = <0 0 0 0>;
- interrupt-map = <0 0 0 0 &mpic 99>;
- marvell,pcie-port = <2>;
+ interrupt-map = <0 0 0 0 &mpic 62>;
+ marvell,pcie-port = <1>;
marvell,pcie-lane = <0>;
- clocks = <&gateclk 26>;
+ clocks = <&gateclk 9>;
status = "disabled";
};
};
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 20/62] ARM: mvebu: fix second and third PCIe unit of Armada XP mv78260
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (18 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 19/62] ARM: mvebu: second PCIe unit of Armada XP mv78230 is only x1 capable Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 21/62] ARM: mvebu: use the virtual CPU registers to access coherency registers Greg Kroah-Hartman
` (44 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Arnaud Ebalard, Thomas Petazzoni,
Jason Cooper
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Arnaud Ebalard <arno@natisbad.org>
commit 2163e61c92d9337e721a0d067d88ae62b52e0d3e upstream.
mv78260 flavour of Marvell Armada XP SoC has 3 PCIe units. The
two first units are both x4 and quad x1 capable. The third unit
is only x4 capable. This patch fixes mv78260 .dtsi to reflect
those capabilities.
Signed-off-by: Arnaud Ebalard <arno@natisbad.org>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/boot/dts/armada-xp-mv78260.dtsi | 109 ++++++++++++++++++++++++-------
1 file changed, 85 insertions(+), 24 deletions(-)
--- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
@@ -48,7 +48,7 @@
/*
* MV78260 has 3 PCIe units Gen2.0: Two units can be
* configured as x4 or quad x1 lanes. One unit is
- * x4/x1.
+ * x4 only.
*/
pcie-controller {
compatible = "marvell,armada-xp-pcie";
@@ -67,7 +67,9 @@
0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */
0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */
0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */
- 0x82000000 0 0x82000 MBUS_ID(0xf0, 0x01) 0x82000 0 0x00002000 /* Port 3.0 registers */
+ 0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000 /* Port 1.1 registers */
+ 0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000 /* Port 1.2 registers */
+ 0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000 /* Port 1.3 registers */
0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */
0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
@@ -76,10 +78,18 @@
0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */
0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */
- 0x82000000 0x9 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
- 0x81000000 0x9 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */
- 0x82000000 0xa 0 MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */
- 0x81000000 0xa 0 MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO */>;
+
+ 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
+ 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */
+ 0x82000000 0x6 0 MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */
+ 0x81000000 0x6 0 MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO */
+ 0x82000000 0x7 0 MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */
+ 0x81000000 0x7 0 MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO */
+ 0x82000000 0x8 0 MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */
+ 0x81000000 0x8 0 MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO */
+
+ 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
+ 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */>;
pcie@1,0 {
device_type = "pci";
@@ -105,8 +115,8 @@
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
- ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
- 0x81000000 0 0 0x81000000 0x2 0 1 0>;
+ ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
+ 0x81000000 0 0 0x81000000 0x2 0 1 0>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &mpic 59>;
marvell,pcie-port = <0>;
@@ -149,37 +159,88 @@
status = "disabled";
};
- pcie@9,0 {
+ pcie@5,0 {
device_type = "pci";
- assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
- reg = <0x4800 0 0 0 0>;
+ assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
+ reg = <0x2800 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
- ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
- 0x81000000 0 0 0x81000000 0x9 0 1 0>;
+ ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
+ 0x81000000 0 0 0x81000000 0x5 0 1 0>;
interrupt-map-mask = <0 0 0 0>;
- interrupt-map = <0 0 0 0 &mpic 99>;
- marvell,pcie-port = <2>;
+ interrupt-map = <0 0 0 0 &mpic 62>;
+ marvell,pcie-port = <1>;
marvell,pcie-lane = <0>;
- clocks = <&gateclk 26>;
+ clocks = <&gateclk 9>;
status = "disabled";
};
- pcie@10,0 {
+ pcie@6,0 {
device_type = "pci";
- assigned-addresses = <0x82000800 0 0x82000 0 0x2000>;
- reg = <0x5000 0 0 0 0>;
+ assigned-addresses = <0x82000800 0 0x84000 0 0x2000>;
+ reg = <0x3000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
- ranges = <0x82000000 0 0 0x82000000 0xa 0 1 0
- 0x81000000 0 0 0x81000000 0xa 0 1 0>;
+ ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
+ 0x81000000 0 0 0x81000000 0x6 0 1 0>;
interrupt-map-mask = <0 0 0 0>;
- interrupt-map = <0 0 0 0 &mpic 103>;
- marvell,pcie-port = <3>;
+ interrupt-map = <0 0 0 0 &mpic 63>;
+ marvell,pcie-port = <1>;
+ marvell,pcie-lane = <1>;
+ clocks = <&gateclk 10>;
+ status = "disabled";
+ };
+
+ pcie@7,0 {
+ device_type = "pci";
+ assigned-addresses = <0x82000800 0 0x88000 0 0x2000>;
+ reg = <0x3800 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ #interrupt-cells = <1>;
+ ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
+ 0x81000000 0 0 0x81000000 0x7 0 1 0>;
+ interrupt-map-mask = <0 0 0 0>;
+ interrupt-map = <0 0 0 0 &mpic 64>;
+ marvell,pcie-port = <1>;
+ marvell,pcie-lane = <2>;
+ clocks = <&gateclk 11>;
+ status = "disabled";
+ };
+
+ pcie@8,0 {
+ device_type = "pci";
+ assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>;
+ reg = <0x4000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ #interrupt-cells = <1>;
+ ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
+ 0x81000000 0 0 0x81000000 0x8 0 1 0>;
+ interrupt-map-mask = <0 0 0 0>;
+ interrupt-map = <0 0 0 0 &mpic 65>;
+ marvell,pcie-port = <1>;
+ marvell,pcie-lane = <3>;
+ clocks = <&gateclk 12>;
+ status = "disabled";
+ };
+
+ pcie@9,0 {
+ device_type = "pci";
+ assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
+ reg = <0x4800 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ #interrupt-cells = <1>;
+ ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
+ 0x81000000 0 0 0x81000000 0x9 0 1 0>;
+ interrupt-map-mask = <0 0 0 0>;
+ interrupt-map = <0 0 0 0 &mpic 99>;
+ marvell,pcie-port = <2>;
marvell,pcie-lane = <0>;
- clocks = <&gateclk 27>;
+ clocks = <&gateclk 26>;
status = "disabled";
};
};
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 21/62] ARM: mvebu: use the virtual CPU registers to access coherency registers
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (19 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 20/62] ARM: mvebu: fix second and third PCIe unit of Armada XP mv78260 Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 22/62] ARM: mvebu: re-enable PCIe on Armada 370 DB Greg Kroah-Hartman
` (43 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Gregory CLEMENT, Thomas Petazzoni,
Jason Cooper
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
commit b6dda00cddcc71d2030668bc0cc0fed758c411c2 upstream.
The Armada XP provides a mechanism called "virtual CPU registers" or
"per-CPU register banking", to access the per-CPU registers of the
current CPU, without having to worry about finding on which CPU we're
running. CPU0 has its registers at 0x21800, CPU1 at 0x21900, CPU2 at
0x21A00 and CPU3 at 0x21B00. The virtual registers accessing the
current CPU registers are at 0x21000.
However, in the Device Tree node that provides the register addresses
for the coherency unit (which is responsible for ensuring coherency
between processors, and I/O coherency between processors and the
DMA-capable devices), a mistake was made: the CPU0-specific registers
were specified instead of the virtual CPU registers. This means that
the coherency barrier needed for I/O coherency was not behaving
properly when executed from a CPU different from CPU0. This patch
fixes that by using the virtual CPU registers.
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fixes: e60304f8cb7bb5 "arm: mvebu: Add hardware I/O Coherency support"
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/boot/dts/armada-370-xp.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
@@ -117,7 +117,7 @@
coherency-fabric@20200 {
compatible = "marvell,coherency-fabric";
- reg = <0x20200 0xb0>, <0x21810 0x1c>;
+ reg = <0x20200 0xb0>, <0x21010 0x1c>;
};
serial@12000 {
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 22/62] ARM: mvebu: re-enable PCIe on Armada 370 DB
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (20 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 21/62] ARM: mvebu: use the virtual CPU registers to access coherency registers Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 23/62] ASoC: wm8990: Mark the register map as dirty when powering down Greg Kroah-Hartman
` (42 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Thomas Petazzoni, Jason Cooper
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
commit 96039f735e290281d0c8a08fc467de2cd610543d upstream.
Commit 14fd8ed0a7fd19913 ("ARM: mvebu: Relocate Armada 370/XP PCIe
device tree nodes") relocated the PCIe controller DT nodes one level
up in the Device Tree, to reflect a more correct representation of the
hardware introduced by the mvebu-mbus Device Tree binding.
However, while most of the boards were properly adjusted accordingly,
the Armada 370 DB board was left unchanged, and therefore, PCIe is
seen as not enabled on this board. This patch fixes that by moving the
PCIe controller node one level-up in armada-370-db.dts.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fixes: 14fd8ed0a7fd19913 "ARM: mvebu: Relocate Armada 370/XP PCIe device tree nodes"
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/boot/dts/armada-370-db.dts | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
--- a/arch/arm/boot/dts/armada-370-db.dts
+++ b/arch/arm/boot/dts/armada-370-db.dts
@@ -99,22 +99,22 @@
spi-max-frequency = <50000000>;
};
};
+ };
- pcie-controller {
+ pcie-controller {
+ status = "okay";
+ /*
+ * The two PCIe units are accessible through
+ * both standard PCIe slots and mini-PCIe
+ * slots on the board.
+ */
+ pcie@1,0 {
+ /* Port 0, Lane 0 */
+ status = "okay";
+ };
+ pcie@2,0 {
+ /* Port 1, Lane 0 */
status = "okay";
- /*
- * The two PCIe units are accessible through
- * both standard PCIe slots and mini-PCIe
- * slots on the board.
- */
- pcie@1,0 {
- /* Port 0, Lane 0 */
- status = "okay";
- };
- pcie@2,0 {
- /* Port 1, Lane 0 */
- status = "okay";
- };
};
};
};
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 23/62] ASoC: wm8990: Mark the register map as dirty when powering down
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (21 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 22/62] ARM: mvebu: re-enable PCIe on Armada 370 DB Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 24/62] ASoC: dapm: Use SND_SOC_DAPM_INIT_REG_VAL in SND_SOC_DAPM_MUX Greg Kroah-Hartman
` (41 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Mark Brown, Charles Keepax
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Mark Brown <broonie@linaro.org>
commit 2ab2b74277a86afe0dd92976db695a2bb8b93366 upstream.
Otherwise we'll skip sync on resume.
Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/soc/codecs/wm8990.c | 2 ++
1 file changed, 2 insertions(+)
--- a/sound/soc/codecs/wm8990.c
+++ b/sound/soc/codecs/wm8990.c
@@ -1259,6 +1259,8 @@ static int wm8990_set_bias_level(struct
/* disable POBCTRL, SOFT_ST and BUFDCOPEN */
snd_soc_write(codec, WM8990_ANTIPOP2, 0x0);
+
+ codec->cache_sync = 1;
break;
}
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 24/62] ASoC: dapm: Use SND_SOC_DAPM_INIT_REG_VAL in SND_SOC_DAPM_MUX
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (22 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 23/62] ASoC: wm8990: Mark the register map as dirty when powering down Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 25/62] ASoC: wm8731: fix dsp mode configuration Greg Kroah-Hartman
` (40 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Stephen Warren, Mark Brown
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Stephen Warren <swarren@nvidia.com>
commit faf6615bf05bc5cecc6e22013b9cb21c77784fd1 upstream.
SND_SOC_DAPM_MUX() doesn't currently initialize the .mask field. This
results in the mux never affecting HW, since no bits are ever set or
cleared. Fix SND_SOC_DAPM_MUX() to use SND_SOC_DAPM_INIT_REG_VAL() to
set up the reg, shift, on_val, and off_val fields like almost all other
SND_SOC_xxx() macros. It looks like this was a "typo" in the fixed
commit linked below.
This makes the speakers on the Toshiba AC100 (PAZ00) laptop work again.
Fixes: de9ba98b6d26 ("ASoC: dapm: Make widget power register settings more flexible")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/sound/soc-dapm.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -104,7 +104,8 @@ struct device;
SND_SOC_DAPM_INIT_REG_VAL(wreg, wshift, winvert), \
.kcontrol_news = wcontrols, .num_kcontrols = 1}
#define SND_SOC_DAPM_MUX(wname, wreg, wshift, winvert, wcontrols) \
-{ .id = snd_soc_dapm_mux, .name = wname, .reg = wreg, \
+{ .id = snd_soc_dapm_mux, .name = wname, \
+ SND_SOC_DAPM_INIT_REG_VAL(wreg, wshift, winvert), \
.kcontrol_news = wcontrols, .num_kcontrols = 1}
#define SND_SOC_DAPM_VIRT_MUX(wname, wreg, wshift, winvert, wcontrols) \
{ .id = snd_soc_dapm_virt_mux, .name = wname, \
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 25/62] ASoC: wm8731: fix dsp mode configuration
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (23 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 24/62] ASoC: dapm: Use SND_SOC_DAPM_INIT_REG_VAL in SND_SOC_DAPM_MUX Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 26/62] vfs: fix subtle use-after-free of pipe_inode_info Greg Kroah-Hartman
` (39 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Bo Shen, Charles Keepax, Mark Brown
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Bo Shen <voice.shen@atmel.com>
commit b4af6ef99a60c5b56df137d7accd81ba1ee1254e upstream.
According to WM8731 "PD, Rev 4.9 October 2012" datasheet, when it
works in DSP mode A, LRP = 1, while works in DSP mode B, LRP = 0.
So, fix LRP for DSP mode as the datesheet specification.
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/soc/codecs/wm8731.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/sound/soc/codecs/wm8731.c
+++ b/sound/soc/codecs/wm8731.c
@@ -447,10 +447,10 @@ static int wm8731_set_dai_fmt(struct snd
iface |= 0x0001;
break;
case SND_SOC_DAIFMT_DSP_A:
- iface |= 0x0003;
+ iface |= 0x0013;
break;
case SND_SOC_DAIFMT_DSP_B:
- iface |= 0x0013;
+ iface |= 0x0003;
break;
default:
return -EINVAL;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 26/62] vfs: fix subtle use-after-free of pipe_inode_info
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (24 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 25/62] ASoC: wm8731: fix dsp mode configuration Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 27/62] can: sja1000: fix {pre,post}_irq() handling and IRQ handler return value Greg Kroah-Hartman
` (38 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Simon Kirby, Ian Applegate, Al Viro,
Linus Torvalds
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Linus Torvalds <torvalds@linux-foundation.org>
commit b0d8d2292160bb63de1972361ebed100c64b5b37 upstream.
The pipe code was trying (and failing) to be very careful about freeing
the pipe info only after the last access, with a pattern like:
spin_lock(&inode->i_lock);
if (!--pipe->files) {
inode->i_pipe = NULL;
kill = 1;
}
spin_unlock(&inode->i_lock);
__pipe_unlock(pipe);
if (kill)
free_pipe_info(pipe);
where the final freeing is done last.
HOWEVER. The above is actually broken, because while the freeing is
done at the end, if we have two racing processes releasing the pipe
inode info, the one that *doesn't* free it will decrement the ->files
count, and unlock the inode i_lock, but then still use the
"pipe_inode_info" afterwards when it does the "__pipe_unlock(pipe)".
This is *very* hard to trigger in practice, since the race window is
very small, and adding debug options seems to just hide it by slowing
things down.
Simon originally reported this way back in July as an Oops in
kmem_cache_allocate due to a single bit corruption (due to the final
"spin_unlock(pipe->mutex.wait_lock)" incrementing a field in a different
allocation that had re-used the free'd pipe-info), it's taken this long
to figure out.
Since the 'pipe->files' accesses aren't even protected by the pipe lock
(we very much use the inode lock for that), the simple solution is to
just drop the pipe lock early. And since there were two users of this
pattern, create a helper function for it.
Introduced commit ba5bb147330a ("pipe: take allocation and freeing of
pipe_inode_info out of ->i_mutex").
Reported-by: Simon Kirby <sim@hostway.ca>
Reported-by: Ian Applegate <ia@cloudflare.com>
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/pipe.c | 39 +++++++++++++++++++--------------------
1 file changed, 19 insertions(+), 20 deletions(-)
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -726,11 +726,25 @@ pipe_poll(struct file *filp, poll_table
return mask;
}
+static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
+{
+ int kill = 0;
+
+ spin_lock(&inode->i_lock);
+ if (!--pipe->files) {
+ inode->i_pipe = NULL;
+ kill = 1;
+ }
+ spin_unlock(&inode->i_lock);
+
+ if (kill)
+ free_pipe_info(pipe);
+}
+
static int
pipe_release(struct inode *inode, struct file *file)
{
- struct pipe_inode_info *pipe = inode->i_pipe;
- int kill = 0;
+ struct pipe_inode_info *pipe = file->private_data;
__pipe_lock(pipe);
if (file->f_mode & FMODE_READ)
@@ -743,17 +757,9 @@ pipe_release(struct inode *inode, struct
kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
}
- spin_lock(&inode->i_lock);
- if (!--pipe->files) {
- inode->i_pipe = NULL;
- kill = 1;
- }
- spin_unlock(&inode->i_lock);
__pipe_unlock(pipe);
- if (kill)
- free_pipe_info(pipe);
-
+ put_pipe_info(inode, pipe);
return 0;
}
@@ -1014,7 +1020,6 @@ static int fifo_open(struct inode *inode
{
struct pipe_inode_info *pipe;
bool is_pipe = inode->i_sb->s_magic == PIPEFS_MAGIC;
- int kill = 0;
int ret;
filp->f_version = 0;
@@ -1130,15 +1135,9 @@ err_wr:
goto err;
err:
- spin_lock(&inode->i_lock);
- if (!--pipe->files) {
- inode->i_pipe = NULL;
- kill = 1;
- }
- spin_unlock(&inode->i_lock);
__pipe_unlock(pipe);
- if (kill)
- free_pipe_info(pipe);
+
+ put_pipe_info(inode, pipe);
return ret;
}
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 27/62] can: sja1000: fix {pre,post}_irq() handling and IRQ handler return value
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (25 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 26/62] vfs: fix subtle use-after-free of pipe_inode_info Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:00 ` [PATCH 3.12 28/62] can: flexcan: use correct clock as base for bit rate calculation Greg Kroah-Hartman
` (37 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Wolfgang Grandegger, Oliver Hartkopp,
Marc Kleine-Budde
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Oliver Hartkopp <socketcan@hartkopp.net>
commit 2fea6cd303c0d0cd9067da31d873b6a6d5bd75e7 upstream.
This patch fixes the issue that the sja1000_interrupt() function may have
returned IRQ_NONE without processing the optional pre_irq() and post_irq()
function before. Further the irq processing counter 'n' is moved to the end of
the while statement to return correct IRQ_[NONE|HANDLED] values at error
conditions.
Reported-by: Wolfgang Grandegger <wg@grandegger.com>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/can/sja1000/sja1000.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
--- a/drivers/net/can/sja1000/sja1000.c
+++ b/drivers/net/can/sja1000/sja1000.c
@@ -494,20 +494,20 @@ irqreturn_t sja1000_interrupt(int irq, v
uint8_t isrc, status;
int n = 0;
- /* Shared interrupts and IRQ off? */
- if (priv->read_reg(priv, SJA1000_IER) == IRQ_OFF)
- return IRQ_NONE;
-
if (priv->pre_irq)
priv->pre_irq(priv);
+ /* Shared interrupts and IRQ off? */
+ if (priv->read_reg(priv, SJA1000_IER) == IRQ_OFF)
+ goto out;
+
while ((isrc = priv->read_reg(priv, SJA1000_IR)) &&
(n < SJA1000_MAX_IRQ)) {
- n++;
+
status = priv->read_reg(priv, SJA1000_SR);
/* check for absent controller due to hw unplug */
if (status == 0xFF && sja1000_is_absent(priv))
- return IRQ_NONE;
+ goto out;
if (isrc & IRQ_WUI)
netdev_warn(dev, "wakeup interrupt\n");
@@ -535,7 +535,7 @@ irqreturn_t sja1000_interrupt(int irq, v
status = priv->read_reg(priv, SJA1000_SR);
/* check for absent controller */
if (status == 0xFF && sja1000_is_absent(priv))
- return IRQ_NONE;
+ goto out;
}
}
if (isrc & (IRQ_DOI | IRQ_EI | IRQ_BEI | IRQ_EPI | IRQ_ALI)) {
@@ -543,8 +543,9 @@ irqreturn_t sja1000_interrupt(int irq, v
if (sja1000_err(dev, isrc, status))
break;
}
+ n++;
}
-
+out:
if (priv->post_irq)
priv->post_irq(priv);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 28/62] can: flexcan: use correct clock as base for bit rate calculation
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (26 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 27/62] can: sja1000: fix {pre,post}_irq() handling and IRQ handler return value Greg Kroah-Hartman
@ 2013-12-10 8:00 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 29/62] can: c_can: dont call pm_runtime_get_sync() from interrupt context Greg Kroah-Hartman
` (36 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:00 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Marc Kleine-Budde
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Marc Kleine-Budde <mkl@pengutronix.de>
commit 1a3e5173f5e72cbf7f0c8927b33082e361c16d72 upstream.
The flexcan IP core uses the peripheral clock ("per") as basic clock for the
bit timing calculation. However the driver uses the the wrong clock ("ipg").
This leads to wrong bit rates if the rates on both clock are different.
This patch fixes the problem by using the correct clock for the bit rate
calculation.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/can/flexcan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -1020,13 +1020,13 @@ static int flexcan_probe(struct platform
dev_err(&pdev->dev, "no ipg clock defined\n");
return PTR_ERR(clk_ipg);
}
- clock_freq = clk_get_rate(clk_ipg);
clk_per = devm_clk_get(&pdev->dev, "per");
if (IS_ERR(clk_per)) {
dev_err(&pdev->dev, "no per clock defined\n");
return PTR_ERR(clk_per);
}
+ clock_freq = clk_get_rate(clk_per);
}
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 29/62] can: c_can: dont call pm_runtime_get_sync() from interrupt context
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (27 preceding siblings ...)
2013-12-10 8:00 ` [PATCH 3.12 28/62] can: flexcan: use correct clock as base for bit rate calculation Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 30/62] efivars, efi-pstore: Hold off deletion of sysfs entry until the scan is completed Greg Kroah-Hartman
` (35 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Andrew Glen, Marc Kleine-Budde
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Marc Kleine-Budde <mkl@pengutronix.de>
commit e35d46adc49b469fd92bdb64fea8af93640e6651 upstream.
The c_can driver contians a callpath (c_can_poll -> c_can_state_change ->
c_can_get_berr_counter) which may call pm_runtime_get_sync() from the IRQ
handler, which is not allowed and results in "BUG: scheduling while atomic".
This problem is fixed by introducing __c_can_get_berr_counter, which will not
call pm_runtime_get_sync().
Reported-by: Andrew Glen <AGlen@bepmarine.com>
Tested-by: Andrew Glen <AGlen@bepmarine.com>
Signed-off-by: Andrew Glen <AGlen@bepmarine.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/can/c_can/c_can.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
--- a/drivers/net/can/c_can/c_can.c
+++ b/drivers/net/can/c_can/c_can.c
@@ -712,22 +712,31 @@ static int c_can_set_mode(struct net_dev
return 0;
}
-static int c_can_get_berr_counter(const struct net_device *dev,
- struct can_berr_counter *bec)
+static int __c_can_get_berr_counter(const struct net_device *dev,
+ struct can_berr_counter *bec)
{
unsigned int reg_err_counter;
struct c_can_priv *priv = netdev_priv(dev);
- c_can_pm_runtime_get_sync(priv);
-
reg_err_counter = priv->read_reg(priv, C_CAN_ERR_CNT_REG);
bec->rxerr = (reg_err_counter & ERR_CNT_REC_MASK) >>
ERR_CNT_REC_SHIFT;
bec->txerr = reg_err_counter & ERR_CNT_TEC_MASK;
+ return 0;
+}
+
+static int c_can_get_berr_counter(const struct net_device *dev,
+ struct can_berr_counter *bec)
+{
+ struct c_can_priv *priv = netdev_priv(dev);
+ int err;
+
+ c_can_pm_runtime_get_sync(priv);
+ err = __c_can_get_berr_counter(dev, bec);
c_can_pm_runtime_put_sync(priv);
- return 0;
+ return err;
}
/*
@@ -872,7 +881,7 @@ static int c_can_handle_state_change(str
if (unlikely(!skb))
return 0;
- c_can_get_berr_counter(dev, &bec);
+ __c_can_get_berr_counter(dev, &bec);
reg_err_counter = priv->read_reg(priv, C_CAN_ERR_CNT_REG);
rx_err_passive = (reg_err_counter & ERR_CNT_RP_MASK) >>
ERR_CNT_RP_SHIFT;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 30/62] efivars, efi-pstore: Hold off deletion of sysfs entry until the scan is completed
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (28 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 29/62] can: c_can: dont call pm_runtime_get_sync() from interrupt context Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 31/62] efi-pstore: Make efi-pstore return a unique id Greg Kroah-Hartman
` (34 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Seiji Aguchi, Madper Xie,
Matt Fleming
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Seiji Aguchi <seiji.aguchi@hds.com>
commit e0d59733f6b1796b8d6692642c87d7dd862c3e3a upstream.
Currently, when mounting pstore file system, a read callback of
efi_pstore driver runs mutiple times as below.
- In the first read callback, scan efivar_sysfs_list from head and pass
a kmsg buffer of a entry to an upper pstore layer.
- In the second read callback, rescan efivar_sysfs_list from the entry
and pass another kmsg buffer to it.
- Repeat the scan and pass until the end of efivar_sysfs_list.
In this process, an entry is read across the multiple read function
calls. To avoid race between the read and erasion, the whole process
above is protected by a spinlock, holding in open() and releasing in
close().
At the same time, kmemdup() is called to pass the buffer to pstore
filesystem during it. And then, it causes a following lockdep warning.
To make the dynamic memory allocation runnable without taking spinlock,
holding off a deletion of sysfs entry if it happens while scanning it
via efi_pstore, and deleting it after the scan is completed.
To implement it, this patch introduces two flags, scanning and deleting,
to efivar_entry.
On the code basis, it seems that all the scanning and deleting logic is
not needed because __efivars->lock are not dropped when reading from the
EFI variable store.
But, the scanning and deleting logic is still needed because an
efi-pstore and a pstore filesystem works as follows.
In case an entry(A) is found, the pointer is saved to psi->data. And
efi_pstore_read() passes the entry(A) to a pstore filesystem by
releasing __efivars->lock.
And then, the pstore filesystem calls efi_pstore_read() again and the
same entry(A), which is saved to psi->data, is used for resuming to scan
a sysfs-list.
So, to protect the entry(A), the logic is needed.
[ 1.143710] ------------[ cut here ]------------
[ 1.144058] WARNING: CPU: 1 PID: 1 at kernel/lockdep.c:2740 lockdep_trace_alloc+0x104/0x110()
[ 1.144058] DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
[ 1.144058] Modules linked in:
[ 1.144058] CPU: 1 PID: 1 Comm: systemd Not tainted 3.11.0-rc5 #2
[ 1.144058] 0000000000000009 ffff8800797e9ae0 ffffffff816614a5 ffff8800797e9b28
[ 1.144058] ffff8800797e9b18 ffffffff8105510d 0000000000000080 0000000000000046
[ 1.144058] 00000000000000d0 00000000000003af ffffffff81ccd0c0 ffff8800797e9b78
[ 1.144058] Call Trace:
[ 1.144058] [<ffffffff816614a5>] dump_stack+0x54/0x74
[ 1.144058] [<ffffffff8105510d>] warn_slowpath_common+0x7d/0xa0
[ 1.144058] [<ffffffff8105517c>] warn_slowpath_fmt+0x4c/0x50
[ 1.144058] [<ffffffff8131290f>] ? vsscanf+0x57f/0x7b0
[ 1.144058] [<ffffffff810bbd74>] lockdep_trace_alloc+0x104/0x110
[ 1.144058] [<ffffffff81192da0>] __kmalloc_track_caller+0x50/0x280
[ 1.144058] [<ffffffff815147bb>] ? efi_pstore_read_func.part.1+0x12b/0x170
[ 1.144058] [<ffffffff8115b260>] kmemdup+0x20/0x50
[ 1.144058] [<ffffffff815147bb>] efi_pstore_read_func.part.1+0x12b/0x170
[ 1.144058] [<ffffffff81514800>] ? efi_pstore_read_func.part.1+0x170/0x170
[ 1.144058] [<ffffffff815148b4>] efi_pstore_read_func+0xb4/0xe0
[ 1.144058] [<ffffffff81512b7b>] __efivar_entry_iter+0xfb/0x120
[ 1.144058] [<ffffffff8151428f>] efi_pstore_read+0x3f/0x50
[ 1.144058] [<ffffffff8128d7ba>] pstore_get_records+0x9a/0x150
[ 1.158207] [<ffffffff812af25c>] ? selinux_d_instantiate+0x1c/0x20
[ 1.158207] [<ffffffff8128ce30>] ? parse_options+0x80/0x80
[ 1.158207] [<ffffffff8128ced5>] pstore_fill_super+0xa5/0xc0
[ 1.158207] [<ffffffff811ae7d2>] mount_single+0xa2/0xd0
[ 1.158207] [<ffffffff8128ccf8>] pstore_mount+0x18/0x20
[ 1.158207] [<ffffffff811ae8b9>] mount_fs+0x39/0x1b0
[ 1.158207] [<ffffffff81160550>] ? __alloc_percpu+0x10/0x20
[ 1.158207] [<ffffffff811c9493>] vfs_kern_mount+0x63/0xf0
[ 1.158207] [<ffffffff811cbb0e>] do_mount+0x23e/0xa20
[ 1.158207] [<ffffffff8115b51b>] ? strndup_user+0x4b/0xf0
[ 1.158207] [<ffffffff811cc373>] SyS_mount+0x83/0xc0
[ 1.158207] [<ffffffff81673cc2>] system_call_fastpath+0x16/0x1b
[ 1.158207] ---[ end trace 61981bc62de9f6f4 ]---
Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Tested-by: Madper Xie <cxie@redhat.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/firmware/efi/efi-pstore.c | 143 +++++++++++++++++++++++++++++++++++---
drivers/firmware/efi/efivars.c | 12 ++-
drivers/firmware/efi/vars.c | 12 ++-
include/linux/efi.h | 4 +
4 files changed, 155 insertions(+), 16 deletions(-)
--- a/drivers/firmware/efi/efi-pstore.c
+++ b/drivers/firmware/efi/efi-pstore.c
@@ -18,14 +18,12 @@ module_param_named(pstore_disable, efiva
static int efi_pstore_open(struct pstore_info *psi)
{
- efivar_entry_iter_begin();
psi->data = NULL;
return 0;
}
static int efi_pstore_close(struct pstore_info *psi)
{
- efivar_entry_iter_end();
psi->data = NULL;
return 0;
}
@@ -91,19 +89,125 @@ static int efi_pstore_read_func(struct e
__efivar_entry_get(entry, &entry->var.Attributes,
&entry->var.DataSize, entry->var.Data);
size = entry->var.DataSize;
+ memcpy(*cb_data->buf, entry->var.Data,
+ (size_t)min_t(unsigned long, EFIVARS_DATA_SIZE_MAX, size));
- *cb_data->buf = kmemdup(entry->var.Data, size, GFP_KERNEL);
- if (*cb_data->buf == NULL)
- return -ENOMEM;
return size;
}
+/**
+ * efi_pstore_scan_sysfs_enter
+ * @entry: scanning entry
+ * @next: next entry
+ * @head: list head
+ */
+static void efi_pstore_scan_sysfs_enter(struct efivar_entry *pos,
+ struct efivar_entry *next,
+ struct list_head *head)
+{
+ pos->scanning = true;
+ if (&next->list != head)
+ next->scanning = true;
+}
+
+/**
+ * __efi_pstore_scan_sysfs_exit
+ * @entry: deleting entry
+ * @turn_off_scanning: Check if a scanning flag should be turned off
+ */
+static inline void __efi_pstore_scan_sysfs_exit(struct efivar_entry *entry,
+ bool turn_off_scanning)
+{
+ if (entry->deleting) {
+ list_del(&entry->list);
+ efivar_entry_iter_end();
+ efivar_unregister(entry);
+ efivar_entry_iter_begin();
+ } else if (turn_off_scanning)
+ entry->scanning = false;
+}
+
+/**
+ * efi_pstore_scan_sysfs_exit
+ * @pos: scanning entry
+ * @next: next entry
+ * @head: list head
+ * @stop: a flag checking if scanning will stop
+ */
+static void efi_pstore_scan_sysfs_exit(struct efivar_entry *pos,
+ struct efivar_entry *next,
+ struct list_head *head, bool stop)
+{
+ __efi_pstore_scan_sysfs_exit(pos, true);
+ if (stop)
+ __efi_pstore_scan_sysfs_exit(next, &next->list != head);
+}
+
+/**
+ * efi_pstore_sysfs_entry_iter
+ *
+ * @data: function-specific data to pass to callback
+ * @pos: entry to begin iterating from
+ *
+ * You MUST call efivar_enter_iter_begin() before this function, and
+ * efivar_entry_iter_end() afterwards.
+ *
+ * It is possible to begin iteration from an arbitrary entry within
+ * the list by passing @pos. @pos is updated on return to point to
+ * the next entry of the last one passed to efi_pstore_read_func().
+ * To begin iterating from the beginning of the list @pos must be %NULL.
+ */
+static int efi_pstore_sysfs_entry_iter(void *data, struct efivar_entry **pos)
+{
+ struct efivar_entry *entry, *n;
+ struct list_head *head = &efivar_sysfs_list;
+ int size = 0;
+
+ if (!*pos) {
+ list_for_each_entry_safe(entry, n, head, list) {
+ efi_pstore_scan_sysfs_enter(entry, n, head);
+
+ size = efi_pstore_read_func(entry, data);
+ efi_pstore_scan_sysfs_exit(entry, n, head, size < 0);
+ if (size)
+ break;
+ }
+ *pos = n;
+ return size;
+ }
+
+ list_for_each_entry_safe_from((*pos), n, head, list) {
+ efi_pstore_scan_sysfs_enter((*pos), n, head);
+
+ size = efi_pstore_read_func((*pos), data);
+ efi_pstore_scan_sysfs_exit((*pos), n, head, size < 0);
+ if (size)
+ break;
+ }
+ *pos = n;
+ return size;
+}
+
+/**
+ * efi_pstore_read
+ *
+ * This function returns a size of NVRAM entry logged via efi_pstore_write().
+ * The meaning and behavior of efi_pstore/pstore are as below.
+ *
+ * size > 0: Got data of an entry logged via efi_pstore_write() successfully,
+ * and pstore filesystem will continue reading subsequent entries.
+ * size == 0: Entry was not logged via efi_pstore_write(),
+ * and efi_pstore driver will continue reading subsequent entries.
+ * size < 0: Failed to get data of entry logging via efi_pstore_write(),
+ * and pstore will stop reading entry.
+ */
static ssize_t efi_pstore_read(u64 *id, enum pstore_type_id *type,
int *count, struct timespec *timespec,
char **buf, bool *compressed,
struct pstore_info *psi)
{
struct pstore_read_data data;
+ ssize_t size;
data.id = id;
data.type = type;
@@ -112,8 +216,17 @@ static ssize_t efi_pstore_read(u64 *id,
data.compressed = compressed;
data.buf = buf;
- return __efivar_entry_iter(efi_pstore_read_func, &efivar_sysfs_list, &data,
- (struct efivar_entry **)&psi->data);
+ *data.buf = kzalloc(EFIVARS_DATA_SIZE_MAX, GFP_KERNEL);
+ if (!*data.buf)
+ return -ENOMEM;
+
+ efivar_entry_iter_begin();
+ size = efi_pstore_sysfs_entry_iter(&data,
+ (struct efivar_entry **)&psi->data);
+ efivar_entry_iter_end();
+ if (size <= 0)
+ kfree(*data.buf);
+ return size;
}
static int efi_pstore_write(enum pstore_type_id type,
@@ -184,9 +297,17 @@ static int efi_pstore_erase_func(struct
return 0;
}
+ if (entry->scanning) {
+ /*
+ * Skip deletion because this entry will be deleted
+ * after scanning is completed.
+ */
+ entry->deleting = true;
+ } else
+ list_del(&entry->list);
+
/* found */
__efivar_entry_delete(entry);
- list_del(&entry->list);
return 1;
}
@@ -214,10 +335,12 @@ static int efi_pstore_erase(enum pstore_
efivar_entry_iter_begin();
found = __efivar_entry_iter(efi_pstore_erase_func, &efivar_sysfs_list, &edata, &entry);
- efivar_entry_iter_end();
- if (found)
+ if (found && !entry->scanning) {
+ efivar_entry_iter_end();
efivar_unregister(entry);
+ } else
+ efivar_entry_iter_end();
return 0;
}
--- a/drivers/firmware/efi/efivars.c
+++ b/drivers/firmware/efi/efivars.c
@@ -383,12 +383,16 @@ static ssize_t efivar_delete(struct file
else if (__efivar_entry_delete(entry))
err = -EIO;
- efivar_entry_iter_end();
-
- if (err)
+ if (err) {
+ efivar_entry_iter_end();
return err;
+ }
- efivar_unregister(entry);
+ if (!entry->scanning) {
+ efivar_entry_iter_end();
+ efivar_unregister(entry);
+ } else
+ efivar_entry_iter_end();
/* It's dead Jim.... */
return count;
--- a/drivers/firmware/efi/vars.c
+++ b/drivers/firmware/efi/vars.c
@@ -683,8 +683,16 @@ struct efivar_entry *efivar_entry_find(e
if (!found)
return NULL;
- if (remove)
- list_del(&entry->list);
+ if (remove) {
+ if (entry->scanning) {
+ /*
+ * The entry will be deleted
+ * after scanning is completed.
+ */
+ entry->deleting = true;
+ } else
+ list_del(&entry->list);
+ }
return entry;
}
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -782,6 +782,8 @@ struct efivar_entry {
struct efi_variable var;
struct list_head list;
struct kobject kobj;
+ bool scanning;
+ bool deleting;
};
extern struct list_head efivar_sysfs_list;
@@ -840,6 +842,8 @@ void efivar_run_worker(void);
#if defined(CONFIG_EFI_VARS) || defined(CONFIG_EFI_VARS_MODULE)
int efivars_sysfs_init(void);
+#define EFIVARS_DATA_SIZE_MAX 1024
+
#endif /* CONFIG_EFI_VARS */
#endif /* _LINUX_EFI_H */
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 31/62] efi-pstore: Make efi-pstore return a unique id
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (29 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 30/62] efivars, efi-pstore: Hold off deletion of sysfs entry until the scan is completed Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 32/62] SCSI: bfa: Fix crash when symb name set for offline vport Greg Kroah-Hartman
` (33 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Madper Xie, Seiji Aguchi,
Matt Fleming
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Madper Xie <cxie@redhat.com>
commit fdeadb43fdf1e7d5698c027b555c389174548e5a upstream.
Pstore fs expects that backends provide a unique id which could avoid
pstore making entries as duplication or denominating entries the same
name. So I combine the timestamp, part and count into id.
Signed-off-by: Madper Xie <cxie@redhat.com>
Cc: Seiji Aguchi <seiji.aguchi@hds.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/firmware/efi/efi-pstore.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
--- a/drivers/firmware/efi/efi-pstore.c
+++ b/drivers/firmware/efi/efi-pstore.c
@@ -37,6 +37,12 @@ struct pstore_read_data {
char **buf;
};
+static inline u64 generic_id(unsigned long timestamp,
+ unsigned int part, int count)
+{
+ return (timestamp * 100 + part) * 1000 + count;
+}
+
static int efi_pstore_read_func(struct efivar_entry *entry, void *data)
{
efi_guid_t vendor = LINUX_EFI_CRASH_GUID;
@@ -55,7 +61,7 @@ static int efi_pstore_read_func(struct e
if (sscanf(name, "dump-type%u-%u-%d-%lu-%c",
cb_data->type, &part, &cnt, &time, &data_type) == 5) {
- *cb_data->id = part;
+ *cb_data->id = generic_id(time, part, cnt);
*cb_data->count = cnt;
cb_data->timespec->tv_sec = time;
cb_data->timespec->tv_nsec = 0;
@@ -65,7 +71,7 @@ static int efi_pstore_read_func(struct e
*cb_data->compressed = false;
} else if (sscanf(name, "dump-type%u-%u-%d-%lu",
cb_data->type, &part, &cnt, &time) == 4) {
- *cb_data->id = part;
+ *cb_data->id = generic_id(time, part, cnt);
*cb_data->count = cnt;
cb_data->timespec->tv_sec = time;
cb_data->timespec->tv_nsec = 0;
@@ -77,7 +83,7 @@ static int efi_pstore_read_func(struct e
* which doesn't support holding
* multiple logs, remains.
*/
- *cb_data->id = part;
+ *cb_data->id = generic_id(time, part, 0);
*cb_data->count = 0;
cb_data->timespec->tv_sec = time;
cb_data->timespec->tv_nsec = 0;
@@ -320,14 +326,16 @@ static int efi_pstore_erase(enum pstore_
char name[DUMP_NAME_LEN];
efi_char16_t efi_name[DUMP_NAME_LEN];
int found, i;
+ unsigned int part;
- sprintf(name, "dump-type%u-%u-%d-%lu", type, (unsigned int)id, count,
- time.tv_sec);
+ do_div(id, 1000);
+ part = do_div(id, 100);
+ sprintf(name, "dump-type%u-%u-%d-%lu", type, part, count, time.tv_sec);
for (i = 0; i < DUMP_NAME_LEN; i++)
efi_name[i] = name[i];
- edata.id = id;
+ edata.id = part;
edata.type = type;
edata.count = count;
edata.time = time;
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 32/62] SCSI: bfa: Fix crash when symb name set for offline vport
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (30 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 31/62] efi-pstore: Make efi-pstore return a unique id Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 33/62] SCSI: enclosure: fix WARN_ON in dual path device removing Greg Kroah-Hartman
` (32 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Vijaya Mohan Guvva, James Bottomley
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Vijaya Mohan Guvva <vmohan@brocade.com>
commit 22a08538dca5c0630226f1c0c58dccd12e463d22 upstream.
This patch fixes a crash when tried setting symbolic name for an offline
vport through sysfs. Crash is due to uninitialized pointer lport->ns,
which gets initialized only on linkup (port online).
Signed-off-by: Vijaya Mohan Guvva <vmohan@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/bfa/bfa_fcs.h | 1 +
drivers/scsi/bfa/bfa_fcs_lport.c | 14 +++++++++++---
drivers/scsi/bfa/bfad_attr.c | 7 ++-----
3 files changed, 14 insertions(+), 8 deletions(-)
--- a/drivers/scsi/bfa/bfa_fcs.h
+++ b/drivers/scsi/bfa/bfa_fcs.h
@@ -296,6 +296,7 @@ wwn_t bfa_fcs_lport_get_rport(struct bfa
struct bfa_fcs_lport_s *bfa_fcs_lookup_port(struct bfa_fcs_s *fcs,
u16 vf_id, wwn_t lpwwn);
+void bfa_fcs_lport_set_symname(struct bfa_fcs_lport_s *port, char *symname);
void bfa_fcs_lport_get_info(struct bfa_fcs_lport_s *port,
struct bfa_lport_info_s *port_info);
void bfa_fcs_lport_get_attr(struct bfa_fcs_lport_s *port,
--- a/drivers/scsi/bfa/bfa_fcs_lport.c
+++ b/drivers/scsi/bfa/bfa_fcs_lport.c
@@ -1097,6 +1097,17 @@ bfa_fcs_lport_init(struct bfa_fcs_lport_
bfa_sm_send_event(lport, BFA_FCS_PORT_SM_CREATE);
}
+void
+bfa_fcs_lport_set_symname(struct bfa_fcs_lport_s *port,
+ char *symname)
+{
+ strcpy(port->port_cfg.sym_name.symname, symname);
+
+ if (bfa_sm_cmp_state(port, bfa_fcs_lport_sm_online))
+ bfa_fcs_lport_ns_util_send_rspn_id(
+ BFA_FCS_GET_NS_FROM_PORT(port), NULL);
+}
+
/*
* fcs_lport_api
*/
@@ -5140,9 +5151,6 @@ bfa_fcs_lport_ns_util_send_rspn_id(void
u8 *psymbl = &symbl[0];
int len;
- if (!bfa_sm_cmp_state(port, bfa_fcs_lport_sm_online))
- return;
-
/* Avoid sending RSPN in the following states. */
if (bfa_sm_cmp_state(ns, bfa_fcs_lport_ns_sm_offline) ||
bfa_sm_cmp_state(ns, bfa_fcs_lport_ns_sm_plogi_sending) ||
--- a/drivers/scsi/bfa/bfad_attr.c
+++ b/drivers/scsi/bfa/bfad_attr.c
@@ -593,11 +593,8 @@ bfad_im_vport_set_symbolic_name(struct f
return;
spin_lock_irqsave(&bfad->bfad_lock, flags);
- if (strlen(sym_name) > 0) {
- strcpy(fcs_vport->lport.port_cfg.sym_name.symname, sym_name);
- bfa_fcs_lport_ns_util_send_rspn_id(
- BFA_FCS_GET_NS_FROM_PORT((&fcs_vport->lport)), NULL);
- }
+ if (strlen(sym_name) > 0)
+ bfa_fcs_lport_set_symname(&fcs_vport->lport, sym_name);
spin_unlock_irqrestore(&bfad->bfad_lock, flags);
}
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 33/62] SCSI: enclosure: fix WARN_ON in dual path device removing
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (31 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 32/62] SCSI: bfa: Fix crash when symb name set for offline vport Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 34/62] SCSI: libsas: fix usage of ata_tf_to_fis Greg Kroah-Hartman
` (31 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, James Bottomley
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: James Bottomley <JBottomley@Parallels.com>
commit a1470c7bf3a4676e62e4c0fb204e339399eb5c59 upstream.
Bug report from: wenxiong@linux.vnet.ibm.com
The issue is happened in dual controller configuration. We got the
sysfs warnings when rmmod the ipr module.
enclosure_unregister() in drivers/msic/enclosure.c, call device_unregister()
for each componment deivce, device_unregister() ->device_del()->kobject_del()
->sysfs_remove_dir(). In sysfs_remove_dir(), set kobj->sd = NULL.
For each componment device,
enclosure_component_release()->enclosure_remove_links()->sysfs_remove_link()
in which checking kobj->sd again, it has been set as NULL when doing
device_unregister. So we saw all these sysfs WARNING.
Tested-by: wenxiong@linux.vnet.ibm.com
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/misc/enclosure.c | 7 +++++++
1 file changed, 7 insertions(+)
--- a/drivers/misc/enclosure.c
+++ b/drivers/misc/enclosure.c
@@ -198,6 +198,13 @@ static void enclosure_remove_links(struc
{
char name[ENCLOSURE_NAME_SIZE];
+ /*
+ * In odd circumstances, like multipath devices, something else may
+ * already have removed the links, so check for this condition first.
+ */
+ if (!cdev->dev->kobj.sd)
+ return;
+
enclosure_link_name(cdev, name);
sysfs_remove_link(&cdev->dev->kobj, name);
sysfs_remove_link(&cdev->cdev.kobj, "device");
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 34/62] SCSI: libsas: fix usage of ata_tf_to_fis
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (32 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 33/62] SCSI: enclosure: fix WARN_ON in dual path device removing Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 35/62] SCSI: hpsa: do not discard scsi status on aborted commands Greg Kroah-Hartman
` (30 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Dan Williams, Praveen Murali,
James Bottomley
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dan Williams <dan.j.williams@intel.com>
commit ae5fbae0ccd982dfca0ce363036ed92f5b13f150 upstream.
Since commit 110dd8f19df5 "[SCSI] libsas: fix scr_read/write users and
update the libata documentation" we have been passing pmp=1 and is_cmd=0
to ata_tf_to_fis(). Praveen reports that eSATA attached drives do not
discover correctly. His investigation found that the BIOS was passing
pmp=0 while Linux was passing pmp=1 and failing to discover the drives.
Update libsas to follow the libata example of pulling the pmp setting
from the ata_link and correct is_cmd to be 1 since all tf's submitted
through ->qc_issue are commands. Presumably libsas lldds do not care
about is_cmd as they have sideband mechanisms to perform link
management.
http://marc.info/?l=linux-scsi&m=138179681726990
[jejb: checkpatch fix]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reported-by: Praveen Murali <pmurali@logicube.com>
Tested-by: Praveen Murali <pmurali@logicube.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/libsas/sas_ata.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -211,7 +211,7 @@ static unsigned int sas_ata_qc_issue(str
qc->tf.nsect = 0;
}
- ata_tf_to_fis(&qc->tf, 1, 0, (u8*)&task->ata_task.fis);
+ ata_tf_to_fis(&qc->tf, qc->dev->link->pmp, 1, (u8 *)&task->ata_task.fis);
task->uldd_task = qc;
if (ata_is_atapi(qc->tf.protocol)) {
memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 35/62] SCSI: hpsa: do not discard scsi status on aborted commands
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (33 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 34/62] SCSI: libsas: fix usage of ata_tf_to_fis Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 36/62] SCSI: hpsa: return 0 from driver probe function on success, not 1 Greg Kroah-Hartman
` (29 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Stephen M. Cameron, James Bottomley
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: "Stephen M. Cameron" <scameron@beardog.cce.hp.com>
commit 2e311fbabdc23b7eaec77313dc3b9a151a5407b5 upstream.
We inadvertantly discarded the scsi status for aborted commands.
For some commands (e.g. reads from tape drives) these can't be retried,
and if we discarded the scsi status, the scsi mid layer couldn't notice
anything was wrong and the error was not reported.
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/hpsa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -1289,7 +1289,7 @@ static void complete_scsi_command(struct
"has check condition: aborted command: "
"ASC: 0x%x, ASCQ: 0x%x\n",
cp, asc, ascq);
- cmd->result = DID_SOFT_ERROR << 16;
+ cmd->result |= DID_SOFT_ERROR << 16;
break;
}
/* Must be some other type of check condition */
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 36/62] SCSI: hpsa: return 0 from driver probe function on success, not 1
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (34 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 35/62] SCSI: hpsa: do not discard scsi status on aborted commands Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 37/62] NFSv4: Update list of irrecoverable errors on DELEGRETURN Greg Kroah-Hartman
` (28 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Stephen M. Cameron, James Bottomley
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: "Stephen M. Cameron" <scameron@beardog.cce.hp.com>
commit 88bf6d62db4393fa03a58bada9d746312d5b496f upstream.
A return value of 1 is interpreted as an error. See pci_driver.
in local_pci_probe(). If you're wondering how this ever could
have worked, it's because it used to be the case that only return
values less than zero were interpreted as failure. But even in
the current kernel if the driver registers its various entry
points with the kernel, and then returns a value which is
interpreted as failure, those registrations aren't undone, so
the driver still mostly works. However, the driver's remove
function wouldn't be called on rmmod, and pci power management
functions wouldn't work. In the case of Smart Array, since it
has a battery backed cache (or else no cache) even if the driver
is not shut down properly as long as there is no outstanding
i/o, nothing too bad happens, which is why it took so long to
notice.
Requesting backport to stable because the change to pci-driver.c
which requires driver probe functions to return 0 occurred between
2.6.35 and 2.6.36 (the pci power management breakage) and again
between 3.7 and 3.8 (pci_dev->driver getting set to NULL in
local_pci_probe() preventing driver remove function from being
called on rmmod.)
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/hpsa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -4926,7 +4926,7 @@ reinit_after_soft_reset:
hpsa_hba_inquiry(h);
hpsa_register_scsi(h); /* hook ourselves into SCSI subsystem */
start_controller_lockup_detector(h);
- return 1;
+ return 0;
clean4:
hpsa_free_sg_chain_blocks(h);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 37/62] NFSv4: Update list of irrecoverable errors on DELEGRETURN
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (35 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 36/62] SCSI: hpsa: return 0 from driver probe function on success, not 1 Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 38/62] PNP: fix restoring devices after hibernation Greg Kroah-Hartman
` (27 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Trond Myklebust
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Trond Myklebust <Trond.Myklebust@netapp.com>
commit c97cf606e43b85a6cf158b810375dd77312024db upstream.
If the DELEGRETURN errors out with something like NFS4ERR_BAD_STATEID
then there is no recovery possible. Just quit without returning an error.
Also, note that the client must not assume that the NFSv4 lease has been
renewed when it sees an error on DELEGRETURN.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/nfs/nfs4proc.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -4938,11 +4938,17 @@ static void nfs4_delegreturn_done(struct
trace_nfs4_delegreturn_exit(&data->args, &data->res, task->tk_status);
switch (task->tk_status) {
- case -NFS4ERR_STALE_STATEID:
- case -NFS4ERR_EXPIRED:
case 0:
renew_lease(data->res.server, data->timestamp);
break;
+ case -NFS4ERR_ADMIN_REVOKED:
+ case -NFS4ERR_DELEG_REVOKED:
+ case -NFS4ERR_BAD_STATEID:
+ case -NFS4ERR_OLD_STATEID:
+ case -NFS4ERR_STALE_STATEID:
+ case -NFS4ERR_EXPIRED:
+ task->tk_status = 0;
+ break;
default:
if (nfs4_async_handle_error(task, data->res.server, NULL) ==
-EAGAIN) {
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 38/62] PNP: fix restoring devices after hibernation
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (36 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 37/62] NFSv4: Update list of irrecoverable errors on DELEGRETURN Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 39/62] time: Fix 1ns/tick drift w/ GENERIC_TIME_VSYSCALL_OLD Greg Kroah-Hartman
` (26 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Dmitry Torokhov, Rafael J. Wysocki
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
commit 8a37ea50e7acf8db6821ba094ca41384e7d8c70c upstream.
On returning from hibernation 'restore' callback is called,
not 'resume'. Fix it.
Fixes: eaf140b60ec9 (PNP: convert PNP driver bus legacy pm_ops to dev_pm_ops)
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/pnp/driver.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
--- a/drivers/pnp/driver.c
+++ b/drivers/pnp/driver.c
@@ -197,6 +197,11 @@ static int pnp_bus_freeze(struct device
return __pnp_bus_suspend(dev, PMSG_FREEZE);
}
+static int pnp_bus_poweroff(struct device *dev)
+{
+ return __pnp_bus_suspend(dev, PMSG_HIBERNATE);
+}
+
static int pnp_bus_resume(struct device *dev)
{
struct pnp_dev *pnp_dev = to_pnp_dev(dev);
@@ -234,9 +239,14 @@ static int pnp_bus_resume(struct device
}
static const struct dev_pm_ops pnp_bus_dev_pm_ops = {
+ /* Suspend callbacks */
.suspend = pnp_bus_suspend,
- .freeze = pnp_bus_freeze,
.resume = pnp_bus_resume,
+ /* Hibernate callbacks */
+ .freeze = pnp_bus_freeze,
+ .thaw = pnp_bus_resume,
+ .poweroff = pnp_bus_poweroff,
+ .restore = pnp_bus_resume,
};
struct bus_type pnp_bus_type = {
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 39/62] time: Fix 1ns/tick drift w/ GENERIC_TIME_VSYSCALL_OLD
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (37 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 38/62] PNP: fix restoring devices after hibernation Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 40/62] powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536 Greg Kroah-Hartman
` (25 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Tony Luck, Paul Mackerras,
Benjamin Herrenschmidt, Andy Lutomirski, Paul Turner,
Steven Rostedt, Richard Cochran, Prarit Bhargava, Fenghua Yu,
Thomas Gleixner, John Stultz
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
commit 4be77398ac9d948773116b6be4a3c91b3d6ea18c upstream.
Since commit 1e75fa8be9f (time: Condense timekeeper.xtime
into xtime_sec - merged in v3.6), there has been an problem
with the error accounting in the timekeeping code, such that
when truncating to nanoseconds, we round up to the next nsec,
but the balancing adjustment to the ntp_error value was dropped.
This causes 1ns per tick drift forward of the clock.
In 3.7, this logic was isolated to only GENERIC_TIME_VSYSCALL_OLD
architectures (s390, ia64, powerpc).
The fix is simply to balance the accounting and to subtract the
added nanosecond from ntp_error. This allows the internal long-term
clock steering to keep the clock accurate.
While this fix removes the regression added in 1e75fa8be9f, the
ideal solution is to move away from GENERIC_TIME_VSYSCALL_OLD
and use the new VSYSCALL method, which avoids entirely the
nanosecond granular rounding, and the resulting short-term clock
adjustment oscillation needed to keep long term accurate time.
[ jstultz: Many thanks to Martin for his efforts identifying this
subtle bug, and providing the fix. ]
Originally-from: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Paul Turner <pjt@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1385149491-20307-1-git-send-email-john.stultz@linaro.org
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
kernel/time/timekeeping.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1347,7 +1347,7 @@ static inline void old_vsyscall_fixup(st
tk->xtime_nsec -= remainder;
tk->xtime_nsec += 1ULL << tk->shift;
tk->ntp_error += remainder << tk->ntp_error_shift;
-
+ tk->ntp_error -= (1ULL << tk->shift) << tk->ntp_error_shift;
}
#else
#define old_vsyscall_fixup(tk)
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 40/62] powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (38 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 39/62] time: Fix 1ns/tick drift w/ GENERIC_TIME_VSYSCALL_OLD Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 41/62] parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address Greg Kroah-Hartman
` (24 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Scott Wood, Anatolij Gustschin,
Liu Gang, Linus Walleij
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Liu Gang <Gang.Liu@freescale.com>
commit 1aeef303b5d9e243c41d5b80f8bb059366514a10 upstream.
For MPC8572/MPC8536, the status of GPIOs defined as output
cannot be determined by reading GPDAT register, so the code
use shadow data register instead. But the code may give the
wrong status of GPIOs defined as input under some scenarios:
1. If some pins were configured as inputs and were asserted
high before booting the kernel, the shadow data has been
initialized with those pin values.
2. Some pins have been configured as output first and have
been set to the high value, then reconfigured as input.
The above cases will make the shadow data for those input
pins to be set to high. Then reading the pin status will
always return high even if the actual pin status is low.
The code should eliminate the effects of the shadow data to
the input pins, and the status of those pins should be
read directly from GPDAT.
Acked-by: Scott Wood <scottwood@freescale.com>
Acked-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Liu Gang <Gang.Liu@freescale.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpio/gpio-mpc8xxx.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -69,10 +69,14 @@ static int mpc8572_gpio_get(struct gpio_
u32 val;
struct of_mm_gpio_chip *mm = to_of_mm_gpio_chip(gc);
struct mpc8xxx_gpio_chip *mpc8xxx_gc = to_mpc8xxx_gpio_chip(mm);
+ u32 out_mask, out_shadow;
- val = in_be32(mm->regs + GPIO_DAT) & ~in_be32(mm->regs + GPIO_DIR);
+ out_mask = in_be32(mm->regs + GPIO_DIR);
- return (val | mpc8xxx_gc->data) & mpc8xxx_gpio2mask(gpio);
+ val = in_be32(mm->regs + GPIO_DAT) & ~out_mask;
+ out_shadow = mpc8xxx_gc->data & out_mask;
+
+ return (val | out_shadow) & mpc8xxx_gpio2mask(gpio);
}
static int mpc8xxx_gpio_get(struct gpio_chip *gc, unsigned int gpio)
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 41/62] parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (39 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 40/62] powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536 Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 42/62] xen/gnttab: leave lazy MMU mode in the case of a m2p override failure Greg Kroah-Hartman
` (23 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Helge Deller
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Helge Deller <deller@gmx.de>
commit 0576da2c08e3d332f1b0653030d28ab804585ab6 upstream.
locale-gen on Debian showed a strange problem on parisc:
mmap2(NULL, 536870912, PROT_NONE, MAP_SHARED, 3, 0) = 0x42a54000
mmap2(0x42a54000, 103860, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, 3, 0) = -1 EINVAL (Invalid argument)
Basically it was just trying to re-mmap() a file at the same address
which it was given by a previous mmap() call. But this remapping failed
with EINVAL.
The problem is, that when MAP_FIXED and MAP_SHARED flags were used, we didn't
included the mapping-based offset when we verified the alignment of the given
fixed address against the offset which we calculated it in the previous call.
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/parisc/kernel/sys_parisc.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
--- a/arch/parisc/kernel/sys_parisc.c
+++ b/arch/parisc/kernel/sys_parisc.c
@@ -61,8 +61,15 @@ static int get_offset(struct address_spa
return (unsigned long) mapping >> 8;
}
-static unsigned long get_shared_area(struct address_space *mapping,
- unsigned long addr, unsigned long len, unsigned long pgoff)
+static unsigned long shared_align_offset(struct file *filp, unsigned long pgoff)
+{
+ struct address_space *mapping = filp ? filp->f_mapping : NULL;
+
+ return (get_offset(mapping) + pgoff) << PAGE_SHIFT;
+}
+
+static unsigned long get_shared_area(struct file *filp, unsigned long addr,
+ unsigned long len, unsigned long pgoff)
{
struct vm_unmapped_area_info info;
@@ -71,7 +78,7 @@ static unsigned long get_shared_area(str
info.low_limit = PAGE_ALIGN(addr);
info.high_limit = TASK_SIZE;
info.align_mask = PAGE_MASK & (SHMLBA - 1);
- info.align_offset = (get_offset(mapping) + pgoff) << PAGE_SHIFT;
+ info.align_offset = shared_align_offset(filp, pgoff);
return vm_unmapped_area(&info);
}
@@ -82,20 +89,18 @@ unsigned long arch_get_unmapped_area(str
return -ENOMEM;
if (flags & MAP_FIXED) {
if ((flags & MAP_SHARED) &&
- (addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1))
+ (addr - shared_align_offset(filp, pgoff)) & (SHMLBA - 1))
return -EINVAL;
return addr;
}
if (!addr)
addr = TASK_UNMAPPED_BASE;
- if (filp) {
- addr = get_shared_area(filp->f_mapping, addr, len, pgoff);
- } else if(flags & MAP_SHARED) {
- addr = get_shared_area(NULL, addr, len, pgoff);
- } else {
+ if (filp || (flags & MAP_SHARED))
+ addr = get_shared_area(filp, addr, len, pgoff);
+ else
addr = get_unshared_area(addr, len);
- }
+
return addr;
}
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 42/62] xen/gnttab: leave lazy MMU mode in the case of a m2p override failure
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (40 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 41/62] parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 43/62] spi/pxa2xx: add new ACPI IDs Greg Kroah-Hartman
` (22 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Stefano Stabellini, Boris Ostrovsky,
David Vrabel, Anthony Liguori, Matt Wilson, Konrad Rzeszutek Wilk
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Matt Wilson <msw@amazon.com>
commit 14883a75ec76b44759385fb12629f4a0f1aef4e3 upstream.
Commit f62805f1 introduced a bug where lazy MMU mode isn't exited if a
m2p_add/remove_override call fails.
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Anthony Liguori <aliguori@amazon.com>
Signed-off-by: Matt Wilson <msw@amazon.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/xen/grant-table.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -921,9 +921,10 @@ int gnttab_map_refs(struct gnttab_map_gr
ret = m2p_add_override(mfn, pages[i], kmap_ops ?
&kmap_ops[i] : NULL);
if (ret)
- return ret;
+ goto out;
}
+ out:
if (lazy)
arch_leave_lazy_mmu_mode();
@@ -954,9 +955,10 @@ int gnttab_unmap_refs(struct gnttab_unma
ret = m2p_remove_override(pages[i], kmap_ops ?
&kmap_ops[i] : NULL);
if (ret)
- return ret;
+ goto out;
}
+ out:
if (lazy)
arch_leave_lazy_mmu_mode();
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 43/62] spi/pxa2xx: add new ACPI IDs
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (41 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 42/62] xen/gnttab: leave lazy MMU mode in the case of a m2p override failure Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 44/62] cpuidle: Check for dev before deregistering it Greg Kroah-Hartman
` (21 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Mika Westerberg, Mark Brown
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Mika Westerberg <mika.westerberg@linux.intel.com>
commit 54acbd9688e6324470671525c7916011f1ff8081 upstream.
Newer Intel PCHs with LPSS have the same SPI controllers than Haswell but
ACPI IDs are different. Add these IDs to the driver list.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/spi/spi-pxa2xx.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1077,6 +1077,8 @@ pxa2xx_spi_acpi_get_pdata(struct platfor
static struct acpi_device_id pxa2xx_spi_acpi_match[] = {
{ "INT33C0", 0 },
{ "INT33C1", 0 },
+ { "INT3430", 0 },
+ { "INT3431", 0 },
{ "80860F0E", 0 },
{ },
};
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 44/62] cpuidle: Check for dev before deregistering it.
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (42 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 43/62] spi/pxa2xx: add new ACPI IDs Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 45/62] Update of blkg_stat and blkg_rwstat may happen in bh context. While u64_stats_fetch_retry is only preempt_disable on 32bit UP system. This is not enough to avoid preemption by bh and may read strange 64 bit value Greg Kroah-Hartman
` (20 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Konrad Rzeszutek Wilk,
Rafael J. Wysocki
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
commit 813e8e3d6aaa0b511126cce15c16a931afffe768 upstream.
If not, we could end up in the unfortunate situation where
we dereference a NULL pointer b/c we have cpuidle disabled.
This is the case when booting under Xen (which uses the
ACPI P/C states but disables the CPU idle driver) - and can
be easily reproduced when booting with cpuidle.off=1.
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<ffffffff8156db4a>] cpuidle_unregister_device+0x2a/0x90
.. snip..
Call Trace:
[<ffffffff813b15b4>] acpi_processor_power_exit+0x3c/0x5c
[<ffffffff813af0a9>] acpi_processor_stop+0x61/0xb6
[<ffffffff814215bf>] __device_release_driver+0fffff81421653>] device_release_driver+0x23/0x30
[<ffffffff81420ed8>] bus_remove_device+0x108/0x180
[<ffffffff8141d9d9>] device_del+0x129/0x1c0
[<ffffffff813cb4b0>] ? unregister_xenbus_watch+0x1f0/0x1f0
[<ffffffff8141da8e>] device_unregister+0x1e/0x60
[<ffffffff814243e9>] unregister_cpu+0x39/0x60
[<ffffffff81019e03>] arch_unregister_cpu+0x23/0x30
[<ffffffff813c3c51>] handle_vcpu_hotplug_event+0xc1/0xe0
[<ffffffff813cb4f5>] xenwatch_thread+0x45/0x120
[<ffffffff810af010>] ? abort_exclusive_wait+0xb0/0xb0
[<ffffffff8108ec42>] kthread+0xd2/0xf0
[<ffffffff8108eb70>] ? kthread_create_on_node+0x180/0x180
[<ffffffff816ce17c>] ret_from_fork+0x7c/0xb0
[<ffffffff8108eb70>] ? kthread_create_on_node+0x180/0x180
This problem also appears in 3.12 and could be a candidate for backport.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/cpuidle/cpuidle.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -448,7 +448,7 @@ EXPORT_SYMBOL_GPL(cpuidle_register_devic
*/
void cpuidle_unregister_device(struct cpuidle_device *dev)
{
- if (dev->registered == 0)
+ if (!dev || dev->registered == 0)
return;
cpuidle_pause_and_lock();
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 45/62] Update of blkg_stat and blkg_rwstat may happen in bh context. While u64_stats_fetch_retry is only preempt_disable on 32bit UP system. This is not enough to avoid preemption by bh and may read strange 64 bit value.
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (43 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 44/62] cpuidle: Check for dev before deregistering it Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume Greg Kroah-Hartman
` (19 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Hong Zhiguo, Tejun Heo, Jens Axboe
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Hong Zhiguo <zhiguohong@tencent.com>
commit 2c575026fae6e63771bd2a4c1d407214a8096a89 upstream.
Signed-off-by: Hong Zhiguo <zhiguohong@tencent.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
block/blk-cgroup.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/block/blk-cgroup.h
+++ b/block/blk-cgroup.h
@@ -430,9 +430,9 @@ static inline uint64_t blkg_stat_read(st
uint64_t v;
do {
- start = u64_stats_fetch_begin(&stat->syncp);
+ start = u64_stats_fetch_begin_bh(&stat->syncp);
v = stat->cnt;
- } while (u64_stats_fetch_retry(&stat->syncp, start));
+ } while (u64_stats_fetch_retry_bh(&stat->syncp, start));
return v;
}
@@ -498,9 +498,9 @@ static inline struct blkg_rwstat blkg_rw
struct blkg_rwstat tmp;
do {
- start = u64_stats_fetch_begin(&rwstat->syncp);
+ start = u64_stats_fetch_begin_bh(&rwstat->syncp);
tmp = *rwstat;
- } while (u64_stats_fetch_retry(&rwstat->syncp, start));
+ } while (u64_stats_fetch_retry_bh(&rwstat->syncp, start));
return tmp;
}
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (44 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 45/62] Update of blkg_stat and blkg_rwstat may happen in bh context. While u64_stats_fetch_retry is only preempt_disable on 32bit UP system. This is not enough to avoid preemption by bh and may read strange 64 bit value Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 9:01 ` Pavel Machek
2013-12-10 8:01 ` [PATCH 3.12 47/62] net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST Greg Kroah-Hartman
` (18 subsequent siblings)
64 siblings, 1 reply; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Laxman Dewangan, Heiko Stuebner,
Pavel Machek, ian.campbell, rjw, len.brown, Thomas Gleixner
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Laxman Dewangan <ldewangan@nvidia.com>
commit ac01810c9d2814238f08a227062e66a35a0e1ea2 upstream.
When the system enters suspend, it disables all interrupts in
suspend_device_irqs(), including the interrupts marked EARLY_RESUME.
On the resume side things are different. The EARLY_RESUME interrupts
are reenabled in sys_core_ops->resume and the non EARLY_RESUME
interrupts are reenabled in the normal system resume path.
When suspend_noirq() failed or suspend is aborted for any other
reason, we might omit the resume side call to sys_core_ops->resume()
and therefor the interrupts marked EARLY_RESUME are not reenabled and
stay disabled forever.
To solve this, enable all irqs unconditionally in irq_resume()
regardless whether interrupts marked EARLY_RESUMEhave been already
enabled or not.
This might try to reenable already enabled interrupts in the non
failure case, but the only affected platform is XEN and it has been
confirmed that it does not cause any side effects.
[ tglx: Massaged changelog. ]
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by-and-tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Pavel Machek <pavel@ucw.cz>
Cc: <ian.campbell@citrix.com>
Cc: <rjw@rjwysocki.net>
Cc: <len.brown@intel.com>
Cc: <gregkh@linuxfoundation.org>
Link: http://lkml.kernel.org/r/1385388587-16442-1-git-send-email-ldewangan@nvidia.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
kernel/irq/pm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/kernel/irq/pm.c
+++ b/kernel/irq/pm.c
@@ -50,7 +50,7 @@ static void resume_irqs(bool want_early)
bool is_early = desc->action &&
desc->action->flags & IRQF_EARLY_RESUME;
- if (is_early != want_early)
+ if (!is_early && want_early)
continue;
raw_spin_lock_irqsave(&desc->lock, flags);
^ permalink raw reply [flat|nested] 75+ messages in thread* Re: [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume
2013-12-10 8:01 ` [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume Greg Kroah-Hartman
@ 2013-12-10 9:01 ` Pavel Machek
2013-12-10 9:08 ` Greg Kroah-Hartman
0 siblings, 1 reply; 75+ messages in thread
From: Pavel Machek @ 2013-12-10 9:01 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: linux-kernel, stable, Laxman Dewangan, Heiko Stuebner,
ian.campbell, rjw, len.brown, Thomas Gleixner
Hi!
> 3.12-stable review patch. If anyone has any objections, please let
> me know.
Objections... well... I'm not sure if it meets stable criteria. In
particular, I don't think it was ever demonstrated as having bad
effect on the users.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 75+ messages in thread
* Re: [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume
2013-12-10 9:01 ` Pavel Machek
@ 2013-12-10 9:08 ` Greg Kroah-Hartman
2013-12-10 12:52 ` Heiko Stübner
0 siblings, 1 reply; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 9:08 UTC (permalink / raw)
To: Pavel Machek
Cc: linux-kernel, stable, Laxman Dewangan, Heiko Stuebner,
ian.campbell, rjw, len.brown, Thomas Gleixner
On Tue, Dec 10, 2013 at 10:01:13AM +0100, Pavel Machek wrote:
> Hi!
>
> > 3.12-stable review patch. If anyone has any objections, please let
> > me know.
>
> Objections... well... I'm not sure if it meets stable criteria. In
> particular, I don't think it was ever demonstrated as having bad
> effect on the users.
Well, I'm guessing someone on the cc: here wanted it in stable@, so I'll
let them speak up as to why...
^ permalink raw reply [flat|nested] 75+ messages in thread
* Re: [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume
2013-12-10 9:08 ` Greg Kroah-Hartman
@ 2013-12-10 12:52 ` Heiko Stübner
2013-12-10 19:27 ` Greg Kroah-Hartman
0 siblings, 1 reply; 75+ messages in thread
From: Heiko Stübner @ 2013-12-10 12:52 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Pavel Machek, linux-kernel, stable, Laxman Dewangan, ian.campbell,
rjw, len.brown, Thomas Gleixner
Am Dienstag, 10. Dezember 2013, 10:08:47 schrieb Greg Kroah-Hartman:
> On Tue, Dec 10, 2013 at 10:01:13AM +0100, Pavel Machek wrote:
> > Hi!
> >
> > > 3.12-stable review patch. If anyone has any objections, please let
> > >
> > > me know.
> >
> > Objections... well... I'm not sure if it meets stable criteria. In
> > particular, I don't think it was ever demonstrated as having bad
> > effect on the users.
>
> Well, I'm guessing someone on the cc: here wanted it in stable@, so I'll
> let them speak up as to why...
As for bad effects on users ... any suspend_noirq callback returning an error
and thus aborting the suspend will cause the error fixed by this, as the
early-irqs won't get reenabled in the suspend-rollback [due to the syscore_ops
doing their resume never being run].
You could for example lose keys connected thru the gpio-keys driver until the
next reboot.
And it seems at least Laxman and myself were affected by it.
Heiko
^ permalink raw reply [flat|nested] 75+ messages in thread
* Re: [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume
2013-12-10 12:52 ` Heiko Stübner
@ 2013-12-10 19:27 ` Greg Kroah-Hartman
2013-12-10 21:46 ` Heiko Stübner
0 siblings, 1 reply; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 19:27 UTC (permalink / raw)
To: Heiko Stübner
Cc: Pavel Machek, linux-kernel, stable, Laxman Dewangan, ian.campbell,
rjw, len.brown, Thomas Gleixner
On Tue, Dec 10, 2013 at 01:52:53PM +0100, Heiko St�bner wrote:
> Am Dienstag, 10. Dezember 2013, 10:08:47 schrieb Greg Kroah-Hartman:
> > On Tue, Dec 10, 2013 at 10:01:13AM +0100, Pavel Machek wrote:
> > > Hi!
> > >
> > > > 3.12-stable review patch. If anyone has any objections, please let
> > > >
> > > > me know.
> > >
> > > Objections... well... I'm not sure if it meets stable criteria. In
> > > particular, I don't think it was ever demonstrated as having bad
> > > effect on the users.
> >
> > Well, I'm guessing someone on the cc: here wanted it in stable@, so I'll
> > let them speak up as to why...
>
> As for bad effects on users ... any suspend_noirq callback returning an error
> and thus aborting the suspend will cause the error fixed by this, as the
> early-irqs won't get reenabled in the suspend-rollback [due to the syscore_ops
> doing their resume never being run].
>
> You could for example lose keys connected thru the gpio-keys driver until the
> next reboot.
>
> And it seems at least Laxman and myself were affected by it.
So, to be clear, this patch fixes a problem on your machines, right?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 75+ messages in thread
* Re: [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume
2013-12-10 19:27 ` Greg Kroah-Hartman
@ 2013-12-10 21:46 ` Heiko Stübner
2013-12-11 1:16 ` Greg Kroah-Hartman
0 siblings, 1 reply; 75+ messages in thread
From: Heiko Stübner @ 2013-12-10 21:46 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Pavel Machek, linux-kernel, stable, Laxman Dewangan, ian.campbell,
rjw, len.brown, Thomas Gleixner
Am Dienstag, 10. Dezember 2013, 20:27:02 schrieb Greg Kroah-Hartman:
> On Tue, Dec 10, 2013 at 01:52:53PM +0100, Heiko St�bner wrote:
> > Am Dienstag, 10. Dezember 2013, 10:08:47 schrieb Greg Kroah-Hartman:
> > > On Tue, Dec 10, 2013 at 10:01:13AM +0100, Pavel Machek wrote:
> > > > Hi!
> > > >
> > > > > 3.12-stable review patch. If anyone has any objections, please let
> > > > >
> > > > > me know.
> > > >
> > > > Objections... well... I'm not sure if it meets stable criteria. In
> > > > particular, I don't think it was ever demonstrated as having bad
> > > > effect on the users.
> > >
> > > Well, I'm guessing someone on the cc: here wanted it in stable@, so
> > > I'll let them speak up as to why...
> >
> > As for bad effects on users ... any suspend_noirq callback returning an
> > error and thus aborting the suspend will cause the error fixed by this,
> > as the early-irqs won't get reenabled in the suspend-rollback [due to
> > the syscore_ops doing their resume never being run].
> >
> > You could for example lose keys connected thru the gpio-keys driver until
> > the next reboot.
> >
> > And it seems at least Laxman and myself were affected by it.
>
> So, to be clear, this patch fixes a problem on your machines, right?
yes it does fix a problem I ran into on my machines.
Heiko
^ permalink raw reply [flat|nested] 75+ messages in thread
* Re: [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume
2013-12-10 21:46 ` Heiko Stübner
@ 2013-12-11 1:16 ` Greg Kroah-Hartman
0 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-11 1:16 UTC (permalink / raw)
To: Heiko Stübner
Cc: Pavel Machek, linux-kernel, stable, Laxman Dewangan, ian.campbell,
rjw, len.brown, Thomas Gleixner
On Tue, Dec 10, 2013 at 10:46:54PM +0100, Heiko St�bner wrote:
> Am Dienstag, 10. Dezember 2013, 20:27:02 schrieb Greg Kroah-Hartman:
> > On Tue, Dec 10, 2013 at 01:52:53PM +0100, Heiko St�bner wrote:
> > > Am Dienstag, 10. Dezember 2013, 10:08:47 schrieb Greg Kroah-Hartman:
> > > > On Tue, Dec 10, 2013 at 10:01:13AM +0100, Pavel Machek wrote:
> > > > > Hi!
> > > > >
> > > > > > 3.12-stable review patch. If anyone has any objections, please let
> > > > > >
> > > > > > me know.
> > > > >
> > > > > Objections... well... I'm not sure if it meets stable criteria. In
> > > > > particular, I don't think it was ever demonstrated as having bad
> > > > > effect on the users.
> > > >
> > > > Well, I'm guessing someone on the cc: here wanted it in stable@, so
> > > > I'll let them speak up as to why...
> > >
> > > As for bad effects on users ... any suspend_noirq callback returning an
> > > error and thus aborting the suspend will cause the error fixed by this,
> > > as the early-irqs won't get reenabled in the suspend-rollback [due to
> > > the syscore_ops doing their resume never being run].
> > >
> > > You could for example lose keys connected thru the gpio-keys driver until
> > > the next reboot.
> > >
> > > And it seems at least Laxman and myself were affected by it.
> >
> > So, to be clear, this patch fixes a problem on your machines, right?
>
> yes it does fix a problem I ran into on my machines.
Great, thanks for letting me know.
greg k-h
^ permalink raw reply [flat|nested] 75+ messages in thread
* [PATCH 3.12 47/62] net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (45 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 48/62] x86-64, build: Always pass in -mno-sse Greg Kroah-Hartman
` (17 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Tom Herbert, Eric Dumazet,
David S. Miller, Shawn Landden
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Shawn Landden <shawn@churchofgit.com>
commit d3f7d56a7a4671d395e8af87071068a195257bf6 upstream.
Commit 35f9c09fe (tcp: tcp_sendpages() should call tcp_push() once)
added an internal flag MSG_SENDPAGE_NOTLAST, similar to
MSG_MORE.
algif_hash, algif_skcipher, and udp used MSG_MORE from tcp_sendpages()
and need to see the new flag as identical to MSG_MORE.
This fixes sendfile() on AF_ALG.
v3: also fix udp
Cc: Tom Herbert <therbert@google.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David S. Miller <davem@davemloft.net>
Reported-and-tested-by: Shawn Landden <shawnlandden@gmail.com>
Original-patch: Richard Weinberger <richard@nod.at>
Signed-off-by: Shawn Landden <shawn@churchofgit.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
crypto/algif_hash.c | 3 +++
crypto/algif_skcipher.c | 3 +++
net/ipv4/udp.c | 3 +++
3 files changed, 9 insertions(+)
--- a/crypto/algif_hash.c
+++ b/crypto/algif_hash.c
@@ -117,6 +117,9 @@ static ssize_t hash_sendpage(struct sock
if (flags & MSG_SENDPAGE_NOTLAST)
flags |= MSG_MORE;
+ if (flags & MSG_SENDPAGE_NOTLAST)
+ flags |= MSG_MORE;
+
lock_sock(sk);
sg_init_table(ctx->sgl.sg, 1);
sg_set_page(ctx->sgl.sg, page, size, offset);
--- a/crypto/algif_skcipher.c
+++ b/crypto/algif_skcipher.c
@@ -381,6 +381,9 @@ static ssize_t skcipher_sendpage(struct
if (flags & MSG_SENDPAGE_NOTLAST)
flags |= MSG_MORE;
+ if (flags & MSG_SENDPAGE_NOTLAST)
+ flags |= MSG_MORE;
+
lock_sock(sk);
if (!ctx->more && ctx->used)
goto unlock;
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1075,6 +1075,9 @@ int udp_sendpage(struct sock *sk, struct
if (flags & MSG_SENDPAGE_NOTLAST)
flags |= MSG_MORE;
+ if (flags & MSG_SENDPAGE_NOTLAST)
+ flags |= MSG_MORE;
+
if (!up->pending) {
struct msghdr msg = { .msg_flags = flags|MSG_MORE };
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 48/62] x86-64, build: Always pass in -mno-sse
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (46 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 47/62] net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 49/62] SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers Greg Kroah-Hartman
` (16 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Kevin B. Smith, H. Peter Anvin,
H. J. Lu
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: "H. Peter Anvin" <hpa@linux.intel.com>
commit 5551a34e5aeab868f8d37f70d8754868921b4ee5 upstream.
Always pass in the -mno-sse argument, regardless if
-preferred-stack-boundary is supported. We never want to generate SSE
instructions in the kernel unless we *really* know what we're doing.
According to H. J. Lu, any version of gcc new enough that we support
it at all should handle the -mno-sse option, so just add it
unconditionally.
Reported-by: Kevin B. Smith <kevin.b.smith@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: H. J. Lu <hjl.tools@gmail.com>
Link: http://lkml.kernel.org/n/tip-j21wzqv790q834n7yc6g80j1@git.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/Makefile | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -31,6 +31,9 @@ ifeq ($(CONFIG_X86_32),y)
KBUILD_CFLAGS += -msoft-float -mregparm=3 -freg-struct-return
+ # Don't autogenerate SSE instructions
+ KBUILD_CFLAGS += -mno-sse
+
# Never want PIC in a 32-bit kernel, prevent breakage with GCC built
# with nonstandard options
KBUILD_CFLAGS += -fno-pic
@@ -57,8 +60,11 @@ else
KBUILD_AFLAGS += -m64
KBUILD_CFLAGS += -m64
+ # Don't autogenerate SSE instructions
+ KBUILD_CFLAGS += -mno-sse
+
# Use -mpreferred-stack-boundary=3 if supported.
- KBUILD_CFLAGS += $(call cc-option,-mno-sse -mpreferred-stack-boundary=3)
+ KBUILD_CFLAGS += $(call cc-option,-mpreferred-stack-boundary=3)
# FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu)
cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8)
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 49/62] SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (47 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 48/62] x86-64, build: Always pass in -mno-sse Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 50/62] iwlwifi: dvm: dont override mac80211s queue setting Greg Kroah-Hartman
` (15 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Martin K. Petersen, James Bottomley
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: "Martin K. Petersen" <martin.petersen@oracle.com>
commit 54b2b50c20a61b51199bedb6e5d2f8ec2568fb43 upstream.
Some host adapters do not pass commands through to the target disk
directly. Instead they provide an emulated target which may or may not
accurately report its capabilities. In some cases the physical device
characteristics are reported even when the host adapter is processing
commands on the device's behalf. This can lead to adapter firmware hangs
or excessive I/O errors.
This patch disables WRITE SAME for devices connected to host adapters
that provide an emulated target. Driver writers can disable WRITE SAME
by setting the no_write_same flag in the host adapter template.
[jejb: fix up rejections due to eh_deadline patch]
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/ata/libata-scsi.c | 1 +
drivers/firewire/sbp2.c | 1 +
drivers/scsi/3w-9xxx.c | 3 ++-
drivers/scsi/3w-sas.c | 3 ++-
drivers/scsi/3w-xxxx.c | 3 ++-
drivers/scsi/aacraid/linit.c | 1 +
drivers/scsi/arcmsr/arcmsr_hba.c | 1 +
drivers/scsi/gdth.c | 1 +
drivers/scsi/hosts.c | 1 +
drivers/scsi/hpsa.c | 1 +
drivers/scsi/ipr.c | 3 ++-
drivers/scsi/ips.c | 1 +
drivers/scsi/megaraid.c | 1 +
drivers/scsi/megaraid/megaraid_mbox.c | 1 +
drivers/scsi/megaraid/megaraid_sas_base.c | 1 +
drivers/scsi/pmcraid.c | 1 +
drivers/scsi/sd.c | 6 ++++++
drivers/scsi/storvsc_drv.c | 1 +
include/scsi/scsi_host.h | 6 ++++++
19 files changed, 33 insertions(+), 4 deletions(-)
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -3625,6 +3625,7 @@ int ata_scsi_add_hosts(struct ata_host *
shost->max_lun = 1;
shost->max_channel = 1;
shost->max_cmd_len = 16;
+ shost->no_write_same = 1;
/* Schedule policy is determined by ->qc_defer()
* callback and it needs to see every deferred qc.
--- a/drivers/firewire/sbp2.c
+++ b/drivers/firewire/sbp2.c
@@ -1623,6 +1623,7 @@ static struct scsi_host_template scsi_dr
.cmd_per_lun = 1,
.can_queue = 1,
.sdev_attrs = sbp2_scsi_sysfs_attrs,
+ .no_write_same = 1,
};
MODULE_AUTHOR("Kristian Hoegsberg <krh@bitplanet.net>");
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -2025,7 +2025,8 @@ static struct scsi_host_template driver_
.cmd_per_lun = TW_MAX_CMDS_PER_LUN,
.use_clustering = ENABLE_CLUSTERING,
.shost_attrs = twa_host_attrs,
- .emulated = 1
+ .emulated = 1,
+ .no_write_same = 1,
};
/* This function will probe and initialize a card */
--- a/drivers/scsi/3w-sas.c
+++ b/drivers/scsi/3w-sas.c
@@ -1600,7 +1600,8 @@ static struct scsi_host_template driver_
.cmd_per_lun = TW_MAX_CMDS_PER_LUN,
.use_clustering = ENABLE_CLUSTERING,
.shost_attrs = twl_host_attrs,
- .emulated = 1
+ .emulated = 1,
+ .no_write_same = 1,
};
/* This function will probe and initialize a card */
--- a/drivers/scsi/3w-xxxx.c
+++ b/drivers/scsi/3w-xxxx.c
@@ -2279,7 +2279,8 @@ static struct scsi_host_template driver_
.cmd_per_lun = TW_MAX_CMDS_PER_LUN,
.use_clustering = ENABLE_CLUSTERING,
.shost_attrs = tw_host_attrs,
- .emulated = 1
+ .emulated = 1,
+ .no_write_same = 1,
};
/* This function will probe and initialize a card */
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -1081,6 +1081,7 @@ static struct scsi_host_template aac_dri
#endif
.use_clustering = ENABLE_CLUSTERING,
.emulated = 1,
+ .no_write_same = 1,
};
static void __aac_shutdown(struct aac_dev * aac)
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -137,6 +137,7 @@ static struct scsi_host_template arcmsr_
.cmd_per_lun = ARCMSR_MAX_CMD_PERLUN,
.use_clustering = ENABLE_CLUSTERING,
.shost_attrs = arcmsr_host_attrs,
+ .no_write_same = 1,
};
static struct pci_device_id arcmsr_device_id_table[] = {
{PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1110)},
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -4686,6 +4686,7 @@ static struct scsi_host_template gdth_te
.cmd_per_lun = GDTH_MAXC_P_L,
.unchecked_isa_dma = 1,
.use_clustering = ENABLE_CLUSTERING,
+ .no_write_same = 1,
};
#ifdef CONFIG_ISA
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -388,6 +388,7 @@ struct Scsi_Host *scsi_host_alloc(struct
shost->unchecked_isa_dma = sht->unchecked_isa_dma;
shost->use_clustering = sht->use_clustering;
shost->ordered_tag = sht->ordered_tag;
+ shost->no_write_same = sht->no_write_same;
if (sht->supported_mode == MODE_UNKNOWN)
/* means we didn't set it ... default to INITIATOR */
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -562,6 +562,7 @@ static struct scsi_host_template hpsa_dr
.sdev_attrs = hpsa_sdev_attrs,
.shost_attrs = hpsa_shost_attrs,
.max_sectors = 8192,
+ .no_write_same = 1,
};
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -6305,7 +6305,8 @@ static struct scsi_host_template driver_
.use_clustering = ENABLE_CLUSTERING,
.shost_attrs = ipr_ioa_attrs,
.sdev_attrs = ipr_dev_attrs,
- .proc_name = IPR_NAME
+ .proc_name = IPR_NAME,
+ .no_write_same = 1,
};
/**
--- a/drivers/scsi/ips.c
+++ b/drivers/scsi/ips.c
@@ -374,6 +374,7 @@ static struct scsi_host_template ips_dri
.sg_tablesize = IPS_MAX_SG,
.cmd_per_lun = 3,
.use_clustering = ENABLE_CLUSTERING,
+ .no_write_same = 1,
};
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -4244,6 +4244,7 @@ static struct scsi_host_template megarai
.eh_device_reset_handler = megaraid_reset,
.eh_bus_reset_handler = megaraid_reset,
.eh_host_reset_handler = megaraid_reset,
+ .no_write_same = 1,
};
static int
--- a/drivers/scsi/megaraid/megaraid_mbox.c
+++ b/drivers/scsi/megaraid/megaraid_mbox.c
@@ -367,6 +367,7 @@ static struct scsi_host_template megarai
.eh_host_reset_handler = megaraid_reset_handler,
.change_queue_depth = megaraid_change_queue_depth,
.use_clustering = ENABLE_CLUSTERING,
+ .no_write_same = 1,
.sdev_attrs = megaraid_sdev_attrs,
.shost_attrs = megaraid_shost_attrs,
};
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -2148,6 +2148,7 @@ static struct scsi_host_template megasas
.bios_param = megasas_bios_param,
.use_clustering = ENABLE_CLUSTERING,
.change_queue_depth = megasas_change_queue_depth,
+ .no_write_same = 1,
};
/**
--- a/drivers/scsi/pmcraid.c
+++ b/drivers/scsi/pmcraid.c
@@ -4314,6 +4314,7 @@ static struct scsi_host_template pmcraid
.this_id = -1,
.sg_tablesize = PMCRAID_MAX_IOADLS,
.max_sectors = PMCRAID_IOA_MAX_SECTORS,
+ .no_write_same = 1,
.cmd_per_lun = PMCRAID_MAX_CMD_PER_LUN,
.use_clustering = ENABLE_CLUSTERING,
.shost_attrs = pmcraid_host_attrs,
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2638,6 +2638,12 @@ static void sd_read_write_same(struct sc
{
struct scsi_device *sdev = sdkp->device;
+ if (sdev->host->no_write_same) {
+ sdev->no_write_same = 1;
+
+ return;
+ }
+
if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, INQUIRY) < 0) {
sdev->no_report_opcodes = 1;
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1697,6 +1697,7 @@ static struct scsi_host_template scsi_dr
.use_clustering = DISABLE_CLUSTERING,
/* Make sure we dont get a sg segment crosses a page boundary */
.dma_boundary = PAGE_SIZE-1,
+ .no_write_same = 1,
};
enum {
--- a/include/scsi/scsi_host.h
+++ b/include/scsi/scsi_host.h
@@ -475,6 +475,9 @@ struct scsi_host_template {
*/
unsigned ordered_tag:1;
+ /* True if the controller does not support WRITE SAME */
+ unsigned no_write_same:1;
+
/*
* Countdown for host blocking with no commands outstanding.
*/
@@ -674,6 +677,9 @@ struct Scsi_Host {
/* Don't resume host in EH */
unsigned eh_noresume:1;
+ /* The controller does not support WRITE SAME */
+ unsigned no_write_same:1;
+
/*
* Optional work queue to be utilized by the transport
*/
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 50/62] iwlwifi: dvm: dont override mac80211s queue setting
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (48 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 49/62] SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 51/62] tg3: avoid double-freeing of rx data memory Greg Kroah-Hartman
` (14 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Sander Eikelenboom, Johannes Berg,
Emmanuel Grumbach
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
commit f6b129527ca15bae29ffb9417ddaa1c9d99ffc5d upstream.
Since we set IEEE80211_HW_QUEUE_CONTROL, we can let
mac80211 do the queue assignement and don't need to
override its decisions.
While reassiging the same values is harmless of course,
it triggered a WARNING when iwlwifi and mac80211 came
to different conclusions. This happened when mac80211 set
IEEE80211_TX_CTL_SEND_AFTER_DTIM, but didn't route the
packet to the cab_queue because no stations were asleep.
iwlwifi should not override mac80211's decicions for
offchannel packets and packets to be sent after DTIM,
but it should override mac80211's decision for AMPDUs
since we have a special queue for them. So for AMPDU,
we still override info->hw_queue by the AMPDU queue.
This avoids:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 2531 at drivers/net/wireless/iwlwifi/dvm/tx.c:456 iwlagn_tx_skb+0x6c5/0x883()
Modules linked in:
CPU: 0 PID: 2531 Comm: hostapd Not tainted 3.12.0-rc5+ #1
Hardware name: /D53427RKE, BIOS RKPPT10H.86A.0017.2013.0425.1251 04/25/2013
0000000000000000 0000000000000009 ffffffff8189aa62 0000000000000000
ffffffff8105a4f2 ffff880058339a48 ffffffff815f8a04 0000000000000000
ffff8800560097b0 0000000000000208 0000000000000000 ffff8800561a9e5e
Call Trace:
[<ffffffff8189aa62>] ? dump_stack+0x41/0x51
[<ffffffff8105a4f2>] ? warn_slowpath_common+0x78/0x90
[<ffffffff815f8a04>] ? iwlagn_tx_skb+0x6c5/0x883
[<ffffffff815f8a04>] ? iwlagn_tx_skb+0x6c5/0x883
[<ffffffff818a0040>] ? put_cred+0x15/0x15
[<ffffffff815f6db4>] ? iwlagn_mac_tx+0x19/0x2f
[<ffffffff8186cc45>] ? __ieee80211_tx+0x226/0x29b
[<ffffffff8186e6bd>] ? ieee80211_tx+0xa6/0xb5
[<ffffffff8186e98b>] ? ieee80211_monitor_start_xmit+0x1e9/0x204
[<ffffffff8171ce5f>] ? dev_hard_start_xmit+0x271/0x3ec
[<ffffffff817351ac>] ? sch_direct_xmit+0x66/0x164
[<ffffffff8171d1bf>] ? dev_queue_xmit+0x1e5/0x3c8
[<ffffffff817fac5a>] ? packet_sendmsg+0xac5/0xb3d
[<ffffffff81709a09>] ? sock_sendmsg+0x37/0x52
[<ffffffff810f9e0c>] ? __do_fault+0x338/0x36b
[<ffffffff81713820>] ? verify_iovec+0x44/0x94
[<ffffffff81709e63>] ? ___sys_sendmsg+0x1f1/0x283
[<ffffffff81140a73>] ? __inode_wait_for_writeback+0x67/0xae
[<ffffffff8111735e>] ? __cache_free.isra.46+0x178/0x187
[<ffffffff811173b1>] ? kmem_cache_free+0x44/0x84
[<ffffffff81132c22>] ? dentry_kill+0x13d/0x149
[<ffffffff81132f6f>] ? dput+0xe5/0xef
[<ffffffff81136e04>] ? fget_light+0x2e/0x7c
[<ffffffff8170ae62>] ? __sys_sendmsg+0x39/0x57
[<ffffffff818a7e39>] ? system_call_fastpath+0x16/0x1b
---[ end trace 1b3eb79359c1d1e6 ]---
Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/wireless/iwlwifi/dvm/tx.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
--- a/drivers/net/wireless/iwlwifi/dvm/tx.c
+++ b/drivers/net/wireless/iwlwifi/dvm/tx.c
@@ -433,27 +433,19 @@ int iwlagn_tx_skb(struct iwl_priv *priv,
/* Copy MAC header from skb into command buffer */
memcpy(tx_cmd->hdr, hdr, hdr_len);
+ txq_id = info->hw_queue;
+
if (is_agg)
txq_id = priv->tid_data[sta_id][tid].agg.txq_id;
else if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) {
/*
- * Send this frame after DTIM -- there's a special queue
- * reserved for this for contexts that support AP mode.
- */
- txq_id = ctx->mcast_queue;
-
- /*
* The microcode will clear the more data
* bit in the last frame it transmits.
*/
hdr->frame_control |=
cpu_to_le16(IEEE80211_FCTL_MOREDATA);
- } else if (info->flags & IEEE80211_TX_CTL_TX_OFFCHAN)
- txq_id = IWL_AUX_QUEUE;
- else
- txq_id = ctx->ac_to_queue[skb_get_queue_mapping(skb)];
+ }
- WARN_ON_ONCE(!is_agg && txq_id != info->hw_queue);
WARN_ON_ONCE(is_agg &&
priv->queue_to_mac80211[txq_id] != info->hw_queue);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 51/62] tg3: avoid double-freeing of rx data memory
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (49 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 50/62] iwlwifi: dvm: dont override mac80211s queue setting Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 52/62] Input: allow deselecting serio drivers even without CONFIG_EXPERT Greg Kroah-Hartman
` (13 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Nithin Nayak Sujir, Michael Chan,
Ivan Vecera, David S. Miller
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ivan Vecera <ivecera@redhat.com>
commit 85aec73d595b8847f9c4ea571deb127913f0d508 upstream.
If build_skb fails the memory associated with the ring buffer is freed but
the ri->data member is not zeroed in this case. This causes a double-free
of this memory in tg3_free_rings->... path. The patch moves this block after
setting ri->data to NULL.
It would be nice to fix this bug also in stable >= v3.4 trees.
Cc: Nithin Nayak Sujir <nsujir@broadcom.com>
Cc: Michael Chan <mchan@broadcom.com>
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/broadcom/tg3.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -6848,12 +6848,6 @@ static int tg3_rx(struct tg3_napi *tnapi
pci_unmap_single(tp->pdev, dma_addr, skb_size,
PCI_DMA_FROMDEVICE);
- skb = build_skb(data, frag_size);
- if (!skb) {
- tg3_frag_free(frag_size != 0, data);
- goto drop_it_no_recycle;
- }
- skb_reserve(skb, TG3_RX_OFFSET(tp));
/* Ensure that the update to the data happens
* after the usage of the old DMA mapping.
*/
@@ -6861,6 +6855,12 @@ static int tg3_rx(struct tg3_napi *tnapi
ri->data = NULL;
+ skb = build_skb(data, frag_size);
+ if (!skb) {
+ tg3_frag_free(frag_size != 0, data);
+ goto drop_it_no_recycle;
+ }
+ skb_reserve(skb, TG3_RX_OFFSET(tp));
} else {
tg3_recycle_rx(tnapi, tpr, opaque_key,
desc_idx, *post_ptr);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 52/62] Input: allow deselecting serio drivers even without CONFIG_EXPERT
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (50 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 51/62] tg3: avoid double-freeing of rx data memory Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 53/62] Input: mousedev - allow disabling " Greg Kroah-Hartman
` (12 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Tom Gundersen, Dmitry Torokhov
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tom Gundersen <teg@jklm.no>
commit bcd2623073e98f69f84720308db0b142c4da0bd6 upstream.
There is plenty of consumer hardware (e.g., mac books) that does not use AT
keyboards or PS/2 mice. It therefore makes sense for distro kernels to
build the related drivers as modules to avoid loading them on hardware that
does not need them. As such, these options should no longer be protected by
EXPERT.
Moreover, building these drivers as modules gets rid of the following ugly
error during boot:
[ 2.337745] i8042: PNP: No PS/2 controller found. Probing ports directly.
[ 3.439537] i8042: No controller found
Signed-off-by: Tom Gundersen <teg@jklm.no>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/input/keyboard/Kconfig | 4 ++--
drivers/input/serio/Kconfig | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -2,7 +2,7 @@
# Input core configuration
#
menuconfig INPUT_KEYBOARD
- bool "Keyboards" if EXPERT || !X86
+ bool "Keyboards"
default y
help
Say Y here, and a list of supported keyboards will be displayed.
@@ -67,7 +67,7 @@ config KEYBOARD_ATARI
module will be called atakbd.
config KEYBOARD_ATKBD
- tristate "AT keyboard" if EXPERT || !X86
+ tristate "AT keyboard"
default y
select SERIO
select SERIO_LIBPS2
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
@@ -2,7 +2,7 @@
# Input core configuration
#
config SERIO
- tristate "Serial I/O support" if EXPERT || !X86
+ tristate "Serial I/O support"
default y
help
Say Yes here if you have any input device that uses serial I/O to
@@ -19,7 +19,7 @@ config SERIO
if SERIO
config SERIO_I8042
- tristate "i8042 PC Keyboard controller" if EXPERT || !X86
+ tristate "i8042 PC Keyboard controller"
default y
depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
(!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN && !S390 && \
@@ -170,7 +170,7 @@ config SERIO_MACEPS2
module will be called maceps2.
config SERIO_LIBPS2
- tristate "PS/2 driver library" if EXPERT
+ tristate "PS/2 driver library"
depends on SERIO_I8042 || SERIO_I8042=n
help
Say Y here if you are using a driver for device connected
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 53/62] Input: mousedev - allow disabling even without CONFIG_EXPERT
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (51 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 52/62] Input: allow deselecting serio drivers even without CONFIG_EXPERT Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 54/62] mei: me: add Lynx Point Wellsburg work station device id Greg Kroah-Hartman
` (11 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Tom Gundersen, Dmitry Torokhov
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tom Gundersen <teg@jklm.no>
commit dfaaed08ecc01bd513248ba7999daf50ce028352 upstream.
Moust (if not all) modern software, including X, uses /dev/eventX rather than
the legacy /dev/mouseX devices. It therefore makes sense for general-purpose
(distro) kernels to use MOUSEDV=m (or even n), so let's drop the EXPERT=y
requirement.
Signed-off-by: Tom Gundersen <teg@jklm.no>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/input/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/input/Kconfig
+++ b/drivers/input/Kconfig
@@ -80,7 +80,7 @@ config INPUT_MATRIXKMAP
comment "Userland interfaces"
config INPUT_MOUSEDEV
- tristate "Mouse interface" if EXPERT
+ tristate "Mouse interface"
default y
help
Say Y here if you want your mouse to be accessible as char devices
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 54/62] mei: me: add Lynx Point Wellsburg work station device id
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (52 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 53/62] Input: mousedev - allow disabling " Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 55/62] mei: add 9 series PCH mei device ids Greg Kroah-Hartman
` (10 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Tomas Winkler
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tomas Winkler <tomas.winkler@intel.com>
commit 838b3a6d62413b336f3dde15ecff161070358957 upstream.
add missing device id for LPT based work station
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/misc/mei/hw-me-regs.h | 1 +
drivers/misc/mei/pci-me.c | 1 +
2 files changed, 2 insertions(+)
--- a/drivers/misc/mei/hw-me-regs.h
+++ b/drivers/misc/mei/hw-me-regs.h
@@ -110,6 +110,7 @@
#define MEI_DEV_ID_PPT_3 0x1DBA /* Panther Point */
#define MEI_DEV_ID_LPT 0x8C3A /* Lynx Point */
+#define MEI_DEV_ID_LPT_W 0x8D3A /* Lynx Point - Wellsburg */
#define MEI_DEV_ID_LPT_LP 0x9C3A /* Lynx Point LP */
/*
* MEI HW Section
--- a/drivers/misc/mei/pci-me.c
+++ b/drivers/misc/mei/pci-me.c
@@ -77,6 +77,7 @@ static DEFINE_PCI_DEVICE_TABLE(mei_me_pc
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_PPT_2)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_PPT_3)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT)},
+ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT_W)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT_LP)},
/* required last entry */
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 55/62] mei: add 9 series PCH mei device ids
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (53 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 54/62] mei: me: add Lynx Point Wellsburg work station device id Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 56/62] n_tty: Fix missing newline echo Greg Kroah-Hartman
` (9 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Tomas Winkler
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tomas Winkler <tomas.winkler@intel.com>
commit 76a9635979e543f04a5885198e68ff28e3311b67 upstream.
And Lynx Point H Refresh and Wildcat Point LP
device ids.
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/misc/mei/hw-me-regs.h | 5 ++++-
drivers/misc/mei/pci-me.c | 4 +++-
2 files changed, 7 insertions(+), 2 deletions(-)
--- a/drivers/misc/mei/hw-me-regs.h
+++ b/drivers/misc/mei/hw-me-regs.h
@@ -109,9 +109,12 @@
#define MEI_DEV_ID_PPT_2 0x1CBA /* Panther Point */
#define MEI_DEV_ID_PPT_3 0x1DBA /* Panther Point */
-#define MEI_DEV_ID_LPT 0x8C3A /* Lynx Point */
+#define MEI_DEV_ID_LPT_H 0x8C3A /* Lynx Point H */
#define MEI_DEV_ID_LPT_W 0x8D3A /* Lynx Point - Wellsburg */
#define MEI_DEV_ID_LPT_LP 0x9C3A /* Lynx Point LP */
+#define MEI_DEV_ID_LPT_HR 0x8CBA /* Lynx Point H Refresh */
+
+#define MEI_DEV_ID_WPT_LP 0x9CBA /* Wildcat Point LP */
/*
* MEI HW Section
*/
--- a/drivers/misc/mei/pci-me.c
+++ b/drivers/misc/mei/pci-me.c
@@ -76,9 +76,11 @@ static DEFINE_PCI_DEVICE_TABLE(mei_me_pc
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_PPT_1)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_PPT_2)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_PPT_3)},
- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT)},
+ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT_H)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT_W)},
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT_LP)},
+ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_LPT_HR)},
+ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_WPT_LP)},
/* required last entry */
{0, }
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 56/62] n_tty: Fix missing newline echo
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (54 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 55/62] mei: add 9 series PCH mei device ids Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 57/62] USB: pl2303: fixed handling of CS5 setting Greg Kroah-Hartman
` (8 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Jason Gunthorpe, Peter Hurley
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Peter Hurley <peter@hurleysoftware.com>
commit 39434abd942c8e4b9c14c06a03b3245beaf8467f upstream.
When L_ECHONL is on, newlines are echoed regardless of the L_ECHO
state; if set, ensure accumulated echoes are flushed before finishing
the current input processing and before more output.
Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com
Tested-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/tty/n_tty.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
@@ -810,7 +810,8 @@ static void process_echoes(struct tty_st
struct n_tty_data *ldata = tty->disc_data;
size_t echoed;
- if (!L_ECHO(tty) || ldata->echo_commit == ldata->echo_tail)
+ if ((!L_ECHO(tty) && !L_ECHONL(tty)) ||
+ ldata->echo_commit == ldata->echo_tail)
return;
mutex_lock(&ldata->output_lock);
@@ -825,7 +826,8 @@ static void flush_echoes(struct tty_stru
{
struct n_tty_data *ldata = tty->disc_data;
- if (!L_ECHO(tty) || ldata->echo_commit == ldata->echo_head)
+ if ((!L_ECHO(tty) && !L_ECHONL(tty)) ||
+ ldata->echo_commit == ldata->echo_head)
return;
mutex_lock(&ldata->output_lock);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 57/62] USB: pl2303: fixed handling of CS5 setting
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (55 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 56/62] n_tty: Fix missing newline echo Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 58/62] USB: ftdi_sio: fixed handling of unsupported CSIZE setting Greg Kroah-Hartman
` (7 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Colin Leitner, Johan Hovold
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Colin Leitner <colin.leitner@googlemail.com>
commit a313249937820f8b1996133fc285efbd6aad2c5b upstream.
This patch fixes the CS5 setting on the PL2303 USB-to-serial devices. CS5 has a
value of 0 and the CSIZE setting has been skipped altogether by the enclosing
if. Tested on 3.11.6 and the scope shows the correct output after the fix has
been applied.
Tagged to be added to stable, because it fixes a user visible driver bug and is
simple enough to backport easily.
Signed-off-by: Colin Leitner <colin.leitner@gmail.com>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/serial/pl2303.c | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -361,23 +361,21 @@ static void pl2303_set_termios(struct tt
0, 0, buf, 7, 100);
dev_dbg(&port->dev, "0xa1:0x21:0:0 %d - %7ph\n", i, buf);
- if (C_CSIZE(tty)) {
- switch (C_CSIZE(tty)) {
- case CS5:
- buf[6] = 5;
- break;
- case CS6:
- buf[6] = 6;
- break;
- case CS7:
- buf[6] = 7;
- break;
- default:
- case CS8:
- buf[6] = 8;
- }
- dev_dbg(&port->dev, "data bits = %d\n", buf[6]);
+ switch (C_CSIZE(tty)) {
+ case CS5:
+ buf[6] = 5;
+ break;
+ case CS6:
+ buf[6] = 6;
+ break;
+ case CS7:
+ buf[6] = 7;
+ break;
+ default:
+ case CS8:
+ buf[6] = 8;
}
+ dev_dbg(&port->dev, "data bits = %d\n", buf[6]);
/* For reference buf[0]:buf[3] baud rate value */
pl2303_encode_baudrate(tty, port, &buf[0]);
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 58/62] USB: ftdi_sio: fixed handling of unsupported CSIZE setting
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (56 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 57/62] USB: pl2303: fixed handling of CS5 setting Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 59/62] USB: mos7840: correct handling of CS5 setting Greg Kroah-Hartman
` (6 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Colin Leitner, Johan Hovold
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Colin Leitner <colin.leitner@googlemail.com>
commit 8704211f65a2106ba01b6ac9727cdaf9ca11594c upstream.
FTDI UARTs support only 7 or 8 data bits. Until now the ftdi_sio driver would
only report this limitation for CS6 to dmesg and fail to reflect this fact to
tcgetattr.
This patch reverts the unsupported CSIZE setting and reports the fact with less
severance to dmesg for both CS5 and CS6.
To test the patch it's sufficient to call
stty -F /dev/ttyUSB0 cs5
which will succeed without the patch and report an error with the patch
applied.
As an additional fix this patch ensures that the control request will always
include a data bit size.
Signed-off-by: Colin Leitner <colin.leitner@gmail.com>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/serial/ftdi_sio.c | 37 ++++++++++++++++++++++++-------------
1 file changed, 24 insertions(+), 13 deletions(-)
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -2115,6 +2115,20 @@ static void ftdi_set_termios(struct tty_
termios->c_cflag |= CRTSCTS;
}
+ /*
+ * All FTDI UART chips are limited to CS7/8. We won't pretend to
+ * support CS5/6 and revert the CSIZE setting instead.
+ */
+ if ((C_CSIZE(tty) != CS8) && (C_CSIZE(tty) != CS7)) {
+ dev_warn(ddev, "requested CSIZE setting not supported\n");
+
+ termios->c_cflag &= ~CSIZE;
+ if (old_termios)
+ termios->c_cflag |= old_termios->c_cflag & CSIZE;
+ else
+ termios->c_cflag |= CS8;
+ }
+
cflag = termios->c_cflag;
if (!old_termios)
@@ -2151,19 +2165,16 @@ no_skip:
} else {
urb_value |= FTDI_SIO_SET_DATA_PARITY_NONE;
}
- if (cflag & CSIZE) {
- switch (cflag & CSIZE) {
- case CS7:
- urb_value |= 7;
- dev_dbg(ddev, "Setting CS7\n");
- break;
- case CS8:
- urb_value |= 8;
- dev_dbg(ddev, "Setting CS8\n");
- break;
- default:
- dev_err(ddev, "CSIZE was set but not CS7-CS8\n");
- }
+ switch (cflag & CSIZE) {
+ case CS7:
+ urb_value |= 7;
+ dev_dbg(ddev, "Setting CS7\n");
+ break;
+ default:
+ case CS8:
+ urb_value |= 8;
+ dev_dbg(ddev, "Setting CS8\n");
+ break;
}
/* This is needed by the break command since it uses the same command
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 59/62] USB: mos7840: correct handling of CS5 setting
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (57 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 58/62] USB: ftdi_sio: fixed handling of unsupported CSIZE setting Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 60/62] USB: spcp8x5: " Greg Kroah-Hartman
` (5 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Colin Leitner, Johan Hovold
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Colin Leitner <colin.leitner@googlemail.com>
commit 78692cc3382e0603a47e1f2aaeffe0d99891994d upstream.
This patch removes an erroneous check of CSIZE, which made it impossible to set
CS5.
Compiles clean, but couldn't test against hardware.
Signed-off-by: Colin Leitner <colin.leitner@gmail.com>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/serial/mos7840.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
@@ -1813,25 +1813,25 @@ static void mos7840_change_port_settings
iflag = tty->termios.c_iflag;
/* Change the number of bits */
- if (cflag & CSIZE) {
- switch (cflag & CSIZE) {
- case CS5:
- lData = LCR_BITS_5;
- break;
+ switch (cflag & CSIZE) {
+ case CS5:
+ lData = LCR_BITS_5;
+ break;
- case CS6:
- lData = LCR_BITS_6;
- break;
+ case CS6:
+ lData = LCR_BITS_6;
+ break;
- case CS7:
- lData = LCR_BITS_7;
- break;
- default:
- case CS8:
- lData = LCR_BITS_8;
- break;
- }
+ case CS7:
+ lData = LCR_BITS_7;
+ break;
+
+ default:
+ case CS8:
+ lData = LCR_BITS_8;
+ break;
}
+
/* Change the Parity bit */
if (cflag & PARENB) {
if (cflag & PARODD) {
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 60/62] USB: spcp8x5: correct handling of CS5 setting
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (58 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 59/62] USB: mos7840: correct handling of CS5 setting Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 61/62] USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem Greg Kroah-Hartman
` (4 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Colin Leitner, Johan Hovold
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Colin Leitner <colin.leitner@googlemail.com>
commit 711fbdfbf2bc4827214a650afe3f64767a1aba16 upstream.
This patch removes an erroneous check of CSIZE, which made it impossible to set
CS5.
Compiles clean, but couldn't test against hardware.
Signed-off-by: Colin Leitner <colin.leitner@gmail.com>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/serial/spcp8x5.c | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
--- a/drivers/usb/serial/spcp8x5.c
+++ b/drivers/usb/serial/spcp8x5.c
@@ -348,22 +348,20 @@ static void spcp8x5_set_termios(struct t
}
/* Set Data Length : 00:5bit, 01:6bit, 10:7bit, 11:8bit */
- if (cflag & CSIZE) {
- switch (cflag & CSIZE) {
- case CS5:
- buf[1] |= SET_UART_FORMAT_SIZE_5;
- break;
- case CS6:
- buf[1] |= SET_UART_FORMAT_SIZE_6;
- break;
- case CS7:
- buf[1] |= SET_UART_FORMAT_SIZE_7;
- break;
- default:
- case CS8:
- buf[1] |= SET_UART_FORMAT_SIZE_8;
- break;
- }
+ switch (cflag & CSIZE) {
+ case CS5:
+ buf[1] |= SET_UART_FORMAT_SIZE_5;
+ break;
+ case CS6:
+ buf[1] |= SET_UART_FORMAT_SIZE_6;
+ break;
+ case CS7:
+ buf[1] |= SET_UART_FORMAT_SIZE_7;
+ break;
+ default:
+ case CS8:
+ buf[1] |= SET_UART_FORMAT_SIZE_8;
+ break;
}
/* Set Stop bit2 : 0:1bit 1:2bit */
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 61/62] USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (59 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 60/62] USB: spcp8x5: " Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 8:01 ` [PATCH 3.12 62/62] drivers/char/i8k.c: add Dell XPLS L421X Greg Kroah-Hartman
` (3 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, David Cluytens
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Cluytens <david.cluytens@gmail.com>
commit 3b59d16c513da258ec8f6a0b4db85f257a0380d6 upstream.
Signed-off-by: David Cluytens <david.cluytens@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/class/cdc-acm.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1515,6 +1515,8 @@ static int acm_reset_resume(struct usb_i
static const struct usb_device_id acm_ids[] = {
/* quirky and broken devices */
+ { USB_DEVICE(0x17ef, 0x7000), /* Lenovo USB modem */
+ .driver_info = NO_UNION_NORMAL, },/* has no union descriptor */
{ USB_DEVICE(0x0870, 0x0001), /* Metricom GS Modem */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
^ permalink raw reply [flat|nested] 75+ messages in thread* [PATCH 3.12 62/62] drivers/char/i8k.c: add Dell XPLS L421X
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (60 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 61/62] USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem Greg Kroah-Hartman
@ 2013-12-10 8:01 ` Greg Kroah-Hartman
2013-12-10 17:04 ` [PATCH 3.12 00/62] 3.12.5-stable review Guenter Roeck
` (2 subsequent siblings)
64 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-10 8:01 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Alan Cox, Leho Kraav, Andrew Morton
3.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alan Cox <alan@linux.intel.com>
commit 9aa5b0181bdf335f0b731d8502e128a862884bcd upstream.
Addresses https://bugzilla.kernel.org/show_bug.cgi?id=60772
Signed-off-by: Alan Cox <alan@linux.intel.com>
Reported-by: Leho Kraav <leho@kraav.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/char/i8k.c | 7 +++++++
1 file changed, 7 insertions(+)
--- a/drivers/char/i8k.c
+++ b/drivers/char/i8k.c
@@ -664,6 +664,13 @@ static struct dmi_system_id __initdata i
DMI_MATCH(DMI_PRODUCT_NAME, "Vostro"),
},
},
+ {
+ .ident = "Dell XPS421",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "XPS L421X"),
+ },
+ },
{ }
};
^ permalink raw reply [flat|nested] 75+ messages in thread* Re: [PATCH 3.12 00/62] 3.12.5-stable review
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (61 preceding siblings ...)
2013-12-10 8:01 ` [PATCH 3.12 62/62] drivers/char/i8k.c: add Dell XPLS L421X Greg Kroah-Hartman
@ 2013-12-10 17:04 ` Guenter Roeck
2013-12-11 1:17 ` Greg Kroah-Hartman
2013-12-11 1:49 ` Shuah Khan
2013-12-11 21:26 ` Satoru Takeuchi
64 siblings, 1 reply; 75+ messages in thread
From: Guenter Roeck @ 2013-12-10 17:04 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-kernel, torvalds, akpm, stable
On Tue, Dec 10, 2013 at 12:00:31AM -0800, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.12.5 release.
> There are 62 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu Dec 12 08:00:42 UTC 2013.
> Anything received after that time might be too late.
>
Build results:
total: 110 pass: 107 skipped: 3 fail: 0
qemu tests all passed.
Results are as expected.
Details are available as usual at http://server.roeck-us.net:8010/builders.
Guenter
^ permalink raw reply [flat|nested] 75+ messages in thread* Re: [PATCH 3.12 00/62] 3.12.5-stable review
2013-12-10 17:04 ` [PATCH 3.12 00/62] 3.12.5-stable review Guenter Roeck
@ 2013-12-11 1:17 ` Greg Kroah-Hartman
0 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-11 1:17 UTC (permalink / raw)
To: Guenter Roeck; +Cc: linux-kernel, torvalds, akpm, stable
On Tue, Dec 10, 2013 at 09:04:49AM -0800, Guenter Roeck wrote:
> On Tue, Dec 10, 2013 at 12:00:31AM -0800, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 3.12.5 release.
> > There are 62 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu Dec 12 08:00:42 UTC 2013.
> > Anything received after that time might be too late.
> >
> Build results:
> total: 110 pass: 107 skipped: 3 fail: 0
>
> qemu tests all passed.
>
> Results are as expected.
> Details are available as usual at http://server.roeck-us.net:8010/builders.
Thanks for testing and letting me know.
greg k-h
^ permalink raw reply [flat|nested] 75+ messages in thread
* Re: [PATCH 3.12 00/62] 3.12.5-stable review
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (62 preceding siblings ...)
2013-12-10 17:04 ` [PATCH 3.12 00/62] 3.12.5-stable review Guenter Roeck
@ 2013-12-11 1:49 ` Shuah Khan
2013-12-11 2:00 ` Greg Kroah-Hartman
2013-12-11 21:26 ` Satoru Takeuchi
64 siblings, 1 reply; 75+ messages in thread
From: Shuah Khan @ 2013-12-11 1:49 UTC (permalink / raw)
To: Greg Kroah-Hartman, linux-kernel
Cc: torvalds, akpm, stable, Shuah Khan, shuahkhan@gmail.com
On 12/10/2013 01:00 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.12.5 release.
> There are 62 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu Dec 12 08:00:42 UTC 2013.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.12.5-rc1.gz
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
Patch applied cleanly
Compile testing - passed
Boot testing - passed
dmesg regression testing - passed
dmesgs look good. No regressions compared to the previous dmesgs for
this release. dmesg emerg, crit, alert, err are clean. No regressions in
warn.
Test systems
Samsung Series 9 900X4C Intel Corei5 (3.4 and later)
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics
Dell OptiPlex 790 Intel(R) Core(TM) i5-2400
-- Shuah
--
Shuah Khan
Senior Linux Kernel Developer - Open Source Group
Samsung Research America(Silicon Valley)
shuah.kh@samsung.com | (970) 672-0658
^ permalink raw reply [flat|nested] 75+ messages in thread* Re: [PATCH 3.12 00/62] 3.12.5-stable review
2013-12-11 1:49 ` Shuah Khan
@ 2013-12-11 2:00 ` Greg Kroah-Hartman
0 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-11 2:00 UTC (permalink / raw)
To: Shuah Khan; +Cc: linux-kernel, torvalds, akpm, stable, shuahkhan@gmail.com
On Tue, Dec 10, 2013 at 06:49:31PM -0700, Shuah Khan wrote:
> On 12/10/2013 01:00 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 3.12.5 release.
> > There are 62 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu Dec 12 08:00:42 UTC 2013.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.12.5-rc1.gz
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
>
> Patch applied cleanly
> Compile testing - passed
> Boot testing - passed
> dmesg regression testing - passed
>
> dmesgs look good. No regressions compared to the previous dmesgs for
> this release. dmesg emerg, crit, alert, err are clean. No regressions in
> warn.
>
> Test systems
>
> Samsung Series 9 900X4C Intel Corei5 (3.4 and later)
> HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics
> Dell OptiPlex 790 Intel(R) Core(TM) i5-2400
Thanks for testing all 3 and letting me know all is good.
greg k-h
^ permalink raw reply [flat|nested] 75+ messages in thread
* Re: [PATCH 3.12 00/62] 3.12.5-stable review
2013-12-10 8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
` (63 preceding siblings ...)
2013-12-11 1:49 ` Shuah Khan
@ 2013-12-11 21:26 ` Satoru Takeuchi
2013-12-11 23:31 ` Greg Kroah-Hartman
64 siblings, 1 reply; 75+ messages in thread
From: Satoru Takeuchi @ 2013-12-11 21:26 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-kernel, torvalds, akpm, stable
At Tue, 10 Dec 2013 00:00:31 -0800,
Greg Kroah-Hartman wrote:
>
> This is the start of the stable review cycle for the 3.12.5 release.
> There are 62 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu Dec 12 08:00:42 UTC 2013.
> Anything received after that time might be too late.
This kernel can be built and boot without any problem.
Building a kernel with this kernel also works fine.
- test tool:
https://github.com/satoru-takeuchi/test-linux-stable
- test results(kernel .config, ktest config and test log):
http://satoru-takeuchi.org/test-linux-stable/results/3.12.5-rc1-2013-12-12_00:24:11+09:00
- Build Machine: debian jessy x86_64
CPU: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz x 4
memory: 8GB
- Test machine: debian jessy x86_64(KVM guest on the Build Machine)
vCPU: x2
memory: 2GB
I reviewed the following patches and it looks good to me.
...
> Tom Gundersen <teg@jklm.no>
> Input: mousedev - allow disabling even without CONFIG_EXPERT
>
> Tom Gundersen <teg@jklm.no>
> Input: allow deselecting serio drivers even without CONFIG_EXPERT
...
> H. Peter Anvin <hpa@linux.intel.com>
> x86-64, build: Always pass in -mno-sse
...
> Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> cpuidle: Check for dev before deregistering it.
Thanks,
Satoru
^ permalink raw reply [flat|nested] 75+ messages in thread* Re: [PATCH 3.12 00/62] 3.12.5-stable review
2013-12-11 21:26 ` Satoru Takeuchi
@ 2013-12-11 23:31 ` Greg Kroah-Hartman
0 siblings, 0 replies; 75+ messages in thread
From: Greg Kroah-Hartman @ 2013-12-11 23:31 UTC (permalink / raw)
To: Satoru Takeuchi; +Cc: linux-kernel, torvalds, akpm, stable
On Thu, Dec 12, 2013 at 06:26:31AM +0900, Satoru Takeuchi wrote:
> At Tue, 10 Dec 2013 00:00:31 -0800,
> Greg Kroah-Hartman wrote:
> >
> > This is the start of the stable review cycle for the 3.12.5 release.
> > There are 62 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu Dec 12 08:00:42 UTC 2013.
> > Anything received after that time might be too late.
>
> This kernel can be built and boot without any problem.
> Building a kernel with this kernel also works fine.
Thanks for doing this for all 3 kernels and letting me know.
greg k-h
^ permalink raw reply [flat|nested] 75+ messages in thread