diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2010-09-25 06:10:38 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2010-09-25 06:10:38 +0000 |
commit | 1463d83e21f46175ce1f34e0b90aa4a41300647c (patch) | |
tree | b905688a39df8ac7e3ea5af9d64aca307c50993b /freed-ora/current/master | |
parent | a5c5fffc5cb0be21853d850d4c376c4c84c71a6d (diff) | |
download | linux-libre-raptor-1463d83e21f46175ce1f34e0b90aa4a41300647c.tar.gz linux-libre-raptor-1463d83e21f46175ce1f34e0b90aa4a41300647c.zip |
2.6.36-0.26.rc5.git4.fc15
Diffstat (limited to 'freed-ora/current/master')
8 files changed, 244 insertions, 88 deletions
diff --git a/freed-ora/current/master/fix-icebp-breakpoints.patch b/freed-ora/current/master/fix-icebp-breakpoints.patch deleted file mode 100644 index a84994df3..000000000 --- a/freed-ora/current/master/fix-icebp-breakpoints.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Frederic Weisbecker <fweisbec@gmail.com> - -https://bugzilla.kernel.org/show_bug.cgi?id=16315#c26 -http://bugs.winehq.org/show_bug.cgi?id=23323 - -diff --git a/arch/x86/include/asm/hw_breakpoint.h b/arch/x86/include/asm/hw_breakpoint.h -index 528a11e..824ca07 100644 ---- a/arch/x86/include/asm/hw_breakpoint.h -+++ b/arch/x86/include/asm/hw_breakpoint.h -@@ -20,7 +20,7 @@ struct arch_hw_breakpoint { - #include <linux/list.h> - - /* Available HW breakpoint length encodings */ --#define X86_BREAKPOINT_LEN_X 0x00 -+#define X86_BREAKPOINT_LEN_X 0x40 - #define X86_BREAKPOINT_LEN_1 0x40 - #define X86_BREAKPOINT_LEN_2 0x44 - #define X86_BREAKPOINT_LEN_4 0x4c -diff --git a/arch/x86/kernel/hw_breakpoint.c b/arch/x86/kernel/hw_breakpoint.c -index a474ec3..71123b1 100644 ---- a/arch/x86/kernel/hw_breakpoint.c -+++ b/arch/x86/kernel/hw_breakpoint.c -@@ -208,9 +208,6 @@ int arch_bp_generic_fields(int x86_len, int x86_type, - { - /* Len */ - switch (x86_len) { -- case X86_BREAKPOINT_LEN_X: -- *gen_len = sizeof(long); -- break; - case X86_BREAKPOINT_LEN_1: - *gen_len = HW_BREAKPOINT_LEN_1; - break; -@@ -233,6 +230,7 @@ int arch_bp_generic_fields(int x86_len, int x86_type, - switch (x86_type) { - case X86_BREAKPOINT_EXECUTE: - *gen_type = HW_BREAKPOINT_X; -+ *gen_len = sizeof(long); - break; - case X86_BREAKPOINT_WRITE: - *gen_type = HW_BREAKPOINT_W; -@@ -316,9 +314,6 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) - ret = -EINVAL; - - switch (info->len) { -- case X86_BREAKPOINT_LEN_X: -- align = sizeof(long) -1; -- break; - case X86_BREAKPOINT_LEN_1: - align = 0; - break; diff --git a/freed-ora/current/master/kernel.spec b/freed-ora/current/master/kernel.spec index 3844f8589..9d2d77019 100644 --- a/freed-ora/current/master/kernel.spec +++ b/freed-ora/current/master/kernel.spec @@ -51,7 +51,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be prepended with "0.", so # for example a 3 here will become 0.3 # -%global baserelease 25 +%global baserelease 26 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -98,7 +98,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 5 # The git snapshot level -%define gitrev 0 +%define gitrev 4 # Set rpm version accordingly %define rpmversion 2.6.%{upstream_sublevel} %endif @@ -627,8 +627,6 @@ Patch30: linux-2.6-tracehook.patch Patch31: linux-2.6-utrace.patch Patch32: linux-2.6-utrace-ptrace.patch -Patch100: fix-icebp-breakpoints.patch - Patch150: linux-2.6.29-sparc-IOC_TYPECHECK.patch Patch160: linux-2.6-32bit-mmap-exec-randomization.patch @@ -671,7 +669,6 @@ Patch800: linux-2.6-crash-driver.patch # virt + ksm patches Patch1555: fix_xen_guest_on_old_EC2.patch -Patch1556: linux-2.6.35.4-virtio_console-fix-poll.patch # DRM Patch1801: drm-revert-drm-fbdev-rework-output-polling-to-be-back-in-core.patch @@ -729,8 +726,8 @@ Patch12115: wacom-04-add-support-for-the-bamboo-touch-trackpad.patch Patch12120: wacom-05-add-a-quirk-for-low-resolution-bamboo-devices.patch Patch12125: wacom-06-request-tablet-data-for-bamboo-pens.patch Patch12130: wacom-07-move-bamboo-touch-irq-to-its-own-function.patch -Patch12035: wacom-08-add-support-for-bamboo-pen.patch -Patch12040: wacom-09-disable-bamboo-touchpad-when-pen-is-being-used.patch +Patch12135: wacom-08-add-support-for-bamboo-pen.patch +Patch12140: wacom-09-disable-bamboo-touchpad-when-pen-is-being-used.patch # Runtime power management Patch12200: linux-2.6-bluetooth-autosuspend.patch @@ -738,6 +735,12 @@ Patch12201: linux-2.6-uvc-autosuspend.patch Patch12202: linux-2.6-qcserial-autosuspend.patch Patch12203: linux-2.6-usb-pci-autosuspend.patch +# PCI patches to fix problems with _CRS +Patch12221: pci-v2-1-4-resources-ensure-alignment-callback-doesn-t-allocate-below-available-start.patch +Patch12222: pci-v2-2-4-x86-PCI-allocate-space-from-the-end-of-a-region-not-the-beginning.patch +Patch12223: pci-v2-3-4-resources-allocate-space-within-a-region-from-the-top-down.patch +Patch12224: pci-v2-4-4-PCI-allocate-bus-resources-from-the-top-down.patch + Patch12300: btusb-macbookpro-7-1.patch Patch12301: btusb-macbookpro-6-2.patch @@ -1190,7 +1193,6 @@ ApplyPatch linux-2.6-utrace-ptrace.patch # Architecture patches # x86(-64) -ApplyPatch fix-icebp-breakpoints.patch # # Intel IOMMU @@ -1300,7 +1302,6 @@ ApplyPatch linux-2.6-crash-driver.patch # Assorted Virt Fixes ApplyPatch fix_xen_guest_on_old_EC2.patch -ApplyPatch linux-2.6.35.4-virtio_console-fix-poll.patch #ApplyPatch drm-revert-drm-fbdev-rework-output-polling-to-be-back-in-core.patch #ApplyPatch revert-drm-kms-toggle-poll-around-switcheroo.patch @@ -1361,6 +1362,13 @@ ApplyPatch linux-2.6-uvc-autosuspend.patch ApplyPatch linux-2.6-qcserial-autosuspend.patch ApplyPatch linux-2.6-usb-pci-autosuspend.patch +# PCI patches to fix problems with _CRS +# ( from https://bugzilla.kernel.org/show_bug.cgi?id=16228#c49 ) +ApplyPatch pci-v2-1-4-resources-ensure-alignment-callback-doesn-t-allocate-below-available-start.patch +ApplyPatch pci-v2-2-4-x86-PCI-allocate-space-from-the-end-of-a-region-not-the-beginning.patch +ApplyPatch pci-v2-3-4-resources-allocate-space-within-a-region-from-the-top-down.patch +ApplyPatch pci-v2-4-4-PCI-allocate-bus-resources-from-the-top-down.patch + ApplyPatch btusb-macbookpro-7-1.patch ApplyPatch btusb-macbookpro-6-2.patch @@ -1971,6 +1979,13 @@ fi # || || %changelog +* Thu Sep 23 2010 Chuck Ebbert <cebbert@redhat.com> 2.6.36-0.26.rc5.git4 +- Linux 2.6.36-rc5-git4 +- Drop merged patches: + fix-icebp-breakpoints.patch + linux-2.6.35.4-virtio_console-fix-poll.patch +- Add patches to fix problems with PCI _CRS + * Thu Sep 23 2010 Kyle McMartin <kyle@redhat.com> 2.6.36-0.25.rc5 - Add s390 vdso AFTER_LINK to Roland's linux-2.6-makefile-after_link.patch diff --git a/freed-ora/current/master/linux-2.6.35.4-virtio_console-fix-poll.patch b/freed-ora/current/master/linux-2.6.35.4-virtio_console-fix-poll.patch deleted file mode 100644 index b87bdf077..000000000 --- a/freed-ora/current/master/linux-2.6.35.4-virtio_console-fix-poll.patch +++ /dev/null @@ -1,29 +0,0 @@ -Subject: virtio_console: Fix poll blocking even though there is data to read -From: Hans de Goede <hdegoede@redhat.com> - -I found this while working on a Linux agent for spice, the symptom I was -seeing was select blocking on the spice vdagent virtio serial port even -though there were messages queued up there. - -virtio_console's port_fops_poll checks port->inbuf != NULL to determine if -read won't block. However if an application reads enough bytes from inbuf -through port_fops_read, to empty the current port->inbuf, port->inbuf -will be NULL even though there may be buffers left in the virtqueue. - -This causes poll() to block even though there is data to be read, this patch -fixes this by using the alredy defined will_read_block utility function -instead of the port->inbuf != NULL check. - -Signed-off-By: Hans de Goede <hdegoede@redhat.com> -diff -up linux-2.6.35.x86_64/drivers/char/virtio_console.c~ linux-2.6.35.x86_64/drivers/char/virtio_console.c ---- linux-2.6.35.x86_64/drivers/char/virtio_console.c~ 2010-08-02 00:11:14.000000000 +0200 -+++ linux-2.6.35.x86_64/drivers/char/virtio_console.c 2010-09-15 13:39:29.043505000 +0200 -@@ -642,7 +642,7 @@ static unsigned int port_fops_poll(struc - poll_wait(filp, &port->waitqueue, wait); - - ret = 0; -- if (port->inbuf) -+ if (!will_read_block(port)) - ret |= POLLIN | POLLRDNORM; - if (!will_write_block(port)) - ret |= POLLOUT; diff --git a/freed-ora/current/master/pci-v2-1-4-resources-ensure-alignment-callback-doesn-t-allocate-below-available-start.patch b/freed-ora/current/master/pci-v2-1-4-resources-ensure-alignment-callback-doesn-t-allocate-below-available-start.patch new file mode 100644 index 000000000..d1f4abad6 --- /dev/null +++ b/freed-ora/current/master/pci-v2-1-4-resources-ensure-alignment-callback-doesn-t-allocate-below-available-start.patch @@ -0,0 +1,28 @@ +diff --git a/kernel/resource.c b/kernel/resource.c +index 7b36976..ace2269 100644 +--- a/kernel/resource.c ++++ b/kernel/resource.c +@@ -371,6 +371,7 @@ static int find_resource(struct resource *root, struct resource *new, + { + struct resource *this = root->child; + struct resource tmp = *new; ++ resource_size_t start; + + tmp.start = root->start; + /* +@@ -391,8 +392,13 @@ static int find_resource(struct resource *root, struct resource *new, + if (tmp.end > max) + tmp.end = max; + tmp.start = ALIGN(tmp.start, align); +- if (alignf) +- tmp.start = alignf(alignf_data, &tmp, size, align); ++ if (alignf) { ++ start = alignf(alignf_data, &tmp, size, align); ++ if (tmp.start <= start && start <= tmp.end) ++ tmp.start = start; ++ else ++ tmp.start = tmp.end; ++ } + if (tmp.start < tmp.end && tmp.end - tmp.start >= size - 1) { + new->start = tmp.start; + new->end = tmp.start + size - 1; diff --git a/freed-ora/current/master/pci-v2-2-4-x86-PCI-allocate-space-from-the-end-of-a-region-not-the-beginning.patch b/freed-ora/current/master/pci-v2-2-4-x86-PCI-allocate-space-from-the-end-of-a-region-not-the-beginning.patch new file mode 100644 index 000000000..48ad106a6 --- /dev/null +++ b/freed-ora/current/master/pci-v2-2-4-x86-PCI-allocate-space-from-the-end-of-a-region-not-the-beginning.patch @@ -0,0 +1,40 @@ +diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c +index 5525309..fe866c8 100644 +--- a/arch/x86/pci/i386.c ++++ b/arch/x86/pci/i386.c +@@ -37,6 +37,7 @@ + #include <asm/pci_x86.h> + #include <asm/io_apic.h> + ++#define ALIGN_DOWN(x, a) ((x) & ~(a - 1)) + + static int + skip_isa_ioresource_align(struct pci_dev *dev) { +@@ -65,16 +66,21 @@ pcibios_align_resource(void *data, const struct resource *res, + resource_size_t size, resource_size_t align) + { + struct pci_dev *dev = data; +- resource_size_t start = res->start; ++ resource_size_t start = ALIGN_DOWN(res->end - size + 1, align); + + if (res->flags & IORESOURCE_IO) { +- if (skip_isa_ioresource_align(dev)) +- return start; +- if (start & 0x300) +- start = (start + 0x3ff) & ~0x3ff; ++ ++ /* ++ * If we're avoiding ISA aliases, the largest contiguous I/O ++ * port space is 256 bytes. Clearing bits 9 and 10 preserves ++ * all 256-byte and smaller alignments, so the result will ++ * still be correctly aligned. ++ */ ++ if (!skip_isa_ioresource_align(dev)) ++ start &= ~0x300; + } else if (res->flags & IORESOURCE_MEM) { + if (start < BIOS_END) +- start = BIOS_END; ++ start = res->end; /* fail; no space */ + } + return start; + } diff --git a/freed-ora/current/master/pci-v2-3-4-resources-allocate-space-within-a-region-from-the-top-down.patch b/freed-ora/current/master/pci-v2-3-4-resources-allocate-space-within-a-region-from-the-top-down.patch new file mode 100644 index 000000000..2a5d09f09 --- /dev/null +++ b/freed-ora/current/master/pci-v2-3-4-resources-allocate-space-within-a-region-from-the-top-down.patch @@ -0,0 +1,71 @@ +diff --git a/kernel/resource.c b/kernel/resource.c +index ace2269..1a2a40e 100644 +--- a/kernel/resource.c ++++ b/kernel/resource.c +@@ -358,6 +358,20 @@ int __weak page_is_ram(unsigned long pfn) + } + + /* ++ * Find the resource before "child" in the sibling list of "root" children. ++ */ ++static struct resource *find_sibling_prev(struct resource *root, struct resource *child) ++{ ++ struct resource *this; ++ ++ for (this = root->child; this; this = this->sibling) ++ if (this->sibling == child) ++ return this; ++ ++ return NULL; ++} ++ ++/* + * Find empty slot in the resource tree given range and alignment. + */ + static int find_resource(struct resource *root, struct resource *new, +@@ -369,24 +383,18 @@ static int find_resource(struct resource *root, struct resource *new, + resource_size_t), + void *alignf_data) + { +- struct resource *this = root->child; ++ struct resource *this; + struct resource tmp = *new; + resource_size_t start; + +- tmp.start = root->start; +- /* +- * Skip past an allocated resource that starts at 0, since the assignment +- * of this->start - 1 to tmp->end below would cause an underflow. +- */ +- if (this && this->start == 0) { +- tmp.start = this->end + 1; +- this = this->sibling; +- } +- for(;;) { ++ tmp.end = root->end; ++ ++ this = find_sibling_prev(root, NULL); ++ for (;;) { + if (this) +- tmp.end = this->start - 1; ++ tmp.start = this->end + 1; + else +- tmp.end = root->end; ++ tmp.start = root->start; + if (tmp.start < min) + tmp.start = min; + if (tmp.end > max) +@@ -404,10 +412,10 @@ static int find_resource(struct resource *root, struct resource *new, + new->end = tmp.start + size - 1; + return 0; + } +- if (!this) ++ if (!this || this->start == root->start) + break; +- tmp.start = this->end + 1; +- this = this->sibling; ++ tmp.end = this->start - 1; ++ this = find_sibling_prev(root, this); + } + return -EBUSY; + } diff --git a/freed-ora/current/master/pci-v2-4-4-PCI-allocate-bus-resources-from-the-top-down.patch b/freed-ora/current/master/pci-v2-4-4-PCI-allocate-bus-resources-from-the-top-down.patch new file mode 100644 index 000000000..c1412b5bd --- /dev/null +++ b/freed-ora/current/master/pci-v2-4-4-PCI-allocate-bus-resources-from-the-top-down.patch @@ -0,0 +1,80 @@ +diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c +index 7f0af0e..172bf26 100644 +--- a/drivers/pci/bus.c ++++ b/drivers/pci/bus.c +@@ -64,6 +64,49 @@ void pci_bus_remove_resources(struct pci_bus *bus) + } + } + ++/* ++ * Find the highest-address bus resource below the cursor "res". If the ++ * cursor is NULL, return the highest resource. ++ */ ++static struct resource *pci_bus_find_resource_prev(struct pci_bus *bus, ++ unsigned int type, ++ struct resource *res) ++{ ++ struct resource *r, *prev = NULL; ++ int i; ++ ++ pci_bus_for_each_resource(bus, r, i) { ++ if (!r) ++ continue; ++ ++ if ((r->flags & IORESOURCE_TYPE_BITS) != type) ++ continue; ++ ++ /* If this resource is at or past the cursor, skip it */ ++ if (res) { ++ if (r == res) ++ continue; ++ if (r->end > res->end) ++ continue; ++ if (r->end == res->end && r->start > res->start) ++ continue; ++ } ++ ++ if (!prev) ++ prev = r; ++ ++ /* ++ * A small resource is higher than a large one that ends at ++ * the same address. ++ */ ++ if (r->end > prev->end || ++ (r->end == prev->end && r->start > prev->start)) ++ prev = r; ++ } ++ ++ return prev; ++} ++ + /** + * pci_bus_alloc_resource - allocate a resource from a parent bus + * @bus: PCI bus +@@ -89,9 +132,10 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, + resource_size_t), + void *alignf_data) + { +- int i, ret = -ENOMEM; ++ int ret = -ENOMEM; + struct resource *r; + resource_size_t max = -1; ++ unsigned int type = res->flags & IORESOURCE_TYPE_BITS; + + type_mask |= IORESOURCE_IO | IORESOURCE_MEM; + +@@ -99,10 +143,9 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, + if (!(res->flags & IORESOURCE_MEM_64)) + max = PCIBIOS_MAX_MEM_32; + +- pci_bus_for_each_resource(bus, r, i) { +- if (!r) +- continue; +- ++ /* Look for space at highest addresses first */ ++ r = pci_bus_find_resource_prev(bus, type, NULL); ++ for ( ; r; r = pci_bus_find_resource_prev(bus, type, r)) { + /* type_mask must match */ + if ((res->flags ^ r->flags) & type_mask) + continue; diff --git a/freed-ora/current/master/sources b/freed-ora/current/master/sources index 978e15915..5de41aae4 100644 --- a/freed-ora/current/master/sources +++ b/freed-ora/current/master/sources @@ -1,2 +1,3 @@ 046764af95a672b860dae1a955e91299 linux-2.6.35-libre2.tar.bz2 0572e53d584f552316d2522a9d3f9fbd patch-libre-2.6.36-rc5.bz2 +754de7d199807e79c29ee98c8b5e0f12 patch-2.6.36-rc5-git4.bz2 |