From: Greg Kroah-Hartman Date: Thu, 29 Nov 2012 21:43:44 +0000 (-0800) Subject: 3.0-stable patches X-Git-Tag: v3.6.9~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=19fc68186067b573127c04e947a1261ab4921ef7;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches added patches: ixgbe-add-support-for-x540-at1.patch sata_svw-check-dma-start-bit-before-reset.patch --- diff --git a/queue-3.0/ixgbe-add-support-for-x540-at1.patch b/queue-3.0/ixgbe-add-support-for-x540-at1.patch new file mode 100644 index 00000000000..f32c74c4af4 --- /dev/null +++ b/queue-3.0/ixgbe-add-support-for-x540-at1.patch @@ -0,0 +1,55 @@ +From df376f0de167754da9b3ece4afdb5bb8bf3fbf3e Mon Sep 17 00:00:00 2001 +From: "joshua.a.hay@intel.com" +Date: Fri, 21 Sep 2012 00:08:21 +0000 +Subject: ixgbe: add support for X540-AT1 + +From: "joshua.a.hay@intel.com" + +commit df376f0de167754da9b3ece4afdb5bb8bf3fbf3e upstream. + +This patch adds device support for Ethernet Controller X540-AT1. + +Signed-off-by: Josh Hay +Tested-by: Phil Schmitt +Signed-off-by: Jeff Kirsher +Signed-off-by: Abdallah Chatila +Signed-off-by: Greg Kroah-Hartman + + +--- + drivers/net/ixgbe/ixgbe_common.c | 1 + + drivers/net/ixgbe/ixgbe_main.c | 2 ++ + drivers/net/ixgbe/ixgbe_type.h | 1 + + 3 files changed, 4 insertions(+) + +--- a/drivers/net/ixgbe/ixgbe_common.c ++++ b/drivers/net/ixgbe/ixgbe_common.c +@@ -3181,6 +3181,7 @@ static s32 ixgbe_device_supports_autoneg + + switch (hw->device_id) { + case IXGBE_DEV_ID_X540T: ++ case IXGBE_DEV_ID_X540T1: + return 0; + case IXGBE_DEV_ID_82599_T3_LOM: + return 0; +--- a/drivers/net/ixgbe/ixgbe_main.c ++++ b/drivers/net/ixgbe/ixgbe_main.c +@@ -129,6 +129,8 @@ static DEFINE_PCI_DEVICE_TABLE(ixgbe_pci + board_82599 }, + {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_LS), + board_82599 }, ++ {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X540T1), ++ board_X540 }, + + /* required last entry */ + {0, } +--- a/drivers/net/ixgbe/ixgbe_type.h ++++ b/drivers/net/ixgbe/ixgbe_type.h +@@ -64,6 +64,7 @@ + #define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ 0x000C + #define IXGBE_DEV_ID_82599_LS 0x154F + #define IXGBE_DEV_ID_X540T 0x1528 ++#define IXGBE_DEV_ID_X540T1 0x1560 + + /* General Registers */ + #define IXGBE_CTRL 0x00000 diff --git a/queue-3.0/sata_svw-check-dma-start-bit-before-reset.patch b/queue-3.0/sata_svw-check-dma-start-bit-before-reset.patch new file mode 100644 index 00000000000..de9a62b0092 --- /dev/null +++ b/queue-3.0/sata_svw-check-dma-start-bit-before-reset.patch @@ -0,0 +1,85 @@ +From b03e66a6be91f8389fcd902ab6c1563db1c9c06b Mon Sep 17 00:00:00 2001 +From: David Milburn +Date: Mon, 29 Oct 2012 18:00:22 -0500 +Subject: sata_svw: check DMA start bit before reset + +From: David Milburn + +commit b03e66a6be91f8389fcd902ab6c1563db1c9c06b upstream. + +If kdump is triggered with pending IO, controller may not respond causing +kdump to fail. + +http://marc.info/?l=linux-ide&m=133032255424658&w=2 + +During error recovery ata_do_dev_read_id never completes due hang +in mmio_insw. + +ata_do_dev_read_id + ata_sff_data_xfer + ioread16_rep + mmio_insw + +if DMA start bit is cleared before reset, PIO command is successful +and kdump succeeds. + +Signed-off-by: David Milburn +Signed-off-by: Jeff Garzik +Cc: CAI Qian +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/ata/sata_svw.c | 35 +++++++++++++++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +--- a/drivers/ata/sata_svw.c ++++ b/drivers/ata/sata_svw.c +@@ -142,6 +142,39 @@ static int k2_sata_scr_write(struct ata_ + return 0; + } + ++static int k2_sata_softreset(struct ata_link *link, ++ unsigned int *class, unsigned long deadline) ++{ ++ u8 dmactl; ++ void __iomem *mmio = link->ap->ioaddr.bmdma_addr; ++ ++ dmactl = readb(mmio + ATA_DMA_CMD); ++ ++ /* Clear the start bit */ ++ if (dmactl & ATA_DMA_START) { ++ dmactl &= ~ATA_DMA_START; ++ writeb(dmactl, mmio + ATA_DMA_CMD); ++ } ++ ++ return ata_sff_softreset(link, class, deadline); ++} ++ ++static int k2_sata_hardreset(struct ata_link *link, ++ unsigned int *class, unsigned long deadline) ++{ ++ u8 dmactl; ++ void __iomem *mmio = link->ap->ioaddr.bmdma_addr; ++ ++ dmactl = readb(mmio + ATA_DMA_CMD); ++ ++ /* Clear the start bit */ ++ if (dmactl & ATA_DMA_START) { ++ dmactl &= ~ATA_DMA_START; ++ writeb(dmactl, mmio + ATA_DMA_CMD); ++ } ++ ++ return sata_sff_hardreset(link, class, deadline); ++} + + static void k2_sata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf) + { +@@ -346,6 +379,8 @@ static struct scsi_host_template k2_sata + + static struct ata_port_operations k2_sata_ops = { + .inherits = &ata_bmdma_port_ops, ++ .softreset = k2_sata_softreset, ++ .hardreset = k2_sata_hardreset, + .sff_tf_load = k2_sata_tf_load, + .sff_tf_read = k2_sata_tf_read, + .sff_check_status = k2_stat_check_status, diff --git a/queue-3.0/series b/queue-3.0/series index 95e12b89f38..f1d1f805c47 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -24,3 +24,5 @@ alsa-hda-add-new-codec-alc283-alc290-support.patch alsa-hda-fix-missing-beep-on-asus-x43u-notebook.patch alsa-hda-add-support-for-realtek-alc292.patch bas_gigaset-fix-pre_reset-handling.patch +ixgbe-add-support-for-x540-at1.patch +sata_svw-check-dma-start-bit-before-reset.patch