diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2011-10-22 08:31:08 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2011-10-22 08:31:08 +0000 |
commit | 16b2153f72adecb7e1689790577d95917f55e6c8 (patch) | |
tree | 7a6348ed0509c6a627f9116b7ed83b644f7ecf4a /freed-ora/current | |
parent | b3fa9e4bffe1b8a9038a6164bc53a1464e3cedc1 (diff) | |
download | linux-libre-raptor-16b2153f72adecb7e1689790577d95917f55e6c8.tar.gz linux-libre-raptor-16b2153f72adecb7e1689790577d95917f55e6c8.zip |
2.6.35.14-100.fc14
Diffstat (limited to 'freed-ora/current')
6 files changed, 436 insertions, 1 deletions
diff --git a/freed-ora/current/f14/0001-EHCI-don-t-rescan-interrupt-QHs-needlessly.patch b/freed-ora/current/f14/0001-EHCI-don-t-rescan-interrupt-QHs-needlessly.patch new file mode 100644 index 000000000..499c31a02 --- /dev/null +++ b/freed-ora/current/f14/0001-EHCI-don-t-rescan-interrupt-QHs-needlessly.patch @@ -0,0 +1,95 @@ +From 1729d20333739e6cc23023e405fe8668f08117a2 Mon Sep 17 00:00:00 2001 +From: Alan Stern <stern@rowland.harvard.edu> +Date: Tue, 17 May 2011 10:40:51 -0400 +Subject: [PATCH 1/2] EHCI: don't rescan interrupt QHs needlessly + +This patch (as1466) speeds up processing of ehci-hcd's periodic list. +The existing code will pointlessly rescan an interrupt endpoint queue +each time it encounters the queue's QH in the periodic list, which can +happen quite a few times if the endpoint's period is low. On some +embedded systems, this useless overhead can waste so much time that +the driver falls hopelessly behind and loses events. + +The patch introduces a "periodic_stamp" variable, which gets +incremented each time scan_periodic() runs and each time the scan +advances to a new frame. If the corresponding stamp in an interrupt +QH is equal to the current periodic_stamp, we assume the QH has +already been scanned and skip over it. Otherwise we scan the QH as +usual, and if none of its URBs have completed then we store the +current periodic_stamp in the QH's stamp, preventing it from being +scanned again. + +Signed-off-by: Alan Stern <stern@rowland.harvard.edu> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + drivers/usb/host/ehci-q.c | 1 + + drivers/usb/host/ehci-sched.c | 14 ++++++++++---- + drivers/usb/host/ehci.h | 1 + + 3 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c +index ed8db6a..0079610 100644 +--- a/drivers/usb/host/ehci-q.c ++++ b/drivers/usb/host/ehci-q.c +@@ -826,6 +826,7 @@ qh_make ( + is_input, 0, + hb_mult(maxp) * max_packet(maxp))); + qh->start = NO_FRAME; ++ qh->stamp = ehci->periodic_stamp; + + if (urb->dev->speed == USB_SPEED_HIGH) { + qh->c_usecs = 0; +diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c +index a530856..9e54e85 100644 +--- a/drivers/usb/host/ehci-sched.c ++++ b/drivers/usb/host/ehci-sched.c +@@ -2351,6 +2351,7 @@ scan_periodic (struct ehci_hcd *ehci) + } + clock %= mod; + clock_frame = clock >> 3; ++ ++ehci->periodic_stamp; + + for (;;) { + union ehci_shadow q, *q_p; +@@ -2379,10 +2380,14 @@ restart: + temp.qh = qh_get (q.qh); + type = Q_NEXT_TYPE(ehci, q.qh->hw->hw_next); + q = q.qh->qh_next; +- modified = qh_completions (ehci, temp.qh); +- if (unlikely(list_empty(&temp.qh->qtd_list) || +- temp.qh->needs_rescan)) +- intr_deschedule (ehci, temp.qh); ++ if (temp.qh->stamp != ehci->periodic_stamp) { ++ modified = qh_completions(ehci, temp.qh); ++ if (!modified) ++ temp.qh->stamp = ehci->periodic_stamp; ++ if (unlikely(list_empty(&temp.qh->qtd_list) || ++ temp.qh->needs_rescan)) ++ intr_deschedule(ehci, temp.qh); ++ } + qh_put (temp.qh); + break; + case Q_TYPE_FSTN: +@@ -2515,6 +2520,7 @@ restart: + if (ehci->clock_frame != clock_frame) { + free_cached_lists(ehci); + ehci->clock_frame = clock_frame; ++ ++ehci->periodic_stamp; + } + } else { + now_uframe++; +diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h +index c702e4b..c2c2f9d 100644 +--- a/drivers/usb/host/ehci.h ++++ b/drivers/usb/host/ehci.h +@@ -117,6 +117,7 @@ struct ehci_hcd { /* one per controller */ + struct timer_list watchdog; + unsigned long actions; + unsigned stamp; ++ unsigned periodic_stamp; + unsigned random_frame; + unsigned long next_statechange; + ktime_t last_periodic_enable; +-- +1.7.6 + diff --git a/freed-ora/current/f14/0002-USB-EHCI-go-back-to-using-the-system-clock-for-QH-un.patch b/freed-ora/current/f14/0002-USB-EHCI-go-back-to-using-the-system-clock-for-QH-un.patch new file mode 100644 index 000000000..404ece19d --- /dev/null +++ b/freed-ora/current/f14/0002-USB-EHCI-go-back-to-using-the-system-clock-for-QH-un.patch @@ -0,0 +1,217 @@ +From e8b80056d07bc849777d032bc699a59cc28f9ddb Mon Sep 17 00:00:00 2001 +From: Alan Stern <stern@rowland.harvard.edu> +Date: Tue, 5 Jul 2011 12:34:05 -0400 +Subject: [PATCH 2/2] USB: EHCI: go back to using the system clock for QH + unlinks + +This patch (as1477) fixes a problem affecting a few types of EHCI +controller. Contrary to what one might expect, these controllers +automatically stop their internal frame counter when no ports are +enabled. Since ehci-hcd currently relies on the frame counter for +determining when it should unlink QHs from the async schedule, those +controllers run into trouble: The frame counter stops and the QHs +never get unlinked. + +Some systems have also experienced other problems traced back to +commit b963801164618e25fbdc0cd452ce49c3628b46c8 (USB: ehci-hcd unlink +speedups), which made the original switch from using the system clock +to using the frame counter. It never became clear what the reason was +for these problems, but evidently it is related to use of the frame +counter. + +To fix all these problems, this patch more or less reverts that commit +and goes back to using the system clock. But this can't be done +cleanly because other changes have since been made to the scan_async() +subroutine. One of these changes involved the tricky logic that tries +to avoid rescanning QHs that have already been seen when the scanning +loop is restarted, which happens whenever an URB is given back. +Switching back to clock-based unlinks would make this logic even more +complicated. + +Therefore the new code doesn't rescan the entire async list whenever a +giveback occurs. Instead it rescans only the current QH and continues +on from there. This requires the use of a separate pointer to keep +track of the next QH to scan, since the current QH may be unlinked +while the scanning is in progress. That new pointer must be global, +so that it can be adjusted forward whenever the _next_ QH gets +unlinked. (uhci-hcd uses this same trick.) + +Simplification of the scanning loop removes a level of indentation, +which accounts for the size of the patch. The amount of code changed +is relatively small, and it isn't exactly a reversion of the +b963801164 commit. + +This fixes Bugzilla #32432. + +Signed-off-by: Alan Stern <stern@rowland.harvard.edu> +CC: <stable@kernel.org> +Tested-by: Matej Kenda <matejken@gmail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + drivers/usb/host/ehci-hcd.c | 8 ++--- + drivers/usb/host/ehci-q.c | 82 +++++++++++++++++++++---------------------- + drivers/usb/host/ehci.h | 3 +- + 3 files changed, 45 insertions(+), 48 deletions(-) + +diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c +index 761bbb3..8e5b995 100644 +--- a/drivers/usb/host/ehci-hcd.c ++++ b/drivers/usb/host/ehci-hcd.c +@@ -83,7 +83,8 @@ static const char hcd_name [] = "ehci_hcd"; + #define EHCI_IAA_MSECS 10 /* arbitrary */ + #define EHCI_IO_JIFFIES (HZ/10) /* io watchdog > irq_thresh */ + #define EHCI_ASYNC_JIFFIES (HZ/20) /* async idle timeout */ +-#define EHCI_SHRINK_FRAMES 5 /* async qh unlink delay */ ++#define EHCI_SHRINK_JIFFIES (DIV_ROUND_UP(HZ, 200) + 1) ++ /* 200-ms async qh unlink delay */ + + /* Initial IRQ latency: faster than hw default */ + static int log2_irq_thresh = 0; // 0 to 6 +@@ -138,10 +139,7 @@ timer_action(struct ehci_hcd *ehci, enum ehci_timer_action action) + break; + /* case TIMER_ASYNC_SHRINK: */ + default: +- /* add a jiffie since we synch against the +- * 8 KHz uframe counter. +- */ +- t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1; ++ t = EHCI_SHRINK_JIFFIES; + break; + } + mod_timer(&ehci->watchdog, t + jiffies); +diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c +index 0079610..a664203 100644 +--- a/drivers/usb/host/ehci-q.c ++++ b/drivers/usb/host/ehci-q.c +@@ -1226,6 +1226,8 @@ static void start_unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh) + + prev->hw->hw_next = qh->hw->hw_next; + prev->qh_next = qh->qh_next; ++ if (ehci->qh_scan_next == qh) ++ ehci->qh_scan_next = qh->qh_next.qh; + wmb (); + + /* If the controller isn't running, we don't have to wait for it */ +@@ -1251,53 +1253,49 @@ static void scan_async (struct ehci_hcd *ehci) + struct ehci_qh *qh; + enum ehci_timer_action action = TIMER_IO_WATCHDOG; + +- ehci->stamp = ehci_readl(ehci, &ehci->regs->frame_index); + timer_action_done (ehci, TIMER_ASYNC_SHRINK); +-rescan: + stopped = !HC_IS_RUNNING(ehci_to_hcd(ehci)->state); +- qh = ehci->async->qh_next.qh; +- if (likely (qh != NULL)) { +- do { +- /* clean any finished work for this qh */ +- if (!list_empty(&qh->qtd_list) && (stopped || +- qh->stamp != ehci->stamp)) { +- int temp; +- +- /* unlinks could happen here; completion +- * reporting drops the lock. rescan using +- * the latest schedule, but don't rescan +- * qhs we already finished (no looping) +- * unless the controller is stopped. +- */ +- qh = qh_get (qh); +- qh->stamp = ehci->stamp; +- temp = qh_completions (ehci, qh); +- if (qh->needs_rescan) +- unlink_async(ehci, qh); +- qh_put (qh); +- if (temp != 0) { +- goto rescan; +- } +- } + +- /* unlink idle entries, reducing DMA usage as well +- * as HCD schedule-scanning costs. delay for any qh +- * we just scanned, there's a not-unusual case that it +- * doesn't stay idle for long. +- * (plus, avoids some kind of re-activation race.) ++ ehci->qh_scan_next = ehci->async->qh_next.qh; ++ while (ehci->qh_scan_next) { ++ qh = ehci->qh_scan_next; ++ ehci->qh_scan_next = qh->qh_next.qh; ++ rescan: ++ /* clean any finished work for this qh */ ++ if (!list_empty(&qh->qtd_list)) { ++ int temp; ++ ++ /* ++ * Unlinks could happen here; completion reporting ++ * drops the lock. That's why ehci->qh_scan_next ++ * always holds the next qh to scan; if the next qh ++ * gets unlinked then ehci->qh_scan_next is adjusted ++ * in start_unlink_async(). + */ +- if (list_empty(&qh->qtd_list) +- && qh->qh_state == QH_STATE_LINKED) { +- if (!ehci->reclaim && (stopped || +- ((ehci->stamp - qh->stamp) & 0x1fff) +- >= EHCI_SHRINK_FRAMES * 8)) +- start_unlink_async(ehci, qh); +- else +- action = TIMER_ASYNC_SHRINK; +- } ++ qh = qh_get(qh); ++ temp = qh_completions(ehci, qh); ++ if (qh->needs_rescan) ++ unlink_async(ehci, qh); ++ qh->unlink_time = jiffies + EHCI_SHRINK_JIFFIES; ++ qh_put(qh); ++ if (temp != 0) ++ goto rescan; ++ } + +- qh = qh->qh_next.qh; +- } while (qh); ++ /* unlink idle entries, reducing DMA usage as well ++ * as HCD schedule-scanning costs. delay for any qh ++ * we just scanned, there's a not-unusual case that it ++ * doesn't stay idle for long. ++ * (plus, avoids some kind of re-activation race.) ++ */ ++ if (list_empty(&qh->qtd_list) ++ && qh->qh_state == QH_STATE_LINKED) { ++ if (!ehci->reclaim && (stopped || ++ time_after_eq(jiffies, qh->unlink_time))) ++ start_unlink_async(ehci, qh); ++ else ++ action = TIMER_ASYNC_SHRINK; ++ } + } + if (action == TIMER_ASYNC_SHRINK) + timer_action (ehci, TIMER_ASYNC_SHRINK); +diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h +index c2c2f9d..23d9a5e 100644 +--- a/drivers/usb/host/ehci.h ++++ b/drivers/usb/host/ehci.h +@@ -74,6 +74,7 @@ struct ehci_hcd { /* one per controller */ + /* async schedule support */ + struct ehci_qh *async; + struct ehci_qh *reclaim; ++ struct ehci_qh *qh_scan_next; + unsigned scanning : 1; + + /* periodic schedule support */ +@@ -116,7 +117,6 @@ struct ehci_hcd { /* one per controller */ + struct timer_list iaa_watchdog; + struct timer_list watchdog; + unsigned long actions; +- unsigned stamp; + unsigned periodic_stamp; + unsigned random_frame; + unsigned long next_statechange; +@@ -337,6 +337,7 @@ struct ehci_qh { + struct ehci_qh *reclaim; /* next to reclaim */ + + struct ehci_hcd *ehci; ++ unsigned long unlink_time; + + /* + * Do NOT use atomic operations for QH refcounting. On some CPUs +-- +1.7.6 + diff --git a/freed-ora/current/f14/acpi-sony-nonvs-blacklist.patch b/freed-ora/current/f14/acpi-sony-nonvs-blacklist.patch new file mode 100644 index 000000000..f332c6443 --- /dev/null +++ b/freed-ora/current/f14/acpi-sony-nonvs-blacklist.patch @@ -0,0 +1,19 @@ +diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c +index 3ed80b2..17fc718 100644 +--- a/drivers/acpi/sleep.c ++++ b/drivers/acpi/sleep.c +@@ -390,6 +390,14 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = { + }, + { + .callback = init_nvs_nosave, ++ .ident = "Sony Vaio VGN-FW21E", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW21E"), ++ }, ++ }, ++ { ++ .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-SR11M", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), diff --git a/freed-ora/current/f14/drm-lower-severity-radeon-lockup.diff b/freed-ora/current/f14/drm-lower-severity-radeon-lockup.diff new file mode 100644 index 000000000..a550d48f7 --- /dev/null +++ b/freed-ora/current/f14/drm-lower-severity-radeon-lockup.diff @@ -0,0 +1,11 @@ +--- linux-2.6.35.noarch/drivers/gpu/drm/radeon/radeon_fence.c~ 2011-10-21 14:08:15.229351796 -0400 ++++ linux-2.6.35.noarch/drivers/gpu/drm/radeon/radeon_fence.c 2011-10-21 14:08:35.140287089 -0400 +@@ -232,7 +232,7 @@ retry: + */ + if (seq == rdev->fence_drv.last_seq && radeon_gpu_is_lockup(rdev)) { + /* good news we believe it's a lockup */ +- WARN(1, "GPU lockup (waiting for 0x%08X last fence id 0x%08X)\n", fence->seq, seq); ++ printk(KERN_WARNING, "GPU lockup (waiting for 0x%08X last fence id 0x%08X)\n", fence->seq, seq); + /* FIXME: what should we do ? marking everyone + * as signaled for now + */ diff --git a/freed-ora/current/f14/ext4-fix-BUG_ON-in-ext4_ext_insert_extent.patch b/freed-ora/current/f14/ext4-fix-BUG_ON-in-ext4_ext_insert_extent.patch new file mode 100644 index 000000000..abd120191 --- /dev/null +++ b/freed-ora/current/f14/ext4-fix-BUG_ON-in-ext4_ext_insert_extent.patch @@ -0,0 +1,62 @@ +BZ 742091 +https://bugzilla.redhat.com/show_bug.cgi?id=742091 + +This bug was never properly fixed upstream since the code got +reorganized in: + +667eff35a1f56fa74ce98a0c7c29a40adc1ba4e3 ext4: reimplement convert and +split_unwritten + +This fix has proposed by Zheng Liu <wenqing.lz@taobao.com>, then updated, +reviewed and tested by me. + +We will meet with a BUG_ON() if following script is run. + +mkfs.ext4 -b 4096 /dev/sdb1 1000000 +mount -t ext4 /dev/sdb1 /mnt/sdb1 +fallocate -l 100M /mnt/sdb1/test +sync +for((i=0;i<170;i++)) +do + dd if=/dev/zero of=/mnt/sdb1/test conv=notrunc bs=256k count=1 seek=`expr $i \* 2` +done +umount /mnt/sdb1 +mount -t ext4 /dev/sdb1 /mnt/sdb1 +dd if=/dev/zero of=/mnt/sdb1/test conv=notrunc bs=256k count=1 seek=341 +umount /mnt/sdb1 +mount /dev/sdb1 /mnt/sdb1 +dd if=/dev/zero of=/mnt/sdb1/test conv=notrunc bs=256k count=1 seek=340 +sync + +The reason is that it forgot to mark dirty when splitting two extents in +ext4_ext_convert_to_initialized(). Althrough ex has been updated in memory, +it is not dirtied both in ext4_ext_convert_to_initialized() and +ext4_ext_insert_extent(). The disk layout is corrupted. Then it will meet with +a BUG_ON() when writting at the start of that extent again. + +Originally-from: Zheng Liu <wenqing.lz@taobao.com> +Signed-off-by: Lukas Czerner <lczerner@redhat.com> +--- + fs/ext4/extents.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +Index: linux-2.6.35.noarch/fs/ext4/extents.c +=================================================================== +--- linux-2.6.35.noarch.orig/fs/ext4/extents.c ++++ linux-2.6.35.noarch/fs/ext4/extents.c +@@ -2687,6 +2687,7 @@ static int ext4_ext_convert_to_initializ + ex1 = ex; + ex1->ee_len = cpu_to_le16(map->m_lblk - ee_block); + ext4_ext_mark_uninitialized(ex1); ++ ext4_ext_dirty(handle, inode, path + depth); + ex2 = &newex; + } + /* +@@ -2850,6 +2851,7 @@ static int ext4_ext_convert_to_initializ + ex1 = ex; + ex1->ee_len = cpu_to_le16(map->m_lblk - ee_block); + ext4_ext_mark_uninitialized(ex1); ++ ext4_ext_dirty(handle, inode, path + depth); + ex2 = &newex; + } + /* ex2: map->m_lblk to map->m_lblk + maxblocks-1 : initialised */ diff --git a/freed-ora/current/f14/kernel.spec b/freed-ora/current/f14/kernel.spec index a8e95c664..8807e8022 100644 --- a/freed-ora/current/f14/kernel.spec +++ b/freed-ora/current/f14/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 98 +%global baserelease 100 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -679,6 +679,7 @@ Patch393: acpi-ec-add-delay-before-write.patch Patch394: linux-2.6-acpi-debug-infinite-loop.patch Patch395: acpi-update-battery-information-on-notification-0x81.patch Patch396: linux-2.6-acpi-fix-alias.patch +Patch397: acpi-sony-nonvs-blacklist.patch Patch450: linux-2.6-input-kill-stupid-messages.patch Patch452: linux-2.6.30-no-pcspkr-modalias.patch @@ -735,6 +736,7 @@ Patch1826: drm-i915-disable-sr-polling.patch Patch1828: drm-ttm-fix-two-race-conditions-fix-busy-codepaths.patch Patch1830: drm-radeon-r600-cs-checker-fixes.patch +Patch1850: drm-lower-severity-radeon-lockup.diff Patch1900: linux-2.6-intel-iommu-igfx.patch Patch2000: efifb-add-more-models.patch @@ -918,6 +920,13 @@ Patch14059: fuse-check-size-of-FUSE_NOTIFY_INVAL_ENTRY-message.patch Patch14060: TPM-Call-tpm_transmit-with-correct-size.patch Patch14061: TPM-Zero-buffer-after-copying-to-userspace.patch +# RHBZ #663186 +Patch14062: 0001-EHCI-don-t-rescan-interrupt-QHs-needlessly.patch +Patch14063: 0002-USB-EHCI-go-back-to-using-the-system-clock-for-QH-un.patch + +#rhbz 747948 +Patch14064: ext4-fix-BUG_ON-in-ext4_ext_insert_extent.patch + %endif BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root @@ -1439,6 +1448,7 @@ ApplyPatch linux-2.6-acpi-debug-infinite-loop.patch ApplyPatch acpi-update-battery-information-on-notification-0x81.patch ApplyPatch linux-2.6-defaults-no-pm-async.patch ApplyPatch linux-2.6-acpi-fix-alias.patch +ApplyPatch acpi-sony-nonvs-blacklist.patch # Various low-impact patches to aid debugging. ApplyPatch linux-2.6-debug-sizeof-structs.patch @@ -1546,6 +1556,8 @@ ApplyPatch drm-ttm-fix-two-race-conditions-fix-busy-codepaths.patch ApplyPatch drm-radeon-r600-cs-checker-fixes.patch +ApplyPatch drm-lower-severity-radeon-lockup.diff + ApplyPatch efifb-add-more-models.patch ApplyPatch efifb-check-that-the-base-addr-is-plausible-on-pci-systems.patch @@ -1739,6 +1751,13 @@ ApplyPatch fuse-check-size-of-FUSE_NOTIFY_INVAL_ENTRY-message.patch ApplyPatch TPM-Call-tpm_transmit-with-correct-size.patch ApplyPatch TPM-Zero-buffer-after-copying-to-userspace.patch +# RHBZ #663186 +ApplyPatch 0001-EHCI-don-t-rescan-interrupt-QHs-needlessly.patch +ApplyPatch 0002-USB-EHCI-go-back-to-using-the-system-clock-for-QH-un.patch + +#rhbz 747948 +ApplyPatch ext4-fix-BUG_ON-in-ext4_ext_insert_extent.patch + # END OF PATCH APPLICATIONS # Linux-libre-specific, added by Koko's request for BLAG. @@ -2328,6 +2347,18 @@ fi # and build. %changelog +* Fri Oct 21 2011 Dave Jones <davej@redhat.com> +- Lower severity of Radeon lockup messages. + +* Fri Oct 20 2011 Josh Boyer <jwboyer@redhat.com> +- Add fix for ext4 BUG_ON backtrace (rhbz 747948) + +* Wed Oct 19 2011 Dave Jones <davej@redhat.com> +- Add Sony VGN-FW21E to nonvs blacklist. (rhbz 641789) + +* Fri Oct 14 2011 Josh Boyer <jwboyer@redhat.com> +- Add patches to fix RHBZ #663186 + * Tue Oct 11 2011 Dave Jones <davej@redhat.com> - acer-wmi: Fix capitalisation of GUID in module alias (rhbz 661322) |