Re: Linux 3.4.28

2013-01-27 Thread Greg KH

diff --git a/Makefile b/Makefile
index f139ce7..8ccebba 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 4
-SUBLEVEL = 27
+SUBLEVEL = 28
 EXTRAVERSION =
 NAME = Saber-toothed Squirrel
 
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index f3decb3..6cba428 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -1018,6 +1018,9 @@ static int acpi_processor_setup_cpuidle_cx(struct 
acpi_processor *pr)
return -EINVAL;
}
 
+   if (!dev)
+   return -EINVAL;
+
dev->cpu = pr->id;
 
if (max_cstate == 0)
@@ -1205,6 +1208,7 @@ int acpi_processor_cst_has_changed(struct acpi_processor 
*pr)
}
 
/* Populate Updated C-state information */
+   acpi_processor_get_power_info(pr);
acpi_processor_setup_cpuidle_states(pr);
 
/* Enable all cpuidle devices */
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 93cbc44..71a4d04 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -53,6 +53,7 @@
 
 enum {
AHCI_PCI_BAR_STA2X11= 0,
+   AHCI_PCI_BAR_ENMOTUS= 2,
AHCI_PCI_BAR_STANDARD   = 5,
 };
 
@@ -405,7 +406,13 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },   /* PDC42819 */
 
/* Asmedia */
-   { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci },   /* ASM1061 */
+   { PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci },   /* ASM1060 */
+   { PCI_VDEVICE(ASMEDIA, 0x0602), board_ahci },   /* ASM1060 */
+   { PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci },   /* ASM1061 */
+   { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci },   /* ASM1062 */
+
+   /* Enmotus */
+   { PCI_DEVICE(0x1c44, 0x8000), board_ahci },
 
/* Generic, PCI class code for AHCI */
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
@@ -1079,9 +1086,11 @@ static int ahci_init_one(struct pci_dev *pdev, const 
struct pci_device_id *ent)
dev_info(>dev,
 "PDC42819 can only drive SATA devices with this 
driver\n");
 
-   /* The Connext uses non-standard BAR */
+   /* Both Connext and Enmotus devices use non-standard BARs */
if (pdev->vendor == PCI_VENDOR_ID_STMICRO && pdev->device == 0xCC06)
ahci_pci_bar = AHCI_PCI_BAR_STA2X11;
+   else if (pdev->vendor == 0x1c44 && pdev->device == 0x8000)
+   ahci_pci_bar = AHCI_PCI_BAR_ENMOTUS;
 
/* acquire resources */
rc = pcim_enable_device(pdev);
diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
index f7f1dc6..ed0e8b7 100644
--- a/drivers/dma/ioat/dma_v3.c
+++ b/drivers/dma/ioat/dma_v3.c
@@ -951,7 +951,7 @@ static int __devinit ioat_xor_val_self_test(struct 
ioatdma_device *device)
goto free_resources;
}
}
-   dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_TO_DEVICE);
+   dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE);
 
/* skip validate if the capability is not present */
if (!dma_has_cap(DMA_XOR_VAL, dma_chan->device->cap_mask))
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index b298158..fd3ae62 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -16,6 +16,7 @@
  */
 static char dmi_empty_string[] = "";
 
+static u16 __initdata dmi_ver;
 /*
  * Catch too early calls to dmi_check_system():
  */
@@ -118,12 +119,12 @@ static int __init dmi_walk_early(void (*decode)(const 
struct dmi_header *,
return 0;
 }
 
-static int __init dmi_checksum(const u8 *buf)
+static int __init dmi_checksum(const u8 *buf, u8 len)
 {
u8 sum = 0;
int a;
 
-   for (a = 0; a < 15; a++)
+   for (a = 0; a < len; a++)
sum += buf[a];
 
return sum == 0;
@@ -161,8 +162,10 @@ static void __init dmi_save_uuid(const struct dmi_header 
*dm, int slot, int inde
return;
 
for (i = 0; i < 16 && (is_ff || is_00); i++) {
-   if(d[i] != 0x00) is_ff = 0;
-   if(d[i] != 0xFF) is_00 = 0;
+   if (d[i] != 0x00)
+   is_00 = 0;
+   if (d[i] != 0xFF)
+   is_ff = 0;
}
 
if (is_ff || is_00)
@@ -172,7 +175,15 @@ static void __init dmi_save_uuid(const struct dmi_header 
*dm, int slot, int inde
if (!s)
return;
 
-   sprintf(s, "%pUB", d);
+   /*
+* As of version 2.6 of the SMBIOS specification, the first 3 fields of
+* the UUID are supposed to be little-endian encoded.  The specification
+* says that this is the defacto standard.
+*/
+   if (dmi_ver >= 0x0206)
+   sprintf(s, "%pUL", d);
+   else
+   sprintf(s, "%pUB", d);
 
 dmi_ident[slot] = s;
 }
@@ -404,29 +415,57 @@ static int 

Linux 3.4.28

2013-01-27 Thread Greg KH
I'm announcing the release of the 3.4.28 kernel.

All users of the 3.4 kernel series must upgrade.

The updated 3.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 
linux-3.4.y
and can be browsed at the normal kernel.org git web browser:

http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h



 Makefile   |2 
 drivers/acpi/processor_idle.c  |4 +
 drivers/ata/ahci.c |   13 
 drivers/dma/ioat/dma_v3.c  |2 
 drivers/firmware/dmi_scan.c|   78 ++---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c |   21 +++
 drivers/gpu/drm/i915/i915_reg.h|3 +
 drivers/gpu/drm/i915/intel_display.c   |4 +
 drivers/pci/hotplug/pciehp.h   |2 
 drivers/pci/hotplug/pciehp_core.c  |   11 
 drivers/pci/hotplug/pciehp_ctrl.c  |8 +-
 drivers/pci/hotplug/pciehp_hpc.c   |   11 +++-
 drivers/pci/hotplug/shpchp.h   |1 
 drivers/pci/hotplug/shpchp_core.c  |   10 ---
 drivers/pci/hotplug/shpchp_ctrl.c  |2 
 drivers/pci/pcie/aer/aerdrv_core.c |1 
 drivers/pci/pcie/aspm.c|3 +
 drivers/scsi/sd.c  |   13 ++--
 drivers/usb/dwc3/gadget.c  |1 
 drivers/usb/host/uhci-hcd.c|   15 +++--
 include/linux/sched.h  |   11 +++-
 kernel/ptrace.c|   72 +-
 kernel/sched/core.c|3 -
 kernel/signal.c|   19 +++
 kernel/trace/ftrace.c  |2 
 security/integrity/evm/evm_crypto.c|4 -
 sound/usb/endpoint.c   |6 --
 27 files changed, 230 insertions(+), 92 deletions(-)

Alan Cox (1):
  ahci: Add identifiers for ASM106x devices

Alan Stern (1):
  USB: UHCI: fix IRQ race during initialization

Betty Dall (1):
  PCI/AER: pci_get_domain_bus_and_slot() call missing required pci_dev_put()

Bjorn Helgaas (1):
  PCI: shpchp: Handle push button event asynchronously

Chris Wilson (1):
  drm/i915: Invalidate the relocation presumed_offsets along the slow path

Colin Ian King (1):
  PCI: Allow pcie_aspm=force even when FADT indicates it is unsupported

Daniel Vetter (1):
  drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled

Dmitry Kasatkin (1):
  evm: checking if removexattr is not a NULL

Greg Kroah-Hartman (1):
  Linux 3.4.28

Hugh Daschbach (1):
  libata: ahci: Add support for Enmotus Bobcat device.

Joel D. Diaz (1):
  SCSI: sd: Reshuffle init_sd to avoid crash

Konrad Rzeszutek Wilk (1):
  ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled

Oleg Nesterov (3):
  ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
  ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL
  wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED 
task

Pratyush Anand (1):
  usb: dwc3: gadget: fix ep->maxburst for ep0

Shuah Khan (1):
  ioat: Fix DMA memory sync direction correct flag

Steven Rostedt (1):
  ftrace: Be first to run code modification on modules

Takashi Iwai (1):
  ALSA: usb-audio: Fix regression by disconnection-race-fix patch

Thomas Schlichter (1):
  ACPI / processor: Get power info before updating the C-states

Yijing Wang (1):
  PCI: pciehp: Use per-slot workqueues to avoid deadlock

Zhenzhong Duan (2):
  drivers/firmware/dmi_scan.c: check dmi version when get system uuid
  drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists



pgp9ubvDp801g.pgp
Description: PGP signature


Linux 3.4.28

2013-01-27 Thread Greg KH
I'm announcing the release of the 3.4.28 kernel.

All users of the 3.4 kernel series must upgrade.

The updated 3.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 
linux-3.4.y
and can be browsed at the normal kernel.org git web browser:

http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h



 Makefile   |2 
 drivers/acpi/processor_idle.c  |4 +
 drivers/ata/ahci.c |   13 
 drivers/dma/ioat/dma_v3.c  |2 
 drivers/firmware/dmi_scan.c|   78 ++---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c |   21 +++
 drivers/gpu/drm/i915/i915_reg.h|3 +
 drivers/gpu/drm/i915/intel_display.c   |4 +
 drivers/pci/hotplug/pciehp.h   |2 
 drivers/pci/hotplug/pciehp_core.c  |   11 
 drivers/pci/hotplug/pciehp_ctrl.c  |8 +-
 drivers/pci/hotplug/pciehp_hpc.c   |   11 +++-
 drivers/pci/hotplug/shpchp.h   |1 
 drivers/pci/hotplug/shpchp_core.c  |   10 ---
 drivers/pci/hotplug/shpchp_ctrl.c  |2 
 drivers/pci/pcie/aer/aerdrv_core.c |1 
 drivers/pci/pcie/aspm.c|3 +
 drivers/scsi/sd.c  |   13 ++--
 drivers/usb/dwc3/gadget.c  |1 
 drivers/usb/host/uhci-hcd.c|   15 +++--
 include/linux/sched.h  |   11 +++-
 kernel/ptrace.c|   72 +-
 kernel/sched/core.c|3 -
 kernel/signal.c|   19 +++
 kernel/trace/ftrace.c  |2 
 security/integrity/evm/evm_crypto.c|4 -
 sound/usb/endpoint.c   |6 --
 27 files changed, 230 insertions(+), 92 deletions(-)

Alan Cox (1):
  ahci: Add identifiers for ASM106x devices

Alan Stern (1):
  USB: UHCI: fix IRQ race during initialization

Betty Dall (1):
  PCI/AER: pci_get_domain_bus_and_slot() call missing required pci_dev_put()

Bjorn Helgaas (1):
  PCI: shpchp: Handle push button event asynchronously

Chris Wilson (1):
  drm/i915: Invalidate the relocation presumed_offsets along the slow path

Colin Ian King (1):
  PCI: Allow pcie_aspm=force even when FADT indicates it is unsupported

Daniel Vetter (1):
  drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled

Dmitry Kasatkin (1):
  evm: checking if removexattr is not a NULL

Greg Kroah-Hartman (1):
  Linux 3.4.28

Hugh Daschbach (1):
  libata: ahci: Add support for Enmotus Bobcat device.

Joel D. Diaz (1):
  SCSI: sd: Reshuffle init_sd to avoid crash

Konrad Rzeszutek Wilk (1):
  ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled

Oleg Nesterov (3):
  ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
  ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL
  wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED 
task

Pratyush Anand (1):
  usb: dwc3: gadget: fix ep-maxburst for ep0

Shuah Khan (1):
  ioat: Fix DMA memory sync direction correct flag

Steven Rostedt (1):
  ftrace: Be first to run code modification on modules

Takashi Iwai (1):
  ALSA: usb-audio: Fix regression by disconnection-race-fix patch

Thomas Schlichter (1):
  ACPI / processor: Get power info before updating the C-states

Yijing Wang (1):
  PCI: pciehp: Use per-slot workqueues to avoid deadlock

Zhenzhong Duan (2):
  drivers/firmware/dmi_scan.c: check dmi version when get system uuid
  drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists



pgp9ubvDp801g.pgp
Description: PGP signature


Re: Linux 3.4.28

2013-01-27 Thread Greg KH

diff --git a/Makefile b/Makefile
index f139ce7..8ccebba 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 4
-SUBLEVEL = 27
+SUBLEVEL = 28
 EXTRAVERSION =
 NAME = Saber-toothed Squirrel
 
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index f3decb3..6cba428 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -1018,6 +1018,9 @@ static int acpi_processor_setup_cpuidle_cx(struct 
acpi_processor *pr)
return -EINVAL;
}
 
+   if (!dev)
+   return -EINVAL;
+
dev-cpu = pr-id;
 
if (max_cstate == 0)
@@ -1205,6 +1208,7 @@ int acpi_processor_cst_has_changed(struct acpi_processor 
*pr)
}
 
/* Populate Updated C-state information */
+   acpi_processor_get_power_info(pr);
acpi_processor_setup_cpuidle_states(pr);
 
/* Enable all cpuidle devices */
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 93cbc44..71a4d04 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -53,6 +53,7 @@
 
 enum {
AHCI_PCI_BAR_STA2X11= 0,
+   AHCI_PCI_BAR_ENMOTUS= 2,
AHCI_PCI_BAR_STANDARD   = 5,
 };
 
@@ -405,7 +406,13 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },   /* PDC42819 */
 
/* Asmedia */
-   { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci },   /* ASM1061 */
+   { PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci },   /* ASM1060 */
+   { PCI_VDEVICE(ASMEDIA, 0x0602), board_ahci },   /* ASM1060 */
+   { PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci },   /* ASM1061 */
+   { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci },   /* ASM1062 */
+
+   /* Enmotus */
+   { PCI_DEVICE(0x1c44, 0x8000), board_ahci },
 
/* Generic, PCI class code for AHCI */
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
@@ -1079,9 +1086,11 @@ static int ahci_init_one(struct pci_dev *pdev, const 
struct pci_device_id *ent)
dev_info(pdev-dev,
 PDC42819 can only drive SATA devices with this 
driver\n);
 
-   /* The Connext uses non-standard BAR */
+   /* Both Connext and Enmotus devices use non-standard BARs */
if (pdev-vendor == PCI_VENDOR_ID_STMICRO  pdev-device == 0xCC06)
ahci_pci_bar = AHCI_PCI_BAR_STA2X11;
+   else if (pdev-vendor == 0x1c44  pdev-device == 0x8000)
+   ahci_pci_bar = AHCI_PCI_BAR_ENMOTUS;
 
/* acquire resources */
rc = pcim_enable_device(pdev);
diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
index f7f1dc6..ed0e8b7 100644
--- a/drivers/dma/ioat/dma_v3.c
+++ b/drivers/dma/ioat/dma_v3.c
@@ -951,7 +951,7 @@ static int __devinit ioat_xor_val_self_test(struct 
ioatdma_device *device)
goto free_resources;
}
}
-   dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_TO_DEVICE);
+   dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE);
 
/* skip validate if the capability is not present */
if (!dma_has_cap(DMA_XOR_VAL, dma_chan-device-cap_mask))
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index b298158..fd3ae62 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -16,6 +16,7 @@
  */
 static char dmi_empty_string[] = ;
 
+static u16 __initdata dmi_ver;
 /*
  * Catch too early calls to dmi_check_system():
  */
@@ -118,12 +119,12 @@ static int __init dmi_walk_early(void (*decode)(const 
struct dmi_header *,
return 0;
 }
 
-static int __init dmi_checksum(const u8 *buf)
+static int __init dmi_checksum(const u8 *buf, u8 len)
 {
u8 sum = 0;
int a;
 
-   for (a = 0; a  15; a++)
+   for (a = 0; a  len; a++)
sum += buf[a];
 
return sum == 0;
@@ -161,8 +162,10 @@ static void __init dmi_save_uuid(const struct dmi_header 
*dm, int slot, int inde
return;
 
for (i = 0; i  16  (is_ff || is_00); i++) {
-   if(d[i] != 0x00) is_ff = 0;
-   if(d[i] != 0xFF) is_00 = 0;
+   if (d[i] != 0x00)
+   is_00 = 0;
+   if (d[i] != 0xFF)
+   is_ff = 0;
}
 
if (is_ff || is_00)
@@ -172,7 +175,15 @@ static void __init dmi_save_uuid(const struct dmi_header 
*dm, int slot, int inde
if (!s)
return;
 
-   sprintf(s, %pUB, d);
+   /*
+* As of version 2.6 of the SMBIOS specification, the first 3 fields of
+* the UUID are supposed to be little-endian encoded.  The specification
+* says that this is the defacto standard.
+*/
+   if (dmi_ver = 0x0206)
+   sprintf(s, %pUL, d);
+   else
+   sprintf(s, %pUB, d);
 
 dmi_ident[slot] = s;
 }
@@ -404,29 +415,57 @@ static int __init dmi_present(const char