diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2010-10-20 02:44:47 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2010-10-20 02:44:47 +0000 |
commit | 319bebfe4847126efd4a62958a94a959e38e8e28 (patch) | |
tree | 3bf242388faad855b03b675286c5ad2cad15f9bd | |
parent | fffabd6a8f96141c20c40696b9efe049051341ac (diff) | |
download | linux-libre-raptor-319bebfe4847126efd4a62958a94a959e38e8e28.tar.gz linux-libre-raptor-319bebfe4847126efd4a62958a94a959e38e8e28.zip |
2.6.34.7-61.fc13
11 files changed, 751 insertions, 2 deletions
diff --git a/freed-ora/current/f13/dmar-disable-when-ricoh-multifunction.patch b/freed-ora/current/f13/dmar-disable-when-ricoh-multifunction.patch new file mode 100644 index 000000000..e0bbf3020 --- /dev/null +++ b/freed-ora/current/f13/dmar-disable-when-ricoh-multifunction.patch @@ -0,0 +1,35 @@ +From 8d2f6746f7f82e1aee2dc40a937b5954cfc73414 Mon Sep 17 00:00:00 2001 +From: Kyle McMartin <kyle@mcmartin.ca> +Date: Sun, 17 Oct 2010 15:55:32 -0400 +Subject: [PATCH] dmar: disable if ricoh multifunction detected + +--- + drivers/pci/intel-iommu.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c +index 8e499e8..076c5de 100644 +--- a/drivers/pci/intel-iommu.c ++++ b/drivers/pci/intel-iommu.c +@@ -3755,6 +3755,18 @@ static void __devinit quirk_iommu_rwbf(struct pci_dev *dev) + + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf); + ++/* https://bugzilla.redhat.com/show_bug.cgi?id=605888 */ ++static void __devinit quirk_ricoh_multifunction(struct pci_dev *dev) ++{ ++ printk(KERN_INFO "intel_iommu: broken Ricoh device %04X detected, disabling...\n", ++ dev->device); ++ dmar_disabled = 1; ++} ++DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe822, quirk_ricoh_multifunction); ++DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe230, quirk_ricoh_multifunction); ++DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe832, quirk_ricoh_multifunction); ++DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe476, quirk_ricoh_multifunction); ++ + /* On Tylersburg chipsets, some BIOSes have been known to enable the + ISOCH DMAR unit for the Azalia sound device, but not give it any + TLB entries, which causes it to deadlock. Check for that. We do +-- +1.7.3.1 + diff --git a/freed-ora/current/f13/kernel.spec b/freed-ora/current/f13/kernel.spec index 56df89726..a070cb9e6 100644 --- a/freed-ora/current/f13/kernel.spec +++ b/freed-ora/current/f13/kernel.spec @@ -48,7 +48,7 @@ Summary: The Linux kernel # reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec). # scripts/rebase.sh should be made to do that for you, actually. # -%global baserelease 59 +%global baserelease 61 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -635,9 +635,11 @@ Patch23: linux-2.6-utrace-ptrace.patch Patch50: linux-2.6-x86-cfi_sections.patch +# CVE-2010-3301, CVE-2010-3081 Patch100: 01-compat-make-compat_alloc_user_space-incorporate-the-access_ok-check.patch Patch101: 02-compat-test-rax-for-the-system-call-number-not-eax.patch Patch102: 03-compat-retruncate-rax-after-ia32-syscall-entry-tracing.patch +# CVE-2010-3067 Patch103: aio-check-for-multiplication-overflow-in-do_io_submit.patch Patch144: linux-2.6-vio-modalias.patch @@ -841,6 +843,25 @@ Patch12570: sched-00-fix-user-time-incorrectly-accounted-as-system-time-on-32-bi Patch12580: xen-handle-events-as-edge-triggered.patch Patch12581: xen-use-percpu-interrupts-for-ipis-and-virqs.patch +# CVE-2010-3432 +Patch12590: sctp-do-not-reset-the-packet-during-sctp_packet_config.patch + +#Bonding sysfs WARN_ON (bz 604630) +Patch12591: linux-2.6-bonding-sysfs-warning.patch + +#twsock rcu warning fix (bz 642905) +Patch12592: linux-2.6-twsock-rcu-lockdep-warn.patch + +Patch13635: r8169-fix-dma-allocations.patch +Patch13636: skge-quirk-to-4gb-dma.patch + +Patch13637: dmar-disable-when-ricoh-multifunction.patch + +Patch13640: mmc-SDHCI_INT_DATA_MASK-typo-error.patch +Patch13641: mmc-add-ricoh-e822-pci-id.patch +Patch13642: mmc-make-sdhci-work-with-ricoh-mmc-controller.patch +Patch13643: sdhci-8-bit-data-transfer-width-support.patch + %endif BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root @@ -1296,11 +1317,11 @@ ApplyPatch linux-2.6-utrace-ptrace.patch # x86(-64) ApplyPatch linux-2.6-x86-cfi_sections.patch +# CVE-2010-3301, CVE-2010-3081 ApplyPatch 01-compat-make-compat_alloc_user_space-incorporate-the-access_ok-check.patch ApplyPatch 02-compat-test-rax-for-the-system-call-number-not-eax.patch ApplyPatch 03-compat-retruncate-rax-after-ia32-syscall-entry-tracing.patch - # # Intel IOMMU # @@ -1595,6 +1616,28 @@ ApplyPatch sched-00-fix-user-time-incorrectly-accounted-as-system-time-on-32-bit ApplyPatch xen-handle-events-as-edge-triggered.patch ApplyPatch xen-use-percpu-interrupts-for-ipis-and-virqs.patch +# CVE-2010-3432 +ApplyPatch sctp-do-not-reset-the-packet-during-sctp_packet_config.patch + +# BZ 604630 +ApplyPatch linux-2.6-bonding-sysfs-warning.patch + +# BZ 642905 +ApplyPatch linux-2.6-twsock-rcu-lockdep-warn.patch + +# rhbz#629158 +ApplyPatch r8169-fix-dma-allocations.patch +# rhbz#447489 +ApplyPatch skge-quirk-to-4gb-dma.patch + +# rhbz#605888 +ApplyPatch dmar-disable-when-ricoh-multifunction.patch + +ApplyPatch mmc-SDHCI_INT_DATA_MASK-typo-error.patch +ApplyPatch sdhci-8-bit-data-transfer-width-support.patch +ApplyPatch mmc-make-sdhci-work-with-ricoh-mmc-controller.patch +ApplyPatch mmc-add-ricoh-e822-pci-id.patch + # END OF PATCH APPLICATIONS %endif @@ -2216,6 +2259,25 @@ fi %changelog +* Mon Oct 18 2010 Kyle McMartin <kyle@redhat.com> 2.6.34.7-61 +- Add Ricoh e822 support. (rhbz#596475) Thanks to sgruszka@ for + sending the patches in. + +* Mon Oct 18 2010 Kyle McMartin <kyle@redhat.com> 2.6.34.7-60 +- Quirk to disable DMAR with Ricoh card reader/firewire. (rhbz#605888) + +* Mon Oct 18 2010 Kyle McMartin <kyle@redhat.com> +- Two networking fixes (skge, r8169) from sgruska. (rhbz#447489,629158) + +* Thu Oct 14 2010 Neil Horman <nhorman@redhat.com> +- Fix rcu warning in twsock_net (bz 642905) + +* Wed Oct 06 2010 Neil Horman <nhorman@redhat.com> +- Fix WARN_ON when you try to create an exiting bond in bond_masters + +* Thu Sep 30 2010 Chuck Ebbert <cebbert@redhat.com> +- CVE-2010-3432: sctp-do-not-reset-the-packet-during-sctp_packet_config.patch + * Thu Sep 30 2010 Ben Skeggs <bskeggs@redhat.com> 2.6.34.7-59 - nouveau: fix theoretical race condition that could be responsible for certain random hangs that have been reported. diff --git a/freed-ora/current/f13/linux-2.6-bonding-sysfs-warning.patch b/freed-ora/current/f13/linux-2.6-bonding-sysfs-warning.patch new file mode 100644 index 000000000..42fc297a7 --- /dev/null +++ b/freed-ora/current/f13/linux-2.6-bonding-sysfs-warning.patch @@ -0,0 +1,71 @@ +From: Neil Horman <nhorman@tuxdriver.com> +Date: Tue, 5 Oct 2010 03:39:21 +0000 (+0000) +Subject: bonding: fix WARN_ON when writing to bond_master sysfs file +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdavem%2Fnet-2.6.git;a=commitdiff_plain;h=27e6f065df132b5270014d3285889b15185e9da9 + +bonding: fix WARN_ON when writing to bond_master sysfs file + +Fix a WARN_ON failure in bond_masters sysfs file + +Got a report of this warning recently + +bonding: bond0 is being created... +------------[ cut here ]------------ +WARNING: at fs/proc/generic.c:590 proc_register+0x14d/0x185() +Hardware name: ProLiant BL465c G1 +proc_dir_entry 'bonding/bond0' already registered +Modules linked in: bonding ipv6 tg3 bnx2 shpchp amd64_edac_mod edac_core +ipmi_si +ipmi_msghandler serio_raw i2c_piix4 k8temp edac_mce_amd hpwdt microcode hpsa +cc +iss radeon ttm drm_kms_helper drm i2c_algo_bit i2c_core [last unloaded: +scsi_wai +t_scan] +Pid: 935, comm: ifup-eth Not tainted 2.6.33.5-124.fc13.x86_64 #1 +Call Trace: +[<ffffffff8104b54c>] warn_slowpath_common+0x77/0x8f +[<ffffffff8104b5b1>] warn_slowpath_fmt+0x3c/0x3e +[<ffffffff8114bf0b>] proc_register+0x14d/0x185 +[<ffffffff8114c20c>] proc_create_data+0x87/0xa1 +[<ffffffffa0211e9b>] bond_create_proc_entry+0x55/0x95 [bonding] +[<ffffffffa0215e5d>] bond_init+0x95/0xd0 [bonding] +[<ffffffff8138cd97>] register_netdevice+0xdd/0x29e +[<ffffffffa021240b>] bond_create+0x8e/0xb8 [bonding] +[<ffffffffa021c4be>] bonding_store_bonds+0xb3/0x1c1 [bonding] +[<ffffffff812aec85>] class_attr_store+0x27/0x29 +[<ffffffff8115423d>] sysfs_write_file+0x10f/0x14b +[<ffffffff81101acf>] vfs_write+0xa9/0x106 +[<ffffffff81101be2>] sys_write+0x45/0x69 +[<ffffffff81009b02>] system_call_fastpath+0x16/0x1b +---[ end trace a677c3f7f8b16b1e ]--- +bonding: Bond creation failed. + +It happens because a user space writer to bond_master can try to +register an already existing bond interface name. Fix it by teaching +bond_create to check for the existance of devices with that name first +in cases where a non-NULL name parameter has been passed in + +Signed-off-by: Neil Horman <nhorman@tuxdriver.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + +diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c +index 3b16f62..e953c6a 100644 +--- a/drivers/net/bonding/bond_main.c ++++ b/drivers/net/bonding/bond_main.c +@@ -5164,6 +5164,15 @@ int bond_create(struct net *net, const char *name) + res = dev_alloc_name(bond_dev, "bond%d"); + if (res < 0) + goto out; ++ } else { ++ /* ++ * If we're given a name to register ++ * we need to ensure that its not already ++ * registered ++ */ ++ res = -EEXIST; ++ if (__dev_get_by_name(net, name) != NULL) ++ goto out; + } + + res = register_netdevice(bond_dev); diff --git a/freed-ora/current/f13/linux-2.6-twsock-rcu-lockdep-warn.patch b/freed-ora/current/f13/linux-2.6-twsock-rcu-lockdep-warn.patch new file mode 100644 index 000000000..5c105b92f --- /dev/null +++ b/freed-ora/current/f13/linux-2.6-twsock-rcu-lockdep-warn.patch @@ -0,0 +1,36 @@ +commit 7ec75c582e639d956ce3afd499f67febe6f902a4 +Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> +Date: Tue Apr 27 06:22:01 2010 +0000 + + net: suppress RCU lockdep false positive in twsk_net() + + Calls to twsk_net() are in some cases protected by reference counting + as an alternative to RCU protection. Cases covered by reference counts + include __inet_twsk_kill(), inet_twsk_free(), inet_twdr_do_twkill_work(), + inet_twdr_twcal_tick(), and tcp_timewait_state_process(). RCU is used + by inet_twsk_purge(). Locking is used by established_get_first() + and established_get_next(). Finally, __inet_twsk_hashdance() is an + initialization case. + + It appears to be non-trivial to locate the appropriate locks and + reference counts from within twsk_net(), so used rcu_dereference_raw(). + + Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> + Acked-by: Eric Dumazet <eric.dumazet@gmail.com> + Signed-off-by: David S. Miller <davem@davemloft.net> + +diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h +index 79f67ea..a066fdd 100644 +--- a/include/net/inet_timewait_sock.h ++++ b/include/net/inet_timewait_sock.h +@@ -224,7 +224,9 @@ static inline + struct net *twsk_net(const struct inet_timewait_sock *twsk) + { + #ifdef CONFIG_NET_NS +- return rcu_dereference(twsk->tw_net); ++ return rcu_dereference_raw(twsk->tw_net); /* protected by locking, */ ++ /* reference counting, */ ++ /* initialization, or RCU. */ + #else + return &init_net; + #endif diff --git a/freed-ora/current/f13/mmc-SDHCI_INT_DATA_MASK-typo-error.patch b/freed-ora/current/f13/mmc-SDHCI_INT_DATA_MASK-typo-error.patch new file mode 100644 index 000000000..fcc442b91 --- /dev/null +++ b/freed-ora/current/f13/mmc-SDHCI_INT_DATA_MASK-typo-error.patch @@ -0,0 +1,39 @@ +From kernel-bounces@lists.fedoraproject.org Thu Sep 9 09:22:50 2010 +From: Stanislaw Gruszka <sgruszka@redhat.com> +Subject: [PATCH 1/4] mmc: SDHCI_INT_DATA_MASK typo error +Date: Thu, 9 Sep 2010 15:22:16 +0200 + +From: Zhangfei Gao <zgao6@marvell.com> + +Upstream a751a7d69fe91e4640884ae02fe44ddceb7f4cd8 commit. + +Signed-off-by: Zhangfei Gao <zgao6@marvell.com> +Reviewed-by: Matt Fleming <matt@console-pimps.org> +Cc: <linux-mmc@vger.kernel.org> +Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +--- + drivers/mmc/host/sdhci.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h +index 842f46f..9ba4268 100644 +--- a/drivers/mmc/host/sdhci.h ++++ b/drivers/mmc/host/sdhci.h +@@ -127,7 +127,7 @@ + #define SDHCI_INT_DATA_MASK (SDHCI_INT_DATA_END | SDHCI_INT_DMA_END | \ + SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL | \ + SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_DATA_CRC | \ +- SDHCI_INT_DATA_END_BIT | SDHCI_ADMA_ERROR) ++ SDHCI_INT_DATA_END_BIT | SDHCI_INT_ADMA_ERROR) + #define SDHCI_INT_ALL_MASK ((unsigned int)-1) + + #define SDHCI_ACMD12_ERR 0x3C +-- +1.7.1 + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel + diff --git a/freed-ora/current/f13/mmc-add-ricoh-e822-pci-id.patch b/freed-ora/current/f13/mmc-add-ricoh-e822-pci-id.patch new file mode 100644 index 000000000..8293123b9 --- /dev/null +++ b/freed-ora/current/f13/mmc-add-ricoh-e822-pci-id.patch @@ -0,0 +1,46 @@ +From kernel-bounces@lists.fedoraproject.org Thu Sep 9 09:22:43 2010 +From: Stanislaw Gruszka <sgruszka@redhat.com> +Subject: [PATCH 4/4] mmc: add ricoh e822 pci id +Date: Thu, 9 Sep 2010 15:22:19 +0200 + +From: Pablo Castillo <CyberCastle@gmail.com> + +Upstream 568133ebda39f7507759a744fa9cf4d5097bad2f commit. + +Signed-off-by: Pablo Castillo <CyberCastle@gmail.com> +Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> +Tested-by: Gregg Lebovitz <gregg@lebovitz.net> +Cc: Maxim Levitsky <maximlevitsky@gmail.com> +Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +--- + drivers/mmc/host/sdhci-pci.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c +index 3f2fdde..c4c759d 100644 +--- a/drivers/mmc/host/sdhci-pci.c ++++ b/drivers/mmc/host/sdhci-pci.c +@@ -415,6 +415,14 @@ static const struct pci_device_id pci_ids[] __devinitdata = { + }, + + { ++ .vendor = PCI_VENDOR_ID_RICOH, ++ .device = 0xe822, ++ .subvendor = PCI_ANY_ID, ++ .subdevice = PCI_ANY_ID, ++ .driver_data = (kernel_ulong_t)&sdhci_ricoh_mmc, ++ }, ++ ++ { + .vendor = PCI_VENDOR_ID_ENE, + .device = PCI_DEVICE_ID_ENE_CB712_SD, + .subvendor = PCI_ANY_ID, +-- +1.7.1 + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel + diff --git a/freed-ora/current/f13/mmc-make-sdhci-work-with-ricoh-mmc-controller.patch b/freed-ora/current/f13/mmc-make-sdhci-work-with-ricoh-mmc-controller.patch new file mode 100644 index 000000000..9f4de3288 --- /dev/null +++ b/freed-ora/current/f13/mmc-make-sdhci-work-with-ricoh-mmc-controller.patch @@ -0,0 +1,151 @@ +From kernel-bounces@lists.fedoraproject.org Thu Sep 9 09:22:35 2010 +From: Stanislaw Gruszka <sgruszka@redhat.com> +Subject: [PATCH 3/4] mmc: make sdhci work with ricoh mmc controller +Date: Thu, 9 Sep 2010 15:22:18 +0200 + +From: Maxim Levitsky <maximlevitsky@gmail.com> + +Upstream ccc92c23240cdf952ef7cc39ba563910dcbc9cbe commit. + +The current way of disabling it is not well tested by vendor and has all +kinds of bugs that show up on resume from ram/disk. A very good example +is a dead SDHCI controller. + +Old way of disabling is still supported by continuing to use +CONFIG_MMC_RICOH_MMC. + +Based on 'http://list.drzeus.cx/pipermail/sdhci-devel/2007-December/002085.html' +Therefore most of the credit for this goes to Andrew de Quincey + +Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> +Cc: Andrew de Quincey <adq_dvb@lidskialf.net> +Acked-by: Philip Langdale <philipl@overt.org> +Cc: "Rafael J. Wysocki" <rjw@sisk.pl> +Cc: <linux-mmc@vger.kernel.org> +Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +--- + drivers/mmc/host/sdhci-pci.c | 41 +++++++++++++++++++++++++++++++++++++++++ + drivers/mmc/host/sdhci.c | 3 ++- + drivers/mmc/host/sdhci.h | 5 +++++ + 3 files changed, 48 insertions(+), 1 deletions(-) + +diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c +index 6701af6..3f2fdde 100644 +--- a/drivers/mmc/host/sdhci-pci.c ++++ b/drivers/mmc/host/sdhci-pci.c +@@ -17,6 +17,7 @@ + #include <linux/pci.h> + #include <linux/dma-mapping.h> + #include <linux/slab.h> ++#include <linux/device.h> + + #include <linux/mmc/host.h> + +@@ -84,7 +85,30 @@ static int ricoh_probe(struct sdhci_pci_chip *chip) + if (chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG || + chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SONY) + chip->quirks |= SDHCI_QUIRK_NO_CARD_NO_RESET; ++ return 0; ++} ++ ++static int ricoh_mmc_probe_slot(struct sdhci_pci_slot *slot) ++{ ++ slot->host->caps = ++ ((0x21 << SDHCI_TIMEOUT_CLK_SHIFT) ++ & SDHCI_TIMEOUT_CLK_MASK) | ++ ++ ((0x21 << SDHCI_CLOCK_BASE_SHIFT) ++ & SDHCI_CLOCK_BASE_MASK) | + ++ SDHCI_TIMEOUT_CLK_UNIT | ++ SDHCI_CAN_VDD_330 | ++ SDHCI_CAN_DO_SDMA; ++ return 0; ++} ++ ++static int ricoh_mmc_resume(struct sdhci_pci_chip *chip) ++{ ++ /* Apply a delay to allow controller to settle */ ++ /* Otherwise it becomes confused if card state changed ++ during suspend */ ++ msleep(500); + return 0; + } + +@@ -95,6 +119,15 @@ static const struct sdhci_pci_fixes sdhci_ricoh = { + SDHCI_QUIRK_CLOCK_BEFORE_RESET, + }; + ++static const struct sdhci_pci_fixes sdhci_ricoh_mmc = { ++ .probe_slot = ricoh_mmc_probe_slot, ++ .resume = ricoh_mmc_resume, ++ .quirks = SDHCI_QUIRK_32BIT_DMA_ADDR | ++ SDHCI_QUIRK_CLOCK_BEFORE_RESET | ++ SDHCI_QUIRK_NO_CARD_NO_RESET | ++ SDHCI_QUIRK_MISSING_CAPS ++}; ++ + static const struct sdhci_pci_fixes sdhci_ene_712 = { + .quirks = SDHCI_QUIRK_SINGLE_POWER_WRITE | + SDHCI_QUIRK_BROKEN_DMA, +@@ -374,6 +407,14 @@ static const struct pci_device_id pci_ids[] __devinitdata = { + }, + + { ++ .vendor = PCI_VENDOR_ID_RICOH, ++ .device = 0x843, ++ .subvendor = PCI_ANY_ID, ++ .subdevice = PCI_ANY_ID, ++ .driver_data = (kernel_ulong_t)&sdhci_ricoh_mmc, ++ }, ++ ++ { + .vendor = PCI_VENDOR_ID_ENE, + .device = PCI_DEVICE_ID_ENE_CB712_SD, + .subvendor = PCI_ANY_ID, +diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c +index dae42aa..f44f8ca 100644 +--- a/drivers/mmc/host/sdhci.c ++++ b/drivers/mmc/host/sdhci.c +@@ -1682,7 +1682,8 @@ int sdhci_add_host(struct sdhci_host *host) + host->version); + } + +- caps = sdhci_readl(host, SDHCI_CAPABILITIES); ++ caps = (host->quirks & SDHCI_QUIRK_MISSING_CAPS) ? host->caps : ++ sdhci_readl(host, SDHCI_CAPABILITIES); + + if (host->quirks & SDHCI_QUIRK_FORCE_DMA) + host->flags |= SDHCI_USE_SDMA; +diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h +index 6bd46e5..e830c60 100644 +--- a/drivers/mmc/host/sdhci.h ++++ b/drivers/mmc/host/sdhci.h +@@ -238,6 +238,9 @@ struct sdhci_host { + /* Controller uses SDCLK instead of TMCLK for data timeouts */ + #define SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK (1<<24) + ++/* Controller is missing device caps. Use caps provided by host */ ++#define SDHCI_QUIRK_MISSING_CAPS (1<<27) ++ + int irq; /* Device IRQ */ + void __iomem * ioaddr; /* Mapped address */ + +@@ -289,6 +292,8 @@ struct sdhci_host { + + struct timer_list timer; /* Timer for timeouts */ + ++ unsigned int caps; /* Alternative capabilities */ ++ + unsigned long private[0] ____cacheline_aligned; + }; + +-- +1.7.1 + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel + diff --git a/freed-ora/current/f13/r8169-fix-dma-allocations.patch b/freed-ora/current/f13/r8169-fix-dma-allocations.patch new file mode 100644 index 000000000..e4aa160d1 --- /dev/null +++ b/freed-ora/current/f13/r8169-fix-dma-allocations.patch @@ -0,0 +1,120 @@ +From sgruszka@redhat.com Mon Oct 18 05:10:00 2010 +Return-Path: sgruszka@redhat.com +Received: from zmta01.collab.prod.int.phx2.redhat.com (LHLO + zmta01.collab.prod.int.phx2.redhat.com) (10.5.5.31) by + mail03.corp.redhat.com with LMTP; Mon, 18 Oct 2010 05:10:00 -0400 (EDT) +Received: from localhost (localhost.localdomain [127.0.0.1]) + by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 5E48E928A4; + Mon, 18 Oct 2010 05:10:00 -0400 (EDT) +Received: from zmta01.collab.prod.int.phx2.redhat.com ([127.0.0.1]) + by localhost (zmta01.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id q3QJQ+TOP+bt; Mon, 18 Oct 2010 05:10:00 -0400 (EDT) +Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) + by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 423CC91A7C; + Mon, 18 Oct 2010 05:10:00 -0400 (EDT) +Received: from localhost (dhcp-1-246.brq.redhat.com [10.34.1.246]) + by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id o9I99x6b006228; + Mon, 18 Oct 2010 05:09:59 -0400 +From: Stanislaw Gruszka <sgruszka@redhat.com> +To: stable@kernel.org +Cc: Kyle McMartin <kmcmartin@redhat.com>, + Stanislaw Gruszka <sgruszka@redhat.com>, + "David S. Miller" <davem@davemloft.net> +Subject: [PATCH -stable 2.6.34+] r8169: allocate with GFP_KERNEL flag when able to sleep +Date: Mon, 18 Oct 2010 11:12:22 +0200 +Message-Id: <1287393142-2566-1-git-send-email-sgruszka@redhat.com> +X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 + +Upstream aeb19f6052b5e5c8a24aa444fbff73b84341beac commit. + +We have fedora bug report where driver fail to initialize after +suspend/resume because of memory allocation errors: +https://bugzilla.redhat.com/show_bug.cgi?id=629158 + +To fix use GFP_KERNEL allocation where possible. + +Patch should fix any allocation errors with calltrace like that: + +NetworkManager: page allocation failure. order:3, mode:0x4020 +Pid: 1427, comm: NetworkManager Not tainted 2.6.31.12-rhapsody.fc12-121 #1 +Call Trace: + [<ffffffff810c876f>] __alloc_pages_nodemask+0x57a/0x5bb + [<ffffffff810f415d>] alloc_pages_node+0x48/0x4a + [<ffffffff810f4189>] kmalloc_large_node+0x2a/0x67 + [<ffffffff810f5f1c>] __kmalloc_node_track_caller+0x31/0x11b + [<ffffffff8136f4fe>] ? __netdev_alloc_skb+0x34/0x50 + [<ffffffff8136e8b8>] __alloc_skb+0x80/0x170 + [<ffffffff8136f4fe>] __netdev_alloc_skb+0x34/0x50 + [<ffffffffa011c5e0>] rtl8169_rx_fill+0xa8/0x154 [r8169] + [<ffffffffa011e5c5>] rtl8169_init_ring+0x71/0x9f [r8169] + [<ffffffffa011edbe>] rtl8169_open+0x7f/0x199 [r8169] + +Tested-by: Neal Becker <ndbecker2@gmail.com> +Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> +Acked-by: Eric Dumazet <eric.dumazet@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + drivers/net/r8169.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c +index a0da4a1..a68ec8f 100644 +--- a/drivers/net/r8169.c ++++ b/drivers/net/r8169.c +@@ -4000,7 +4000,7 @@ static inline void rtl8169_map_to_asic(struct RxDesc *desc, dma_addr_t mapping, + static struct sk_buff *rtl8169_alloc_rx_skb(struct pci_dev *pdev, + struct net_device *dev, + struct RxDesc *desc, int rx_buf_sz, +- unsigned int align) ++ unsigned int align, gfp_t gfp) + { + struct sk_buff *skb; + dma_addr_t mapping; +@@ -4008,7 +4008,7 @@ static struct sk_buff *rtl8169_alloc_rx_skb(struct pci_dev *pdev, + + pad = align ? align : NET_IP_ALIGN; + +- skb = netdev_alloc_skb(dev, rx_buf_sz + pad); ++ skb = __netdev_alloc_skb(dev, rx_buf_sz + pad, gfp); + if (!skb) + goto err_out; + +@@ -4039,7 +4039,7 @@ static void rtl8169_rx_clear(struct rtl8169_private *tp) + } + + static u32 rtl8169_rx_fill(struct rtl8169_private *tp, struct net_device *dev, +- u32 start, u32 end) ++ u32 start, u32 end, gfp_t gfp) + { + u32 cur; + +@@ -4054,7 +4054,7 @@ static u32 rtl8169_rx_fill(struct rtl8169_private *tp, struct net_device *dev, + + skb = rtl8169_alloc_rx_skb(tp->pci_dev, dev, + tp->RxDescArray + i, +- tp->rx_buf_sz, tp->align); ++ tp->rx_buf_sz, tp->align, gfp); + if (!skb) + break; + +@@ -4082,7 +4082,7 @@ static int rtl8169_init_ring(struct net_device *dev) + memset(tp->tx_skb, 0x0, NUM_TX_DESC * sizeof(struct ring_info)); + memset(tp->Rx_skbuff, 0x0, NUM_RX_DESC * sizeof(struct sk_buff *)); + +- if (rtl8169_rx_fill(tp, dev, 0, NUM_RX_DESC) != NUM_RX_DESC) ++ if (rtl8169_rx_fill(tp, dev, 0, NUM_RX_DESC, GFP_KERNEL) != NUM_RX_DESC) + goto err_out; + + rtl8169_mark_as_last_descriptor(tp->RxDescArray + NUM_RX_DESC - 1); +@@ -4583,7 +4583,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev, + count = cur_rx - tp->cur_rx; + tp->cur_rx = cur_rx; + +- delta = rtl8169_rx_fill(tp, dev, tp->dirty_rx, tp->cur_rx); ++ delta = rtl8169_rx_fill(tp, dev, tp->dirty_rx, tp->cur_rx, GFP_ATOMIC); + if (!delta && count) + netif_info(tp, intr, dev, "no Rx buffer allocated\n"); + tp->dirty_rx += delta; +-- +1.7.1 + diff --git a/freed-ora/current/f13/sctp-do-not-reset-the-packet-during-sctp_packet_config.patch b/freed-ora/current/f13/sctp-do-not-reset-the-packet-during-sctp_packet_config.patch new file mode 100644 index 000000000..c88c12aad --- /dev/null +++ b/freed-ora/current/f13/sctp-do-not-reset-the-packet-during-sctp_packet_config.patch @@ -0,0 +1,34 @@ +From 4bdab43323b459900578b200a4b8cf9713ac8fab Mon Sep 17 00:00:00 2001 +From: Vlad Yasevich <vladislav.yasevich@hp.com> +Date: Wed, 15 Sep 2010 10:00:26 -0400 +Subject: sctp: Do not reset the packet during sctp_packet_config(). + +From: Vlad Yasevich <vladislav.yasevich@hp.com> + +commit 4bdab43323b459900578b200a4b8cf9713ac8fab upstream. + +sctp_packet_config() is called when getting the packet ready +for appending of chunks. The function should not touch the +current state, since it's possible to ping-pong between two +transports when sending, and that can result packet corruption +followed by skb overlfow crash. + +Reported-by: Thomas Dreibholz <dreibh@iem.uni-due.de> +Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + net/sctp/output.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/net/sctp/output.c ++++ b/net/sctp/output.c +@@ -92,7 +92,6 @@ struct sctp_packet *sctp_packet_config(s + SCTP_DEBUG_PRINTK("%s: packet:%p vtag:0x%x\n", __func__, + packet, vtag); + +- sctp_packet_reset(packet); + packet->vtag = vtag; + + if (ecn_capable && sctp_packet_empty(packet)) { diff --git a/freed-ora/current/f13/sdhci-8-bit-data-transfer-width-support.patch b/freed-ora/current/f13/sdhci-8-bit-data-transfer-width-support.patch new file mode 100644 index 000000000..83171cbaf --- /dev/null +++ b/freed-ora/current/f13/sdhci-8-bit-data-transfer-width-support.patch @@ -0,0 +1,57 @@ +From kernel-bounces@lists.fedoraproject.org Thu Sep 9 09:22:34 2010 +From: Stanislaw Gruszka <sgruszka@redhat.com> +Subject: [PATCH 2/4] sdhci: 8-bit data transfer width support +Date: Thu, 9 Sep 2010 15:22:17 +0200 + +From: Kyungmin Park <kyungmin.park@samsung.com> + +Upstream ae6d6c92212e94b12ab9365c23fb73acc2c3c2e7 commit. + +Some host controllers such as s5pc110 support the WIDE8 feature. + +Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> +Cc: Grant Likely <grant.likely@secretlab.ca> +Cc: <linux-mmc@vger.kernel.org> +Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +--- + drivers/mmc/host/sdhci.c | 5 +++++ + drivers/mmc/host/sdhci.h | 1 + + 2 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c +index 9d4fdfa..dae42aa 100644 +--- a/drivers/mmc/host/sdhci.c ++++ b/drivers/mmc/host/sdhci.c +@@ -1149,6 +1149,11 @@ static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); + ++ if (ios->bus_width == MMC_BUS_WIDTH_8) ++ ctrl |= SDHCI_CTRL_8BITBUS; ++ else ++ ctrl &= ~SDHCI_CTRL_8BITBUS; ++ + if (ios->bus_width == MMC_BUS_WIDTH_4) + ctrl |= SDHCI_CTRL_4BITBUS; + else +diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h +index 9ba4268..6bd46e5 100644 +--- a/drivers/mmc/host/sdhci.h ++++ b/drivers/mmc/host/sdhci.h +@@ -72,6 +72,7 @@ + #define SDHCI_CTRL_ADMA1 0x08 + #define SDHCI_CTRL_ADMA32 0x10 + #define SDHCI_CTRL_ADMA64 0x18 ++#define SDHCI_CTRL_8BITBUS 0x20 + + #define SDHCI_POWER_CONTROL 0x29 + #define SDHCI_POWER_ON 0x01 +-- +1.7.1 + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel + diff --git a/freed-ora/current/f13/skge-quirk-to-4gb-dma.patch b/freed-ora/current/f13/skge-quirk-to-4gb-dma.patch new file mode 100644 index 000000000..ffa0fff55 --- /dev/null +++ b/freed-ora/current/f13/skge-quirk-to-4gb-dma.patch @@ -0,0 +1,98 @@ +From sgruszka@redhat.com Mon Oct 18 05:19:21 2010 +Return-Path: sgruszka@redhat.com +Received: from zmta02.collab.prod.int.phx2.redhat.com (LHLO + zmta02.collab.prod.int.phx2.redhat.com) (10.5.5.32) by + mail03.corp.redhat.com with LMTP; Mon, 18 Oct 2010 05:19:21 -0400 (EDT) +Received: from localhost (localhost.localdomain [127.0.0.1]) + by zmta02.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id A11F69E559; + Mon, 18 Oct 2010 05:19:21 -0400 (EDT) +Received: from zmta02.collab.prod.int.phx2.redhat.com ([127.0.0.1]) + by localhost (zmta02.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id IhyIgD7E4aj3; Mon, 18 Oct 2010 05:19:21 -0400 (EDT) +Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) + by zmta02.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 9007B9E55E; + Mon, 18 Oct 2010 05:19:21 -0400 (EDT) +Received: from localhost (dhcp-1-246.brq.redhat.com [10.34.1.246]) + by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o9I9JKsF025385; + Mon, 18 Oct 2010 05:19:21 -0400 +From: Stanislaw Gruszka <sgruszka@redhat.com> +To: stable@kernel.org +Cc: Kyle McMartin <kmcmartin@redhat.com>, + Stanislaw Gruszka <sgruszka@redhat.com>, + "David S. Miller" <davem@davemloft.net> +Subject: [PATCH -stable 2.6.34+] skge: add quirk to limit DMA +Date: Mon, 18 Oct 2010 11:21:54 +0200 +Message-Id: <1287393714-3720-1-git-send-email-sgruszka@redhat.com> +X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21 + +Upstream 392bd0cb000d4aac9e88e4f50823db85e7220688 commit. + +Skge devices installed on some Gigabyte motherboards are not able to +perform 64 dma correctly due to board PCI implementation, so limit +DMA to 32bit if such boards are detected. + +Bug was reported here: +https://bugzilla.redhat.com/show_bug.cgi?id=447489 + +Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> +Tested-by: Luya Tshimbalanga <luya@fedoraproject.org> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + drivers/net/skge.c | 18 +++++++++++++++++- + 1 files changed, 17 insertions(+), 1 deletions(-) + +diff --git a/drivers/net/skge.c b/drivers/net/skge.c +index 40e5c46..465ae7e 100644 +--- a/drivers/net/skge.c ++++ b/drivers/net/skge.c +@@ -43,6 +43,7 @@ + #include <linux/seq_file.h> + #include <linux/mii.h> + #include <linux/slab.h> ++#include <linux/dmi.h> + #include <asm/irq.h> + + #include "skge.h" +@@ -3868,6 +3869,8 @@ static void __devinit skge_show_addr(struct net_device *dev) + netif_info(skge, probe, skge->netdev, "addr %pM\n", dev->dev_addr); + } + ++static int only_32bit_dma; ++ + static int __devinit skge_probe(struct pci_dev *pdev, + const struct pci_device_id *ent) + { +@@ -3889,7 +3892,7 @@ static int __devinit skge_probe(struct pci_dev *pdev, + + pci_set_master(pdev); + +- if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { ++ if (!only_32bit_dma && !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { + using_dac = 1; + err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); + } else if (!(err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) { +@@ -4147,8 +4150,21 @@ static struct pci_driver skge_driver = { + .shutdown = skge_shutdown, + }; + ++static struct dmi_system_id skge_32bit_dma_boards[] = { ++ { ++ .ident = "Gigabyte nForce boards", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co"), ++ DMI_MATCH(DMI_BOARD_NAME, "nForce"), ++ }, ++ }, ++ {} ++}; ++ + static int __init skge_init_module(void) + { ++ if (dmi_check_system(skge_32bit_dma_boards)) ++ only_32bit_dma = 1; + skge_debug_init(); + return pci_register_driver(&skge_driver); + } +-- +1.7.1 + |