rpms/kernel/F-10 linux-2.6-gspca-git.patch, NONE, 1.1 linux-2.6-olpc-speaker-out.patch, 1.2, 1.3 linux-2.6-selinux-move-open-perms-check.patch, NONE, 1.1 linux-2.6-serial.patch, NONE, 1.1 linux-2.6.27-ext-dir-corruption-fix.patch, 1.2, 1.3 linux-2.6.27-ext4-2.6.28-backport-fixups.patch, 1.2, 1.3 linux-2.6.27-ext4-2.6.28-rc3-git6.patch, 1.2, 1.3 linux-2.6.28.tar.bz2.sign, NONE, 1.1 .cvsignore, 1.960, 1.961 Makefile, 1.90, 1.91 TODO, 1.46, 1.47 config-debug, 1.20, 1.21 config-generic, 1.202, 1.203 config-ia64-generic, 1.18, 1.19 config-nodebug, 1.22, 1.23 config-powerpc-generic, 1.26, 1.27 config-rhel-generic, 1.15, 1.16 config-s390x, 1.9, 1.10 config-sparc64-generic, 1.20, 1.21 config-x86-generic, 1.55, 1.56 config-x86_64-generic, 1.54, 1.55 drm-modesetting-radeon.patch, 1.68, 1.69 drm-next.patch, 1.10, 1.11 git-cpufreq.patch, 1.3, 1.4 kernel.spec, 1.1206, 1.1207 linux-2.6-compile-fixes.patch, 1.178, 1.179 linux-2.6-crash-driver.patch, 1.11, 1.12 linux-2.6-debug-taint-vm.patch, 1.21, 1.22 linux-2.6-defaults-pci_no_msi.patch, 1.1, 1.2 linux-2.6-execshield.patch, 1.97, 1.98 linux-2.6-firewire-git-pending.patch, 1.33, 1.34 linux-2.6-hdpvr.patch, 1.1, 1.2 linux-2.6-netdev-atl2.patch, 1.2, 1.3 linux-2.6-pciehp-update.patch, 1.6, 1.7 linux-2.6-silence-noise.patch, 1.21, 1.22 linux-2.6-squashfs.patch, 1.31, 1.32 linux-2.6-upstream-reverts.patch, 1.6, 1.7 linux-2.6-utrace.patch, 1.103, 1.104 linux-2.6.27-lirc.patch, 1.1, 1.2 linux-2.6.27-pci-hush-allocation-failures.patch, 1.2, 1.3 sources, 1.922, 1.923 upstream, 1.834, 1.835 drm-fix-master-enable.patch, 1.1, NONE drm-intel-8xx-pae-no-gem.patch, 1.4, NONE linux-2.6-acpi-dock-fix-eject-request-process.patch, 1.1, NONE linux-2.6-acpi-handle-ec-init-failure.patch, 1.1, NONE linux-2.6-alsa-backport-beep-switch.patch, 1.1, NONE linux-2.6-alsa-hda-remove-broken-headphone-control-for-dell-laptops.patch, 1.1, NONE linux-2.6-alsa-hda-revert-remove-unneeded-hp-nid-references.patch, 1.1, NONE linux-2.6-alsa-hda-stac-dell-m6-eapd.patch, 1.1, NONE linux-2.6-amd64-yes-i-know-you-live.patch, 1.1, NONE linux-2.6-crypto-fips_enable.patch, 1.1, NONE linux-2.6-default-mmf_dump_elf_headers.patch, 1.2, NONE linux-2.6-defaults-fat-utf8.patch, 1.4, NONE linux-2.6-dmi-autoload.patch, 1.1, NONE linux-2.6-e1000e-add-support-for-82567LM-3-and-82567LF-3-ICH10D-parts.patch, 1.2, NONE linux-2.6-e1000e-add-support-for-new-82574L-part.patch, 1.3, NONE linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch, 1.2, NONE linux-2.6-eeepc-laptop-update.patch, 1.2, NONE linux-2.6-gspca-vc0321-fix-frame-overflow.patch, 1.1, NONE linux-2.6-input.git-i8042-add-xps-m1530-to-nomux.patch, 1.1, NONE linux-2.6-iwl3945-ibss-tsf-fix.patch, 1.1, NONE linux-2.6-iwlagn-downgrade-BUG_ON-in-interrupt.patch, 1.1, NONE linux-2.6-merge-efifb-imacfb.patch, 1.5, NONE linux-2.6-mm-pagefault-enable-ints.patch, 1.1, NONE linux-2.6-net-qla-silence-debug-printks.patch, 1.1, NONE linux-2.6-netdev-r8169-2.6.28.patch, 1.2, NONE linux-2.6-nfs-client-mounts-hang.patch, 1.2, NONE linux-2.6-olpc-touchpad.patch, 1.2, NONE linux-2.6-pci-fix-pciehp-irq0.patch, 1.1, NONE linux-2.6-pciehp-kill-annoying-messages.patch, 1.1, NONE linux-2.6-quiet-iommu.patch, 1.1, NONE linux-2.6-quieter-mmc.patch, 1.1, NONE linux-2.6-sched-fine-tune-SD_MC_INIT.patch, 1.1, NONE linux-2.6-sched-fine-tune-SD_SIBLING_INIT.patch, 1.1, NONE linux-2.6-sched-wakeup-preempt-when-small-overlap.patch, 1.1, NONE linux-2.6-selinux-empty-tty-files.patch, 1.1, NONE linux-2.6-selinux-recognise-addrlabel.patch, 1.1, NONE linux-2.6-toshiba-acpi-update.patch, 1.1, NONE linux-2.6-usb-ehci-hcd-respect-nousb.patch, 1.2, NONE linux-2.6-uvc-hg.patch, 1.1, NONE linux-2.6-uvc-spca525.patch, 1.1, NONE linux-2.6-wireless-ath9k-dma-fixes.patch, 1.2, NONE linux-2.6-x86-pci-amd-config-space.patch, 1.1, NONE linux-2.6-x86-tracehook.patch, 1.10, NONE linux-2.6-xen-execshield-add-xen-specific-load_user_cs_desc.patch, 1.1, NONE linux-2.6-xen-execshield-only-define-load_user_cs_desc-on-32-bit.patch, 1.1, NONE linux-2.6.27-ext4-rename-ext4dev-to-ext4.patch, 1.1, NONE linux-2.6.27-hwmon-applesmc-2.6.28.patch, 1.3, NONE linux-2.6.27-x86-tracehook-syscall-arg-order.patch, 1.1, NONE linux-2.6.27.7-alsa-driver-fixups.patch, 1.2, NONE linux-2.6.27.9-alsa-driver-1.0.18a.patch, 1.1, NONE linux-2.6.27.9-alsa-hda-add-a-quirk-for-dell-studio-15.patch, 1.1, NONE linux-2.6.27.9-alsa-hda-mark-dell-studio-1535-quirk.patch, 1.1, NONE linux-2.6.27.9-alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch, 1.1, NONE linux-2.6.27.9-ext4-cap-check-delay.patch, 1.1, NONE linux-2.6.27.tar.bz2.sign, 1.1, NONE nvidia-agp.patch, 1.1, NONE patch-2.6.27.10.bz2.sign, 1.1, NONE sparc-2.6.git-aae7fb87ec4d2df6cb551670b1765cf4e5795a3b.patch, 1.1, NONE

Kyle McMartin kyle at fedoraproject.org
Mon Jan 12 19:52:05 UTC 2009


Author: kyle

Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29606

Modified Files:
	.cvsignore Makefile TODO config-debug config-generic 
	config-ia64-generic config-nodebug config-powerpc-generic 
	config-rhel-generic config-s390x config-sparc64-generic 
	config-x86-generic config-x86_64-generic 
	drm-modesetting-radeon.patch drm-next.patch git-cpufreq.patch 
	kernel.spec linux-2.6-compile-fixes.patch 
	linux-2.6-crash-driver.patch linux-2.6-debug-taint-vm.patch 
	linux-2.6-defaults-pci_no_msi.patch linux-2.6-execshield.patch 
	linux-2.6-firewire-git-pending.patch linux-2.6-hdpvr.patch 
	linux-2.6-netdev-atl2.patch linux-2.6-pciehp-update.patch 
	linux-2.6-silence-noise.patch linux-2.6-squashfs.patch 
	linux-2.6-upstream-reverts.patch linux-2.6-utrace.patch 
	linux-2.6.27-lirc.patch 
	linux-2.6.27-pci-hush-allocation-failures.patch sources 
	upstream 
Added Files:
	linux-2.6-gspca-git.patch linux-2.6-olpc-speaker-out.patch 
	linux-2.6-selinux-move-open-perms-check.patch 
	linux-2.6-serial.patch 
	linux-2.6.27-ext-dir-corruption-fix.patch 
	linux-2.6.27-ext4-2.6.28-backport-fixups.patch 
	linux-2.6.27-ext4-2.6.28-rc3-git6.patch 
	linux-2.6.28.tar.bz2.sign 
Removed Files:
	drm-fix-master-enable.patch drm-intel-8xx-pae-no-gem.patch 
	linux-2.6-acpi-dock-fix-eject-request-process.patch 
	linux-2.6-acpi-handle-ec-init-failure.patch 
	linux-2.6-alsa-backport-beep-switch.patch 
	linux-2.6-alsa-hda-remove-broken-headphone-control-for-dell-laptops.patch 
	linux-2.6-alsa-hda-revert-remove-unneeded-hp-nid-references.patch 
	linux-2.6-alsa-hda-stac-dell-m6-eapd.patch 
	linux-2.6-amd64-yes-i-know-you-live.patch 
	linux-2.6-crypto-fips_enable.patch 
	linux-2.6-default-mmf_dump_elf_headers.patch 
	linux-2.6-defaults-fat-utf8.patch linux-2.6-dmi-autoload.patch 
	linux-2.6-e1000e-add-support-for-82567LM-3-and-82567LF-3-ICH10D-parts.patch 
	linux-2.6-e1000e-add-support-for-new-82574L-part.patch 
	linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch 
	linux-2.6-eeepc-laptop-update.patch 
	linux-2.6-gspca-vc0321-fix-frame-overflow.patch 
	linux-2.6-input.git-i8042-add-xps-m1530-to-nomux.patch 
	linux-2.6-iwl3945-ibss-tsf-fix.patch 
	linux-2.6-iwlagn-downgrade-BUG_ON-in-interrupt.patch 
	linux-2.6-merge-efifb-imacfb.patch 
	linux-2.6-mm-pagefault-enable-ints.patch 
	linux-2.6-net-qla-silence-debug-printks.patch 
	linux-2.6-netdev-r8169-2.6.28.patch 
	linux-2.6-nfs-client-mounts-hang.patch 
	linux-2.6-olpc-touchpad.patch 
	linux-2.6-pci-fix-pciehp-irq0.patch 
	linux-2.6-pciehp-kill-annoying-messages.patch 
	linux-2.6-quiet-iommu.patch linux-2.6-quieter-mmc.patch 
	linux-2.6-sched-fine-tune-SD_MC_INIT.patch 
	linux-2.6-sched-fine-tune-SD_SIBLING_INIT.patch 
	linux-2.6-sched-wakeup-preempt-when-small-overlap.patch 
	linux-2.6-selinux-empty-tty-files.patch 
	linux-2.6-selinux-recognise-addrlabel.patch 
	linux-2.6-toshiba-acpi-update.patch 
	linux-2.6-usb-ehci-hcd-respect-nousb.patch 
	linux-2.6-uvc-hg.patch linux-2.6-uvc-spca525.patch 
	linux-2.6-wireless-ath9k-dma-fixes.patch 
	linux-2.6-x86-pci-amd-config-space.patch 
	linux-2.6-x86-tracehook.patch 
	linux-2.6-xen-execshield-add-xen-specific-load_user_cs_desc.patch 
	linux-2.6-xen-execshield-only-define-load_user_cs_desc-on-32-bit.patch 
	linux-2.6.27-ext4-rename-ext4dev-to-ext4.patch 
	linux-2.6.27-hwmon-applesmc-2.6.28.patch 
	linux-2.6.27-x86-tracehook-syscall-arg-order.patch 
	linux-2.6.27.7-alsa-driver-fixups.patch 
	linux-2.6.27.9-alsa-driver-1.0.18a.patch 
	linux-2.6.27.9-alsa-hda-add-a-quirk-for-dell-studio-15.patch 
	linux-2.6.27.9-alsa-hda-mark-dell-studio-1535-quirk.patch 
	linux-2.6.27.9-alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch 
	linux-2.6.27.9-ext4-cap-check-delay.patch 
	linux-2.6.27.tar.bz2.sign nvidia-agp.patch 
	patch-2.6.27.10.bz2.sign 
	sparc-2.6.git-aae7fb87ec4d2df6cb551670b1765cf4e5795a3b.patch 
Log Message:
* Mon Jan 12 2009 Kyle McMartin <kyle at redhat.com>
- Rebase for Fedora 10.
- Turn off CONFIG_MAXSMP on x86_64.


linux-2.6-gspca-git.patch:

--- NEW FILE linux-2.6-gspca-git.patch ---
diff -urN /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/Kconfig linux/drivers/media/video/gspca/Kconfig
--- /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/Kconfig	2008-12-10 19:44:21.000000000 +0100
+++ linux/drivers/media/video/gspca/Kconfig	2008-12-09 21:37:33.000000000 +0100
@@ -12,7 +12,7 @@
 	  "Video For Linux" to use this driver.
 
 	  To compile this driver as modules, choose M here: the
-	  modules will be called gspca_main.
+	  module will be called gspca_main.
 
 
 if USB_GSPCA && VIDEO_V4L2
@@ -64,6 +64,16 @@
 	  To compile this driver as a module, choose M here: the
 	  module will be called gspca_ov519.
 
+config USB_GSPCA_OV534
+	tristate "OV534 USB Camera Driver"
+	depends on VIDEO_V4L2 && USB_GSPCA
+	help
+	  Say Y here if you want support for cameras based on the OV534 chip.
+	  (e.g. Sony Playstation EYE)
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called gspca_ov534.
+
 config USB_GSPCA_PAC207
 	tristate "Pixart PAC207 USB Camera Driver"
 	depends on VIDEO_V4L2 && USB_GSPCA
@@ -83,10 +93,11 @@
 	  module will be called gspca_pac7311.
 
 config USB_GSPCA_SONIXB
-	tristate "SN9C102 USB Camera Driver"
+	tristate "SONIX Bayer USB Camera Driver"
 	depends on VIDEO_V4L2 && USB_GSPCA
 	help
-	  Say Y here if you want support for cameras based on the SONIXB chip.
+	  Say Y here if you want support for cameras based on the Sonix
+	  chips with Bayer format (SN9C101, SN9C102 and SN9C103).
 
 	  To compile this driver as a module, choose M here: the
 	  module will be called gspca_sonixb.
@@ -95,7 +106,8 @@
 	tristate "SONIX JPEG USB Camera Driver"
 	depends on VIDEO_V4L2 && USB_GSPCA
 	help
-	  Say Y here if you want support for cameras based on the SONIXJ chip.
+	  Say Y here if you want support for cameras based on the Sonix
+	  chips with JPEG format (SN9C102P, SN9C105 and >= SN9C110).
 
 	  To compile this driver as a module, choose M here: the
 	  module will be called gspca_sonixj
@@ -171,7 +183,7 @@
 	  SPCA504(abc) SPCA533 SPCA536 chips.
 
 	  To compile this driver as a module, choose M here: the
-	  module will be called gspca_spca5xx.
+	  module will be called gspca_sunplus.
 
 config USB_GSPCA_T613
 	tristate "T613 (JPEG Compliance) USB Camera Driver"
diff -urN /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/Makefile linux/drivers/media/video/gspca/Makefile
--- /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/Makefile	2008-12-10 19:44:21.000000000 +0100
+++ linux/drivers/media/video/gspca/Makefile	2008-12-09 21:37:33.000000000 +0100
@@ -4,6 +4,7 @@
 obj-$(CONFIG_USB_GSPCA_FINEPIX)	+= gspca_finepix.o
 obj-$(CONFIG_USB_GSPCA_MARS)	+= gspca_mars.o
 obj-$(CONFIG_USB_GSPCA_OV519)	+= gspca_ov519.o
+obj-$(CONFIG_USB_GSPCA_OV534)	+= gspca_ov534.o
 obj-$(CONFIG_USB_GSPCA_PAC207)	+= gspca_pac207.o
 obj-$(CONFIG_USB_GSPCA_PAC7311) += gspca_pac7311.o
 obj-$(CONFIG_USB_GSPCA_SONIXB)	+= gspca_sonixb.o
@@ -27,6 +28,7 @@
 gspca_finepix-objs		:= finepix.o
 gspca_mars-objs			:= mars.o
 gspca_ov519-objs		:= ov519.o
+gspca_ov534-objs		:= ov534.o
 gspca_pac207-objs		:= pac207.o
 gspca_pac7311-objs		:= pac7311.o
 gspca_sonixb-objs		:= sonixb.o
diff -urN /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/etoms.c linux/drivers/media/video/gspca/etoms.c
--- /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/etoms.c	2008-12-10 19:44:21.000000000 +0100
+++ linux/drivers/media/video/gspca/etoms.c	2008-12-09 21:37:33.000000000 +0100
@@ -733,6 +733,12 @@
 
 		i2c_w(gspca_dev, PAS106_REG13, &i2cflags, 1, 3);
 		i2c_w(gspca_dev, PAS106_REG0e, &gain, 1, 1);
+#if 0
+		i2c_w(gspca_dev, 0x09, &gain, 1, 1);
+		i2c_w(gspca_dev, 0x0a, &gain, 1, 1);
+		i2c_w(gspca_dev, 0x0b, &gain, 1, 1);
+		i2c_w(gspca_dev, 0x0c, &gain, 1, 1);
+#endif
 	}
 }
 
diff -urN /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/finepix.c linux/drivers/media/video/gspca/finepix.c
--- /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/finepix.c	2008-12-10 19:44:21.000000000 +0100
+++ linux/drivers/media/video/gspca/finepix.c	2008-12-09 21:37:33.000000000 +0100
@@ -314,9 +314,6 @@
 	int ret;
 	int size_ret;
 
-	/* Reset bulk in endpoint */
-	usb_clear_halt(gspca_dev->dev, gspca_dev->cam.epaddr);
-
 	/* Init the device */
 	memset(gspca_dev->usb_buf, 0, 12);
 	gspca_dev->usb_buf[0] = 0xc6;
diff -urN /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/gspca.c linux/drivers/media/video/gspca/gspca.c
--- /home/hans/projects/fedora-extras/kernel/devel/kernel-2.6.27/linux-2.6.27.noarch/drivers/media/video/gspca/gspca.c	2008-12-10 19:44:21.000000000 +0100
+++ linux/drivers/media/video/gspca/gspca.c	2008-12-10 19:53:43.000000000 +0100
@@ -45,7 +48,7 @@
 MODULE_DESCRIPTION("GSPCA USB Camera Driver");
 MODULE_LICENSE("GPL");
 
-#define DRIVER_VERSION_NUMBER	KERNEL_VERSION(2, 3, 0)
+#define DRIVER_VERSION_NUMBER	KERNEL_VERSION(2, 4, 0)
 
 static int video_nr = -1;
 
@@ -150,8 +153,11 @@
 
 		/* check the packet status and length */
 		len = urb->iso_frame_desc[i].actual_length;
-		if (len == 0)
+		if (len == 0) {
+			if (gspca_dev->empty_packet == 0)
+				gspca_dev->empty_packet = 1;
 			continue;
+		}
 		st = urb->iso_frame_desc[i].status;
 		if (st) {
 			PDEBUG(D_ERR,
@@ -170,7 +176,6 @@
 	}
 
 	/* resubmit the URB */
-	urb->status = 0;
 	st = usb_submit_urb(urb, GFP_ATOMIC);
 	if (st < 0)
 		PDEBUG(D_ERR|D_PACK, "usb_submit_urb() ret %d", st);
@@ -200,11 +208,18 @@
 {
 	struct gspca_dev *gspca_dev = (struct gspca_dev *) urb->context;
 	struct gspca_frame *frame;
+	int st;
 
 	PDEBUG(D_PACK, "bulk irq");
 	if (!gspca_dev->streaming)
 		return;
-	if (urb->status != 0 && urb->status != -ECONNRESET) {
+	switch (urb->status) {
+	case 0:
+		break;
+	case -ECONNRESET:
+		urb->status = 0;
+		break;
+	default:
 #ifdef CONFIG_PM
 		if (!gspca_dev->frozen)
 #endif
@@ -223,6 +241,13 @@
 					urb->transfer_buffer,
 					urb->actual_length);
 	}
+
+	/* resubmit the URB */
+	if (gspca_dev->cam.bulk_nurbs != 0) {
+		st = usb_submit_urb(urb, GFP_ATOMIC);
+		if (st < 0)
+			PDEBUG(D_ERR|D_PACK, "usb_submit_urb() ret %d", st);
+	}
 }
 
 /*
@@ -285,7 +310,6 @@
 		frame->v4l2_buf.bytesused = frame->data_end - frame->data;
 		frame->v4l2_buf.flags &= ~V4L2_BUF_FLAG_QUEUED;
 		frame->v4l2_buf.flags |= V4L2_BUF_FLAG_DONE;
-		atomic_inc(&gspca_dev->nevent);
 		wake_up_interruptible(&gspca_dev->wq);	/* event = new frame */
 		i = (gspca_dev->fr_i + 1) % gspca_dev->nframes;
 		gspca_dev->fr_i = i;
@@ -379,7 +403,6 @@
 	gspca_dev->fr_i = gspca_dev->fr_o = gspca_dev->fr_q = 0;
 	gspca_dev->last_packet_type = DISCARD_PACKET;
 	gspca_dev->sequence = 0;
-	atomic_set(&gspca_dev->nevent, 0);
 	return 0;
 }
 
@@ -520,11 +543,14 @@
 		nurbs = DEF_NURBS;
 	} else {				/* bulk */
 		npkt = 0;
-		bsize = gspca_dev->cam.	bulk_size;
+		bsize = gspca_dev->cam.bulk_size;
[...5646 lines suppressed...]
-		{NULL, NULL,
-		 NULL, NULL,
-		 NULL, NULL},
-/* SENSOR_ICM105A 7 */
+/* SENSOR_ICM105A 6 */
 		{icm105a_NoFliker, icm105a_NoFlikerScale,
 		 icm105a_50HZ, icm105a_50HZScale,
 		 icm105a_60HZ, icm105a_60HZScale},
-/* SENSOR_MC501CB 8 */
+/* SENSOR_MC501CB 7 */
 		{MC501CB_NoFliker, MC501CB_NoFlikerScale,
 		 MC501CB_50HZ, MC501CB_50HZScale,
 		 MC501CB_60HZ, MC501CB_60HZScale},
-/* SENSOR_OV7620 9 */
+/* SENSOR_OV7620 8 */
 		{OV7620_NoFliker, OV7620_NoFliker,
 		 OV7620_50HZ, OV7620_50HZ,
 		 OV7620_60HZ, OV7620_60HZ},
-/* SENSOR_OV7630C 10 */
+/* SENSOR_OV7630C 9 */
 		{NULL, NULL,
 		 NULL, NULL,
 		 NULL, NULL},
-/* SENSOR_PAS106 11 */
+/* SENSOR_PAS106 10 */
 		{pas106b_NoFliker, pas106b_NoFliker,
 		 pas106b_50HZ, pas106b_50HZ,
 		 pas106b_60HZ, pas106b_60HZ},
+/* SENSOR_PAS202B 11 */
+		{pas202b_NoFlikerScale, pas202b_NoFliker,
+		 pas202b_50HZScale, pas202b_50HZ,
+		 pas202b_60HZScale, pas202b_60HZ},
 /* SENSOR_PB0330 12 */
 		{pb0330_NoFliker, pb0330_NoFlikerScale,
 		 pb0330_50HZ, pb0330_50HZScale,
@@ -7002,15 +7017,15 @@
 		5,	/* SENSOR_CS2102 0 */
 		5,	/* SENSOR_CS2102K 1 */
 		4,	/* SENSOR_GC0305 2 */
-		4,	/* SENSOR_HDCS2020 3 */
-		4,	/* SENSOR_HDCS2020b 4 */
-		4,	/* SENSOR_HV7131B 5 */
-		4,	/* SENSOR_HV7131C 6 */
-		4,	/* SENSOR_ICM105A 7 */
-		4,	/* SENSOR_MC501CB 8 */
-		3,	/* SENSOR_OV7620 9 */
-		4,	/* SENSOR_OV7630C 10 */
-		4,	/* SENSOR_PAS106 11 */
+		4,	/* SENSOR_HDCS2020b 3 */
+		4,	/* SENSOR_HV7131B 4 */
+		4,	/* SENSOR_HV7131C 5 */
+		4,	/* SENSOR_ICM105A 6 */
+		4,	/* SENSOR_MC501CB 7 */
+		3,	/* SENSOR_OV7620 8 */
+		4,	/* SENSOR_OV7630C 9 */
+		4,	/* SENSOR_PAS106 10 */
+		4,	/* SENSOR_PAS202B 11 */
 		4,	/* SENSOR_PB0330 12 */
 		4,	/* SENSOR_PO2030 13 */
 		4,	/* SENSOR_TAS5130CK 14 */
@@ -7066,8 +7081,8 @@
 			sd->sensor = SENSOR_ICM105A;
 			break;
 		case 0x0e:
-			PDEBUG(D_PROBE, "Find Sensor HDCS2020");
-			sd->sensor = SENSOR_HDCS2020;
+			PDEBUG(D_PROBE, "Find Sensor PAS202B");
+			sd->sensor = SENSOR_PAS202B;
 			sd->sharpness = 1;
 			break;
 		case 0x0f:
@@ -7153,7 +7168,6 @@
 	sd->gamma = gamma[(int) sd->sensor];
 	sd->autogain = sd_ctrls[SD_AUTOGAIN].qctrl.default_value;
 	sd->lightfreq = sd_ctrls[SD_FREQ].qctrl.default_value;
-	sd->sharpness = sd_ctrls[SD_SHARPNESS].qctrl.default_value;
 
 	switch (sd->sensor) {
 	case SENSOR_GC0305:
@@ -7161,7 +7175,6 @@
 	case SENSOR_PO2030:
 		gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX);
 		break;
-	case SENSOR_HDCS2020:
 	case SENSOR_HV7131B:
 	case SENSOR_HV7131C:
 	case SENSOR_OV7630C:
@@ -7191,15 +7204,15 @@
 		{cs2102_InitialScale, cs2102_Initial},		/* 0 */
 		{cs2102K_InitialScale, cs2102K_Initial},	/* 1 */
 		{gc0305_Initial, gc0305_InitialScale},		/* 2 */
-		{hdcs2020xx_InitialScale, hdcs2020xx_Initial},	/* 3 */
-		{hdcs2020xb_InitialScale, hdcs2020xb_Initial},	/* 4 */
-		{hv7131bxx_InitialScale, hv7131bxx_Initial},	/* 5 */
-		{hv7131cxx_InitialScale, hv7131cxx_Initial},	/* 6 */
-		{icm105axx_InitialScale, icm105axx_Initial},	/* 7 */
-		{MC501CB_InitialScale, MC501CB_Initial},	/* 9 */
-		{OV7620_mode0, OV7620_mode1},			/* 9 */
-		{ov7630c_InitialScale, ov7630c_Initial},	/* 10 */
-		{pas106b_InitialScale, pas106b_Initial},	/* 11 */
+		{hdcs2020xb_InitialScale, hdcs2020xb_Initial},	/* 3 */
+		{hv7131bxx_InitialScale, hv7131bxx_Initial},	/* 4 */
+		{hv7131cxx_InitialScale, hv7131cxx_Initial},	/* 5 */
+		{icm105axx_InitialScale, icm105axx_Initial},	/* 6 */
+		{MC501CB_InitialScale, MC501CB_Initial},	/* 7 */
+		{OV7620_mode0, OV7620_mode1},			/* 8 */
+		{ov7630c_InitialScale, ov7630c_Initial},	/* 9 */
+		{pas106b_InitialScale, pas106b_Initial},	/* 10 */
+		{pas202b_Initial, pas202b_InitialScale},	/* 11 */
 		{pb0330xx_InitialScale, pb0330xx_Initial},	/* 12 */
 /* or		{pb03303x_InitialScale, pb03303x_Initial}, */
 		{PO2030_mode0, PO2030_mode1},			/* 13 */
@@ -7256,6 +7269,11 @@
 		reg_r(gspca_dev, 0x0008);
 		reg_w(dev, 0x00, 0x0008);
 		break;
+	case SENSOR_PAS202B:
+#if 0/*fixme*/
+		reg_r(gspca_dev, ZC3XX_R002_CLOCKSELECT);
+		/* fall thru */
+#endif
 	case SENSOR_GC0305:
 		reg_r(gspca_dev, 0x0008);
 		/* fall thru */
@@ -7269,7 +7287,6 @@
 	switch (sd->sensor) {
 	case SENSOR_CS2102:		/* gamma set in xxx_Initial */
 	case SENSOR_CS2102K:
-	case SENSOR_HDCS2020:
 	case SENSOR_HDCS2020b:
 	case SENSOR_PB0330:		/* pb with chip_revision - see above */
 	case SENSOR_OV7630C:
@@ -7282,6 +7299,7 @@
 	setmatrix(gspca_dev);			/* one more time? */
 	switch (sd->sensor) {
 	case SENSOR_OV7620:
+	case SENSOR_PAS202B:
 		reg_r(gspca_dev, 0x0180);	/* from win */
 		reg_w(dev, 0x00, 0x0180);
 		break;
@@ -7293,37 +7311,29 @@
 
 	switch (sd->sensor) {
 	case SENSOR_GC0305:
-	case SENSOR_OV7620:
 		reg_w(dev, 0x09, 0x01ad);	/* (from win traces) */
 		reg_w(dev, 0x15, 0x01ae);
-		sd->autogain = 0;
-		break;
+		/* fall thru */
+	case SENSOR_PAS202B:
 	case SENSOR_PO2030:
-		reg_w(dev, 0x40, 0x0117);	/* (from win traces) */
-		reg_r(gspca_dev, 0x0180);
-		break;
-	}
-
-	setautogain(gspca_dev);
-	switch (sd->sensor) {
-	case SENSOR_GC0305:
-/*		setlightfreq(gspca_dev);	?? (end: 80 -> [18d]) */
-		reg_w(dev, 0x09, 0x01ad);	/* (from win traces) */
-		reg_w(dev, 0x15, 0x01ae);
-		reg_w(dev, 0x40, 0x0180);
-		reg_w(dev, 0x40, 0x0117);
+/*		reg_w(dev, 0x40, ZC3XX_R117_GGAIN);  * (from win traces) */
 		reg_r(gspca_dev, 0x0180);
-		sd->autogain = 1;
-		setautogain(gspca_dev);
 		break;
 	case SENSOR_OV7620:
+		reg_w(dev, 0x09, 0x01ad);
+		reg_w(dev, 0x15, 0x01ae);
 		i2c_read(gspca_dev, 0x13);	/*fixme: returns 0xa3 */
 		i2c_write(gspca_dev, 0x13, 0xa3, 0x00);
 					 /*fixme: returned value to send? */
-		reg_w(dev, 0x40, 0x0117);	/* (from win traces) */
+		reg_w(dev, 0x40, 0x0117);
 		reg_r(gspca_dev, 0x0180);
-		setautogain(gspca_dev);
-		msleep(500);
+		break;
+	}
+
+	setautogain(gspca_dev);
+	switch (sd->sensor) {
+	case SENSOR_PAS202B:
+		reg_w(dev, 0x00, 0x0007);	/* (from win traces) */
 		break;
 	case SENSOR_PO2030:
 		msleep(500);
@@ -7333,6 +7343,8 @@
 		reg_w(dev, 0x02, 0x0008);
 		break;
 	}
+	if (sd->sensor == SENSOR_PAS202B)
+		reg_w(dev, 0x02, ZC3XX_R008_CLOCKSETTING);
 	return 0;
 }
 

linux-2.6-olpc-speaker-out.patch:

Index: linux-2.6-olpc-speaker-out.patch
===================================================================
RCS file: linux-2.6-olpc-speaker-out.patch
diff -N linux-2.6-olpc-speaker-out.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-olpc-speaker-out.patch	12 Jan 2009 19:51:29 -0000	1.3
@@ -0,0 +1,22 @@
+diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c
+index 1d8b160..640f157 100644
+--- a/sound/pci/cs5535audio/cs5535audio.c
++++ b/sound/pci/cs5535audio/cs5535audio.c
+@@ -28,6 +28,7 @@
+ #include <linux/slab.h>
+ #include <linux/moduleparam.h>
+ #include <asm/io.h>
++#include <asm/olpc.h>
+ #include <sound/core.h>
+ #include <sound/control.h>
+ #include <sound/pcm.h>
+@@ -163,6 +164,9 @@ static int __devinit snd_cs5535audio_mixer(struct cs5535audio *cs5535au)
+ 	ac97.private_data = cs5535au;
+ 	ac97.pci = cs5535au->pci;
+ 
++	if (machine_is_olpc())
++		ac97.scaps |= AC97_SCAP_INV_EAPD;
++
+ 	if ((err = snd_ac97_mixer(pbus, &ac97, &cs5535au->ac97)) < 0) {
+ 		snd_printk(KERN_ERR "mixer failed\n");
+ 		return err;

linux-2.6-selinux-move-open-perms-check.patch:

--- NEW FILE linux-2.6-selinux-move-open-perms-check.patch ---
From: Eric Paris <eparis at redhat.com>
Date: Wed, 29 Oct 2008 21:06:46 +0000 (-0400)
Subject: SELinux: check open perms in dentry_open not inode_permission
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fjmorris%2Fsecurity-testing-2.6.git;a=commitdiff_plain;h=8b6a5a37f87a414ef8636e36ec75accb27bb7508

SELinux: check open perms in dentry_open not inode_permission

Some operations, like searching a directory path or connecting a unix domain
socket, make explicit calls into inode_permission.  Our choices are to
either try to come up with a signature for all of the explicit calls to
inode_permission and do not check open on those, or to move the open checks to
dentry_open where we know this is always an open operation.  This patch moves
the checks to dentry_open.

Signed-off-by: Eric Paris <eparis at redhat.com>
Acked-by:  Stephen Smalley <sds at tycho.nsa.gov>
Signed-off-by: James Morris <jmorris at namei.org>
---

diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c679ba6..03ff7db 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -1686,15 +1686,39 @@ static inline u32 file_mask_to_av(int mode, int mask)
 	return av;
 }
 
+/* Convert a Linux file to an access vector. */
+static inline u32 file_to_av(struct file *file)
+{
+	u32 av = 0;
+
+	if (file->f_mode & FMODE_READ)
+		av |= FILE__READ;
+	if (file->f_mode & FMODE_WRITE) {
+		if (file->f_flags & O_APPEND)
+			av |= FILE__APPEND;
+		else
+			av |= FILE__WRITE;
+	}
+	if (!av) {
+		/*
+		 * Special file opened with flags 3 for ioctl-only use.
+		 */
+		av = FILE__IOCTL;
+	}
+
+	return av;
+}
+
 /*
- * Convert a file mask to an access vector and include the correct open
+ * Convert a file to an access vector and include the correct open
  * open permission.
  */
-static inline u32 open_file_mask_to_av(int mode, int mask)
+static inline u32 open_file_to_av(struct file *file)
 {
-	u32 av = file_mask_to_av(mode, mask);
+	u32 av = file_to_av(file);
 
 	if (selinux_policycap_openperm) {
+		mode_t mode = file->f_path.dentry->d_inode->i_mode;
 		/*
 		 * lnk files and socks do not really have an 'open'
 		 */
@@ -1710,34 +1734,11 @@ static inline u32 open_file_mask_to_av(int mode, int mask)
 			av |= DIR__OPEN;
 		else
 			printk(KERN_ERR "SELinux: WARNING: inside %s with "
-				"unknown mode:%x\n", __func__, mode);
+				"unknown mode:%o\n", __func__, mode);
 	}
 	return av;
 }
 
-/* Convert a Linux file to an access vector. */
-static inline u32 file_to_av(struct file *file)
-{
-	u32 av = 0;
-
-	if (file->f_mode & FMODE_READ)
-		av |= FILE__READ;
-	if (file->f_mode & FMODE_WRITE) {
-		if (file->f_flags & O_APPEND)
-			av |= FILE__APPEND;
-		else
-			av |= FILE__WRITE;
-	}
-	if (!av) {
-		/*
-		 * Special file opened with flags 3 for ioctl-only use.
-		 */
-		av = FILE__IOCTL;
-	}
-
-	return av;
-}
-
 /* Hook functions begin here. */
 
 static int selinux_ptrace_may_access(struct task_struct *child,
@@ -2654,7 +2655,7 @@ static int selinux_inode_permission(struct inode *inode, int mask)
 	}
 
 	return inode_has_perm(current, inode,
-			       open_file_mask_to_av(inode->i_mode, mask), NULL);
+			      file_mask_to_av(inode->i_mode, mask), NULL);
 }
 
 static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr)
@@ -3170,7 +3171,7 @@ static int selinux_dentry_open(struct file *file)
 	 * new inode label or new policy.
 	 * This check is not redundant - do not remove.
 	 */
-	return inode_has_perm(current, inode, file_to_av(file), NULL);
+	return inode_has_perm(current, inode, open_file_to_av(file), NULL);
 }
 
 /* task security operations */

linux-2.6-serial.patch:

--- NEW FILE linux-2.6-serial.patch ---
From: Andy Whitcroft <apw at canonical.com>
Subject: [PATCH 1/1] serial: RS485 ioctl structure uses __u32 include linux/types.h
Date: Tue, 2 Dec 2008 11:00:25 +0000

In the commit below a new struct serial_rs485 was introduced for a new
ioctl:

    commit c26c56c0f40e200e61d1390629c806f6adaffbcc
    Author: Alan Cox <alan at redhat.com>
    Date:   Mon Oct 13 10:37:48 2008 +0100

	tty: Cris has a nice RS485 ioctl so we should steal it

This structure uses the __u32 types for some of its members, which leads
to the following compile error:

    $ cc -I.../include -c X.c
    In file included from X.c:2: .../include/linux/serial.h:185:
		error: expected specifier-qualifier-list before ‘__u32’
    $

It seems that these types are appropriate for this structure as it is
to be exposed to userspace.  These types are available via linux/types.h
so move the include of that outside the __KERNEL__ section.

Signed-off-by: Andy Whitcroft <apw at canonical.com>
---
 include/linux/serial.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/include/linux/serial.h b/include/linux/serial.h
index 1ea8d92..9136cc5 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -10,8 +10,9 @@
 #ifndef _LINUX_SERIAL_H
 #define _LINUX_SERIAL_H
 
-#ifdef __KERNEL__
 #include <linux/types.h>
+
+#ifdef __KERNEL__
 #include <asm/page.h>
 
 /*
-- 
1.6.0.4.911.gc990
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



linux-2.6.27-ext-dir-corruption-fix.patch:

Index: linux-2.6.27-ext-dir-corruption-fix.patch
===================================================================
RCS file: linux-2.6.27-ext-dir-corruption-fix.patch
diff -N linux-2.6.27-ext-dir-corruption-fix.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6.27-ext-dir-corruption-fix.patch	12 Jan 2009 19:51:30 -0000	1.3
@@ -0,0 +1,207 @@
+This is a trivial backport of the following upstream commits:
+
+- bd39597cbd42a784105a04010100e27267481c67 (ext2)
+- cdbf6dba28e8e6268c8420857696309470009fd9 (ext3)
+
+This addresses CVE-2008-3528
+
+ext[234]: Avoid printk floods in the face of directory corruption
+
+Note: some people thinks this represents a security bug, since it
+might make the system go away while it is printing a large number of
+console messages, especially if a serial console is involved.  Hence,
+it has been assigned CVE-2008-3528, but it requires that the attacker
+either has physical access to your machine to insert a USB disk with a
+corrupted filesystem image (at which point why not just hit the power
+button), or is otherwise able to convince the system administrator to
+mount an arbitrary filesystem image (at which point why not just
+include a setuid shell or world-writable hard disk device file or some
+such).  Me, I think they're just being silly. --tytso
+
+Signed-off-by: Eric Sandeen <sandeen at redhat.com>
+Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
+Cc: linux-ext4 at vger.kernel.org
+Cc: Eugene Teo <eugeneteo at kernel.sg>
+---
+
+Index: linux-2.6.27.noarch/fs/ext2/dir.c
+===================================================================
+--- linux-2.6.27.noarch.orig/fs/ext2/dir.c	2008-10-09 17:13:53.000000000 -0500
++++ linux-2.6.27.noarch/fs/ext2/dir.c	2008-10-22 10:17:18.596064472 -0500
+@@ -103,7 +103,7 @@ static int ext2_commit_chunk(struct page
+ 	return err;
+ }
+ 
+-static void ext2_check_page(struct page *page)
++static void ext2_check_page(struct page *page, int quiet)
+ {
+ 	struct inode *dir = page->mapping->host;
+ 	struct super_block *sb = dir->i_sb;
+@@ -146,10 +146,10 @@ out:
+ 	/* Too bad, we had an error */
+ 
+ Ebadsize:
+-	ext2_error(sb, "ext2_check_page",
+-		"size of directory #%lu is not a multiple of chunk size",
+-		dir->i_ino
+-	);
++	if (!quiet)
++		ext2_error(sb, __func__,
++			"size of directory #%lu is not a multiple "
++			"of chunk size", dir->i_ino);
+ 	goto fail;
+ Eshort:
+ 	error = "rec_len is smaller than minimal";
+@@ -166,32 +166,36 @@ Espan:
+ Einumber:
+ 	error = "inode out of bounds";
+ bad_entry:
+-	ext2_error (sb, "ext2_check_page", "bad entry in directory #%lu: %s - "
+-		"offset=%lu, inode=%lu, rec_len=%d, name_len=%d",
+-		dir->i_ino, error, (page->index<<PAGE_CACHE_SHIFT)+offs,
+-		(unsigned long) le32_to_cpu(p->inode),
+-		rec_len, p->name_len);
++	if (!quiet)
++		ext2_error(sb, __func__, "bad entry in directory #%lu: : %s - "
++			"offset=%lu, inode=%lu, rec_len=%d, name_len=%d",
++			dir->i_ino, error, (page->index<<PAGE_CACHE_SHIFT)+offs,
++			(unsigned long) le32_to_cpu(p->inode),
++			rec_len, p->name_len);
+ 	goto fail;
+ Eend:
+-	p = (ext2_dirent *)(kaddr + offs);
+-	ext2_error (sb, "ext2_check_page",
+-		"entry in directory #%lu spans the page boundary"
+-		"offset=%lu, inode=%lu",
+-		dir->i_ino, (page->index<<PAGE_CACHE_SHIFT)+offs,
+-		(unsigned long) le32_to_cpu(p->inode));
++	if (!quiet) {
++		p = (ext2_dirent *)(kaddr + offs);
++		ext2_error(sb, "ext2_check_page",
++			"entry in directory #%lu spans the page boundary"
++			"offset=%lu, inode=%lu",
++			dir->i_ino, (page->index<<PAGE_CACHE_SHIFT)+offs,
++			(unsigned long) le32_to_cpu(p->inode));
++	}
+ fail:
+ 	SetPageChecked(page);
+ 	SetPageError(page);
+ }
+ 
+-static struct page * ext2_get_page(struct inode *dir, unsigned long n)
++static struct page * ext2_get_page(struct inode *dir, unsigned long n,
++				   int quiet)
+ {
+ 	struct address_space *mapping = dir->i_mapping;
+ 	struct page *page = read_mapping_page(mapping, n, NULL);
+ 	if (!IS_ERR(page)) {
+ 		kmap(page);
+ 		if (!PageChecked(page))
+-			ext2_check_page(page);
++			ext2_check_page(page, quiet);
+ 		if (PageError(page))
+ 			goto fail;
+ 	}
+@@ -292,7 +296,7 @@ ext2_readdir (struct file * filp, void *
+ 	for ( ; n < npages; n++, offset = 0) {
+ 		char *kaddr, *limit;
+ 		ext2_dirent *de;
+-		struct page *page = ext2_get_page(inode, n);
++		struct page *page = ext2_get_page(inode, n, 0);
+ 
+ 		if (IS_ERR(page)) {
+ 			ext2_error(sb, __func__,
+@@ -361,6 +365,7 @@ struct ext2_dir_entry_2 * ext2_find_entr
+ 	struct page *page = NULL;
+ 	struct ext2_inode_info *ei = EXT2_I(dir);
+ 	ext2_dirent * de;
++	int dir_has_error = 0;
+ 
+ 	if (npages == 0)
+ 		goto out;
+@@ -374,7 +379,7 @@ struct ext2_dir_entry_2 * ext2_find_entr
+ 	n = start;
+ 	do {
+ 		char *kaddr;
+-		page = ext2_get_page(dir, n);
++		page = ext2_get_page(dir, n, dir_has_error);
+ 		if (!IS_ERR(page)) {
+ 			kaddr = page_address(page);
+ 			de = (ext2_dirent *) kaddr;
+@@ -391,7 +396,9 @@ struct ext2_dir_entry_2 * ext2_find_entr
+ 				de = ext2_next_entry(de);
+ 			}
+ 			ext2_put_page(page);
+-		}
++		} else
++			dir_has_error = 1;
++
+ 		if (++n >= npages)
+ 			n = 0;
+ 		/* next page is past the blocks we've got */
+@@ -414,7 +421,7 @@ found:
+ 
+ struct ext2_dir_entry_2 * ext2_dotdot (struct inode *dir, struct page **p)
+ {
+-	struct page *page = ext2_get_page(dir, 0);
++	struct page *page = ext2_get_page(dir, 0, 0);
+ 	ext2_dirent *de = NULL;
+ 
+ 	if (!IS_ERR(page)) {
+@@ -487,7 +494,7 @@ int ext2_add_link (struct dentry *dentry
+ 	for (n = 0; n <= npages; n++) {
+ 		char *dir_end;
+ 
+-		page = ext2_get_page(dir, n);
++		page = ext2_get_page(dir, n, 0);
+ 		err = PTR_ERR(page);
+ 		if (IS_ERR(page))
+ 			goto out;
+@@ -655,14 +662,17 @@ int ext2_empty_dir (struct inode * inode
+ {
+ 	struct page *page = NULL;
+ 	unsigned long i, npages = dir_pages(inode);
++	int dir_has_error = 0;
+ 
+ 	for (i = 0; i < npages; i++) {
+ 		char *kaddr;
+ 		ext2_dirent * de;
+-		page = ext2_get_page(inode, i);
++		page = ext2_get_page(inode, i, dir_has_error);
+ 
+-		if (IS_ERR(page))
++		if (IS_ERR(page)) {
++			dir_has_error = 1;
+ 			continue;
++		}
+ 
+ 		kaddr = page_address(page);
+ 		de = (ext2_dirent *)kaddr;
+Index: linux-2.6.27.noarch/fs/ext3/dir.c
+===================================================================
+--- linux-2.6.27.noarch.orig/fs/ext3/dir.c	2008-10-09 17:13:53.000000000 -0500
++++ linux-2.6.27.noarch/fs/ext3/dir.c	2008-10-22 10:17:18.614001252 -0500
+@@ -102,6 +102,7 @@ static int ext3_readdir(struct file * fi
+ 	int err;
+ 	struct inode *inode = filp->f_path.dentry->d_inode;
+ 	int ret = 0;
++	int dir_has_error = 0;
+ 
+ 	sb = inode->i_sb;
+ 
+@@ -148,9 +149,12 @@ static int ext3_readdir(struct file * fi
+ 		 * of recovering data when there's a bad sector
+ 		 */
+ 		if (!bh) {
+-			ext3_error (sb, "ext3_readdir",
+-				"directory #%lu contains a hole at offset %lu",
+-				inode->i_ino, (unsigned long)filp->f_pos);
++			if (!dir_has_error) {
++				ext3_error(sb, __func__, "directory #%lu "
++					"contains a hole at offset %lld",
++					inode->i_ino, filp->f_pos);
++				dir_has_error = 1;
++			}
+ 			/* corrupt size?  Maybe no more blocks to read */
+ 			if (filp->f_pos > inode->i_blocks << 9)
+ 				break;

linux-2.6.27-ext4-2.6.28-backport-fixups.patch:

Index: linux-2.6.27-ext4-2.6.28-backport-fixups.patch
===================================================================
RCS file: linux-2.6.27-ext4-2.6.28-backport-fixups.patch
diff -N linux-2.6.27-ext4-2.6.28-backport-fixups.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6.27-ext4-2.6.28-backport-fixups.patch	12 Jan 2009 19:51:30 -0000	1.3
@@ -0,0 +1,449 @@
+Index: linux-2.6.27.x86_64/include/linux/writeback.h
+===================================================================
+--- linux-2.6.27.x86_64.orig/include/linux/writeback.h
++++ linux-2.6.27.x86_64/include/linux/writeback.h
+@@ -63,7 +63,15 @@ struct writeback_control {
+ 	unsigned for_writepages:1;	/* This is a writepages() call */
+ 	unsigned range_cyclic:1;	/* range_start is cyclic */
+ 	unsigned more_io:1;		/* more io to be dispatched */
+-	unsigned range_cont:1;
++	/*
++	 * write_cache_pages() won't update wbc->nr_to_write and
++	 * mapping->writeback_index if no_nrwrite_index_update
++	 * is set.  write_cache_pages() may write more than we
++	 * requested and we want to make sure nr_to_write and
++	 * writeback_index are updated in a consistent manner
++	 * so we use a single control to update them
++	 */
++	unsigned no_nrwrite_index_update:1;
+ };
+ 
+ /*
+Index: linux-2.6.27.x86_64/mm/page-writeback.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/mm/page-writeback.c
++++ linux-2.6.27.x86_64/mm/page-writeback.c
+@@ -876,6 +876,7 @@ int write_cache_pages(struct address_spa
+ 	pgoff_t end;		/* Inclusive */
+ 	int scanned = 0;
+ 	int range_whole = 0;
++	long nr_to_write = wbc->nr_to_write;
+ 
+ 	if (wbc->nonblocking && bdi_write_congested(bdi)) {
+ 		wbc->encountered_congestion = 1;
+@@ -939,7 +940,7 @@ retry:
+ 				unlock_page(page);
+ 				ret = 0;
+ 			}
+-			if (ret || (--(wbc->nr_to_write) <= 0))
++			if (ret || (--nr_to_write <= 0))
+ 				done = 1;
+ 			if (wbc->nonblocking && bdi_write_congested(bdi)) {
+ 				wbc->encountered_congestion = 1;
+@@ -958,11 +959,12 @@ retry:
+ 		index = 0;
+ 		goto retry;
+ 	}
+-	if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
+-		mapping->writeback_index = index;
++	if (!wbc->no_nrwrite_index_update) {
++		if (wbc->range_cyclic || (range_whole && nr_to_write > 0))
++			mapping->writeback_index = index;
++		wbc->nr_to_write = nr_to_write;
++	}
+ 
+-	if (wbc->range_cont)
+-		wbc->range_start = index << PAGE_CACHE_SHIFT;
+ 	return ret;
+ }
+ EXPORT_SYMBOL(write_cache_pages);
+Index: linux-2.6.27.x86_64/include/linux/percpu_counter.h
+===================================================================
+--- linux-2.6.27.x86_64.orig/include/linux/percpu_counter.h
++++ linux-2.6.27.x86_64/include/linux/percpu_counter.h
+@@ -35,7 +35,7 @@ int percpu_counter_init_irq(struct percp
+ void percpu_counter_destroy(struct percpu_counter *fbc);
+ void percpu_counter_set(struct percpu_counter *fbc, s64 amount);
+ void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch);
+-s64 __percpu_counter_sum(struct percpu_counter *fbc, int set);
++s64 __percpu_counter_sum(struct percpu_counter *fbc);
+ 
+ static inline void percpu_counter_add(struct percpu_counter *fbc, s64 amount)
+ {
+@@ -44,19 +44,13 @@ static inline void percpu_counter_add(st
+ 
+ static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc)
+ {
+-	s64 ret = __percpu_counter_sum(fbc, 0);
++	s64 ret = __percpu_counter_sum(fbc);
+ 	return ret < 0 ? 0 : ret;
+ }
+ 
+-static inline s64 percpu_counter_sum_and_set(struct percpu_counter *fbc)
+-{
+-	return __percpu_counter_sum(fbc, 1);
+-}
+-
+-
+ static inline s64 percpu_counter_sum(struct percpu_counter *fbc)
+ {
+-	return __percpu_counter_sum(fbc, 0);
++	return __percpu_counter_sum(fbc);
+ }
+ 
+ static inline s64 percpu_counter_read(struct percpu_counter *fbc)
+Index: linux-2.6.27.x86_64/lib/percpu_counter.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/lib/percpu_counter.c
++++ linux-2.6.27.x86_64/lib/percpu_counter.c
+@@ -52,7 +52,7 @@ EXPORT_SYMBOL(__percpu_counter_add);
+  * Add up all the per-cpu counts, return the result.  This is a more accurate
+  * but much slower version of percpu_counter_read_positive()
+  */
+-s64 __percpu_counter_sum(struct percpu_counter *fbc, int set)
++s64 __percpu_counter_sum(struct percpu_counter *fbc)
+ {
+ 	s64 ret;
+ 	int cpu;
+@@ -62,11 +62,9 @@ s64 __percpu_counter_sum(struct percpu_c
+ 	for_each_online_cpu(cpu) {
+ 		s32 *pcount = per_cpu_ptr(fbc->counters, cpu);
+ 		ret += *pcount;
+-		if (set)
+-			*pcount = 0;
++		*pcount = 0;
+ 	}
+-	if (set)
+-		fbc->count = ret;
++	fbc->count = ret;
+ 
+ 	spin_unlock(&fbc->lock);
+ 	return ret;
+Index: linux-2.6.27.x86_64/fs/ext4/namei.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/ext4/namei.c
++++ linux-2.6.27.x86_64/fs/ext4/namei.c
+@@ -1061,6 +1061,7 @@ static struct dentry *ext4_lookup(struct
+ struct dentry *ext4_get_parent(struct dentry *child)
+ {
+ 	unsigned long ino;
++	struct dentry *parent;
+ 	struct inode *inode;
+ 	static const struct qstr dotdot = {
+ 		.name = "..",
+@@ -1082,7 +1083,16 @@ struct dentry *ext4_get_parent(struct de
+ 		return ERR_PTR(-EIO);
+ 	}
+ 
+-	return d_obtain_alias(ext4_iget(child->d_inode->i_sb, ino));
++	inode = ext4_iget(child->d_inode->i_sb, ino);
++	if (IS_ERR(inode))
++		return ERR_CAST(inode);
++
++	parent = d_alloc_anon(inode);
++	if (!parent) {
++		iput(inode);
++		parent = ERR_PTR(-ENOMEM);
++	}
++	return parent;
+ }
+ 
+ #define S_SHIFT 12
+Index: linux-2.6.27.x86_64/fs/ext4/super.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/ext4/super.c
++++ linux-2.6.27.x86_64/fs/ext4/super.c
+@@ -400,7 +400,7 @@ fail:
+ static int ext4_blkdev_put(struct block_device *bdev)
+ {
+ 	bd_release(bdev);
+-	return blkdev_put(bdev, FMODE_READ|FMODE_WRITE);
++	return blkdev_put(bdev);
+ }
+ 
+ static int ext4_blkdev_remove(struct ext4_sb_info *sbi)
+@@ -862,7 +862,7 @@ enum {
+ 	Opt_inode_readahead_blks
+ };
+ 
+-static const match_table_t tokens = {
++static match_table_t tokens = {
+ 	{Opt_bsd_df, "bsddf"},
+ 	{Opt_minix_df, "minixdf"},
+ 	{Opt_grpid, "grpid"},
+@@ -2555,7 +2555,7 @@ static journal_t *ext4_get_dev_journal(s
+ 	if (bd_claim(bdev, sb)) {
+ 		printk(KERN_ERR
+ 			"EXT4: failed to claim external journal device.\n");
+-		blkdev_put(bdev, FMODE_READ|FMODE_WRITE);
++		blkdev_put(bdev);
+ 		return NULL;
+ 	}
+ 
+@@ -3327,30 +3327,30 @@ static int ext4_quota_on_mount(struct su
+  * Standard function to be called on quota_on
+  */
+ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
+-			 char *name, int remount)
++			 char *path, int remount)
+ {
+ 	int err;
+-	struct path path;
++	struct nameidata nd;
+ 
+ 	if (!test_opt(sb, QUOTA))
+ 		return -EINVAL;
+-	/* When remounting, no checks are needed and in fact, name is NULL */
++	/* When remounting, no checks are needed and in fact, path is NULL */
+ 	if (remount)
+-		return vfs_quota_on(sb, type, format_id, name, remount);
++		return vfs_quota_on(sb, type, format_id, path, remount);
+ 
+-	err = kern_path(name, LOOKUP_FOLLOW, &path);
++	err = path_lookup(path, LOOKUP_FOLLOW, &nd);
+ 	if (err)
+ 		return err;
+ 
+ 	/* Quotafile not on the same filesystem? */
+-	if (path.mnt->mnt_sb != sb) {
+-		path_put(&path);
++	if (nd.path.mnt->mnt_sb != sb) {
++		path_put(&nd.path);
+ 		return -EXDEV;
+ 	}
+ 	/* Journaling quota? */
+ 	if (EXT4_SB(sb)->s_qf_names[type]) {
+ 		/* Quotafile not in fs root? */
+-		if (path.dentry->d_parent != sb->s_root)
++		if (nd.path.dentry->d_parent->d_inode != sb->s_root->d_inode)
+ 			printk(KERN_WARNING
+ 				"EXT4-fs: Quota file not on filesystem root. "
+ 				"Journaled quota will not work.\n");
+@@ -3360,7 +3360,7 @@ static int ext4_quota_on(struct super_bl
+ 	 * When we journal data on quota file, we have to flush journal to see
+ 	 * all updates to the file when we bypass pagecache...
+ 	 */
+-	if (ext4_should_journal_data(path.dentry->d_inode)) {
++	if (ext4_should_journal_data(nd.path.dentry->d_inode)) {
+ 		/*
+ 		 * We don't need to lock updates but journal_flush() could
+ 		 * otherwise be livelocked...
+@@ -3369,13 +3369,13 @@ static int ext4_quota_on(struct super_bl
+ 		err = jbd2_journal_flush(EXT4_SB(sb)->s_journal);
+ 		jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal);
+ 		if (err) {
+-			path_put(&path);
++			path_put(&nd.path);
+ 			return err;
+ 		}
+ 	}
+ 
+-	err = vfs_quota_on_path(sb, type, format_id, &path);
+-	path_put(&path);
++	err = vfs_quota_on_path(sb, type, format_id, &nd.path);
++	path_put(&nd.path);
+ 	return err;
+ }
+ 
+Index: linux-2.6.27.x86_64/fs/ext4/mballoc.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/ext4/mballoc.c
++++ linux-2.6.27.x86_64/fs/ext4/mballoc.c
+@@ -2646,7 +2646,6 @@ static void release_blocks_on_commit(jou
+ 	struct ext4_group_info *db;
+ 	int err, count = 0, count2 = 0;
+ 	struct ext4_free_data *entry;
+-	ext4_fsblk_t discard_block;
+ 	struct list_head *l, *ltmp;
+ 
+ 	list_for_each_safe(l, ltmp, &txn->t_private_list) {
+@@ -2676,12 +2675,6 @@ static void release_blocks_on_commit(jou
+ 			page_cache_release(e4b.bd_bitmap_page);
+ 		}
+ 		ext4_unlock_group(sb, entry->group);
+-		discard_block = (ext4_fsblk_t) entry->group * EXT4_BLOCKS_PER_GROUP(sb)
+-			+ entry->start_blk
+-			+ le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block);
+-		trace_mark(ext4_discard_blocks, "dev %s blk %llu count %u", sb->s_id,
+-			   (unsigned long long) discard_block, entry->count);
+-		sb_issue_discard(sb, discard_block, entry->count);
+ 
+ 		kmem_cache_free(ext4_free_ext_cachep, entry);
+ 		ext4_mb_release_desc(&e4b);
+Index: linux-2.6.27.x86_64/fs/ext4/file.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/ext4/file.c
++++ linux-2.6.27.x86_64/fs/ext4/file.c
+@@ -140,9 +140,6 @@ static int ext4_file_mmap(struct file *f
+ 	return 0;
+ }
+ 
+-extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
+-		__u64 start, __u64 len);
+-
+ const struct file_operations ext4_file_operations = {
+ 	.llseek		= generic_file_llseek,
+ 	.read		= do_sync_read,
+@@ -173,6 +170,5 @@ const struct inode_operations ext4_file_
+ #endif
+ 	.permission	= ext4_permission,
+ 	.fallocate	= ext4_fallocate,
+-	.fiemap		= ext4_fiemap,
+ };
+ 
+Index: linux-2.6.27.x86_64/fs/ext4/extents.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/ext4/extents.c
++++ linux-2.6.27.x86_64/fs/ext4/extents.c
+@@ -40,7 +40,6 @@
+ #include <linux/slab.h>
+ #include <linux/falloc.h>
+ #include <asm/uaccess.h>
+-#include <linux/fiemap.h>
+ #include "ext4_jbd2.h"
+ #include "ext4_extents.h"
+ 
+@@ -3079,143 +3078,3 @@ retry:
+ 	mutex_unlock(&inode->i_mutex);
+ 	return ret > 0 ? ret2 : ret;
+ }
+-
+-/*
+- * Callback function called for each extent to gather FIEMAP information.
+- */
+-int ext4_ext_fiemap_cb(struct inode *inode, struct ext4_ext_path *path,
+-		       struct ext4_ext_cache *newex, struct ext4_extent *ex,
+-		       void *data)
+-{
+-	struct fiemap_extent_info *fieinfo = data;
+-	unsigned long blksize_bits = inode->i_sb->s_blocksize_bits;
+-	__u64	logical;
+-	__u64	physical;
+-	__u64	length;
+-	__u32	flags = 0;
+-	int	error;
+-
+-	logical =  (__u64)newex->ec_block << blksize_bits;
+-
+-	if (newex->ec_type == EXT4_EXT_CACHE_GAP) {
+-		pgoff_t offset;
+-		struct page *page;
+-		struct buffer_head *bh = NULL;
+-
+-		offset = logical >> PAGE_SHIFT;
+-		page = find_get_page(inode->i_mapping, offset);
+-		if (!page || !page_has_buffers(page))
+-			return EXT_CONTINUE;
+-
+-		bh = page_buffers(page);
+-
+-		if (!bh)
+-			return EXT_CONTINUE;
+-
+-		if (buffer_delay(bh)) {
+-			flags |= FIEMAP_EXTENT_DELALLOC;
+-			page_cache_release(page);
+-		} else {
+-			page_cache_release(page);
+-			return EXT_CONTINUE;
+-		}
+-	}
+-
+-	physical = (__u64)newex->ec_start << blksize_bits;
+-	length =   (__u64)newex->ec_len << blksize_bits;
+-
+-	if (ex && ext4_ext_is_uninitialized(ex))
+-		flags |= FIEMAP_EXTENT_UNWRITTEN;
+-
+-	/*
+-	 * If this extent reaches EXT_MAX_BLOCK, it must be last.
+-	 *
+-	 * Or if ext4_ext_next_allocated_block is EXT_MAX_BLOCK,
+-	 * this also indicates no more allocated blocks.
+-	 *
+-	 * XXX this might miss a single-block extent at EXT_MAX_BLOCK
+-	 */
+-	if (logical + length - 1 == EXT_MAX_BLOCK ||
+-	    ext4_ext_next_allocated_block(path) == EXT_MAX_BLOCK)
+-		flags |= FIEMAP_EXTENT_LAST;
+-
+-	error = fiemap_fill_next_extent(fieinfo, logical, physical,
+-					length, flags);
+-	if (error < 0)
+-		return error;
+-	if (error == 1)
+-		return EXT_BREAK;
+-
+-	return EXT_CONTINUE;
+-}
+-
+-/* fiemap flags we can handle specified here */
+-#define EXT4_FIEMAP_FLAGS	(FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR)
+-
+-int ext4_xattr_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo)
+-{
+-	__u64 physical = 0;
+-	__u64 length;
+-	__u32 flags = FIEMAP_EXTENT_LAST;
+-	int blockbits = inode->i_sb->s_blocksize_bits;
+-	int error = 0;
+-
+-	/* in-inode? */
+-	if (EXT4_I(inode)->i_state & EXT4_STATE_XATTR) {
+-		struct ext4_iloc iloc;
+-		int offset;	/* offset of xattr in inode */
+-
+-		error = ext4_get_inode_loc(inode, &iloc);
+-		if (error)
+-			return error;
+-		physical = iloc.bh->b_blocknr << blockbits;
+-		offset = EXT4_GOOD_OLD_INODE_SIZE +
+-				EXT4_I(inode)->i_extra_isize;
+-		physical += offset;
+-		length = EXT4_SB(inode->i_sb)->s_inode_size - offset;
+-		flags |= FIEMAP_EXTENT_DATA_INLINE;
+-	} else { /* external block */
+-		physical = EXT4_I(inode)->i_file_acl << blockbits;
+-		length = inode->i_sb->s_blocksize;
+-	}
+-
+-	if (physical)
+-		error = fiemap_fill_next_extent(fieinfo, 0, physical,
+-						length, flags);
+-	return (error < 0 ? error : 0);
+-}
+-
+-int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
+-		__u64 start, __u64 len)
+-{
+-	ext4_lblk_t start_blk;
+-	ext4_lblk_t len_blks;
+-	int error = 0;
+-
+-	/* fallback to generic here if not in extents fmt */
+-	if (!(EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL))
+-		return generic_block_fiemap(inode, fieinfo, start, len,
+-			ext4_get_block);
+-
+-	if (fiemap_check_flags(fieinfo, EXT4_FIEMAP_FLAGS))
+-		return -EBADR;
+-
+-	if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) {
+-		error = ext4_xattr_fiemap(inode, fieinfo);
+-	} else {
+-		start_blk = start >> inode->i_sb->s_blocksize_bits;
+-		len_blks = len >> inode->i_sb->s_blocksize_bits;
+-
+-		/*
+-		 * Walk the extent tree gathering extent information.
+-		 * ext4_ext_fiemap_cb will push extents back to user.
+-		 */
+-		down_write(&EXT4_I(inode)->i_data_sem);
+-		error = ext4_ext_walk_space(inode, start_blk, len_blks,
+-					  ext4_ext_fiemap_cb, fieinfo);
+-		up_write(&EXT4_I(inode)->i_data_sem);
+-	}
+-
+-	return error;
+-}
+-

linux-2.6.27-ext4-2.6.28-rc3-git6.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.2 -r 1.3 linux-2.6.27-ext4-2.6.28-rc3-git6.patch
Index: linux-2.6.27-ext4-2.6.28-rc3-git6.patch
===================================================================
RCS file: linux-2.6.27-ext4-2.6.28-rc3-git6.patch
diff -N linux-2.6.27-ext4-2.6.28-rc3-git6.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6.27-ext4-2.6.28-rc3-git6.patch	12 Jan 2009 19:51:30 -0000	1.3
@@ -0,0 +1,9050 @@
+Index: linux-2.6.27.x86_64/MAINTAINERS
+===================================================================
+--- linux-2.6.27.x86_64.orig/MAINTAINERS
++++ linux-2.6.27.x86_64/MAINTAINERS
+@@ -1648,9 +1648,10 @@ L:	linux-ext4 at vger.kernel.org
+ S:	Maintained
+ 
+ EXT4 FILE SYSTEM
+-P:	Stephen Tweedie, Andrew Morton
+-M:	sct at redhat.com, akpm at linux-foundation.org, adilger at sun.com
++P:	Theodore Ts'o
++M:	tytso at mit.edu, adilger at sun.com
+ L:	linux-ext4 at vger.kernel.org
++W:	http://ext4.wiki.kernel.org
+ S:	Maintained
+ 
+ F71805F HARDWARE MONITORING DRIVER
+Index: linux-2.6.27.x86_64/fs/Makefile
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/Makefile
++++ linux-2.6.27.x86_64/fs/Makefile
+@@ -69,7 +69,7 @@ obj-$(CONFIG_DLM)		+= dlm/
+ # Do not add any filesystems before this line
+ obj-$(CONFIG_REISERFS_FS)	+= reiserfs/
+ obj-$(CONFIG_EXT3_FS)		+= ext3/ # Before ext2 so root fs can be ext3
+-obj-$(CONFIG_EXT4DEV_FS)	+= ext4/ # Before ext2 so root fs can be ext4dev
++obj-$(CONFIG_EXT4_FS)		+= ext4/ # Before ext2 so root fs can be ext4
+ obj-$(CONFIG_JBD)		+= jbd/
+ obj-$(CONFIG_JBD2)		+= jbd2/
+ obj-$(CONFIG_EXT2_FS)		+= ext2/
+Index: linux-2.6.27.x86_64/fs/ext4/acl.h
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/ext4/acl.h
++++ linux-2.6.27.x86_64/fs/ext4/acl.h
+@@ -51,18 +51,18 @@ static inline int ext4_acl_count(size_t 
+ 	}
+ }
+ 
+-#ifdef CONFIG_EXT4DEV_FS_POSIX_ACL
++#ifdef CONFIG_EXT4_FS_POSIX_ACL
+ 
+ /* Value for inode->u.ext4_i.i_acl and inode->u.ext4_i.i_default_acl
+    if the ACL has not been cached */
+ #define EXT4_ACL_NOT_CACHED ((void *)-1)
+ 
+ /* acl.c */
+-extern int ext4_permission (struct inode *, int);
+-extern int ext4_acl_chmod (struct inode *);
+-extern int ext4_init_acl (handle_t *, struct inode *, struct inode *);
++extern int ext4_permission(struct inode *, int);
++extern int ext4_acl_chmod(struct inode *);
++extern int ext4_init_acl(handle_t *, struct inode *, struct inode *);
+ 
+-#else  /* CONFIG_EXT4DEV_FS_POSIX_ACL */
++#else  /* CONFIG_EXT4_FS_POSIX_ACL */
+ #include <linux/sched.h>
+ #define ext4_permission NULL
+ 
+@@ -77,5 +77,5 @@ ext4_init_acl(handle_t *handle, struct i
+ {
+ 	return 0;
+ }
+-#endif  /* CONFIG_EXT4DEV_FS_POSIX_ACL */
++#endif  /* CONFIG_EXT4_FS_POSIX_ACL */
+ 
+Index: linux-2.6.27.x86_64/fs/ext4/balloc.c
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/ext4/balloc.c
++++ linux-2.6.27.x86_64/fs/ext4/balloc.c
+@@ -83,6 +83,7 @@ static int ext4_group_used_meta_blocks(s
+ 	}
+ 	return used_blocks;
+ }
++
+ /* Initializes an uninitialized block bitmap if given, and returns the
+  * number of blocks free in the group. */
+ unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh,
+@@ -132,7 +133,7 @@ unsigned ext4_init_block_bitmap(struct s
+ 		 */
+ 		group_blocks = ext4_blocks_count(sbi->s_es) -
+ 			le32_to_cpu(sbi->s_es->s_first_data_block) -
+-			(EXT4_BLOCKS_PER_GROUP(sb) * (sbi->s_groups_count -1));
++			(EXT4_BLOCKS_PER_GROUP(sb) * (sbi->s_groups_count - 1));
+ 	} else {
+ 		group_blocks = EXT4_BLOCKS_PER_GROUP(sb);
+ 	}
+@@ -200,20 +201,20 @@ unsigned ext4_init_block_bitmap(struct s
+  * @bh:			pointer to the buffer head to store the block
+  *			group descriptor
+  */
+-struct ext4_group_desc * ext4_get_group_desc(struct super_block * sb,
++struct ext4_group_desc * ext4_get_group_desc(struct super_block *sb,
+ 					     ext4_group_t block_group,
+-					     struct buffer_head ** bh)
++					     struct buffer_head **bh)
+ {
+ 	unsigned long group_desc;
+ 	unsigned long offset;
+-	struct ext4_group_desc * desc;
++	struct ext4_group_desc *desc;
+ 	struct ext4_sb_info *sbi = EXT4_SB(sb);
+ 
+ 	if (block_group >= sbi->s_groups_count) {
+-		ext4_error (sb, "ext4_get_group_desc",
+-			    "block_group >= groups_count - "
+-			    "block_group = %lu, groups_count = %lu",
+-			    block_group, sbi->s_groups_count);
++		ext4_error(sb, "ext4_get_group_desc",
++			   "block_group >= groups_count - "
++			   "block_group = %lu, groups_count = %lu",
++			   block_group, sbi->s_groups_count);
+ 
+ 		return NULL;
+ 	}
+@@ -222,10 +223,10 @@ struct ext4_group_desc * ext4_get_group_
+ 	group_desc = block_group >> EXT4_DESC_PER_BLOCK_BITS(sb);
+ 	offset = block_group & (EXT4_DESC_PER_BLOCK(sb) - 1);
+ 	if (!sbi->s_group_desc[group_desc]) {
+-		ext4_error (sb, "ext4_get_group_desc",
+-			    "Group descriptor not loaded - "
+-			    "block_group = %lu, group_desc = %lu, desc = %lu",
+-			     block_group, group_desc, offset);
++		ext4_error(sb, "ext4_get_group_desc",
++			   "Group descriptor not loaded - "
++			   "block_group = %lu, group_desc = %lu, desc = %lu",
++			   block_group, group_desc, offset);
+ 		return NULL;
+ 	}
+ 
+@@ -302,8 +303,8 @@ err_out:
+ struct buffer_head *
+ ext4_read_block_bitmap(struct super_block *sb, ext4_group_t block_group)
+ {
+-	struct ext4_group_desc * desc;
+-	struct buffer_head * bh = NULL;
++	struct ext4_group_desc *desc;
++	struct buffer_head *bh = NULL;
+ 	ext4_fsblk_t bitmap_blk;
+ 
+ 	desc = ext4_get_group_desc(sb, block_group, NULL);
+@@ -318,9 +319,11 @@ ext4_read_block_bitmap(struct super_bloc
+ 			    block_group, bitmap_blk);
+ 		return NULL;
+ 	}
+-	if (bh_uptodate_or_lock(bh))
++	if (buffer_uptodate(bh) &&
++	    !(desc->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)))
+ 		return bh;
+ 
++	lock_buffer(bh);
+ 	spin_lock(sb_bgl_lock(EXT4_SB(sb), block_group));
+ 	if (desc->bg_flags & cpu_to_le16(EXT4_BG_BLOCK_UNINIT)) {
+ 		ext4_init_block_bitmap(sb, bh, block_group, desc);
+@@ -345,301 +348,6 @@ ext4_read_block_bitmap(struct super_bloc
+ 	 */
+ 	return bh;
+ }
+-/*
+- * The reservation window structure operations
+- * --------------------------------------------
+- * Operations include:
+- * dump, find, add, remove, is_empty, find_next_reservable_window, etc.
+- *
+- * We use a red-black tree to represent per-filesystem reservation
+- * windows.
+- *
+- */
+-
+-/**
+- * __rsv_window_dump() -- Dump the filesystem block allocation reservation map
+- * @rb_root:		root of per-filesystem reservation rb tree
+- * @verbose:		verbose mode
+- * @fn:			function which wishes to dump the reservation map
+- *
+- * If verbose is turned on, it will print the whole block reservation
+- * windows(start, end).	Otherwise, it will only print out the "bad" windows,
+- * those windows that overlap with their immediate neighbors.
+- */
+-#if 1
+-static void __rsv_window_dump(struct rb_root *root, int verbose,
+-			      const char *fn)
+-{
+-	struct rb_node *n;
+-	struct ext4_reserve_window_node *rsv, *prev;
+-	int bad;
+-
+-restart:
+-	n = rb_first(root);
+-	bad = 0;
+-	prev = NULL;
+-
+-	printk("Block Allocation Reservation Windows Map (%s):\n", fn);
+-	while (n) {
[...8657 lines suppressed...]
+-stats  stream_req
+-
+-mb_groups:
+-This file gives the details of multiblock allocator buddy cache of free blocks
+-
+-mb_history:
+-Multiblock allocation history.
+-
+-stats:
+-This file indicate whether the multiblock allocator should start collecting
+-statistics. The statistics are shown during unmount
+-
+-group_prealloc:
+-The multiblock allocator normalize the block allocation request to
+-group_prealloc filesystem blocks if we don't have strip value set.
+-The stripe value can be specified at mount time or during mke2fs.
+-
+-max_to_scan:
+-How long multiblock allocator can look for a best extent (in found extents)
+-
+-min_to_scan:
+-How long multiblock allocator  must look for a best extent
+-
+-order2_req:
+-Multiblock allocator use  2^N search using buddies only for requests greater
+-than or equal to order2_req. The request size is specfied in file system
+-blocks. A value of 2 indicate only if the requests are greater than or equal
+-to 4 blocks.
+-
+-stream_req:
+-Files smaller than stream_req are served by the stream allocator, whose
+-purpose is to pack requests as close each to other as possible to
+-produce smooth I/O traffic. Avalue of 16 indicate that file smaller than 16
+-filesystem block size will use group based preallocation.
++
++Information about mounted ext4 file systems can be found in
++/proc/fs/ext4.  Each mounted filesystem will have a directory in
++/proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
++/proc/fs/ext4/dm-0).   The files in each per-device directory are shown
++in Table 1-10, below.
++
++Table 1-10: Files in /proc/fs/ext4/<devname>
++..............................................................................
++ File            Content                                        
++ mb_groups       details of multiblock allocator buddy cache of free blocks
++ mb_history      multiblock allocation history
++ stats           controls whether the multiblock allocator should start
++                 collecting statistics, which are shown during the unmount
++ group_prealloc  the multiblock allocator will round up allocation
++                 requests to a multiple of this tuning parameter if the
++                 stripe size is not set in the ext4 superblock
++ max_to_scan     The maximum number of extents the multiblock allocator
++                 will search to find the best extent
++ min_to_scan     The minimum number of extents the multiblock allocator
++                 will search to find the best extent
++ order2_req      Tuning parameter which controls the minimum size for 
++                 requests (as a power of 2) where the buddy cache is
++                 used
++ stream_req      Files which have fewer blocks than this tunable
++                 parameter will have their blocks allocated out of a
++                 block group specific preallocation pool, so that small
++                 files are packed closely together.  Each large file
++                 will have its blocks allocated out of its own unique
++                 preallocation pool.
++inode_readahead  Tuning parameter which controls the maximum number of
++                 inode table blocks that ext4's inode table readahead
++                 algorithm will pre-read into the buffer cache
++..............................................................................
++
+ 
+ ------------------------------------------------------------------------------
+ Summary
+Index: linux-2.6.27.x86_64/fs/Kconfig
+===================================================================
+--- linux-2.6.27.x86_64.orig/fs/Kconfig
++++ linux-2.6.27.x86_64/fs/Kconfig
+@@ -136,71 +136,7 @@ config EXT3_FS_SECURITY
+ 	  If you are not using a security module that requires using
+ 	  extended attributes for file security labels, say N.
+ 
+-config EXT4DEV_FS
+-	tristate "Ext4dev/ext4 extended fs support development (EXPERIMENTAL)"
+-	depends on EXPERIMENTAL
+-	select JBD2
+-	select CRC16
+-	help
+-	  Ext4dev is a predecessor filesystem of the next generation
+-	  extended fs ext4, based on ext3 filesystem code. It will be
+-	  renamed ext4 fs later, once ext4dev is mature and stabilized.
+-
+-	  Unlike the change from ext2 filesystem to ext3 filesystem,
+-	  the on-disk format of ext4dev is not the same as ext3 any more:
+-	  it is based on extent maps and it supports 48-bit physical block
+-	  numbers. These combined on-disk format changes will allow
+-	  ext4dev/ext4 to handle more than 16 TB filesystem volumes --
+-	  a hard limit that ext3 cannot overcome without changing the
+-	  on-disk format.
+-
+-	  Other than extent maps and 48-bit block numbers, ext4dev also is
+-	  likely to have other new features such as persistent preallocation,
+-	  high resolution time stamps, and larger file support etc.  These
+-	  features will be added to ext4dev gradually.
+-
+-	  To compile this file system support as a module, choose M here. The
+-	  module will be called ext4dev.
+-
+-	  If unsure, say N.
+-
+-config EXT4DEV_FS_XATTR
+-	bool "Ext4dev extended attributes"
+-	depends on EXT4DEV_FS
+-	default y
+-	help
+-	  Extended attributes are name:value pairs associated with inodes by
+-	  the kernel or by users (see the attr(5) manual page, or visit
+-	  <http://acl.bestbits.at/> for details).
+-
+-	  If unsure, say N.
+-
+-	  You need this for POSIX ACL support on ext4dev/ext4.
+-
+-config EXT4DEV_FS_POSIX_ACL
+-	bool "Ext4dev POSIX Access Control Lists"
+-	depends on EXT4DEV_FS_XATTR
+-	select FS_POSIX_ACL
+-	help
+-	  POSIX Access Control Lists (ACLs) support permissions for users and
+-	  groups beyond the owner/group/world scheme.
+-
+-	  To learn more about Access Control Lists, visit the POSIX ACLs for
+-	  Linux website <http://acl.bestbits.at/>.
+-
+-	  If you don't know what Access Control Lists are, say N
+-
+-config EXT4DEV_FS_SECURITY
+-	bool "Ext4dev Security Labels"
+-	depends on EXT4DEV_FS_XATTR
+-	help
+-	  Security labels support alternative access control models
+-	  implemented by security modules like SELinux.  This option
+-	  enables an extended attribute handler for file security
+-	  labels in the ext4dev/ext4 filesystem.
+-
+-	  If you are not using a security module that requires using
+-	  extended attributes for file security labels, say N.
++source "fs/ext4/Kconfig"
+ 
+ config JBD
+ 	tristate
+@@ -234,45 +170,15 @@ config JBD_DEBUG
+ 	  output is generated.  To turn debugging off again, do
+ 	  "echo 0 > /sys/kernel/debug/jbd/jbd-debug".
+ 
+-config JBD2
+-	tristate
+-	select CRC32
+-	help
+-	  This is a generic journaling layer for block devices that support
+-	  both 32-bit and 64-bit block numbers.  It is currently used by
+-	  the ext4dev/ext4 filesystem, but it could also be used to add
+-	  journal support to other file systems or block devices such
+-	  as RAID or LVM.
+-
+-	  If you are using ext4dev/ext4, you need to say Y here. If you are not
+-	  using ext4dev/ext4 then you will probably want to say N.
+-
+-	  To compile this device as a module, choose M here. The module will be
+-	  called jbd2.  If you are compiling ext4dev/ext4 into the kernel,
+-	  you cannot compile this code as a module.
+-
+-config JBD2_DEBUG
+-	bool "JBD2 (ext4dev/ext4) debugging support"
+-	depends on JBD2 && DEBUG_FS
+-	help
+-	  If you are using the ext4dev/ext4 journaled file system (or
+-	  potentially any other filesystem/device using JBD2), this option
+-	  allows you to enable debugging output while the system is running,
+-	  in order to help track down any problems you are having.
+-	  By default, the debugging output will be turned off.
+-
+-	  If you select Y here, then you will be able to turn on debugging
+-	  with "echo N > /sys/kernel/debug/jbd2/jbd2-debug", where N is a
+-	  number between 1 and 5. The higher the number, the more debugging
+-	  output is generated.  To turn debugging off again, do
+-	  "echo 0 > /sys/kernel/debug/jbd2/jbd2-debug".
++source "fs/jbd2/Kconfig"
+ 
+ config FS_MBCACHE
+ # Meta block cache for Extended Attributes (ext2/ext3/ext4)
+ 	tristate
+-	depends on EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4DEV_FS_XATTR
+-	default y if EXT2_FS=y || EXT3_FS=y || EXT4DEV_FS=y
+-	default m if EXT2_FS=m || EXT3_FS=m || EXT4DEV_FS=m
++	default y if EXT2_FS=y && EXT2_FS_XATTR
++	default y if EXT3_FS=y && EXT3_FS_XATTR
++	default y if EXT4_FS=y && EXT4_FS_XATTR
++	default m if EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4_FS_XATTR
+ 
+ config REISERFS_FS
+ 	tristate "Reiserfs support"


--- NEW FILE linux-2.6.28.tar.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBJUsmzyGugalF9Dw4RAmYWAKCUJGMWXRrUNC/XDQl8lXXOv5zMvACfUvU5
Tq+2snGYOGwTki85iNpds/o=
=Ha/W
-----END PGP SIGNATURE-----


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/.cvsignore,v
retrieving revision 1.960
retrieving revision 1.961
diff -u -r1.960 -r1.961
--- .cvsignore	18 Dec 2008 22:13:53 -0000	1.960
+++ .cvsignore	12 Jan 2009 19:51:27 -0000	1.961
@@ -2,6 +2,5 @@
 GNUmakefile
 kernel-2.6.*.config
 temp-*
-kernel-2.6.27
-linux-2.6.27.tar.bz2
-patch-2.6.27.10.bz2
+kernel-2.6.28
+linux-2.6.28.tar.bz2


Index: Makefile
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/Makefile,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- Makefile	5 Nov 2008 18:05:22 -0000	1.90
+++ Makefile	12 Jan 2009 19:51:27 -0000	1.91
@@ -63,8 +63,9 @@
 	@perl -pi -e 's/# CONFIG_CAN_DEBUG_DEVICES is not set/CONFIG_CAN_DEBUG_DEVICES=y/' config-nodebug
 	@perl -pi -e 's/# CONFIG_MODULE_FORCE_UNLOAD is not set/CONFIG_MODULE_FORCE_UNLOAD=y/' config-nodebug
 	@perl -pi -e 's/# CONFIG_SYSCTL_SYSCALL_CHECK is not set/CONFIG_SYSCTL_SYSCALL_CHECK=y/' config-nodebug
+	@perl -pi -e 's/# CONFIG_PM_TEST_SUSPEND is not set/CONFIG_PM_TEST_SUSPEND=y/' config-generic
 
-	# just in case we're going from extremedebug -> debug
+	@# just in case we're going from extremedebug -> debug
 	@perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-nodebug
 
 	@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec
@@ -100,6 +101,7 @@
 	@perl -pi -e 's/CONFIG_CAN_DEBUG_DEVICES=y/# CONFIG_CAN_DEBUG_DEVICES is not set/' config-nodebug
 	@perl -pi -e 's/CONFIG_MODULE_FORCE_UNLOAD=y/# CONFIG_MODULE_FORCE_UNLOAD is not set/' config-nodebug
 	@perl -pi -e 's/CONFIG_SYSCTL_SYSCALL_CHECK=y/# CONFIG_SYSCTL_SYSCALL_CHECK is not set/' config-nodebug
+	@perl -pi -e 's/CONFIG_PM_TEST_SUSPEND=y/#\ CONFIG_PM_TEST_SUSPEND\ is\ not\ set/' config-generic
 
 	@perl -pi -e 's/CONFIG_NR_CPUS=512/CONFIG_NR_CPUS=64/' config-x86_64-generic
 


Index: TODO
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/TODO,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- TODO	19 Nov 2008 21:10:44 -0000	1.46
+++ TODO	12 Jan 2009 19:51:27 -0000	1.47
@@ -12,9 +12,17 @@
 	Nouveau DRM driver.
 	Won't go upstream until ABI confirmed.
 
+linux-2.6-acpi-clear-wake-status.patch
+linux-2.6-input-dell-keyboard-keyup.patch
+	Upstream in 2.6.28-rc, sent to -stable
+
 linux-2.6-eeepc-laptop-update.patch
 	Upstream but slightly different (commit a195dcdc)
 
+linux-2.6-acpi-ignore-reset_reg_sup.patch
+	Fixes reboot after suspend/resume (https://bugzilla.redhat.com/show_bug.cgi?id=461228)
+	Upstream in .28rc1, sent to stable
+
 linux-2.6-at76.patch
 linux-2.6-iwl3945-ibss-tsf-fix.patch
 linux-2.6-iwlagn-downgrade-BUG_ON-in-interrupt.patch
@@ -56,15 +64,6 @@
 linux-2.6-debug-sizeof-structs.patch
 	Fedora local debug stuff.
 
-linux-2.6-default-mmf_dump_elf_headers.patch
-	Fedora change of /proc/pid/coredump_filter default for build ID.
-	Sent upstream Sep 26 (mm add-config_core_dump_default_elf_headers.patch)
-	will become kconfig setting
-
-linux-2.6-x86-tracehook.patch
-	(utrace prerequisite)
-	In tip/x86/tracehook, to be merged for 2.6.28
-
 linux-2.6-utrace.patch
 	utrace
 
@@ -117,24 +116,16 @@
 	Sent ping on Sep 25 to find out status.
 
 linux-2.6-net-silence-noisy-printks.patch
-linux-2.6-piix3-silence-quirk.patch
-linux-2.6-quiet-iommu.patch
+linux-2.6-piix3-silence-quirk.patch (in -mm)
 linux-2.6-silence-acpi-blacklist.patch
 linux-2.6-silence-fbcon-logo.patch
 linux-2.6-silence-noise.patch
-linux-2.6-amd64-yes-i-know-you-live.patch
 linux-2.6.27-pci-hush-allocation-failures.patch
 	Fedora local 'hush' patches.  (Some will go upstream next time)
 
 linux-2.6-selinux-mprotect-checks.patch
 linux-2.6-sparc-selinux-mprotect-checks.patch
-	Not upstreamable as-is.
-	These changes will cause breakage on distros that haven't got an
-	 up-to-date toolchain.  CONFIG_ option perhaps?
-
-linux-2.6-selinux-recognise-addrlabel.patch
-	https://bugzilla.redhat.com/show_bug.cgi?id=469423
-	posted upstream on nov 5 2008 : http://lkml.org/lkml/2008/11/5/85
+	Not upstreamable.
 
 linux-2.6-serial-460800.patch
 	Probably not upstreamable.
@@ -149,11 +140,29 @@
 	DEBUG_SHIRQ causes an oops.
 	Needs testing, if it works, it'll go upstream soon.
 
-linux-2.6.27-ext4-2.6.28-backport-fixups.patch
-linux-2.6.27-ext4-2.6.28-rc3-git6.patch
+linux-2.6.27-ext4-stable-patch-queue.patch
 	EXT4 bits for 2.6.28
 	Eric looks after this stuff.
 
+linux-2.6.27-fs-disable-fiemap.patch
+	Don't let this interface get out 'til it's official (and
+	released) upstream.
+
+linux-2.6.27-ext-dir-corruption-fix.patch
+	in -stable, but reverted in upstream-reverts
+        (the ext4 patch queue won't apply if we get this patch from -stable)
+
+linux-2.6.27-delay-ext4-free-block-cap-check.patch
+	In the ext4 queue, will be upstream (for bug #467216)
+
+linux-2.6-x86-avoid-dereferencing-beyond-stack-THREAD_SIZE.patch
+	In mainline and 2.6.26-stable, submitted for 2.6.27-stable.
+
+linux-2.6-rtc-cmos-look-for-pnp-rtc-first.patch
+linux-2.6-x86-register-platform-rtc-if-pnp-doesnt-describe-it.patch
+	Fix broken RTC on systems that don't expose it via PnP.
+	Submitted for -stable
+
 linux-2.6.27-sony-laptop-suspend-fix.patch
 	Submitted: http://marc.info/?l=linux-kernel&m=122419261829835&w=2
 
@@ -161,16 +170,29 @@
 	In -stable, reverted in upstream-reverts, reapplied after the drm patch.
 	The drm patch should be fixed up to not conflict with the upstream patch.
 
-linux-2.6-netdev-r8169-2.6.28.patch
-	Update the r8169 driver to 2.6.28-rc3
+linux-2.6-libata-pata_it821x-fix-lba48-on-raid-volumes.patch
+	upstream, sent for -stable
+
+linux-2.6-usb-storage-unusual-devs-jmicron-ata-bridge.patch
+	sent for stable
+
+linux-2.6-net-tcp-option-ordering.patch
+	Backport of fd6149d332973bafa50f03ddb0ea9513e67f4517 from .28
+
+linux-2.6-sched-features-disable-hrtick.patch
+linux-2.6-sched_clock-prevent-scd-clock-from-moving-backwards
+	Scheduler patches from 2.6.28, sent to -stable
+
+linux-2.6-r8169-fix-RxMissed-register-access.patch
+linux-2.6-r8169-wake-up-the-phy-of-the-8168.patch
+	Selected patches from the r8169 2.6.28 driver.
+	Should go to stable after confirming they fix reported bugs.
 
 linux-2.6-olpc-speaker-out.patch
 	Enables speaker output by default on OLPC, going to get review from
 	OLPC folks and then to upstream for .28
 linux-2.6-olpc-touchpad.patch
 	OLPC touchpad tweaks backported from 2.6.28
-linux-2.6-quieter-mmc.patch
-        Quiets a warning from the sdhci stack on boot on XO; en route upstream
 
 linux-2.6-x86-mtrr-kill-bogus-warning.patch
 	Silence bogus warning under vmware ; sent upstream.


Index: config-debug
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-debug,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- config-debug	1 Oct 2008 03:49:53 -0000	1.20
+++ config-debug	12 Jan 2009 19:51:27 -0000	1.21
@@ -15,6 +15,7 @@
 CONFIG_FAIL_MAKE_REQUEST=y
 CONFIG_FAULT_INJECTION_DEBUG_FS=y
 CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+CONFIG_FAIL_IO_TIMEOUT=y
 
 CONFIG_SLUB_DEBUG_ON=y
 


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-generic,v
retrieving revision 1.202
retrieving revision 1.203
diff -u -r1.202 -r1.203
--- config-generic	18 Dec 2008 21:51:11 -0000	1.202
+++ config-generic	12 Jan 2009 19:51:27 -0000	1.203
@@ -142,6 +142,7 @@
 # Executable file formats
 #
 CONFIG_BINFMT_ELF=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
 # CONFIG_BINFMT_AOUT is not set
 CONFIG_BINFMT_MISC=y
 
@@ -289,6 +290,7 @@
 #
 CONFIG_PNP=y
 # CONFIG_PNP_DEBUG is not set
+# CONFIG_PNP_DEBUG_MESSAGES is not set
 
 #
 # Protocols
@@ -296,7 +298,7 @@
 CONFIG_ISAPNP=y
 # CONFIG_PNPBIOS is not set
 
-CONFIG_ACPI_PCI_SLOT=m
+CONFIG_ACPI_PCI_SLOT=y
 CONFIG_HOTPLUG_PCI_ACPI=y
 CONFIG_HOTPLUG_PCI_ACPI_IBM=m
 
@@ -628,6 +630,7 @@
 #
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=y
+CONFIG_MD_AUTODETECT=y
 CONFIG_MD_FAULTY=m
 CONFIG_MD_LINEAR=m
 CONFIG_MD_MULTIPATH=m
@@ -779,6 +782,7 @@
 CONFIG_NET_9P_FD=m
 CONFIG_NET_9P_VIRTIO=m
 # CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P_RDMA=m
 
 CONFIG_DECNET=m
 CONFIG_DECNET_ROUTER=y
@@ -1222,20 +1226,21 @@
 CONFIG_E1000E=m
 CONFIG_IGB=m
 # CONFIG_IGB_LRO is not set
+CONFIG_IGB_DCA=y
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
 CONFIG_YELLOWFIN=m
 CONFIG_R8169=m
 CONFIG_R8169_NAPI=y
 CONFIG_R8169_VLAN=y
-# broken on ppc 28 Jul 2008
-# CONFIG_SFC is not set
+CONFIG_SFC=n
 # CONFIG_SK98LIN is not set
 CONFIG_SKGE=m
 # CONFIG_SKGE_DEBUG is not set
 CONFIG_TIGON3=m
 CONFIG_SKY2=m
 # CONFIG_SKY2_DEBUG is not set
+CONFIG_JME=m
 
 #
 # Ethernet (10000 Mbit)
@@ -1248,12 +1253,18 @@
 CONFIG_IXGB=m
 CONFIG_IXGB_NAPI=y
 CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
 CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
 CONFIG_NETXEN_NIC=m
 CONFIG_NIU=m
 CONFIG_S2IO=m
 CONFIG_S2IO_NAPI=y
 CONFIG_TEHUTI=m
+CONFIG_ENIC=m
+CONFIG_MLX4_EN=m
+# CONFIG_MLX4_DEBUG is not set
+CONFIG_QLGE=m
 
 CONFIG_FDDI=y
 # CONFIG_DEFXX is not set
@@ -1296,6 +1307,7 @@
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 CONFIG_MAC80211_DEBUGFS=y
+CONFIG_MAC80211_RC_MINSTREL=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
 # CONFIG_MAC80211_DEBUG is not set
 # CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
@@ -1308,6 +1320,8 @@
 CONFIG_IEEE80211_CRYPT_TKIP=m
 CONFIG_CFG80211=m
 CONFIG_NL80211=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_OLD_REGULATORY=y
 CONFIG_WIRELESS_EXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 
@@ -1346,6 +1360,8 @@
 CONFIG_LIBERTAS_CS=m
 CONFIG_LIBERTAS_SDIO=m
 CONFIG_LIBERTAS_DEBUG=y
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
 CONFIG_IWLCORE=m
 CONFIG_IWLCORE_RFKILL=y
 CONFIG_IWLWIFI_LEDS=y
@@ -1455,7 +1471,7 @@
 CONFIG_BPQETHER=m
 CONFIG_SCC=m
 CONFIG_DMASCC=m
-# CONFIG_SCC_DELAY is not set
+CONFIG_SCC_DELAY=n
 CONFIG_SCC_TRXECHO=y
 CONFIG_BAYCOM_SER_FDX=m
 CONFIG_BAYCOM_SER_HDX=m
@@ -1683,6 +1699,7 @@
 
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
 CONFIG_INPUT_POLLDEV=m
 
 #
@@ -1715,6 +1732,7 @@
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=y
 # CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_PS2_ELANTECH is not set
 CONFIG_MOUSE_SERIAL=m
 CONFIG_MOUSE_VSXXXAA=m
 CONFIG_MOUSE_APPLETOUCH=m
@@ -2075,6 +2093,11 @@
 CONFIG_RTC_DRV_V3020=m
 CONFIG_RTC_DRV_STK17TA8=m
 # CONFIG_RTC_DRV_S35390A is not set
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_WM8350=m
 
 CONFIG_DTLK=m
 CONFIG_R3964=m
@@ -2099,13 +2122,14 @@
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_RADEON_KMS=n
 CONFIG_DRM_I810=m
 CONFIG_DRM_I830=m
 CONFIG_DRM_MGA=m
 CONFIG_DRM_SIS=m
 CONFIG_DRM_SAVAGE=m
 CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=n
 CONFIG_DRM_VIA=m
 CONFIG_DRM_NOUVEAU=m
 
@@ -2277,10 +2301,17 @@
 CONFIG_DVB_TDA1004X=m
 CONFIG_DVB_TUA6100=m
 CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
 CONFIG_DVB_USB_ANYSEE=m
 CONFIG_DVB_USB_DW2102=m
 CONFIG_DVB_VES1820=m
 CONFIG_DVB_VES1X93=m
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_LGS8GL5=m
+# CONFIG_DVB_DUMMY_FE is not set
+CONFIG_DVB_AF9013=m
 
 #
 # Supported SAA7146 based PCI Adapters
@@ -2427,10 +2458,16 @@
 # CONFIG_FB_UVESA is not set
 CONFIG_FB_VESA=y
 CONFIG_FB_VGA16=m
-# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VIRTUAL=m
 CONFIG_FB_VOODOO1=m
 # CONFIG_FB_VT8623 is not set
 CONFIG_FB_EFI=y
+CONFIG_FB_VIA=m
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_MB862XX_LIME=y
+# CONFIG_FB_PRE_INIT_FB is not set
 
 # CONFIG_FIRMWARE_EDID is not set
 
@@ -2476,7 +2513,6 @@
 CONFIG_SND_PCM_OSS=y
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_RTCTIMER=y
-# CONFIG_SND_HRTIMER is not set
 CONFIG_SND_DYNAMIC_MINORS=y
 # CONFIG_SND_SUPPORT_OLD_API is not set
 
@@ -2491,7 +2527,7 @@
 CONFIG_SND_MPU401=m
 CONFIG_SND_PORTMAN2X4=m
 CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=5
 
 CONFIG_SND_DRIVERS=y
 
@@ -2534,10 +2570,8 @@
 CONFIG_SND_FM801=m
 CONFIG_SND_FM801_TEA575X_BOOL=y
 CONFIG_SND_HDA_INTEL=y
-CONFIG_SND_HDA_HWDEP=y
 CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_CODEC_NVHDMI=y
-CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_HWDEP=y
 CONFIG_SND_HDA_CODEC_REALTEK=y
 CONFIG_SND_HDA_CODEC_ANALOG=y
 CONFIG_SND_HDA_CODEC_SIGMATEL=y
@@ -2546,6 +2580,7 @@
 CONFIG_SND_HDA_CODEC_CONEXANT=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
 CONFIG_SND_HDA_GENERIC=y
 CONFIG_SND_HDA_POWER_SAVE=y
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
@@ -2644,6 +2679,7 @@
 CONFIG_USB_ACM=m
 CONFIG_USB_PRINTER=m
 CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
@@ -2675,6 +2711,7 @@
 CONFIG_HIDRAW=y
 CONFIG_HID_FF=y
 CONFIG_HID_PID=y
+# CONFIG_HID_COMPAT is not set
 CONFIG_LOGITECH_FF=y
 CONFIG_LOGIRUMBLEPAD2_FF=y
 CONFIG_PANTHERLORD_FF=y
@@ -2698,7 +2735,30 @@
 CONFIG_USB_VICAM=m
 CONFIG_USB_DSBR=m
 CONFIG_USB_ET61X251=m
+CONFIG_USB_M5602=m
 CONFIG_USB_GSPCA=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
 CONFIG_USB_IBMCAM=m
 CONFIG_USB_KONICAWC=m
 CONFIG_USB_OV511=m
@@ -2725,6 +2785,7 @@
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
 CONFIG_USB_NET_PLUSB=m
@@ -2770,7 +2831,7 @@
 CONFIG_USB_SERIAL_EMPEG=m
 CONFIG_USB_SERIAL_FTDI_SIO=m
 CONFIG_USB_SERIAL_FUNSOFT=m
-# CONFIG_USB_SERIAL_GARMIN is not set
+CONFIG_USB_SERIAL_GARMIN=m
 CONFIG_USB_SERIAL_HP4X=m
 CONFIG_USB_SERIAL_IPAQ=m
 CONFIG_USB_SERIAL_IPW=m
@@ -2823,6 +2884,7 @@
 #
 
 CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
 CONFIG_USB_ALI_M5632=y
 CONFIG_USB_APPLEDISPLAY=m
 CONFIG_USB_ATM=m
@@ -2845,6 +2907,7 @@
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_IOWARRIOR=m
 CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_VST=m
 CONFIG_USB_LCD=m
 CONFIG_USB_LD=m
 CONFIG_USB_LEGOTOWER=m
@@ -2861,6 +2924,7 @@
 CONFIG_USB_SISUSBVGA=m
 CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_SI470X=m
+CONFIG_USB_MR800=m
 CONFIG_USB_STKWEBCAM=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_TRANCEVIBRATOR=m
@@ -2869,7 +2933,7 @@
 CONFIG_USB_UVCVIDEO=m
 CONFIG_USB_W9968CF=m
 CONFIG_USB_XUSBATM=m
-# CONFIG_USB_ZC0301 is not set
+CONFIG_USB_ZC0301=n
 CONFIG_USB_ZERO=m
 
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -2936,6 +3000,7 @@
 CONFIG_QFMT_V2=y
 CONFIG_QUOTACTL=y
 CONFIG_DNOTIFY=y
+# Autofsv3 is obsolete.
 # CONFIG_AUTOFS_FS is not set
 CONFIG_AUTOFS4_FS=m
 
@@ -3025,6 +3090,7 @@
 CONFIG_SUNRPC_BIND34=y
 CONFIG_SUNRPC_GSS=m
 CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_SUNRPC_REGISTER_V4=y
 CONFIG_RPCSEC_GSS_KRB5=m
 CONFIG_RPCSEC_GSS_SPKM3=m
 # CONFIG_SMB_FS is not set
@@ -3058,6 +3124,7 @@
 CONFIG_OCFS2_FS_O2CB=m
 CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
 # CONFIG_OCFS2_FS_STATS is not set
+# CONFIG_OCFS2_COMPAT_JBD is not set
 CONFIG_CONFIGFS_FS=m
 
 CONFIG_DLM=m
@@ -3263,6 +3330,8 @@
 CONFIG_CRYPTO_XTS=m
 CONFIG_CRYPTO_TEST=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_ANSI_CPRNG=m
 CONFIG_CRYPTO_DEV_HIFN_795X=m
 CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 
@@ -3298,6 +3367,7 @@
 CONFIG_FB_RADEON_BACKLIGHT=y
 CONFIG_FB_ATY128_BACKLIGHT=y
 CONFIG_FB_ATY_BACKLIGHT=y
+# CONFIG_BACKLIGHT_SAHARA is not set
 
 CONFIG_LCD_CLASS_DEVICE=m
 CONFIG_LCD_PLATFORM=m
@@ -3309,8 +3379,7 @@
 CONFIG_GROUP_SCHED=y
 CONFIG_RT_GROUP_SCHED=y
 CONFIG_CGROUP_SCHED=y
-# NOTE: Before changing the below, take notice that page struct will grow past a cacheline on 32bit.
-# CONFIG_CGROUP_MEM_RES_CTLR is not set
+CONFIG_CGROUP_MEM_RES_CTLR=y
 
 CONFIG_CPUSETS=y
 CONFIG_CGROUPS=y
@@ -3318,6 +3387,7 @@
 CONFIG_CGROUP_NS=y
 CONFIG_CGROUP_CPUACCT=y
 CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_FREEZER=y
 CONFIG_PROC_PID_CPUSET=y
 
 # CONFIG_SYSFS_DEPRECATED is not set
@@ -3346,7 +3416,7 @@
 CONFIG_PM_DEBUG=y
 CONFIG_PM_TRACE=y
 # CONFIG_PM_VERBOSE is not set
-# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_TEST_SUSPEND=y
 
 CONFIG_CRASH=m
 
@@ -3521,10 +3591,12 @@
 # CONFIG_LEDS_S3C24XX is not set
 # CONFIG_LEDS_SPITZ is not set
 # CONFIG_LEDS_TOSA is not set
+CONFIG_LEDS_HP_DISK=m
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_IDE_DISK=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 
 CONFIG_DMADEVICES=y
@@ -3567,6 +3639,7 @@
 CONFIG_APM_POWER=m
 # CONFIG_BATTERY_DS2760 is not set
 CONFIG_BATTERY_PMU=m
+CONFIG_BATTERY_BQ27x00=m
 # CONFIG_PDA_POWER is not set
 
 CONFIG_AUXDISPLAY=y
@@ -3576,6 +3649,7 @@
 CONFIG_UIO_SMX=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_SERCOS3=m
 
 CONFIG_INSTRUMENTATION=y
 CONFIG_MARKERS=y
@@ -3630,6 +3704,7 @@
 CONFIG_I8K=m
 CONFIG_ACER_WMI=m
 CONFIG_EDAC_I3000=m
+CONFIG_EDAC_X38=m
 CONFIG_INPUT_APANEL=m
 
 # CONFIG_INTEL_MENLOW is not set
@@ -3664,3 +3739,74 @@
 # CONFIG_GPIOLIB is not set
 
 CONFIG_HP_WMI=m
+
+CONFIG_UNEVICTABLE_LRU=y
+
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+
+# CONFIG_IP_VS_IPV6 is not set
+
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_MV88E6060=y
+CONFIG_NET_DSA_MV88E6131=y
+CONFIG_NET_DSA_MV88E6123_61_65=y
+
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_ACT_SKBEDIT=m
+
+CONFIG_PHONET=m
+
+CONFIG_ICS932S401=m
+# CONFIG_C2PORT is not set
+CONFIG_W1_SLAVE_BQ27000=m
+
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_LIS3LV02D=m
+
+CONFIG_IT87_WDT=m
+CONFIG_W83697UG_WDT=m
+
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM8350_I2C=m
+
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+CONFIG_REGULATOR_BQ24022=m
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_DA903X=m
+
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+
+CONFIG_SOC_CAMERA_MT9M111=m
+
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+
+# CONFIG_STAGING is not set
+
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_BOOT_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+CONFIG_EARLY_PRINTK_DBGP=y
+
+CONFIG_SECURITYFS=y


Index: config-ia64-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-ia64-generic,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- config-ia64-generic	25 Sep 2008 19:17:30 -0000	1.18
+++ config-ia64-generic	12 Jan 2009 19:51:27 -0000	1.19
@@ -207,3 +207,6 @@
 
 CONFIG_SYSFS_DEPRECATED=y
 CONFIG_SYSFS_DEPRECATED_V2=y
+
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_PARAVIRT=y


Index: config-nodebug
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-nodebug,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- config-nodebug	1 Oct 2008 03:49:53 -0000	1.22
+++ config-nodebug	12 Jan 2009 19:51:27 -0000	1.23
@@ -2,42 +2,43 @@
 CONFIG_SND_DEBUG=y
 CONFIG_SND_PCM_XRUN_DEBUG=y
 
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_FAILSLAB is not set
-# CONFIG_FAIL_PAGE_ALLOC is not set
-# CONFIG_FAIL_MAKE_REQUEST is not set
-# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
-# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_LOCK_ALLOC=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_DEBUG_VM=y
+CONFIG_DEBUG_SPINLOCK=y
+
+CONFIG_FAULT_INJECTION=y
+CONFIG_FAILSLAB=y
+CONFIG_FAIL_PAGE_ALLOC=y
+CONFIG_FAIL_MAKE_REQUEST=y
+CONFIG_FAULT_INJECTION_DEBUG_FS=y
+CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAIL_IO_TIMEOUT is not set
 
-# CONFIG_SLUB_DEBUG_ON is not set
+CONFIG_SLUB_DEBUG_ON=y
 
-# CONFIG_LOCK_STAT is not set
+CONFIG_LOCK_STAT=y
 
-# CONFIG_DEBUG_STACK_USAGE is not set
+CONFIG_DEBUG_STACK_USAGE=y
 
 # CONFIG_ACPI_DEBUG is not set
 
-# CONFIG_DEBUG_SG is not set
+CONFIG_DEBUG_SG=y
 
-# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_DEBUG_PAGEALLOC=y
 
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_OBJECTS is not set
+CONFIG_DEBUG_WRITECOUNT=y
+CONFIG_DEBUG_OBJECTS=y
 # CONFIG_DEBUG_OBJECTS_SELFTEST is not set
-# CONFIG_DEBUG_OBJECTS_FREE is not set
-# CONFIG_DEBUG_OBJECTS_TIMERS is not set
+CONFIG_DEBUG_OBJECTS_FREE=y
+CONFIG_DEBUG_OBJECTS_TIMERS=y
 
-# CONFIG_X86_PTDUMP is not set
+CONFIG_X86_PTDUMP=y
 
-# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEBUG_DEVICES=y
 
-# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULE_FORCE_UNLOAD=y
 
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y


Index: config-powerpc-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-powerpc-generic,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- config-powerpc-generic	8 Oct 2008 19:26:22 -0000	1.26
+++ config-powerpc-generic	12 Jan 2009 19:51:27 -0000	1.27
@@ -253,3 +253,27 @@
 CONFIG_SERIO_XILINX_XPS_PS2=m
 
 # CONFIG_PPC_SMLPAR is not set
+
+CONFIG_MGCOGE=y
+CONFIG_GEF_SBC610=y
+CONFIG_QUICC_ENGINE=y
+CONFIG_QE_GPIO=y
+CONFIG_MPC8xxx_GPIO=y
+
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+
+CONFIG_MCU_MPC8349EMITX=m
+
+CONFIG_GPIO_XILINX=y
+
+CONFIG_UCB1400_CORE=m
+
+CONFIG_PMIC_DA903X=y
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_LEDS_DA903X=m
+
+CONFIG_MSI_BITMAP_SELFTEST=y
+
+CONFIG_RELOCATABLE=y


Index: config-rhel-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-rhel-generic,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- config-rhel-generic	5 Nov 2008 20:46:16 -0000	1.15
+++ config-rhel-generic	12 Jan 2009 19:51:27 -0000	1.16
@@ -50,6 +50,8 @@
 # CONFIG_DEPCA is not set
 # CONFIG_ATP is not set
 
+# CONFIG_TR is not set
+
 # CONFIG_GAMEPORT is not set
 
 # CONFIG_SND_AD1816A is not set
@@ -91,6 +93,11 @@
 
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+
+# CONFIG_PARIDE is not set
+
+# CONFIG_I2O is not set
 
 # CONFIG_MWAVE is not set
 
@@ -185,7 +192,6 @@
 # CONFIG_FB_3DFX_ACCEL is not set
 # CONFIG_FB_TRIDENT_ACCEL is not set
 
-# CONFIG_AUTOFS_FS is not set
 # CONFIG_JFS_FS is not set
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set


Index: config-s390x
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-s390x,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- config-s390x	1 Aug 2008 19:55:06 -0000	1.9
+++ config-s390x	12 Jan 2009 19:51:27 -0000	1.10
@@ -216,3 +216,5 @@
 # drivers/isdn/hardware/mISDN/hfcmulti.c:5255:2: error: #error "not running on big endian machines now"
 # CONFIG_MISDN_HFCMULTI is not set
 
+# CONFIG_CRASH is not set
+


Index: config-sparc64-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-sparc64-generic,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- config-sparc64-generic	28 Jul 2008 08:37:10 -0000	1.20
+++ config-sparc64-generic	12 Jan 2009 19:51:27 -0000	1.21
@@ -195,3 +195,8 @@
 
 # drivers/isdn/hardware/mISDN/hfcmulti.c:5255:2: error: #error "not running on big endian machines now"
 # CONFIG_MISDN_HFCMULTI is not set
+
+CONFIG_US3_MC=y
+CONFIG_SENSORS_ULTRA45=m
+CONFIG_LEDS_SUNFIRE=m
+CONFIG_TADPOLE_TS102_UCTRL=m


Index: config-x86-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-x86-generic,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- config-x86-generic	25 Nov 2008 15:20:28 -0000	1.55
+++ config-x86-generic	12 Jan 2009 19:51:27 -0000	1.56
@@ -76,7 +76,6 @@
 CONFIG_MTRR=y
 CONFIG_X86_PAT=y
 CONFIG_X86_PM_TIMER=y
-CONFIG_X86_RESERVE_LOW_64K=y
 
 CONFIG_EFI=y
 CONFIG_EFI_VARS=y
@@ -412,3 +411,17 @@
 CONFIG_HP_ILO=m
 
 CONFIG_BACKLIGHT_MBP_NVIDIA=m
+
+CONFIG_OPROFILE_IBS=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+
+# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+CONFIG_X86_RESERVE_LOW_64K=y
+
+# CONFIG_CMDLINE_BOOL is not set
+
+CONFIG_PANASONIC_LAPTOP=m
+
+CONFIG_XEN_DEBUG_FS=y
+CONFIG_X86_PTRACE_BTS=y


Index: config-x86_64-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/config-x86_64-generic,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- config-x86_64-generic	12 Jan 2009 03:29:30 -0000	1.54
+++ config-x86_64-generic	12 Jan 2009 19:51:27 -0000	1.55
@@ -10,7 +10,7 @@
 CONFIG_K8_NUMA=y
 CONFIG_X86_64_ACPI_NUMA=y
 # CONFIG_NUMA_EMU is not set
-CONFIG_NR_CPUS=64
+CONFIG_NR_CPUS=512
 CONFIG_X86_POWERNOW_K8=m
 CONFIG_X86_POWERNOW_K8_ACPI=y
 CONFIG_X86_P4_CLOCKMOD=m 
@@ -293,7 +293,6 @@
 # FIXME: These should be 32bit only
 # CONFIG_FB_N411 is not set
 CONFIG_STRICT_DEVMEM=y
-CONFIG_X86_RESERVE_LOW_64K=y
 
 CONFIG_DIRECT_GBPAGES=y
 
@@ -310,3 +309,20 @@
 CONFIG_X86_MPPARSE=y
 
 CONFIG_BACKLIGHT_MBP_NVIDIA=m
+
+CONFIG_OPROFILE_IBS=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+
+# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+CONFIG_X86_RESERVE_LOW_64K=y
+
+# CONFIG_CMDLINE_BOOL is not set
+
+CONFIG_PANASONIC_LAPTOP=m
+
+CONFIG_XEN_DEBUG_FS=y
+CONFIG_X86_PTRACE_BTS=y
+
+CONFIG_I7300_IDLE=m
+CONFIG_INTR_REMAP=y

drm-modesetting-radeon.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.68 -r 1.69 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/drm-modesetting-radeon.patch,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- drm-modesetting-radeon.patch	18 Dec 2008 05:22:42 -0000	1.68
+++ drm-modesetting-radeon.patch	12 Jan 2009 19:51:27 -0000	1.69
@@ -1,36 +1,55 @@
-commit 55c0a3f1d3693cb5c3b65f37d4bb6e8a3c025460
+commit 3ef2b914f9667c70a9711fa31ff95d639ccc8e2e
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Dec 18 23:01:12 2008 +1000
 
     drm: don't set cached bits on pages from uncached allocator.
     
     This should make AGP no corrupt itself to all buggery
+    (cherry picked from commit 55c0a3f1d3693cb5c3b65f37d4bb6e8a3c025460)
 
-commit 6869ac2062aa32d24a13b66630e733864cf8cdda
+commit be5f7447cc492545e225170be38e5e65d7de37d9
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Tue Dec 2 16:38:04 2008 +1000
+
+    drop old CS
+
+commit 91bfed87127c1bd17098803184e43783d55f35e5
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Dec 1 15:09:27 2008 +1000
+
+    radeon: update with latest CS bits
+
+commit a7f6175e3610651b1f84a1b8aa1f61a9a4f3bdb6
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Wed Dec 17 06:56:36 2008 +1000
+
+    fixups post rebase
+
+commit cd29f247278a5949956adbfb75229dc9bad19f8e
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Dec 11 01:35:09 2008 +1000
 
     radeon: fix agp mode when kms isn't enabled
 
-commit 2dd4a9470e5f4c1452d8e28ef9d4429d4fb5d48c
+commit 0d0f9c970263750a68131b5f88735c59f605c69f
 Author: Dave Airlie <airlied at ppcg5.localdomain>
 Date:   Wed Dec 3 17:22:07 2008 +1100
 
     radeon: add support for accessing disabled ROMs.
 
-commit 358ef7eede3e9ee2f7713bcaec25b93df14251b8
+commit 840d823d6f33c1852b92791093b23b1ce7af25ac
 Author: Dave Airlie <airlied at ppcg5.localdomain>
 Date:   Wed Dec 3 17:19:02 2008 +1100
 
     radeon: make cail do pll read/write via actual PLL functions
 
-commit e4f4d44b41882503ec21252836049bbd24549415
+commit 049d865d47cf229234cd7dd0ef8927a41a142b0e
 Author: Dave Airlie <airlied at ppcg5.localdomain>
 Date:   Wed Dec 3 16:36:00 2008 +1100
 
     radeon: atom fixes for endianness
 
-commit 09daed1f3e4942496793c3411aee485cb97eb694
+commit df08dc63cbbd19a8ea0659bdc379147a59201b4c
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Wed Dec 3 20:28:05 2008 +1000
 
@@ -40,7 +59,7 @@
     Limit the AGP aperture to the GART size, and init the registers
     in the right place
 
-commit 4a7eb33e9c27c28129c07123c0878e3e603c937e
+commit 79d6ac96108c29dbce90ce605b01dd6b71673092
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Tue Dec 2 12:49:17 2008 +1000
 
@@ -49,7 +68,7 @@
     1. Proper PCIE fallback on PCIE cards.
     2. Setup agp base + location regs properly
 
-commit b7de4d48a3e45df7d4e0401bc7987089ce2165b2
+commit e6a1353d11f485c99371e0b89c669da0c23e8af4
 Author: Michal Schmidt <mschmidt at redhat.com>
 Date:   Tue Dec 2 08:06:59 2008 +1000
 
@@ -57,21 +76,13 @@
     
     fedora bz 473895
 
-commit 1ff222030a971f3d1274dfcb3742a35996ccc6c8
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Nov 28 09:19:47 2008 +1000
-
-    drm: cleanup exit path mess using a linked list.
-    
-    Just keep a list of devices per driver and cleanup on exit
-
-commit 1f745bdfe55455d707625ad5a28b834db636b679
+commit d879f36aca29ece7c3bfada452266e82df3f2392
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Nov 27 17:14:40 2008 +1000
 
     radeon: post any GPUs that aren't posted
 
-commit 5a7e1ee57ec37fb479cb3f7dc428bdb8cb9099ad
+commit d04c4750aba2b0bd306ab36a0002f2609ed6cc9a
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Nov 24 15:18:31 2008 +1000
 
@@ -82,13 +93,13 @@
     
     Default to 512MB gart.
 
-commit b2628a4d2aeac92530f83c3f425b7593076fb4c8
+commit ae7c33fa98bf4921292f6dffb6e60dd2b85cddfa
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Nov 24 15:17:49 2008 +1000
 
     radeon: add some missing feature checks for modesetting
 
-commit 4f9b537f20809a5e47e8efe49e440afd4dcab4e3
+commit 54fd140cc8c63d5c65fbcdf21259025fd8a431e8
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Nov 24 11:41:06 2008 +1100
 
@@ -97,49 +108,43 @@
     we really need to read back to make sure the invalidate has happened
     before continuing along happily in life.
 
-commit 8e9fc797117820610d5c414f9ad016fd022cde2e
+commit 5e418cef1bfca7e8e0821d6e44a1e1a78e015b17
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Sun Nov 23 19:19:02 2008 +1000
 
     drm: we have discardable now so don't do special cases
 
-commit 4c3d55f855d5f7931b6493b4eb433cfca169d8e4
+commit 87e2de7aef77b96a8be3532358b6ceb9540d622a
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Fri Nov 21 14:52:25 2008 +1000
 
     atom: fix bug in parser for MC reads
 
-commit e8ebeedbc953aec25e546d765dc2271b621ea074
+commit 52eccc11083a1c0636337520187a4e2cf9bfe989
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Nov 17 18:14:28 2008 +1000
 
     radeon: turn of VRAM zeroing by default for now - needs work
 
-commit e6f04b8b47432de09575dd7de51b47553905d96c
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Mon Nov 17 16:59:00 2008 +1000
-
-    drm: make 800x600 be standard not 640x480
-
-commit bf63101f05e0a692f16d1bb0ed4f0e2e36c88178
+commit 7a32efbc88ed749c0cd44a95bb4888cd2bc806c0
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Nov 17 09:03:36 2008 +1000
 
     radeon: fix return value for no relocs
 
-commit 847ae8403cfc09dc422766a5773fe8a26acc6ed5
+commit 5a47b4d8a97949288ebe8f2f3437637e405d1db8
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Nov 17 09:03:01 2008 +1000
 
     ttm: add discard for VRAM buffers
 
-commit 2f4b5f642fd33de9ac31a78f168246b6790e4c8c
+commit 160794bbbb90088a86acc96ca5268bc46255582d
 Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
 Date:   Fri Nov 14 15:52:32 2008 +1000
 
     drm: fix the exit path of the bo unlocking
 
-commit ca31807fbcfe5bef921d75e385d6b3e12a8c866b
+commit 1ea46b5e3dc7e75afe1936594e0e085c9dc8665d
 Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
 Date:   Fri Nov 14 15:51:44 2008 +1000
 
@@ -147,55 +152,49 @@
     
     Fixup failure paths and make EAGAIN work
 
-commit 1e587fd7c62ccb6a26fea1de898974cbcf2b2908
+commit e16a76e302eba9b53858457054059985ec0ef9df
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Nov 13 17:22:26 2008 +1100
 
     radeon: fix some issues since last rebase
 
-commit 604e11f3e32bedbe0db22c03aa12757818ca5174
+commit e9ab870ce368dab7ed9e859c157074913353b589
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Wed Nov 12 09:01:14 2008 +1000
[...13843 lines suppressed...]
- /* SAREA area needs to be at least a page */
- #if defined(__alpha__)
--#define SAREA_MAX                       0x2000
-+#define SAREA_MAX                       0x2000UL
- #elif defined(__ia64__)
--#define SAREA_MAX                       0x10000	/* 64kB */
-+#define SAREA_MAX                       0x10000UL	/* 64kB */
- #else
- /* Intel 830M driver needs at least 8k SAREA */
--#define SAREA_MAX                       0x2000
-+#define SAREA_MAX                       0x2000UL
- #endif
- 
- /** Maximum number of drawables in the SAREA */
 diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
-index 152b34d..13c91fc 100644
+index b3bcf72..181d9de 100644
 --- a/include/drm/i915_drm.h
 +++ b/include/drm/i915_drm.h
-@@ -63,7 +63,7 @@ typedef struct _drm_i915_init {
- 	unsigned int chipset;
- } drm_i915_init_t;
- 
--typedef struct _drm_i915_sarea {
-+typedef struct drm_i915_sarea {
- 	struct drm_tex_region texList[I915_NR_TEX_REGIONS + 1];
- 	int last_upload;	/* last time texture was uploaded */
- 	int last_enqueue;	/* last time a buffer was enqueued */
-@@ -105,14 +105,26 @@ typedef struct _drm_i915_sarea {
- 	unsigned int rotated_tiled;
- 	unsigned int rotated2_tiled;
- 
--	int pipeA_x;
--	int pipeA_y;
--	int pipeA_w;
--	int pipeA_h;
--	int pipeB_x;
--	int pipeB_y;
--	int pipeB_w;
--	int pipeB_h;
-+	int planeA_x;
-+	int planeA_y;
-+	int planeA_w;
-+	int planeA_h;
-+	int planeB_x;
-+	int planeB_y;
-+	int planeB_w;
-+	int planeB_h;
-+
-+	/* triple buffering - not in kernel */
-+	drm_handle_t third_handle;
-+	int third_offset;
-+	int third_size;
-+	unsigned int third_tiled;
-+
-+	/* buffer object handles for static buffers */
-+	unsigned int front_bo_handle;
-+	unsigned int back_bo_handle;
-+	unsigned int third_bo_handle;
-+	unsigned int depth_bo_handle;
- } drm_i915_sarea_t;
- 
- /* Flags for perf_boxes
-@@ -163,7 +175,7 @@ typedef struct _drm_i915_sarea {
+@@ -187,7 +187,7 @@ typedef struct _drm_i915_sarea {
  
  #define DRM_IOCTL_I915_INIT		DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
  #define DRM_IOCTL_I915_FLUSH		DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -45226,16 +36034,7 @@
  #define DRM_IOCTL_I915_BATCHBUFFER	DRM_IOW( DRM_COMMAND_BASE + DRM_I915_BATCHBUFFER, drm_i915_batchbuffer_t)
  #define DRM_IOCTL_I915_IRQ_EMIT         DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_IRQ_EMIT, drm_i915_irq_emit_t)
  #define DRM_IOCTL_I915_IRQ_WAIT         DRM_IOW( DRM_COMMAND_BASE + DRM_I915_IRQ_WAIT, drm_i915_irq_wait_t)
-@@ -177,6 +189,8 @@ typedef struct _drm_i915_sarea {
- #define DRM_IOCTL_I915_SET_VBLANK_PIPE	DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
- #define DRM_IOCTL_I915_GET_VBLANK_PIPE	DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
- #define DRM_IOCTL_I915_VBLANK_SWAP	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
-+#define DRM_IOCTL_I915_GEM_INIT         DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
-+#define DRM_IOCTL_I915_GEM_EXECBUFFER   DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
- #define DRM_IOCTL_I915_GEM_PIN		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
- #define DRM_IOCTL_I915_GEM_UNPIN	DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
- #define DRM_IOCTL_I915_GEM_BUSY		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
-@@ -193,10 +207,22 @@ typedef struct _drm_i915_sarea {
+@@ -220,6 +220,18 @@ typedef struct _drm_i915_sarea {
  #define DRM_IOCTL_I915_GEM_GET_TILING	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
  #define DRM_IOCTL_I915_GEM_GET_APERTURE	DRM_IOR  (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
  
@@ -45254,13 +36053,8 @@
  /* Allow drivers to submit batchbuffers directly to hardware, relying
   * on the security mechanisms provided by hardware.
   */
--typedef struct _drm_i915_batchbuffer {
-+typedef struct drm_i915_batchbuffer {
- 	int start;		/* agp offset */
- 	int used;		/* nr bytes in use */
- 	int DR1;		/* hw flags for GFX_OP_DRAWRECT_INFO */
 diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
-index 73ff51f..770f6f0 100644
+index 73ff51f..e4f5897 100644
 --- a/include/drm/radeon_drm.h
 +++ b/include/drm/radeon_drm.h
 @@ -453,6 +453,15 @@ typedef struct {
@@ -45279,7 +36073,7 @@
  } drm_radeon_sarea_t;
  
  /* WARNING: If you change any of these defines, make sure to change the
-@@ -493,6 +502,19 @@ typedef struct {
+@@ -493,6 +502,18 @@ typedef struct {
  #define DRM_RADEON_SURF_ALLOC 0x1a
  #define DRM_RADEON_SURF_FREE  0x1b
  
@@ -45293,13 +36087,12 @@
 +#define DRM_RADEON_GEM_SET_DOMAIN 0x23
 +#define DRM_RADEON_GEM_WAIT_RENDERING 0x24
 +
-+#define DRM_RADEON_CS           0x25
-+#define DRM_RADEON_CS2       0x26
++#define DRM_RADEON_CS       0x26
 +
  #define DRM_IOCTL_RADEON_CP_INIT    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
  #define DRM_IOCTL_RADEON_CP_START   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_START)
  #define DRM_IOCTL_RADEON_CP_STOP    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)
-@@ -521,6 +543,19 @@ typedef struct {
+@@ -521,6 +542,18 @@ typedef struct {
  #define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)
  #define DRM_IOCTL_RADEON_SURF_FREE  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)
  
@@ -45313,13 +36106,12 @@
 +#define DRM_IOCTL_RADEON_GEM_SET_DOMAIN  DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_DOMAIN, struct drm_radeon_gem_set_domain)
 +#define DRM_IOCTL_RADEON_GEM_WAIT_RENDERING DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_GEM_WAIT_RENDERING, struct drm_radeon_gem_wait_rendering) 
 +#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs)
-+#define DRM_IOCTL_RADEON_CS2 DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS2, struct drm_radeon_cs2)
 +
 +
  typedef struct drm_radeon_init {
  	enum {
  		RADEON_INIT_CP = 0x01,
-@@ -677,6 +712,7 @@ typedef struct drm_radeon_indirect {
+@@ -677,6 +710,7 @@ typedef struct drm_radeon_indirect {
  #define RADEON_PARAM_VBLANK_CRTC           13   /* VBLANK CRTC */
  #define RADEON_PARAM_FB_LOCATION           14   /* FB location */
  #define RADEON_PARAM_NUM_GB_PIPES          15   /* num GB pipes */
@@ -45327,7 +36119,7 @@
  
  typedef struct drm_radeon_getparam {
  	int param;
-@@ -731,6 +767,7 @@ typedef struct drm_radeon_setparam {
+@@ -731,6 +765,7 @@ typedef struct drm_radeon_setparam {
  #define RADEON_SETPARAM_NEW_MEMMAP 4		/* Use new memory map */
  #define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5    /* PCI GART Table Size */
  #define RADEON_SETPARAM_VBLANK_CRTC 6           /* VBLANK CRTC */
@@ -45335,7 +36127,7 @@
  /* 1.14: Clients can allocate/free a surface
   */
  typedef struct drm_radeon_surface_alloc {
-@@ -746,4 +783,114 @@ typedef struct drm_radeon_surface_free {
+@@ -746,4 +781,106 @@ typedef struct drm_radeon_surface_free {
  #define	DRM_RADEON_VBLANK_CRTC1		1
  #define	DRM_RADEON_VBLANK_CRTC2		2
  
@@ -45423,14 +36215,6 @@
 +
 +/* New interface which obsolete all previous interface.
 + */
-+
-+
-+struct drm_radeon_cs {
-+	uint32_t            dwords;
-+	uint32_t            cs_id;
-+	uint64_t            packets;
-+};
-+
 +#define RADEON_CHUNK_ID_RELOCS 0x01
 +#define RADEON_CHUNK_ID_IB     0x02
 +#define RADEON_CHUNK_ID_OLD 0xff
@@ -45441,7 +36225,7 @@
 +	uint64_t chunk_data;
 +};
 +
-+struct drm_radeon_cs2 {
++struct drm_radeon_cs {
 +	uint32_t	num_chunks;
 +	uint32_t        cs_id;
 +	uint64_t	chunks; /* this points to uint64_t * which point to
@@ -45450,16 +36234,3 @@
 +
 +
  #endif
-diff --git a/include/linux/console.h b/include/linux/console.h
-index 248e6e3..a67a90c 100644
---- a/include/linux/console.h
-+++ b/include/linux/console.h
-@@ -153,4 +153,8 @@ void vcs_remove_sysfs(struct tty_struct *tty);
- #define VESA_HSYNC_SUSPEND      2
- #define VESA_POWERDOWN          3
- 
-+#ifdef CONFIG_VGA_CONSOLE
-+extern bool vgacon_text_force(void);
-+#endif
-+
- #endif /* _LINUX_CONSOLE_H */

drm-next.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.10 -r 1.11 drm-next.patch
Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/drm-next.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- drm-next.patch	1 Dec 2008 01:14:24 -0000	1.10
+++ drm-next.patch	12 Jan 2009 19:51:28 -0000	1.11
@@ -1,8838 +1,6773 @@
-commit 1d44bed6f4ddd05022eeeb7e3bd4125bf1de22b4
-Author: Peng Li <peng.li at intel.com>
-Date:   Tue Nov 18 12:39:02 2008 +0800
-
-    drm/i915: Save/restore HWS_PGA on suspend/resume
-    
-    It fixes suspend/resume failure of xf86-video-intel dri2
-    branch. As dri2 branch doesn't call I830DRIResume() to restore
-    hardware status page anymore, we need to preserve
-    this register across suspend/resume.
-    
-    Signed-off-by: Peng Li <peng.li at intel.com>
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-    (cherry picked from commit 461cba2d294fe83297edf8a6556912812903dce1)
-
-commit a538ff2ea6684d60c8ddb1c59991702c4d923ef6
-Author: Keith Packard <keithp at keithp.com>
-Date:   Tue Nov 18 09:30:25 2008 -0800
-
-    drm: move drm vblank initialization/cleanup to driver load/unload
-    
-    drm vblank initialization keeps track of the changes in driver-supplied
-    frame counts across vt switch and mode setting, but only if you let it by
-    not tearing down the drm vblank structure.
-    
-    Signed-off-by: Keith Packard <keithp at keithp.com>
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-    (cherry picked from commit 52440211dcdc52c0b757f8b34d122e11b12cdd50)
-
-commit c90540c605e1ae1755c6a25c3428503939e09e2e
-Author: Keith Packard <keithp at keithp.com>
-Date:   Thu Nov 20 23:14:48 2008 -0800
-
-    drm/i915: execbuffer pins objects, no need to ensure they're still in the GTT
-    
-    Before we had the notion of pinning objects, we had a kludge around to make
-    sure all of the objects were still resident in the GTT before we committed
-    to executing a batch buffer. We don't need this any longer, and it sticks an
-    error return in the middle of object domain computations that must be
-    associated with a subsequent flush/invalidate emmission into the ring.
-    
-    Signed-off-by: Keith Packard <keithp at keithp.com>
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-    (cherry picked from commit 6133047aa64d2fd5b3b79dff74f696ded45615b2)
-
-commit 8807db3522abff3fc9bb6f1e1e77877293fd4d7c
-Author: Keith Packard <keithp at keithp.com>
-Date:   Wed Nov 19 14:03:05 2008 -0800
-
-    drm/i915: Always read pipestat in irq_handler
-    
-    Because we write pipestat before iir, it's possible that a pipestat
-    interrupt will occur between the pipestat write and the iir write. This
-    leaves pipestat with an interrupt status not visible in iir. This may cause
-    an interrupt flood as we never clear the pipestat event.
-    
-    Signed-off-by: Keith Packard <keithp at keithp.com>
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-    (cherry picked from commit 05eff845a28499762075d3a72e238a31f4d2407c)
-
-commit 1b2b03fc17b01658f142c77473b80d2b239050c5
-Author: Keith Packard <keithp at keithp.com>
-Date:   Thu Nov 20 22:54:54 2008 -0800
-
-    drm/i915: Subtract total pinned bytes from available aperture size
-    
-    The old code was wandering through the active list looking for pinned
-    buffers; there may be other pinned buffers around. Fortunately, we keep a
-    count of the total amount of pinned memory and can use that instead.
-    
-    Signed-off-by: Keith Packard <keithp at keithp.com>
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-    (cherry picked from commit 2678d9d6964b29ecd1975870c7a850242b29bc5c)
-
-commit 9cf12f18923a92772248792c7f0244947b5dad9d
-Author: Eric Anholt <eric at anholt.net>
-Date:   Thu Nov 13 15:00:55 2008 -0800
-
-    drm/i915: Avoid BUG_ONs on VT switch with a wedged chipset.
-    
-    Instead, just warn that bad things are happening and do our best to clean up
-    the mess without the GPU's help.
-    
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-    (cherry picked from commit 28dfe52a6e8a1495067c4331358700a170d0ee86)
-
-commit 44078e77a4901e91836b5f9f0fae28d8fac2a17d
-Author: Keith Packard <keithp at keithp.com>
-Date:   Fri Jun 20 00:08:06 2008 -0700
-
-    Export shmem_file_setup for DRM-GEM
-    
-    GEM needs to create shmem files to back buffer objects.  Though currently
-    creation of files for objects could have been driven from userland, the
-    modesetting work will require allocation of buffer objects before userland
-    is running, for boot-time message display.
-    
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-    Cc: Nick Piggin <npiggin at suse.de>
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-    (cherry picked from commit 395e0ddc44005ced5e4fed9bfc2e4bdf63d37627)
-
-commit 79dd949af73e830f6929b0faf7f3eb409a481166
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Mon Nov 3 11:07:28 2008 +1000
-
-    intel: make GEM on 64-bit go lots faster rollup
-    
-    this patch rolls up a number of upstream patches to make GEM on x86-64
-    useable again.
-    
-    Signed-off-by: Dave Airlie <airlied at redhat.com>
-
-commit beb6264cb9eb4f78f9b2754d4a577330f09d108e
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Nov 12 15:00:33 2008 +1000
-
-    i915: Add /proc debugging entry for reading out the HWS.
-    
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-
-commit e94cd33277b4f95be8d0a19f3fe32e8daef9ce94
-Author: Eric Anholt <eric at anholt.net>
-Date:   Tue Nov 4 15:50:30 2008 -0800
-
-    i915: Remove IMR masking during interrupt handler, and restart it if needed.
-    
-    The IMR masking was a technique recommended for avoiding getting stuck with
-    no interrupts generated again in MSI mode.  It kept new IIR bits from getting
-    set between the IIR read and the IIR write, which would have otherwise
-    prevented an MSI from ever getting generated again.  However, this caused a
-    problem for vblank as the IMR mask would keep the pipe event interrupt from
-    getting reflected in IIR, even after the IMR mask was brought back down.
-    
-    Instead, just check the state of IIR after we ack the interrupts we're going
-    to handle, and restart if we didn't get IIR all the way to zero.
-    
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-
-commit 3437c28f678abfa0e7ebe78176b268cbf0732e81
-Author: Keith Packard <keithp at keithp.com>
-Date:   Tue Nov 4 02:03:27 2008 -0800
-
-    i915: Manage PIPESTAT to control vblank interrupts instead of IMR.
-    
-    The pipestat fields affect reporting of all vblank-related interrupts, so we
-    have to reset them during the irq_handler, and while enabling vblank
-    interrupts.  Otherwise, if a pipe status field had been set to non-zero
-    before enabling reporting, we would never see an interrupt again.
-    
-    This patch adds i915_enable_pipestat and i915_disable_pipestat to abstract
-    out the steps needed to change the reported interrupts.
-    
-    Signed-off-by: Keith Packard <keithp at keithp.com>
-    Signed-off-by: Eric Anholt <eric at anholt.net>
-
-commit 72d34483fe6f50c57f984637fcd7e37e1265f202
-Author: Keith Packard <keithp at keithp.com>
-Date:   Sat Nov 8 11:44:14 2008 +1000
-
-    drm/i915: Move legacy breadcrumb out of the reserved status page area
-    
-    Addresses in the hardware status page below index 0x20 are reserved for use
-    by the hardware. The legacy breadcrumb was sitting at index 5. Move it to
-    index 0x21, and make sure everyone uses the defined value instead of
-    hard-coded constants.
-    
-    Signed-off-by: Keith Packard <keithp at keithp.com>
-    Signed-off-by: Dave Airlie <airlied at linux.ie>
-    (cherry picked from commit 0baf823a10bd4131f70e9712d1f02de3c247f1df)
-
-commit 491983276c934058e7bea557c1eecf6e58d29cd7
-Author: Dave Airlie <airlied at linux.ie>
-Date:   Tue Nov 11 18:02:12 2008 +1000
-
-    drm/i915: Filter pci devices based on PCI_CLASS_DISPLAY_VGA
-    
-    This fixes hangs on 855-class hardware by avoiding double attachment of the
-    driver due to the stub second head device having the same pci id as the real
-    device.
-    
-    Other DRM drivers probably want this treatment as well, but I'm applying it
-    just to this one for safety. But we should clean up the drm_pciids.h mess
-    now so that each driver has its own pci id list header in its own directory.
-    Lets do that in the next release.
-    
[...34745 lines suppressed...]
++	uint64_t value;
++	uint32_t prop_id;
++	uint32_t connector_id;
++};
++
++struct drm_mode_get_blob {
++	uint32_t blob_id;
++	uint32_t length;
++	uint64_t data;
++};
++
++struct drm_mode_fb_cmd {
++	uint32_t fb_id;
++	uint32_t width, height;
++	uint32_t pitch;
++	uint32_t bpp;
++	uint32_t depth;
++	/* driver specific handle */
++	uint32_t handle;
++};
++
++struct drm_mode_mode_cmd {
++	uint32_t connector_id;
++	struct drm_mode_modeinfo mode;
++};
++
++#define DRM_MODE_CURSOR_BO	(1<<0)
++#define DRM_MODE_CURSOR_MOVE	(1<<1)
++
++/*
++ * depending on the value in flags diffrent members are used.
++ *
++ * CURSOR_BO uses
++ *    crtc
++ *    width
++ *    height
++ *    handle - if 0 turns the cursor of
++ *
++ * CURSOR_MOVE uses
++ *    crtc
++ *    x
++ *    y
++ */
++struct drm_mode_cursor {
++	uint32_t flags;
++	uint32_t crtc_id;
++	int32_t x;
++	int32_t y;
++	uint32_t width;
++	uint32_t height;
++	/* driver specific handle */
++	uint32_t handle;
++};
++
++struct drm_mode_crtc_lut {
++	uint32_t crtc_id;
++	uint32_t gamma_size;
++
++	/* pointers to arrays */
++	uint64_t red;
++	uint64_t green;
++	uint64_t blue;
++};
++
++#endif
+diff --git a/include/drm/drm_sarea.h b/include/drm/drm_sarea.h
+index 4800373..ee5389d 100644
+--- a/include/drm/drm_sarea.h
++++ b/include/drm/drm_sarea.h
+@@ -36,12 +36,12 @@
+ 
+ /* SAREA area needs to be at least a page */
+ #if defined(__alpha__)
+-#define SAREA_MAX                       0x2000
++#define SAREA_MAX                       0x2000U
+ #elif defined(__ia64__)
+-#define SAREA_MAX                       0x10000	/* 64kB */
++#define SAREA_MAX                       0x10000U	/* 64kB */
+ #else
+ /* Intel 830M driver needs at least 8k SAREA */
+-#define SAREA_MAX                       0x2000
++#define SAREA_MAX                       0x2000U
+ #endif
  
- /**
-  * shmem_zero_setup - setup a shared anonymous mapping
-diff --git a/mm/tiny-shmem.c b/mm/tiny-shmem.c
-index 8d7a27a..3e67d57 100644
---- a/mm/tiny-shmem.c
-+++ b/mm/tiny-shmem.c
-@@ -95,6 +95,7 @@ put_dentry:
- put_memory:
- 	return ERR_PTR(error);
- }
-+EXPORT_SYMBOL_GPL(shmem_file_setup);
+ /** Maximum number of drawables in the SAREA */
+diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
+index 152b34d..b3bcf72 100644
+--- a/include/drm/i915_drm.h
++++ b/include/drm/i915_drm.h
+@@ -113,8 +113,31 @@ typedef struct _drm_i915_sarea {
+ 	int pipeB_y;
+ 	int pipeB_w;
+ 	int pipeB_h;
++
++	/* fill out some space for old userspace triple buffer */
++	drm_handle_t unused_handle;
++	uint32_t unused1, unused2, unused3;
++
++	/* buffer object handles for static buffers. May change
++	 * over the lifetime of the client.
++	 */
++	uint32_t front_bo_handle;
++	uint32_t back_bo_handle;
++	uint32_t unused_bo_handle;
++	uint32_t depth_bo_handle;
++
+ } drm_i915_sarea_t;
+ 
++/* due to userspace building against these headers we need some compat here */
++#define planeA_x pipeA_x
++#define planeA_y pipeA_y
++#define planeA_w pipeA_w
++#define planeA_h pipeA_h
++#define planeB_x pipeB_x
++#define planeB_y pipeB_y
++#define planeB_w pipeB_w
++#define planeB_h pipeB_h
++
+ /* Flags for perf_boxes
+  */
+ #define I915_BOX_RING_EMPTY    0x1
+@@ -160,6 +183,7 @@ typedef struct _drm_i915_sarea {
+ #define DRM_I915_GEM_SET_TILING	0x21
+ #define DRM_I915_GEM_GET_TILING	0x22
+ #define DRM_I915_GEM_GET_APERTURE 0x23
++#define DRM_I915_GEM_MMAP_GTT	0x24
  
- /**
-  * shmem_zero_setup - setup a shared anonymous mapping
+ #define DRM_IOCTL_I915_INIT		DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
+ #define DRM_IOCTL_I915_FLUSH		DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
+@@ -177,6 +201,8 @@ typedef struct _drm_i915_sarea {
+ #define DRM_IOCTL_I915_SET_VBLANK_PIPE	DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
+ #define DRM_IOCTL_I915_GET_VBLANK_PIPE	DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
+ #define DRM_IOCTL_I915_VBLANK_SWAP	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
++#define DRM_IOCTL_I915_GEM_INIT		DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
++#define DRM_IOCTL_I915_GEM_EXECBUFFER	DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
+ #define DRM_IOCTL_I915_GEM_PIN		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
+ #define DRM_IOCTL_I915_GEM_UNPIN	DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
+ #define DRM_IOCTL_I915_GEM_BUSY		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
+@@ -187,6 +213,7 @@ typedef struct _drm_i915_sarea {
+ #define DRM_IOCTL_I915_GEM_PREAD	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
+ #define DRM_IOCTL_I915_GEM_PWRITE	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
+ #define DRM_IOCTL_I915_GEM_MMAP		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
++#define DRM_IOCTL_I915_GEM_MMAP_GTT	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt)
+ #define DRM_IOCTL_I915_GEM_SET_DOMAIN	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain)
+ #define DRM_IOCTL_I915_GEM_SW_FINISH	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish)
+ #define DRM_IOCTL_I915_GEM_SET_TILING	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
+@@ -196,7 +223,7 @@ typedef struct _drm_i915_sarea {
+ /* Allow drivers to submit batchbuffers directly to hardware, relying
+  * on the security mechanisms provided by hardware.
+  */
+-typedef struct _drm_i915_batchbuffer {
++typedef struct drm_i915_batchbuffer {
+ 	int start;		/* agp offset */
+ 	int used;		/* nr bytes in use */
+ 	int DR1;		/* hw flags for GFX_OP_DRAWRECT_INFO */
+@@ -382,6 +409,18 @@ struct drm_i915_gem_mmap {
+ 	uint64_t addr_ptr;
+ };
+ 
++struct drm_i915_gem_mmap_gtt {
++	/** Handle for the object being mapped. */
++	uint32_t handle;
++	uint32_t pad;
++	/**
++	 * Fake offset to use for subsequent mmap call
++	 *
++	 * This is a fixed-size type for 32/64 compatibility.
++	 */
++	uint64_t offset;
++};
++
+ struct drm_i915_gem_set_domain {
+ 	/** Handle for the object */
+ 	uint32_t handle;
+diff --git a/include/linux/console.h b/include/linux/console.h
+index 248e6e3..a67a90c 100644
+--- a/include/linux/console.h
++++ b/include/linux/console.h
+@@ -153,4 +153,8 @@ void vcs_remove_sysfs(struct tty_struct *tty);
+ #define VESA_HSYNC_SUSPEND      2
+ #define VESA_POWERDOWN          3
+ 
++#ifdef CONFIG_VGA_CONSOLE
++extern bool vgacon_text_force(void);
++#endif
++
+ #endif /* _LINUX_CONSOLE_H */

git-cpufreq.patch:

Index: git-cpufreq.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/git-cpufreq.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- git-cpufreq.patch	6 Oct 2008 19:55:32 -0000	1.3
+++ git-cpufreq.patch	12 Jan 2009 19:51:28 -0000	1.4
@@ -1,830 +0,0 @@
-diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
-index dd097b8..c24c4a4 100644
---- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
-+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
-@@ -256,7 +256,8 @@ static u32 get_cur_val(const cpumask_t *mask)
-  * Only IA32_APERF/IA32_MPERF ratio is architecturally defined and
-  * no meaning should be associated with absolute values of these MSRs.
-  */
--static unsigned int get_measured_perf(unsigned int cpu)
-+static unsigned int get_measured_perf(struct cpufreq_policy *policy,
-+				      unsigned int cpu)
- {
- 	union {
- 		struct {
-@@ -326,7 +327,7 @@ static unsigned int get_measured_perf(unsigned int cpu)
- 
- #endif
- 
--	retval = per_cpu(drv_data, cpu)->max_freq * perf_percent / 100;
-+	retval = per_cpu(drv_data, policy->cpu)->max_freq * perf_percent / 100;
- 
- 	put_cpu();
- 	set_cpus_allowed_ptr(current, &saved_mask);
-@@ -785,7 +786,11 @@ static int __init acpi_cpufreq_init(void)
- 	if (ret)
- 		return ret;
- 
--	return cpufreq_register_driver(&acpi_cpufreq_driver);
-+	ret = cpufreq_register_driver(&acpi_cpufreq_driver);
-+	if (ret)
-+		free_percpu(acpi_perf_data);
-+
-+	return ret;
- }
- 
- static void __exit acpi_cpufreq_exit(void)
-@@ -795,8 +800,6 @@ static void __exit acpi_cpufreq_exit(void)
- 	cpufreq_unregister_driver(&acpi_cpufreq_driver);
- 
- 	free_percpu(acpi_perf_data);
--
--	return;
- }
- 
- module_param(acpi_pstate_strict, uint, 0644);
-diff --git a/arch/x86/kernel/cpu/cpufreq/elanfreq.c b/arch/x86/kernel/cpu/cpufreq/elanfreq.c
-index e4a4bf8..fe613c9 100644
---- a/arch/x86/kernel/cpu/cpufreq/elanfreq.c
-+++ b/arch/x86/kernel/cpu/cpufreq/elanfreq.c
-@@ -25,8 +25,8 @@
- #include <linux/cpufreq.h>
- 
- #include <asm/msr.h>
--#include <asm/timex.h>
--#include <asm/io.h>
-+#include <linux/timex.h>
-+#include <linux/io.h>
- 
- #define REG_CSCIR 0x22		/* Chip Setup and Control Index Register    */
- #define REG_CSCDR 0x23		/* Chip Setup and Control Data  Register    */
-@@ -82,7 +82,7 @@ static unsigned int elanfreq_get_cpu_frequency(unsigned int cpu)
- 	u8 clockspeed_reg;    /* Clock Speed Register */
- 
- 	local_irq_disable();
--	outb_p(0x80,REG_CSCIR);
-+	outb_p(0x80, REG_CSCIR);
- 	clockspeed_reg = inb_p(REG_CSCDR);
- 	local_irq_enable();
- 
-@@ -98,10 +98,10 @@ static unsigned int elanfreq_get_cpu_frequency(unsigned int cpu)
- 	}
- 
- 	/* 33 MHz is not 32 MHz... */
--	if ((clockspeed_reg & 0xE0)==0xA0)
-+	if ((clockspeed_reg & 0xE0) == 0xA0)
- 		return 33000;
- 
--	return ((1<<((clockspeed_reg & 0xE0) >> 5)) * 1000);
-+	return (1<<((clockspeed_reg & 0xE0) >> 5)) * 1000;
- }
- 
- 
-@@ -117,7 +117,7 @@ static unsigned int elanfreq_get_cpu_frequency(unsigned int cpu)
-  *	There is no return value.
-  */
- 
--static void elanfreq_set_cpu_state (unsigned int state)
-+static void elanfreq_set_cpu_state(unsigned int state)
- {
- 	struct cpufreq_freqs    freqs;
- 
-@@ -144,20 +144,20 @@ static void elanfreq_set_cpu_state (unsigned int state)
- 	 */
- 
- 	local_irq_disable();
--	outb_p(0x40,REG_CSCIR);		/* Disable hyperspeed mode */
--	outb_p(0x00,REG_CSCDR);
-+	outb_p(0x40, REG_CSCIR);		/* Disable hyperspeed mode */
-+	outb_p(0x00, REG_CSCDR);
- 	local_irq_enable();		/* wait till internal pipelines and */
- 	udelay(1000);			/* buffers have cleaned up          */
- 
- 	local_irq_disable();
- 
- 	/* now, set the CPU clock speed register (0x80) */
--	outb_p(0x80,REG_CSCIR);
--	outb_p(elan_multiplier[state].val80h,REG_CSCDR);
-+	outb_p(0x80, REG_CSCIR);
-+	outb_p(elan_multiplier[state].val80h, REG_CSCDR);
- 
- 	/* now, the hyperspeed bit in PMU Force Mode Register (0x40) */
--	outb_p(0x40,REG_CSCIR);
--	outb_p(elan_multiplier[state].val40h,REG_CSCDR);
-+	outb_p(0x40, REG_CSCIR);
-+	outb_p(elan_multiplier[state].val40h, REG_CSCDR);
- 	udelay(10000);
- 	local_irq_enable();
- 
-@@ -173,12 +173,12 @@ static void elanfreq_set_cpu_state (unsigned int state)
-  *	for the hardware supported by the driver.
-  */
- 
--static int elanfreq_verify (struct cpufreq_policy *policy)
-+static int elanfreq_verify(struct cpufreq_policy *policy)
- {
- 	return cpufreq_frequency_table_verify(policy, &elanfreq_table[0]);
- }
- 
--static int elanfreq_target (struct cpufreq_policy *policy,
-+static int elanfreq_target(struct cpufreq_policy *policy,
- 			    unsigned int target_freq,
- 			    unsigned int relation)
- {
-@@ -205,7 +205,7 @@ static int elanfreq_cpu_init(struct cpufreq_policy *policy)
- 
- 	/* capability check */
- 	if ((c->x86_vendor != X86_VENDOR_AMD) ||
--	    (c->x86 != 4) || (c->x86_model!=10))
-+	    (c->x86 != 4) || (c->x86_model != 10))
- 		return -ENODEV;
- 
- 	/* max freq */
-@@ -213,7 +213,7 @@ static int elanfreq_cpu_init(struct cpufreq_policy *policy)
- 		max_freq = elanfreq_get_cpu_frequency(0);
- 
- 	/* table init */
--	for (i=0; (elanfreq_table[i].frequency != CPUFREQ_TABLE_END); i++) {
-+	for (i = 0; (elanfreq_table[i].frequency != CPUFREQ_TABLE_END); i++) {
- 		if (elanfreq_table[i].frequency > max_freq)
- 			elanfreq_table[i].frequency = CPUFREQ_ENTRY_INVALID;
- 	}
-@@ -224,7 +224,7 @@ static int elanfreq_cpu_init(struct cpufreq_policy *policy)
- 
- 	result = cpufreq_frequency_table_cpuinfo(policy, elanfreq_table);
- 	if (result)
--		return (result);
-+		return result;
- 
- 	cpufreq_frequency_table_get_attr(elanfreq_table, policy->cpu);
- 	return 0;
-@@ -260,7 +260,7 @@ __setup("elanfreq=", elanfreq_setup);
- #endif
- 
- 
--static struct freq_attr* elanfreq_attr[] = {
-+static struct freq_attr *elanfreq_attr[] = {
- 	&cpufreq_freq_attr_scaling_available_freqs,
- 	NULL,
- };
-@@ -284,9 +284,9 @@ static int __init elanfreq_init(void)
- 
- 	/* Test if we have the right hardware */
- 	if ((c->x86_vendor != X86_VENDOR_AMD) ||
--		(c->x86 != 4) || (c->x86_model!=10)) {
-+		(c->x86 != 4) || (c->x86_model != 10)) {
- 		printk(KERN_INFO "elanfreq: error: no Elan processor found!\n");
--                return -ENODEV;
-+		return -ENODEV;
- 	}
- 	return cpufreq_register_driver(&elanfreq_driver);
- }
-@@ -298,7 +298,7 @@ static void __exit elanfreq_exit(void)
- }
- 
- 
--module_param (max_freq, int, 0444);
-+module_param(max_freq, int, 0444);
- 
- MODULE_LICENSE("GPL");
- MODULE_AUTHOR("Robert Schwebel <r.schwebel at pengutronix.de>, Sven Geggus <sven at geggus.net>");
-diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k6.c b/arch/x86/kernel/cpu/cpufreq/powernow-k6.c
-index eb9b62b..b5ced80 100644
---- a/arch/x86/kernel/cpu/cpufreq/powernow-k6.c
-+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k6.c
-@@ -15,12 +15,11 @@
- #include <linux/slab.h>
- 
- #include <asm/msr.h>
--#include <asm/timex.h>
--#include <asm/io.h>
-+#include <linux/timex.h>
-+#include <linux/io.h>
- 
--
--#define POWERNOW_IOPORT 0xfff0         /* it doesn't matter where, as long
--					  as it is unused */
-+#define POWERNOW_IOPORT 0xfff0          /* it doesn't matter where, as long
-+					   as it is unused */
- 
- static unsigned int                     busfreq;   /* FSB, in 10 kHz */
- static unsigned int                     max_multiplier;
-@@ -53,7 +52,7 @@ static int powernow_k6_get_cpu_multiplier(void)
- 
- 	msrval = POWERNOW_IOPORT + 0x1;
- 	wrmsr(MSR_K6_EPMR, msrval, 0); /* enable the PowerNow port */
--	invalue=inl(POWERNOW_IOPORT + 0x8);
-+	invalue = inl(POWERNOW_IOPORT + 0x8);
- 	msrval = POWERNOW_IOPORT + 0x0;
- 	wrmsr(MSR_K6_EPMR, msrval, 0); /* disable it again */
- 
-@@ -67,9 +66,9 @@ static int powernow_k6_get_cpu_multiplier(void)
-  *
-  *   Tries to change the PowerNow! multiplier
-  */
--static void powernow_k6_set_state (unsigned int best_i)
-+static void powernow_k6_set_state(unsigned int best_i)
- {
--	unsigned long           outvalue=0, invalue=0;
-+	unsigned long           outvalue = 0, invalue = 0;
- 	unsigned long           msrval;
- 	struct cpufreq_freqs    freqs;
- 
-@@ -90,10 +89,10 @@ static void powernow_k6_set_state (unsigned int best_i)
- 
- 	msrval = POWERNOW_IOPORT + 0x1;
- 	wrmsr(MSR_K6_EPMR, msrval, 0); /* enable the PowerNow port */
--	invalue=inl(POWERNOW_IOPORT + 0x8);
-+	invalue = inl(POWERNOW_IOPORT + 0x8);
- 	invalue = invalue & 0xf;
- 	outvalue = outvalue | invalue;
--	outl(outvalue ,(POWERNOW_IOPORT + 0x8));
-+	outl(outvalue , (POWERNOW_IOPORT + 0x8));
- 	msrval = POWERNOW_IOPORT + 0x0;
- 	wrmsr(MSR_K6_EPMR, msrval, 0); /* disable it again */
- 
-@@ -124,7 +123,7 @@ static int powernow_k6_verify(struct cpufreq_policy *policy)
-  *
-  * sets a new CPUFreq policy
-  */
--static int powernow_k6_target (struct cpufreq_policy *policy,
-+static int powernow_k6_target(struct cpufreq_policy *policy,
- 			       unsigned int target_freq,
- 			       unsigned int relation)
- {
-@@ -152,7 +151,7 @@ static int powernow_k6_cpu_init(struct cpufreq_policy *policy)
- 	busfreq = cpu_khz / max_multiplier;
- 
- 	/* table init */
--	for (i=0; (clock_ratio[i].frequency != CPUFREQ_TABLE_END); i++) {
-+	for (i = 0; (clock_ratio[i].frequency != CPUFREQ_TABLE_END); i++) {
- 		if (clock_ratio[i].index > max_multiplier)
- 			clock_ratio[i].frequency = CPUFREQ_ENTRY_INVALID;
- 		else
-@@ -165,7 +164,7 @@ static int powernow_k6_cpu_init(struct cpufreq_policy *policy)
- 
- 	result = cpufreq_frequency_table_cpuinfo(policy, clock_ratio);
- 	if (result)
--		return (result);
-+		return result;
- 
- 	cpufreq_frequency_table_get_attr(clock_ratio, policy->cpu);
- 
-@@ -176,8 +175,8 @@ static int powernow_k6_cpu_init(struct cpufreq_policy *policy)
- static int powernow_k6_cpu_exit(struct cpufreq_policy *policy)
- {
- 	unsigned int i;
--	for (i=0; i<8; i++) {
--		if (i==max_multiplier)
-+	for (i = 0; i < 8; i++) {
-+		if (i == max_multiplier)
- 			powernow_k6_set_state(i);
- 	}
- 	cpufreq_frequency_table_put_attr(policy->cpu);
-@@ -189,7 +188,7 @@ static unsigned int powernow_k6_get(unsigned int cpu)
- 	return busfreq * powernow_k6_get_cpu_multiplier();
- }
- 
--static struct freq_attr* powernow_k6_attr[] = {
-+static struct freq_attr *powernow_k6_attr[] = {
- 	&cpufreq_freq_attr_scaling_available_freqs,
- 	NULL,
- };
-@@ -227,7 +226,7 @@ static int __init powernow_k6_init(void)
- 	}
- 
- 	if (cpufreq_register_driver(&powernow_k6_driver)) {
--		release_region (POWERNOW_IOPORT, 16);
-+		release_region(POWERNOW_IOPORT, 16);
- 		return -EINVAL;
- 	}
- 
-@@ -243,13 +242,13 @@ static int __init powernow_k6_init(void)
- static void __exit powernow_k6_exit(void)
- {
- 	cpufreq_unregister_driver(&powernow_k6_driver);
--	release_region (POWERNOW_IOPORT, 16);
-+	release_region(POWERNOW_IOPORT, 16);
- }
- 
- 
--MODULE_AUTHOR ("Arjan van de Ven <arjanv at redhat.com>, Dave Jones <davej at codemonkey.org.uk>, Dominik Brodowski <linux at brodo.de>");
--MODULE_DESCRIPTION ("PowerNow! driver for AMD K6-2+ / K6-3+ processors.");
--MODULE_LICENSE ("GPL");
-+MODULE_AUTHOR("Arjan van de Ven <arjanv at redhat.com>, Dave Jones <davej at codemonkey.org.uk>, Dominik Brodowski <linux at brodo.de>");
-+MODULE_DESCRIPTION("PowerNow! driver for AMD K6-2+ / K6-3+ processors.");
-+MODULE_LICENSE("GPL");
- 
- module_init(powernow_k6_init);
- module_exit(powernow_k6_exit);
-diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
-index 8a67f16..31d6f53 100644
---- a/drivers/cpufreq/cpufreq.c
-+++ b/drivers/cpufreq/cpufreq.c
-@@ -1467,25 +1467,27 @@ int cpufreq_driver_target(struct cpufreq_policy *policy,
- 			  unsigned int target_freq,
- 			  unsigned int relation)
- {
--	int ret;
-+	int ret = -EINVAL;
- 
- 	policy = cpufreq_cpu_get(policy->cpu);
- 	if (!policy)
--		return -EINVAL;
-+		goto no_policy;
- 
- 	if (unlikely(lock_policy_rwsem_write(policy->cpu)))
--		return -EINVAL;
-+		goto fail;
- 
- 	ret = __cpufreq_driver_target(policy, target_freq, relation);
- 
- 	unlock_policy_rwsem_write(policy->cpu);
- 
-+fail:
- 	cpufreq_cpu_put(policy);
-+no_policy:
- 	return ret;
- }
- EXPORT_SYMBOL_GPL(cpufreq_driver_target);
- 
--int __cpufreq_driver_getavg(struct cpufreq_policy *policy)
-+int __cpufreq_driver_getavg(struct cpufreq_policy *policy, unsigned int cpu)
- {
- 	int ret = 0;
- 
-@@ -1493,8 +1495,8 @@ int __cpufreq_driver_getavg(struct cpufreq_policy *policy)
- 	if (!policy)
- 		return -EINVAL;
- 
--	if (cpu_online(policy->cpu) && cpufreq_driver->getavg)
--		ret = cpufreq_driver->getavg(policy->cpu);
-+	if (cpu_online(cpu) && cpufreq_driver->getavg)
-+		ret = cpufreq_driver->getavg(policy, cpu);
- 
- 	cpufreq_cpu_put(policy);
- 	return ret;
-@@ -1717,13 +1719,17 @@ int cpufreq_update_policy(unsigned int cpu)
- {
- 	struct cpufreq_policy *data = cpufreq_cpu_get(cpu);
- 	struct cpufreq_policy policy;
--	int ret = 0;
-+	int ret;
- 
--	if (!data)
--		return -ENODEV;
-+	if (!data) {
-+		ret = -ENODEV;
-+		goto no_policy;
-+	}
- 
--	if (unlikely(lock_policy_rwsem_write(cpu)))
--		return -EINVAL;
-+	if (unlikely(lock_policy_rwsem_write(cpu))) {
-+		ret = -EINVAL;
-+		goto fail;
-+	}
- 
- 	dprintk("updating policy for CPU %u\n", cpu);
- 	memcpy(&policy, data, sizeof(struct cpufreq_policy));
-@@ -1750,7 +1756,9 @@ int cpufreq_update_policy(unsigned int cpu)
- 
- 	unlock_policy_rwsem_write(cpu);
- 
-+fail:
- 	cpufreq_cpu_put(data);
-+no_policy:
- 	return ret;
- }
- EXPORT_SYMBOL(cpufreq_update_policy);
-diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
-index ac0bbf2..e265783 100644
---- a/drivers/cpufreq/cpufreq_conservative.c
-+++ b/drivers/cpufreq/cpufreq_conservative.c
-@@ -460,6 +460,7 @@ static void do_dbs_timer(struct work_struct *work)
- 
- static inline void dbs_timer_init(void)
- {
-+	init_timer_deferrable(&dbs_work.timer);
- 	schedule_delayed_work(&dbs_work,
- 			usecs_to_jiffies(dbs_tuners_ins.sampling_rate));
- 	return;
-@@ -575,13 +576,15 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
- 	return 0;
- }
- 
-+#ifndef CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
-+static
-+#endif
- struct cpufreq_governor cpufreq_gov_conservative = {
- 	.name			= "conservative",
- 	.governor		= cpufreq_governor_dbs,
- 	.max_transition_latency	= TRANSITION_LATENCY_LIMIT,
- 	.owner			= THIS_MODULE,
- };
--EXPORT_SYMBOL(cpufreq_gov_conservative);
- 
- static int __init cpufreq_gov_dbs_init(void)
- {
-diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
-index 33855cb..2ab3c12 100644
---- a/drivers/cpufreq/cpufreq_ondemand.c
-+++ b/drivers/cpufreq/cpufreq_ondemand.c
-@@ -18,13 +18,19 @@
- #include <linux/jiffies.h>
- #include <linux/kernel_stat.h>
- #include <linux/mutex.h>
-+#include <linux/hrtimer.h>
-+#include <linux/tick.h>
-+#include <linux/ktime.h>
- 
- /*
-  * dbs is used in this file as a shortform for demandbased switching
-  * It helps to keep variable names smaller, simpler
-  */
- 
-+#define DEF_FREQUENCY_DOWN_DIFFERENTIAL		(10)
- #define DEF_FREQUENCY_UP_THRESHOLD		(80)
-+#define MICRO_FREQUENCY_DOWN_DIFFERENTIAL	(3)
-+#define MICRO_FREQUENCY_UP_THRESHOLD		(95)
- #define MIN_FREQUENCY_UP_THRESHOLD		(11)
- #define MAX_FREQUENCY_UP_THRESHOLD		(100)
- 
-@@ -57,6 +63,7 @@ enum {DBS_NORMAL_SAMPLE, DBS_SUB_SAMPLE};
- struct cpu_dbs_info_s {
- 	cputime64_t prev_cpu_idle;
- 	cputime64_t prev_cpu_wall;
-+	cputime64_t prev_cpu_nice;
- 	struct cpufreq_policy *cur_policy;
-  	struct delayed_work work;
- 	struct cpufreq_frequency_table *freq_table;
-@@ -86,21 +93,24 @@ static struct workqueue_struct	*kondemand_wq;
- static struct dbs_tuners {
- 	unsigned int sampling_rate;
- 	unsigned int up_threshold;
-+	unsigned int down_differential;
- 	unsigned int ignore_nice;
- 	unsigned int powersave_bias;
- } dbs_tuners_ins = {
- 	.up_threshold = DEF_FREQUENCY_UP_THRESHOLD,
-+	.down_differential = DEF_FREQUENCY_DOWN_DIFFERENTIAL,
- 	.ignore_nice = 0,
- 	.powersave_bias = 0,
- };
- 
--static inline cputime64_t get_cpu_idle_time(unsigned int cpu)
-+static inline cputime64_t get_cpu_idle_time_jiffy(unsigned int cpu,
-+							cputime64_t *wall)
- {
- 	cputime64_t idle_time;
--	cputime64_t cur_jiffies;
-+	cputime64_t cur_wall_time;
- 	cputime64_t busy_time;
- 
--	cur_jiffies = jiffies64_to_cputime64(get_jiffies_64());
-+	cur_wall_time = jiffies64_to_cputime64(get_jiffies_64());
- 	busy_time = cputime64_add(kstat_cpu(cpu).cpustat.user,
- 			kstat_cpu(cpu).cpustat.system);
- 
-@@ -113,7 +123,37 @@ static inline cputime64_t get_cpu_idle_time(unsigned int cpu)
- 				kstat_cpu(cpu).cpustat.nice);
- 	}
- 
--	idle_time = cputime64_sub(cur_jiffies, busy_time);
-+	idle_time = cputime64_sub(cur_wall_time, busy_time);
-+	if (wall)
-+		*wall = cur_wall_time;
-+
-+	return idle_time;
-+}
-+
-+static inline cputime64_t get_cpu_idle_time(unsigned int cpu, cputime64_t *wall)
-+{
-+	u64 idle_time = get_cpu_idle_time_us(cpu, wall);
-+
-+	if (idle_time == -1ULL)
-+		return get_cpu_idle_time_jiffy(cpu, wall);
-+
-+	if (dbs_tuners_ins.ignore_nice) {
-+		cputime64_t cur_nice;
-+		unsigned long cur_nice_jiffies;
-+		struct cpu_dbs_info_s *dbs_info;
-+
-+		dbs_info = &per_cpu(cpu_dbs_info, cpu);
-+		cur_nice = cputime64_sub(kstat_cpu(cpu).cpustat.nice,
-+					 dbs_info->prev_cpu_nice);
-+		/*
-+		 * Assumption: nice time between sampling periods will be
-+		 * less than 2^32 jiffies for 32 bit sys
-+		 */
-+		cur_nice_jiffies = (unsigned long)
-+					cputime64_to_jiffies64(cur_nice);
-+		dbs_info->prev_cpu_nice = kstat_cpu(cpu).cpustat.nice;
-+		return idle_time + jiffies_to_usecs(cur_nice_jiffies);
-+	}
- 	return idle_time;
- }
- 
-@@ -277,8 +317,8 @@ static ssize_t store_ignore_nice_load(struct cpufreq_policy *policy,
- 	for_each_online_cpu(j) {
- 		struct cpu_dbs_info_s *dbs_info;
- 		dbs_info = &per_cpu(cpu_dbs_info, j);
--		dbs_info->prev_cpu_idle = get_cpu_idle_time(j);
--		dbs_info->prev_cpu_wall = get_jiffies_64();
-+		dbs_info->prev_cpu_idle = get_cpu_idle_time(j,
-+						&dbs_info->prev_cpu_wall);
- 	}
- 	mutex_unlock(&dbs_mutex);
- 
-@@ -334,9 +374,7 @@ static struct attribute_group dbs_attr_group = {
- 
- static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
- {
--	unsigned int idle_ticks, total_ticks;
--	unsigned int load = 0;
--	cputime64_t cur_jiffies;
-+	unsigned int max_load_freq;
- 
- 	struct cpufreq_policy *policy;
- 	unsigned int j;
-@@ -346,13 +384,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
- 
- 	this_dbs_info->freq_lo = 0;
- 	policy = this_dbs_info->cur_policy;
--	cur_jiffies = jiffies64_to_cputime64(get_jiffies_64());
--	total_ticks = (unsigned int) cputime64_sub(cur_jiffies,
--			this_dbs_info->prev_cpu_wall);
--	this_dbs_info->prev_cpu_wall = get_jiffies_64();
- 
--	if (!total_ticks)
--		return;
- 	/*
- 	 * Every sampling_rate, we check, if current idle time is less
- 	 * than 20% (default), then we try to increase frequency
-@@ -365,27 +397,44 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
- 	 * 5% (default) of current frequency
- 	 */
- 
--	/* Get Idle Time */
--	idle_ticks = UINT_MAX;
-+	/* Get Absolute Load - in terms of freq */
-+	max_load_freq = 0;
-+
- 	for_each_cpu_mask_nr(j, policy->cpus) {
--		cputime64_t total_idle_ticks;
--		unsigned int tmp_idle_ticks;
- 		struct cpu_dbs_info_s *j_dbs_info;
-+		cputime64_t cur_wall_time, cur_idle_time;
-+		unsigned int idle_time, wall_time;
-+		unsigned int load, load_freq;
-+		int freq_avg;
- 
- 		j_dbs_info = &per_cpu(cpu_dbs_info, j);
--		total_idle_ticks = get_cpu_idle_time(j);
--		tmp_idle_ticks = (unsigned int) cputime64_sub(total_idle_ticks,
-+
-+		cur_idle_time = get_cpu_idle_time(j, &cur_wall_time);
-+
-+		wall_time = (unsigned int) cputime64_sub(cur_wall_time,
-+				j_dbs_info->prev_cpu_wall);
-+		j_dbs_info->prev_cpu_wall = cur_wall_time;
-+
-+		idle_time = (unsigned int) cputime64_sub(cur_idle_time,
- 				j_dbs_info->prev_cpu_idle);
--		j_dbs_info->prev_cpu_idle = total_idle_ticks;
-+		j_dbs_info->prev_cpu_idle = cur_idle_time;
-+
-+		if (unlikely(!wall_time || wall_time < idle_time))
-+			continue;
-+
-+		load = 100 * (wall_time - idle_time) / wall_time;
-+
-+		freq_avg = __cpufreq_driver_getavg(policy, j);
-+		if (freq_avg <= 0)
-+			freq_avg = policy->cur;
- 
--		if (tmp_idle_ticks < idle_ticks)
--			idle_ticks = tmp_idle_ticks;
-+		load_freq = load * freq_avg;
-+		if (load_freq > max_load_freq)
-+			max_load_freq = load_freq;
- 	}
--	if (likely(total_ticks > idle_ticks))
--		load = (100 * (total_ticks - idle_ticks)) / total_ticks;
- 
- 	/* Check for frequency increase */
--	if (load > dbs_tuners_ins.up_threshold) {
-+	if (max_load_freq > dbs_tuners_ins.up_threshold * policy->cur) {
- 		/* if we are already at full speed then break out early */
- 		if (!dbs_tuners_ins.powersave_bias) {
- 			if (policy->cur == policy->max)
-@@ -412,15 +461,13 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
- 	 * can support the current CPU usage without triggering the up
- 	 * policy. To be safe, we focus 10 points under the threshold.
- 	 */
--	if (load < (dbs_tuners_ins.up_threshold - 10)) {
--		unsigned int freq_next, freq_cur;
--
--		freq_cur = __cpufreq_driver_getavg(policy);
--		if (!freq_cur)
--			freq_cur = policy->cur;
--
--		freq_next = (freq_cur * load) /
--			(dbs_tuners_ins.up_threshold - 10);
-+	if (max_load_freq <
-+	    (dbs_tuners_ins.up_threshold - dbs_tuners_ins.down_differential) *
-+	     policy->cur) {
-+		unsigned int freq_next;
-+		freq_next = max_load_freq /
-+				(dbs_tuners_ins.up_threshold -
-+				 dbs_tuners_ins.down_differential);
- 
- 		if (!dbs_tuners_ins.powersave_bias) {
- 			__cpufreq_driver_target(policy, freq_next,
-@@ -526,8 +573,8 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
- 			j_dbs_info = &per_cpu(cpu_dbs_info, j);
- 			j_dbs_info->cur_policy = policy;
- 
--			j_dbs_info->prev_cpu_idle = get_cpu_idle_time(j);
--			j_dbs_info->prev_cpu_wall = get_jiffies_64();
-+			j_dbs_info->prev_cpu_idle = get_cpu_idle_time(j,
-+						&j_dbs_info->prev_cpu_wall);
- 		}
- 		this_dbs_info->cpu = cpu;
- 		/*
-@@ -579,22 +626,42 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
- 	return 0;
- }
- 
-+#ifndef CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND
-+static
-+#endif
- struct cpufreq_governor cpufreq_gov_ondemand = {
- 	.name			= "ondemand",
- 	.governor		= cpufreq_governor_dbs,
- 	.max_transition_latency = TRANSITION_LATENCY_LIMIT,
- 	.owner			= THIS_MODULE,
- };
--EXPORT_SYMBOL(cpufreq_gov_ondemand);
- 
- static int __init cpufreq_gov_dbs_init(void)
- {
-+	int err;
-+	cputime64_t wall;
-+	u64 idle_time;
-+	int cpu = get_cpu();
-+
-+	idle_time = get_cpu_idle_time_us(cpu, &wall);
-+	put_cpu();
-+	if (idle_time != -1ULL) {
-+		/* Idle micro accounting is supported. Use finer thresholds */
-+		dbs_tuners_ins.up_threshold = MICRO_FREQUENCY_UP_THRESHOLD;
-+		dbs_tuners_ins.down_differential =
-+					MICRO_FREQUENCY_DOWN_DIFFERENTIAL;
-+	}
-+
- 	kondemand_wq = create_workqueue("kondemand");
- 	if (!kondemand_wq) {
- 		printk(KERN_ERR "Creation of kondemand failed\n");
- 		return -EFAULT;
- 	}
--	return cpufreq_register_governor(&cpufreq_gov_ondemand);
-+	err = cpufreq_register_governor(&cpufreq_gov_ondemand);
-+	if (err)
-+		destroy_workqueue(kondemand_wq);
-+
-+	return err;
- }
- 
- static void __exit cpufreq_gov_dbs_exit(void)
-diff --git a/drivers/cpufreq/cpufreq_performance.c b/drivers/cpufreq/cpufreq_performance.c
-index e8e1451..7e2e515 100644
---- a/drivers/cpufreq/cpufreq_performance.c
-+++ b/drivers/cpufreq/cpufreq_performance.c
-@@ -36,12 +36,14 @@ static int cpufreq_governor_performance(struct cpufreq_policy *policy,
- 	return 0;
- }
- 
-+#ifdef CONFIG_CPU_FREQ_GOV_PERFORMANCE_MODULE
-+static
-+#endif
- struct cpufreq_governor cpufreq_gov_performance = {
- 	.name		= "performance",
- 	.governor	= cpufreq_governor_performance,
- 	.owner		= THIS_MODULE,
- };
--EXPORT_SYMBOL(cpufreq_gov_performance);
- 
- 
- static int __init cpufreq_gov_performance_init(void)
-diff --git a/drivers/cpufreq/cpufreq_powersave.c b/drivers/cpufreq/cpufreq_powersave.c
-index 88d2f44..e6db5fa 100644
---- a/drivers/cpufreq/cpufreq_powersave.c
-+++ b/drivers/cpufreq/cpufreq_powersave.c
-@@ -35,12 +35,14 @@ static int cpufreq_governor_powersave(struct cpufreq_policy *policy,
- 	return 0;
- }
- 
-+#ifndef CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE
-+static
-+#endif
- struct cpufreq_governor cpufreq_gov_powersave = {
- 	.name		= "powersave",
- 	.governor	= cpufreq_governor_powersave,
- 	.owner		= THIS_MODULE,
- };
--EXPORT_SYMBOL(cpufreq_gov_powersave);
- 
- static int __init cpufreq_gov_powersave_init(void)
- {
-diff --git a/drivers/cpufreq/cpufreq_userspace.c b/drivers/cpufreq/cpufreq_userspace.c
-index 32244aa..1442bba 100644
---- a/drivers/cpufreq/cpufreq_userspace.c
-+++ b/drivers/cpufreq/cpufreq_userspace.c
-@@ -187,6 +187,9 @@ static int cpufreq_governor_userspace(struct cpufreq_policy *policy,
- }
- 
- 
-+#ifndef CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE
-+static
-+#endif
- struct cpufreq_governor cpufreq_gov_userspace = {
- 	.name		= "userspace",
- 	.governor	= cpufreq_governor_userspace,
-@@ -194,7 +197,6 @@ struct cpufreq_governor cpufreq_gov_userspace = {
- 	.show_setspeed	= show_speed,
- 	.owner		= THIS_MODULE,
- };
--EXPORT_SYMBOL(cpufreq_gov_userspace);
- 
- static int __init cpufreq_gov_userspace_init(void)
- {
-diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
-index 6fd5668..1ee608f 100644
---- a/include/linux/cpufreq.h
-+++ b/include/linux/cpufreq.h
-@@ -187,7 +187,8 @@ extern int __cpufreq_driver_target(struct cpufreq_policy *policy,
- 				   unsigned int relation);
- 
- 
--extern int __cpufreq_driver_getavg(struct cpufreq_policy *policy);
-+extern int __cpufreq_driver_getavg(struct cpufreq_policy *policy,
-+				   unsigned int cpu);
- 
- int cpufreq_register_governor(struct cpufreq_governor *governor);
- void cpufreq_unregister_governor(struct cpufreq_governor *governor);
-@@ -226,7 +227,9 @@ struct cpufreq_driver {
- 	unsigned int	(*get)	(unsigned int cpu);
- 
- 	/* optional */
--	unsigned int (*getavg)	(unsigned int cpu);
-+	unsigned int (*getavg)	(struct cpufreq_policy *policy,
-+				 unsigned int cpu);
-+
- 	int	(*exit)		(struct cpufreq_policy *policy);
- 	int	(*suspend)	(struct cpufreq_policy *policy, pm_message_t pmsg);
- 	int	(*resume)	(struct cpufreq_policy *policy);
-diff --git a/include/linux/tick.h b/include/linux/tick.h
-index 8cf8cfe..98921a3 100644
---- a/include/linux/tick.h
-+++ b/include/linux/tick.h
-@@ -126,7 +126,7 @@ static inline ktime_t tick_nohz_get_sleep_length(void)
- 	return len;
- }
- static inline void tick_nohz_stop_idle(int cpu) { }
--static inline u64 get_cpu_idle_time_us(int cpu, u64 *unused) { return 0; }
-+static inline u64 get_cpu_idle_time_us(int cpu, u64 *unused) { return -1; }
- # endif /* !NO_HZ */
- 
- #endif
-diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
-index cb02324..a4d2193 100644
---- a/kernel/time/tick-sched.c
-+++ b/kernel/time/tick-sched.c
-@@ -20,6 +20,7 @@
- #include <linux/profile.h>
- #include <linux/sched.h>
- #include <linux/tick.h>
-+#include <linux/module.h>
- 
- #include <asm/irq_regs.h>
- 
-@@ -190,9 +191,17 @@ u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time)
- {
- 	struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
- 
--	*last_update_time = ktime_to_us(ts->idle_lastupdate);
-+	if (!tick_nohz_enabled)
-+		return -1;
-+
-+	if (ts->idle_active)
-+		*last_update_time = ktime_to_us(ts->idle_lastupdate);
-+	else
-+		*last_update_time = ktime_to_us(ktime_get());
-+
- 	return ktime_to_us(ts->idle_sleeptime);
- }
-+EXPORT_SYMBOL_GPL(get_cpu_idle_time_us);
- 
- /**
-  * tick_nohz_stop_sched_tick - stop the idle tick from the idle task


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1206
retrieving revision 1.1207
diff -u -r1.1206 -r1.1207
--- kernel.spec	12 Jan 2009 03:29:30 -0000	1.1206
+++ kernel.spec	12 Jan 2009 19:51:28 -0000	1.1207
@@ -20,7 +20,7 @@
 # kernel spec when the kernel is rebased, so fedora_build automatically
 # works out to the offset from the rebase, so it doesn't get too ginormous.
 #
-%define fedora_cvs_origin   1036
+%define fedora_cvs_origin   1180
 %define fedora_build_string %(R="$Revision$"; R="${R%% \$}"; R="${R#: 1.}"; echo $R)
 %define fedora_build_origin %(R=%{fedora_build_string}; R="${R%%%%.*}"; echo $R)
 %define fedora_build_prefix %(expr %{fedora_build_origin} - %{fedora_cvs_origin})
@@ -30,13 +30,13 @@
 # base_sublevel is the kernel version we're starting with and patching
 # on top of -- for example, 2.6.22-rc7-git1 starts with a 2.6.21 base,
 # which yields a base_sublevel of 21.
-%define base_sublevel 27
+%define base_sublevel 28
 
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 
 # Do we have a -stable update to apply?
-%define stable_update 10
+%define stable_update 0
 # Is it a -stable RC?
 %define stable_rc 0
 # Set rpm version accordingly
@@ -119,7 +119,7 @@
 # Set debugbuildsenabled to 1 for production (build separate debug kernels)
 #  and 0 for rawhide (all kernels are debug kernels).
 # See also 'make debug' and 'make release'.
-%define debugbuildsenabled 1
+%define debugbuildsenabled 0
 
 # Want to build a vanilla kernel build without any non-upstream patches?
 # (well, almost none, we need nonintconfig for build purposes). Default to 0 (off).
@@ -277,10 +277,10 @@
 # Per-arch tweaks
 
 %ifarch %{all_x86}
+%define asmarch x86
+%define hdrarch i386
 %define all_arch_configs kernel-%{version}-i?86*.config
 %define image_install_path boot
-%define hdrarch i386
-%define asmarch x86
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
@@ -292,20 +292,22 @@
 %endif
 
 %ifarch ppc64
+%define asmarch powerpc
+%define hdrarch powerpc
 %define all_arch_configs kernel-%{version}-ppc64*.config
 %define image_install_path boot
 %define make_target vmlinux
 %define kernel_image vmlinux
 %define kernel_image_elf 1
-%define hdrarch powerpc
 %endif
 
 %ifarch s390x
+%define asmarch s390
+%define hdrarch s390
 %define all_arch_configs kernel-%{version}-s390x.config
 %define image_install_path boot
 %define make_target image
 %define kernel_image arch/s390/boot/image
-%define hdrarch s390
 %endif
 
 %ifarch sparc
@@ -313,6 +315,7 @@
 %endif
 
 %ifarch sparc64
+%define asmarch sparc
 %define all_arch_configs kernel-%{version}-sparc64*.config
 %define make_target image
 %define kernel_image arch/sparc64/boot/image
@@ -320,12 +323,13 @@
 %endif
 
 %ifarch ppc
+%define asmarch powerpc
+%define hdrarch powerpc
 %define all_arch_configs kernel-%{version}-ppc{-,.}*config
 %define image_install_path boot
 %define make_target vmlinux
 %define kernel_image vmlinux
 %define kernel_image_elf 1
-%define hdrarch powerpc
 %endif
 
 %ifarch ia64
@@ -422,7 +426,7 @@
 # Packages that need to be installed before the kernel is, because the %post
 # scripts use them.
 #
-%define kernel_prereq  fileutils, module-init-tools, initscripts >= 8.11.1-1, mkinitrd >= 6.0.61-1, kernel-firmware >= %{rpmversion}-%{pkg_release}
+%define kernel_prereq  fileutils, module-init-tools, initscripts >= 8.11.1-1, mkinitrd >= 6.0.61-1, kernel-firmware >= %{rpmversion}-%{pkg_release}, /sbin/new-kernel-pkg
 
 #
 # This macro does requires, provides, conflicts, obsoletes for a kernel package.
@@ -583,18 +587,11 @@
 Patch20: linux-2.6-hotfixes.patch
 
 Patch21: linux-2.6-utrace.patch
-Patch22: linux-2.6-x86-tracehook.patch
-Patch23: linux-2.6.27-x86-tracehook-syscall-arg-order.patch
 
 Patch30: linux-2.6-x86-mtrr-kill-bogus-warning.patch
-Patch34: linux-2.6-x86-pci-amd-config-space.patch
 
 Patch41: linux-2.6-sysrq-c.patch
 
-Patch60: linux-2.6-sched-fine-tune-SD_MC_INIT.patch
-Patch61: linux-2.6-sched-fine-tune-SD_SIBLING_INIT.patch
-Patch62: linux-2.6-sched-wakeup-preempt-when-small-overlap.patch
-
 Patch140: linux-2.6-ps3-ehci-iso.patch
 Patch141: linux-2.6-ps3-storage-alias.patch
 Patch142: linux-2.6-ps3-legacy-bootloader-hack.patch
@@ -604,70 +601,40 @@
 Patch149: linux-2.6-efika-not-chrp.patch
 
 Patch160: linux-2.6-execshield.patch
-Patch161: linux-2.6-xen-execshield-add-xen-specific-load_user_cs_desc.patch
-Patch163: linux-2.6-xen-execshield-only-define-load_user_cs_desc-on-32-bit.patch
 Patch250: linux-2.6-debug-sizeof-structs.patch
 Patch260: linux-2.6-debug-nmi-timeout.patch
 Patch270: linux-2.6-debug-taint-vm.patch
 Patch280: linux-2.6-debug-spinlock-taint.patch
 Patch340: linux-2.6-debug-vm-would-have-oomkilled.patch
-Patch341: linux-2.6-mm-pagefault-enable-ints.patch
 Patch360: linux-2.6-debug-always-inline-kzalloc.patch
 Patch370: linux-2.6-crash-driver.patch
 Patch380: linux-2.6-defaults-pci_no_msi.patch
 Patch381: linux-2.6-pciehp-update.patch
 Patch382: linux-2.6-defaults-pciehp.patch
-Patch383: linux-2.6-defaults-fat-utf8.patch
 Patch390: linux-2.6-defaults-acpi-video.patch
-
 Patch391: linux-2.6-acpi-video-dos.patch
-Patch394: linux-2.6-acpi-handle-ec-init-failure.patch
-Patch396: linux-2.6-acpi-dock-fix-eject-request-process.patch
-
 Patch400: linux-2.6-scsi-cpqarray-set-master.patch
-
-Patch410: linux-2.6.27.9-alsa-driver-1.0.18a.patch
-Patch411: linux-2.6.27.7-alsa-driver-fixups.patch
-Patch412: linux-2.6.27.9-alsa-hda-add-a-quirk-for-dell-studio-15.patch
-Patch413: linux-2.6.27.9-alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch
-Patch414: linux-2.6.27.9-alsa-hda-mark-dell-studio-1535-quirk.patch
-Patch415: linux-2.6-alsa-backport-beep-switch.patch
-Patch416: linux-2.6-defaults-alsa-hda-beep-off.patch
-Patch417: linux-2.6-alsa-hda-stac-dell-m6-eapd.patch
-Patch418: linux-2.6-alsa-hda-revert-remove-unneeded-hp-nid-references.patch
-Patch419: linux-2.6-alsa-hda-remove-broken-headphone-control-for-dell-laptops.patch
-
-Patch429: linux-2.6-squashfs.patch
+Patch420: linux-2.6-squashfs.patch
 Patch430: linux-2.6-net-silence-noisy-printks.patch
 Patch450: linux-2.6-input-kill-stupid-messages.patch
-Patch452: linux-2.6.27-hwmon-applesmc-2.6.28.patch
-# 448656
-Patch454: linux-2.6-input.git-i8042-add-xps-m1530-to-nomux.patch
-
 Patch460: linux-2.6-serial-460800.patch
 Patch510: linux-2.6-silence-noise.patch
 Patch530: linux-2.6-silence-fbcon-logo.patch
 Patch570: linux-2.6-selinux-mprotect-checks.patch
 Patch580: linux-2.6-sparc-selinux-mprotect-checks.patch
-Patch590: linux-2.6-selinux-recognise-addrlabel.patch
-# fix for ebus_dma.h
-Patch600: sparc-2.6.git-aae7fb87ec4d2df6cb551670b1765cf4e5795a3b.patch
+Patch590: linux-2.6-selinux-move-open-perms-check.patch
+
+Patch600: linux-2.6-defaults-alsa-hda-beep-off.patch
 
 Patch670: linux-2.6-ata-quirk.patch
 
-Patch680: linux-2.6-iwlagn-downgrade-BUG_ON-in-interrupt.patch
-Patch681: linux-2.6-iwl3945-ibss-tsf-fix.patch
-Patch682: linux-2.6-wireless-ath9k-dma-fixes.patch
-Patch684: linux-2.6-iwlwifi-use-GFP_KERNEL-to-allocate-Rx-SKB-memory.patch
-Patch690: linux-2.6-at76.patch
+Patch680: linux-2.6-iwlwifi-use-GFP_KERNEL-to-allocate-Rx-SKB-memory.patch
 
-Patch700: linux-2.6-nfs-client-mounts-hang.patch
+Patch690: linux-2.6-at76.patch
 
-Patch900: linux-2.6-uvc-hg.patch
-Patch901: linux-2.6-uvc-spca525.patch
-Patch902: linux-2.6-gspca-vc0321-fix-frame-overflow.patch
+# webcam fixes
+Patch900: linux-2.6-gspca-git.patch
 
-Patch1101: linux-2.6-default-mmf_dump_elf_headers.patch
 Patch1515: linux-2.6.27-lirc.patch
 Patch1520: linux-2.6-hdpvr.patch
 
@@ -676,80 +643,36 @@
 Patch1550: linux-2.6-cdrom-door-status.patch
 
 # nouveau + drm fixes
-Patch1800: nvidia-agp.patch
-Patch1810: drm-next.patch
-Patch1813: drm-modesetting-radeon.patch
-Patch1815: drm-nouveau.patch
-Patch1816: drm-intel-8xx-pae-no-gem.patch
-Patch1817: drm-fix-master-enable.patch
+Patch1811: drm-next.patch
+Patch1812: drm-modesetting-radeon.patch
+Patch1814: drm-nouveau.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
 
-# new e1000e hardware support from net-next-2.6 (e.g. ich10)
-Patch2001: linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch
-Patch2002: linux-2.6-e1000e-add-support-for-82567LM-3-and-82567LF-3-ICH10D-parts.patch
-Patch2003: linux-2.6-e1000e-add-support-for-new-82574L-part.patch
-
-# r8169 fixes
-Patch2005: linux-2.6-netdev-r8169-2.6.28.patch
-
-# Make Eee laptop driver suck less
-Patch2011: linux-2.6-eeepc-laptop-update.patch
-
-# Backport Toshiba updates so Bluetooth can be enabled (#437091)
-Patch2012: linux-2.6-toshiba-acpi-update.patch
-
 # atl2 network driver
 Patch2020: linux-2.6-netdev-atl2.patch
 
 # Fix DEBUG_SHIRQ problem in tulip driver.  (454575)
 Patch2030: linux-2.6-net-tulip-interrupt.patch
 
-Patch2031: linux-2.6-net-qla-silence-debug-printks.patch
-
 # olpc fixes
-Patch2041: linux-2.6-olpc-touchpad.patch
-Patch2042: linux-2.6-quieter-mmc.patch
+Patch2040: linux-2.6-olpc-speaker-out.patch
+
+# Fix serial header so things can compile (#476327)
+Patch2050: linux-2.6-serial.patch
 
 # linux1394 git patches
 Patch2200: linux-2.6-firewire-git-update.patch
 Patch2201: linux-2.6-firewire-git-pending.patch
 
-# make USB EHCI driver respect "nousb" parameter
-Patch2300: linux-2.6-usb-ehci-hcd-respect-nousb.patch
-
-# Add fips_enable flag
-Patch2400: linux-2.6-crypto-fips_enable.patch
-
-# get rid of imacfb and make efifb work everywhere it was used
-Patch2600: linux-2.6-merge-efifb-imacfb.patch
-
 # Quiet boot fixes
 # silence piix3 in quiet boot (ie, qemu)
 Patch2800: linux-2.6-piix3-silence-quirk.patch
-# Hush IOMMU warnings, you typically can't fix them anyway
-Patch2801: linux-2.6-quiet-iommu.patch
 # silence the ACPI blacklist code
 Patch2802: linux-2.6-silence-acpi-blacklist.patch
-# it's... it's ALIVE!
-Patch2803: linux-2.6-amd64-yes-i-know-you-live.patch
 # hush pci bar allocation failures
 Patch2804: linux-2.6.27-pci-hush-allocation-failures.patch
-# Don't attempt to assign IRQ 0
-Patch2806: linux-2.6-pci-fix-pciehp-irq0.patch
-# stop filling the log with messages
-Patch2807: linux-2.6-pciehp-kill-annoying-messages.patch
-
-Patch2900: linux-2.6.27-ext4-rename-ext4dev-to-ext4.patch
-# Delay capable check to avoid most AVCs (#478299)
-Patch2901: linux-2.6.27.9-ext4-cap-check-delay.patch
-
-# Add better support for DMI-based autoloading
-Patch3110: linux-2.6-dmi-autoload.patch
-
-# SELinux: Fix handling of empty tty_files. 37dd0bd04a3240d2922786d501e2f12cec858fbf BZ469079
-Patch3120: linux-2.6-selinux-empty-tty-files.patch
 
 # Provide P4 clock modulation in-kernel for thermal reasons, but don't expose
 # ui
@@ -1104,30 +1027,19 @@
 ApplyPatch linux-2.6-upstream-reverts.patch -R
 fi
 
-ApplyPatch git-cpufreq.patch
+#ApplyPatch git-cpufreq.patch
 
 ApplyPatch linux-2.6-hotfixes.patch
 
 # Roland's utrace ptrace replacement.
 ApplyPatch linux-2.6-utrace.patch
-ApplyPatch linux-2.6-x86-tracehook.patch
-ApplyPatch linux-2.6.27-x86-tracehook-syscall-arg-order.patch
-
-ApplyPatch linux-2.6-x86-mtrr-kill-bogus-warning.patch
-# fix Barcelona config space size
-ApplyPatch linux-2.6-x86-pci-amd-config-space.patch
 
 # enable sysrq-c on all kernels, not only kexec
 ApplyPatch linux-2.6-sysrq-c.patch
 
-# scheduler patches
-# performance fixes from 2.6.28
-ApplyPatch linux-2.6-sched-fine-tune-SD_MC_INIT.patch
-ApplyPatch linux-2.6-sched-fine-tune-SD_SIBLING_INIT.patch
-ApplyPatch linux-2.6-sched-wakeup-preempt-when-small-overlap.patch
-
 # Architecture patches
 # x86(-64)
+ApplyPatch linux-2.6-x86-mtrr-kill-bogus-warning.patch
 
 #
 # PowerPC
@@ -1153,38 +1065,28 @@
 #
 # SPARC64
 #
-ApplyPatch sparc-2.6.git-aae7fb87ec4d2df6cb551670b1765cf4e5795a3b.patch
 
 #
 # Exec shield
 #
 ApplyPatch linux-2.6-execshield.patch
-ApplyPatch linux-2.6-xen-execshield-add-xen-specific-load_user_cs_desc.patch
-
-ApplyPatch linux-2.6-xen-execshield-only-define-load_user_cs_desc-on-32-bit.patch
 
 #
 # bugfixes to drivers and filesystems
 #
 
+# Squashfs
+ApplyPatch linux-2.6-squashfs.patch
+
 # ext4
-ApplyPatch linux-2.6.27-ext4-rename-ext4dev-to-ext4.patch
-ApplyPatch linux-2.6.27.9-ext4-cap-check-delay.patch
 
 # xfs
 
 # USB
-ApplyPatch linux-2.6-usb-ehci-hcd-respect-nousb.patch
-
-# Add the ability to turn FIPS-compliant mode on or off at boot
-ApplyPatch linux-2.6-crypto-fips_enable.patch
 
 # ACPI
 ApplyPatch linux-2.6-defaults-acpi-video.patch
 ApplyPatch linux-2.6-acpi-video-dos.patch
-ApplyPatch linux-2.6-acpi-handle-ec-init-failure.patch
-# fix dock bugs
-ApplyPatch linux-2.6-acpi-dock-fix-eject-request-process.patch
 
 # Various low-impact patches to aid debugging.
 ApplyPatch linux-2.6-debug-sizeof-structs.patch
@@ -1192,12 +1094,9 @@
 ApplyPatch linux-2.6-debug-taint-vm.patch
 ApplyPatch linux-2.6-debug-spinlock-taint.patch
 ApplyPatch linux-2.6-debug-vm-would-have-oomkilled.patch
-ApplyPatch linux-2.6-mm-pagefault-enable-ints.patch
 ApplyPatch linux-2.6-debug-always-inline-kzalloc.patch
 
-#
 # /dev/crash driver for the crashdump analysis tool
-#
 ApplyPatch linux-2.6-crash-driver.patch
 
 #
@@ -1205,14 +1104,10 @@
 #
 # disable message signaled interrupts
 ApplyPatch linux-2.6-defaults-pci_no_msi.patch
-
 # update the pciehp driver
 ApplyPatch linux-2.6-pciehp-update.patch
-
 # default to enabling passively listening for hotplug events
 ApplyPatch linux-2.6-defaults-pciehp.patch
-# UTF8 by default in FAT
-ApplyPatch linux-2.6-defaults-fat-utf8.patch
 
 #
 # SCSI Bits.
@@ -1221,20 +1116,6 @@
 ApplyPatch linux-2.6-scsi-cpqarray-set-master.patch
 
 # ALSA
-ApplyPatch linux-2.6.27.9-alsa-driver-1.0.18a.patch
-ApplyPatch linux-2.6.27.7-alsa-driver-fixups.patch
-ApplyPatch linux-2.6.27.9-alsa-hda-add-a-quirk-for-dell-studio-15.patch
-ApplyPatch linux-2.6.27.9-alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch
-ApplyPatch linux-2.6.27.9-alsa-hda-mark-dell-studio-1535-quirk.patch
-ApplyPatch linux-2.6-alsa-backport-beep-switch.patch
-ApplyPatch linux-2.6-defaults-alsa-hda-beep-off.patch
-ApplyPatch linux-2.6-alsa-hda-stac-dell-m6-eapd.patch
-ApplyPatch linux-2.6-alsa-hda-revert-remove-unneeded-hp-nid-references.patch
-ApplyPatch linux-2.6-alsa-hda-remove-broken-headphone-control-for-dell-laptops.patch
-
-# Filesystem patches.
-# Squashfs
-ApplyPatch linux-2.6-squashfs.patch
 
 # Networking
 # Disable easy to trigger printk's.
@@ -1243,10 +1124,6 @@
 # Misc fixes
 # The input layer spews crap no-one cares about.
 ApplyPatch linux-2.6-input-kill-stupid-messages.patch
-# kill annoying applesmc debug messages
-ApplyPatch linux-2.6.27-hwmon-applesmc-2.6.28.patch
-# 448656
-ApplyPatch linux-2.6-input.git-i8042-add-xps-m1530-to-nomux.patch
 
 # Allow to use 480600 baud on 16C950 UARTs
 ApplyPatch linux-2.6-serial-460800.patch
@@ -1260,37 +1137,25 @@
 ApplyPatch linux-2.6-selinux-mprotect-checks.patch
 # Fix SELinux for sparc
 ApplyPatch linux-2.6-sparc-selinux-mprotect-checks.patch
-# selinux: recognize netlink messages for 'ip addrlabel'
-ApplyPatch linux-2.6-selinux-recognise-addrlabel.patch
+# SELinux: check open perms in dentry_open not inode_permission
+ApplyPatch linux-2.6-selinux-move-open-perms-check.patch
 
 # Changes to upstream defaults.
 
+# squelch hda_beep by default
+ApplyPatch linux-2.6-defaults-alsa-hda-beep-off.patch
+
 # ia64 ata quirk
 ApplyPatch linux-2.6-ata-quirk.patch
 
-# make jarod's iwl4965 not panic near N APs, hopefully
-ApplyPatch linux-2.6-iwlagn-downgrade-BUG_ON-in-interrupt.patch
-# iwl3945 fix for stable ad-hoc mode connections (#459401)
-ApplyPatch linux-2.6-iwl3945-ibss-tsf-fix.patch
-
-# Backported ath9k DMA fixes from pre-2.6.28
-ApplyPatch linux-2.6-wireless-ath9k-dma-fixes.patch
-
 # iwlwifi: use GFP_KERNEL to allocate Rx SKB memory
 ApplyPatch linux-2.6-iwlwifi-use-GFP_KERNEL-to-allocate-Rx-SKB-memory.patch
 
 # Add misc wireless bits from upstream wireless tree
 ApplyPatch linux-2.6-at76.patch
 
-# NFS Client mounts hang when exported directory do not exist
-ApplyPatch linux-2.6-nfs-client-mounts-hang.patch
-
-ApplyPatch linux-2.6-uvc-hg.patch
-ApplyPatch linux-2.6-uvc-spca525.patch
-ApplyPatch linux-2.6-gspca-vc0321-fix-frame-overflow.patch
-
-# build id related enhancements
-ApplyPatch linux-2.6-default-mmf_dump_elf_headers.patch
+# Webcam patches
+#ApplyPatch linux-2.6-gspca-git.patch
 
 # http://www.lirc.org/
 ApplyPatch linux-2.6.27-lirc.patch
@@ -1303,62 +1168,33 @@
 
 ApplyPatch linux-2.6-e1000-ich9.patch
 
-ApplyPatch linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch
-ApplyPatch linux-2.6-e1000e-add-support-for-82567LM-3-and-82567LF-3-ICH10D-parts.patch
-ApplyPatch linux-2.6-e1000e-add-support-for-new-82574L-part.patch
-
-ApplyPatch linux-2.6-netdev-r8169-2.6.28.patch
-
-ApplyPatch linux-2.6-eeepc-laptop-update.patch
-ApplyPatch linux-2.6-toshiba-acpi-update.patch
-
 # atl2 network driver
 ApplyPatch linux-2.6-netdev-atl2.patch
 
 ApplyPatch linux-2.6-net-tulip-interrupt.patch
 
-ApplyPatch linux-2.6-net-qla-silence-debug-printks.patch
+ApplyPatch linux-2.6-olpc-speaker-out.patch
 
-ApplyPatch linux-2.6-olpc-touchpad.patch
-ApplyPatch linux-2.6-quieter-mmc.patch
+ApplyPatch linux-2.6-serial.patch
 
 # Nouveau DRM + drm fixes
-ApplyPatch nvidia-agp.patch
 ApplyPatch drm-next.patch
 ApplyPatch drm-modesetting-radeon.patch
-ApplyPatch drm-nouveau.patch
-ApplyPatch drm-intel-8xx-pae-no-gem.patch
-ApplyPatch drm-fix-master-enable.patch
+#ApplyPatch drm-nouveau.patch
 
 # linux1394 git patches
-ApplyPatch linux-2.6-firewire-git-update.patch
+#ApplyPatch linux-2.6-firewire-git-update.patch
 C=$(wc -l $RPM_SOURCE_DIR/linux-2.6-firewire-git-pending.patch | awk '{print $1}')
 if [ "$C" -gt 10 ]; then
 ApplyPatch linux-2.6-firewire-git-pending.patch
 fi
 
-# get rid of imacfb and make efifb work everywhere it was used
-ApplyPatch linux-2.6-merge-efifb-imacfb.patch
-
-ApplyPatch linux-2.6-dmi-autoload.patch
-
 # silence piix3 in quiet boot (ie, qemu)
 ApplyPatch linux-2.6-piix3-silence-quirk.patch
-# Hush IOMMU warnings, you typically can't fix them anyway
-ApplyPatch linux-2.6-quiet-iommu.patch
 # silence the ACPI blacklist code
 ApplyPatch linux-2.6-silence-acpi-blacklist.patch
-# it's... it's ALIVE!
-ApplyPatch linux-2.6-amd64-yes-i-know-you-live.patch
 # hush pci bar allocation failures
 ApplyPatch linux-2.6.27-pci-hush-allocation-failures.patch
-# don't allocate IRQ 0 in pciehp
-ApplyPatch linux-2.6-pci-fix-pciehp-irq0.patch
-#
-ApplyPatch linux-2.6-pciehp-kill-annoying-messages.patch
-
-# SELinux on ppc64 without plymouth can't boot
-ApplyPatch linux-2.6-selinux-empty-tty-files.patch
 
 ApplyPatch disable-p4-cpufreq-ui.patch
 
@@ -1549,8 +1385,8 @@
 %ifarch ppc
     cp -a --parents arch/powerpc/lib/crtsavres.[So] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
 %endif
-    if [ -d arch/$Arch/include ]; then
-      cp -a --parents arch/$Arch/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+    if [ -d arch/%{asmarch}/include ]; then
+      cp -a --parents arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
     fi
     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     cd include
@@ -1596,8 +1432,8 @@
     			 'register_netdev|ieee80211_register_hw|usbnet_probe'
     collect_modules_list block \
     			 'ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register'
-    collect_modules_list modesetting \
-    			 'drm_crtc_init'
+    collect_modules_list drm \
+    			 'drm_open|drm_init'
 
     # detect missing or incorrect license tags
     rm -f modinfo
@@ -1660,7 +1496,7 @@
 
 %if %{with_doc}
 # Make the HTML and man pages.
-make htmldocs mandocs || %{doc_build_fail}
+make %{?_smp_mflags} htmldocs mandocs || %{doc_build_fail}
 
 # sometimes non-world-readable files sneak into the kernel source tree
 chmod -R a=rX Documentation
@@ -1937,330 +1773,192 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
-* Sun Jan 11 2009 Dave Jones <davej at redhat.com>
-- Don't use MAXSMP on x86-64
+* Mon Jan 12 2009 Kyle McMartin <kyle at redhat.com>
+- Rebase for Fedora 10.
+- Turn off CONFIG_MAXSMP on x86_64.
 
-* Wed Jan  7 2009 Roland McGrath <roland at redhat.com> - 2.6.27.10-169
-- utrace update
+* Wed Dec 24 2008 Dave Jones <davej at redhat.com>
+- 2.6.28
+  Drop gspca-git temporarily.
 
-* Tue Jan 06 2009 Eric Sandeen <sandeen at redhat.com> 2.6.27.10-168
-- ext4 - delay capable() checks in space accounting (#478299)
+* Wed Dec 24 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc9-git4
 
-* Tue Dec 23 2008 Dave Airlie <airlied at redhat.com> 2.6.27.10-167
-- drm - fix issue with second driver opening DRI
+* Mon Dec 22 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc9-git3
 
-* Mon Dec 22 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.10-166
-- Hopefully fix broken headphone output on some Dell notebooks.
+* Mon Dec 22 2008 Bill Nottingham <notting at redhat.com>
+- Fix linux/serial.h so it can be included from userspace (#476327)
 
-* Fri Dec 19 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.10-165
-- Linux 2.6.27.10
-  Dropped patches:
-    linux-2.6-lib-idr-fix-bug-introduced-by-rcu-fix.patch
-    linux-2.6.27.7-vmi-fix-crash-on-boot.patch
-    linux-2.6.27.5-sched_clock-prevent-scd-clock-from-moving-backwards.patch
-    linux-2.6-iwlagn-fix-rx-skb-alignment.patch
-  Dropped from firewire-git-pending:
-    firewire: fw-ohci: fix possible IOMMU resource exhaustion
+* Sat Dec 20 2008 Kyle McMartin <kyle at redhat.com>
+- Linux 2.6.28-rc9-git1
+  Rebased patches:
+   linux-2.6-pciehp-update.patch
+   drm-next.patch
 
-* Fri Dec 19 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-164
-- Disable PATA_HPT3X3_DMA (from F11.)
+* Fri Dec 19 2008 Adam Jackson <ajax at redhat.com>
+- config-generic: FB_VIRTUAL=m
 
-* Thu Dec 18 2008 Dave Airlie <airlied at redhat.com> 2.6.27.9-163
-- radeon drm: fix broken caching bits in radeon which broke AGP
+* Thu Dec 18 2008 Dave Airlie <airlied at redhat.com>
+- drm-next.patch/drm-modesetting-radeon.patch - rebase to upstream.
+- config-generic: turn of KMS on radeon until we fixup userspace
 
-* Wed Dec 17 2008 John W. Linville <linville at redhat.com> 2.6.27.9-162
-- iwlwifi: use GFP_KERNEL to allocate Rx SKB memory
+* Thu Dec 18 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc9
 
-* Tue Dec 16 2008 Kyle McMartin <kyle at redhat.com> 2.6.27.9-161
-- Re-enable input beep code, but disable it by default.
-  Added:
-   linux-2.6-alsa-backport-beep-switch.patch
-   linux-2.6-defaults-alsa-hda-beep-off.patch
+* Thu Dec 18 2008 Jeremy Katz <katzj at redhat.com>
+- explicitly prereq /sbin/new-kernel-pkg as opposed to just mkinitrd
 
-* Tue Dec 16 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-160
-- Disable AC97 audio driver power savings by default.
+* Thu Dec 18 2008 Kyle McMartin <kyle at redhat.com>
+- Disable SND_HDA_BEEP by default
 
-* Tue Dec 16 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-159
-- Disable input beep feature in Intel HDA sound driver.
+* Thu Dec 18 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc8-git6
 
-* Tue Dec 16 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-158
-- Fix the CDROM door status patch right this time. (from rawhide)
+* Wed Dec 17 2008 Dave Jones <davej at redhat.com>
+- Disable PATA_HPT3X3_DMA as per Alan.
 
-* Mon Dec 15 2008 John W. Linville <linville at redhat.com> 2.6.27.9-157
-- iwlagn: fix RX skb alignment
+* Wed Dec 17 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc8-git5
 
-* Mon Dec 15 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-156
-- Revert -stable patch that causes suspend problems (L-K BZ 12149, 12155)
+* Wed Dec 17 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc8-git5
 
-* Sun Dec 14 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-155
-- Linux 2.6.27.9
-
-* Sat Dec 13 2008 Tom "spot" Callaway <tcallawa at redhat.com> 2.6.27.9-154.rc2
-- pull patch from davem sparc-2.6 git branch to add ebus_dma.h
+* Wed Dec 17 2008 John W. Linville <linville at redhat.com>
+- iwlwifi: use GFP_KERNEL to allocate Rx SKB memory
 
-* Sat Dec 13 2008 Tom "spot" Callaway <tcallawa at redhat.com> 2.6.27.9-153.rc2
-- Add "scsi_esp_register" to the search terms for modules.block so we pick up sun_esp.ko
+* Tue Dec 16 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc8-git4
 
-* Fri Dec 12 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-152.rc2
-- Enable input beep feature in Intel HDA sound driver.
+* Mon Dec 15 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc8-git3
 
-* Fri Dec 12 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-151.rc2
-- Linux 2.6.27.9-rc2
+* Sat Dec 13 2008 Kyle McMartin <kyle at redhat.com>
+- 2.6.28-rc8-git2 
 
-* Fri Dec 12 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-150.rc1
-- Fix VMI crash on boot introduced in 2.6.27.7 (#476062)
+* Sat Dec 13 2008 Tom "spot" Callaway <tcallawa at redhat.com>
+- Add "scsi_esp_register" to the search terms for modules.block so we pick up sun_esp.ko
 
-* Fri Dec 12 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-149.rc1
-- Linux 2.6.27.9-rc1
-  Dropped patches:
-    linux-2.6-net-atm-CVE-2008-5079.patch
+* Thu Dec 11 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc8-git1
 
-* Fri Dec 12 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.8-148
-- Fix IDR allocator bug introduced in 2.6.27.8
+* Thu Dec 11 2008 Dave Jones <davej at redhat.com>
+- Remove noisy message from can network protocol.
 
-* Fri Dec 12 2008 Dave Airlie <airlied at redhat.com> 2.6.27.8-147
-- modeset - fix AGP without kms + fix endian parser/pll programming
+* Thu Dec 11 2008 Hans de Goede <hdegoede at redhat.com>
+- Add a patch updating the gspca driver to the latest "git" (mercurial
+  actually) adding support for ov534 based cams, fixing support for
+  spca501, finepix and vc0321 cams + many more bugfixes
 
-* Wed Dec 10 2008 Jarod Wilson <jarod at redhat.com> 2.6.27.8-146
-- Plug DMA memory leak in firewire drivers (#475156)
+* Wed Dec 10 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc8
 
-* Wed Dec 10 2008 Hans de Goede <hdegoede at redhat.com> 2.6.27.8-145
-- Fix vc0321 based webcams (rh 474990)
+* Wed Dec 10 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc7-git8
 
-* Tue Dec 09 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.8-144
-- Revert idr patch from 2.6.27.8 that caused DRM breakage.
+* Wed Dec 10 2008 Kyle McMartin <kyle at redhat.com>
+- 2.6.28-rc7-git8
+- re-enable drm-nouveau...
 
-* Mon Dec 08 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.8-143
-- ATM security fix (CVE-2008-5079)
+* Tue Dec 09 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc7-git7
 
-* Mon Dec 08 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.8-142
-- Scheduler fixes from 2.6.28
+* Mon Dec 08 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc7-git6
 
-* Mon Dec 08 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.8-141
-- Stop the pciehp driver from filling the log with status messages.
+* Mon Dec 08 2008 Kyle McMartin <kyle at redhat.com>
+- properly fix headers in kernel-devel if headers are in arch/$arch/include,
+  sadly was not able to kill off %hdrarch since $Arch is undefined at the
+  time we need it for headers install.
 
-* Mon Dec 08 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.8-140
-- Linux 2.6.27.8
-  Dropped patches:
-    linux-2.6-x86-sb600-skip-acpi-irq0-override-if-not-routed-to-int2.patch
-    linux-2.6-x86-more-general-id-for-phoenix-bios.patch
-    linux-2.6-xen-dont-reserve-2-pages-of-padding.patch
-    linux-2.6-usb-ehci-fix-sb700-subsystem-hang.patch
-    linux-2.6-usb-usbmon-fix-read.patch
-    linux-2.6-libata-avoid-overflow-with-large-disks.patch
-    linux-2.6-pci-fix-pciehp.patch
-    linux-2.6-input.git-atkbd-add-quirk-for-inventec.patch
-    linux-2.6.27-ext4-2.6.28-backport-fixups.patch
-    linux-2.6.27-ext4-2.6.28-rc3-git6.patch
-  Added patches:
-    linux-2.6.27-ext4-rename-ext4dev-to-ext4.patch
+* Mon Dec 08 2008 Kyle McMartin <kyle at redhat.com>
+- merging, merging, merging...
 
-* Mon Dec 08 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-139
-- ALSA 1.0.18a
-  Dropped patches:
-    linux-2.6-alsa-ac97-whitelist.patch
-    linux-2.6-alsa-ac97-whitelist-AD1981B.patch
-    linux-2.6-alsa-revo51-headphone.patch
-    linux-2.6-olpc-speaker-out.patch
+* Mon Dec 08 2008 Dave Jones <davej at redhat.com>
+- enable CONFIG_CGROUP_MEM_RES_CTLR.
 
-* Mon Dec 08 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-138
-- Fix PCI config space size on AMD Barcelona.
+* Mon Dec 08 2008 Kyle McMartin <kyle at redhat.com>
+- execshield re-merge. xen bits shoved into execshield patch
+  (they belong there...)
 
-* Wed Dec 03 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-137
-- Update applesmc driver to 2.6.28-rc7-git1
-  Adds: module autoloading
+* Mon Dec 08 2008 Dave Airlie <airlied at redhat.com>
+- modesetting: rebase radeon patch
 
-* Tue Dec 03 2008 Dave Airlie <airlied at redhat.com> 2.6.27.7-136
-- radeon: fix AGP harder than the last time.
+* Fri Dec 05 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc7-git5
 
-* Tue Dec 02 2008 John W. Linville <linville at redhat.com> 2.6.27.7-135
-- Backported ath9k DMA fixes from pre-2.6.28
-- Drop patch to disable ath9k when swiotlb is in use
+* Fri Dec 05 2008 Dave Jones <davej at redhat.com>
+- SELinux: check open perms in dentry_open not inode_permission
 
-* Tue Dec 02 2008 Dave Airlie <airlied at redhat.com> 2.6.27.7-134
-- radeon: fix IGP aperture sizing (#473895)
+* Fri Dec 05 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc7-git4
 
-* Mon Dec 01 2008 Dave Airlie <airlied at redhat.com> 2.6.27.7-133
-- drm-next.patch: drm/intel: fix VT switch issue harder.
+* Thu Dec 04 2008 Kyle McMartin <kyle at redhat.com>
+- linux-2.6-utrace.patch updates
 
-* Sun Nov 30 2008 Dave Airlie <airlied at redhat.com> 2.6.27.7-132
-- radeon: another AGP fix for r500 cards falling back to PCIE
+* Thu Dec 04 2008 Kyle McMartin <kyle at redhat.com>
+- 2.6.28-rc7-git3
 
-* Sun Nov 30 2008 Dave Airlie <airlied at redhat.com> 2.6.27.7-131
-- radeon: fix card posting, module unload and radeon AGP issues
+* Tue Dec 02 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc7-git1
 
-* Thu Nov 27 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-130
-- Additional fixes for 64K lowmem reservation:
-  - More general matching for Phoenix BIOS
-  - Fix Xen when low 64K is reserved
+* Mon Dec 01 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc7
 
-* Thu Nov 27 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-129
-- Update applesmc driver to 2.6.28-rc6-git1
-  Adds: iMac 5/6/8, Macbook 4/5, Macbook Pro 5, generic MacPro
+* Mon Dec 01 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc6-git4
 
-* Thu Nov 27 2008 Dave Airlie <airlied at redhat.com> 2.6.27.7-128
-- drm: intel rebase with upstream fixes - radeon add larger GART size
+* Sun Nov 30 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc6-git2
 
-* Tue Nov 25 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-127
-- Two USB patches scheduled for the next -stable release.
+* Mon Nov 24 2008 Dave Jones <davej at redhat.com>
+- 2.6.28-rc6-git1
 
-* Tue Nov 25 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-126
-- Fix Zepto notebook multimedia keys (F9#460237)
-- Fix Dell XPS 1530 trackpad (F9#448656)
+* Mon Nov 24 2008 Jeremy Katz <katzj at redhat.com>
+- Add modules.drm file so that we can determine the DRM modules to pull into 
+  initrds
 
-* Tue Nov 25 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.7-125
-- Linux 2.6.27.7
-  Dropped patches:
-    linux-2.6.27-sony-laptop-suspend-fix.patch
-    linux-2.6-hostap-skb-cb-hack.patch
-    linux-2.6-wireless-iwlagn-avoid-sleep-in-softirq.patch
+* Wed Nov 19 2008 Neil Horman <nhorman at redhat.com>
+- Enable Garmin gps serial module build (#471824)
 
-* Tue Nov 25 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.6-124
-- Linux 2.6.27.6
-  Dropped patches:
-    linux-2.6-acpi-dock-avoid-check-sta-method.patch
-    linux-2.6-blk-cciss-fix-regression-sysfs-symlink-missing.patch
-  Updated patch:
-    linux-2.6-netdev-r8169-2.6.28.patch
-  New config variable:
-    CONFIG_X86_RESERVE_LOW_64K=y
-
-* Mon Nov 24 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-123
-- radeon: hopefully fix rs690 and rs480 GART invalidation
-
-* Wed Nov 19 2008 Dave Jones <davej at redhat.com> 2.6.27.5-122
-- selinux: recognize netlink messages for 'ip addrlabel' (#469423)
-
-* Wed Nov 19 2008 Hans de Goede <hdegoede at redhat.com> 2.6.27.5-121
-- Update uvcvideo to latest git
-- Patch uvcvideo to not make older logitech cams crash (bz 472217)
+* Tue Nov 18 2008 Dave Jones <davej at redhat.com>
+- Reenable debugging config options.
 
-* Tue Nov 18 2008 Dave Jones <davej at redhat.com> 2.6.27.5-120
+* Tue Nov 18 2008 Dave Jones <davej at redhat.com>
 - Only build the x86-64 optimised versions of aes/salsa/Twofish on 64bit.
 
-* Tue Nov 18 2008 Jarod Wilson <jarod at redhat.com> 2.6.27.5-119
-- Fix hang on VT switch w/compiz on intel graphics (#467332)
-
-* Tue Nov 18 2008 Dave Jones <davej at redhat.com> 2.6.27.5-118
+* Tue Nov 18 2008 Dave Jones <davej at redhat.com>
 - Disable autofs v3. (obsoleted by v4 some time ago.)
 
-* Tue Nov 18 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-117
-- Disable ath9k when swiotlb is in use (#471329)
-
-* Tue Nov 18 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-116
-- rebase to intel proper set of patches + test patch fix.
-
-* Mon Nov 17 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-115
-- Fix missing parens in the cdrom-door-status patch.
+* Mon Nov 17 2008 Kyle McMartin <kyle at redhat.com>
+- Linux 2.6.28-rc5
 
-* Mon Nov 17 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-114
-- make pci_slot modular by default to avoid boot spew when acpiphp has bound
+* Fri Nov 14 2008 Roland McGrath <roland at redhat.com>
+- x86 tracehook merged upstream
+- utrace update (merge conflict only)
 
-* Mon Nov 17 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-113
-- drm - intel rebase from upstream - radeon fix memory sizing and zeroing
+* Fri Nov 14 2008 Roland McGrath <roland at redhat.com>
+- CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y replaces patch.
 
-* Fri Nov 14 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-112
-- radeon - backout patch is over zealous in error handling
+* Thu Nov 13 2008 Dave Jones <davej at redhat.com>
+- Revert last change.
 
-* Fri Nov 14 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-111
-- radeon - fix low memory issues and locking oops causer
-
-* Thu Nov 13 2008 Dave Jones <davej at redhat.com> 2.6.27.5-110
-- Revert previous change.
-
-* Thu Nov 13 2008 Dave Jones <davej at redhat.com> 2.6.27.5-108
+* Thu Nov 13 2008 Dave Jones <davej at redhat.com>
 - Change CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to 4096 on PPC64. (#471478)
 
-* Thu Nov 13 2008 Dave Jones <davej at redhat.com> 2.6.27.5-107
-- Disable CONFIG_PM_TEST_SUSPEND
-
-* Thu Nov 13 2008 Dave Jones <davej at redhat.com> 2.6.27.5-106
+* Thu Nov 13 2008 Dave Jones <davej at redhat.com>
 - Increase CONFIG_FORCE_MAX_ZONEORDER to 13 on ppc64. (#468982)
 
-* Wed Nov 12 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-105
-- drm-intel-8xx-pae-no-gem.patch - initial disable GEM on 8xx and PAE (#461205)
-
-* Wed Nov 12 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-104
-- radeon - fix issues with nomodeset + newest intel irq patches
-
-* Wed Nov 12 2008 Matthew Garrett <mjg at redhat.com> 2.6.27.5-103
-- Ensure that the pciehp driver doesn't attempt to claim IRQ 0
+* Wed Nov 12 2008 Kyle McMartin <kyle at redhat.com>
+- Linux 2.6.28-rc4
 
-* Wed Nov 12 2008 Dave Jones <davej at redhat.com> 2.6.27.5-102
-- Fix backtrace in pciehp driver.
-
-* Wed Nov 12 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-101
-- drm/intel: further interrupt fixes
-
-* Tue Nov 11 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-100
-- Check for additional ATI chipset timer bugs (#470939, #470723)
-
-* Tue Nov 11 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-99
-- drm rebase patches against latest upstream tree.
-
-* Tue Nov 11 2008 Dave Jones <davej at redhat.com> 2.6.27.5-98
-- qla3xxx: Cleanup: Fix link print statements. (#461623)
-
-* Tue Nov 11 2008 Dave Jones <davej at redhat.com> 2.6.27.5-97
-- ALSA: revo51: add headphone output. (#470813)
-
-* Mon Nov 10 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-96
-- Fix "scheduling from idle thread" bug (#468896)
-
-* Mon Nov 10 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-95
-- Build a list of modules that do kernel modesetting
-  (modules.modesetting) (#470907)
-
-* Mon Nov 10 2008 Jeremy Katz <katzj at redhat.com> 2.6.27.5-94
-- Fix up bogons in OLPC touchpad patch
-- Reduce error level of an mmc warning on boot for XO (#469159)
-
-* Mon Nov 10 2008 Dave Jones <davej at redhat.com> 2.6.27.5-93
-- Make UTF-8 the default for FAT/VFAT filesystems again.
-
-* Mon Nov 10 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-92
-- radeon modesetting - fix oops on powerpc + ring sizing bug
-
-* Sun Nov 09 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-91
-- Fix up the CVE-2008-3528 patch so we get it from -stable.
-
-* Sun Nov 09 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-90
-- ext4 updates to 2.6.28-rc3
-
-* Sun Nov 09 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-89
-- Fix ACPI dock bugs (#470321)
-
-* Sat Nov 08 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-88
-- radeon modesetting - fix mouse on second head and 3 second hangs hopefully
-
-* Fri Nov 07 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.5-87
-- Linux 2.6.27.5
-  Dropped Patches:
-    linux-2.6-sched-features-disable-hrtick.patch
-    linux-2.6-sched_clock-prevent-scd-clock-from-moving-backwards
-    linux-2.6-x86-avoid-dereferencing-beyond-stack-THREAD_SIZE.patch
-    linux-2.6-usb-storage-unusual-devs-jmicron-ata-bridge.patch
-    linux-2.6-acpi-clear-wake-status.patch
-    linux-2.6-acpi-ignore-reset_reg_sup.patch
-    linux-2.6-net-tcp-option-ordering.patch
-    linux-2.6-input-dell-keyboard-keyup.patch
-    linux-2.6.27-acpi-ec-drizzle.patch
-    linux-2.6-libata-pata_it821x-fix-lba48-on-raid-volumes.patch
-    linux-2.6-rtc-cmos-look-for-pnp-rtc-first.patch
-    linux-2.6-x86-register-platform-rtc-if-pnp-doesnt-describe-it.patch
-    linux-2.6-agp-intel-cantiga-fix.patch
-  Reverted from upstream:
-    firewire-fix-ioctl-return-code.patch
-    firewire-fix-setting-tag-and-sy-in-iso-transmission.patch
-    firewire-fix-struct-fw_node-memory-leak.patch
-    firewire-fw-sbp2-delay-first-login-to-avoid-retries.patch
-    firewire-fw-sbp2-fix-races.patch
-    firewire-survive-more-than-256-bus-resets.patch
+* Sun Nov 09 2008 Eric Sandeen <sandeen at redhat.com>
+- Pull back ext4 updates from 2.6.28-rc3-git6
 
-* Fri Nov 07 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.4-86
+* Fri Nov 07 2008 Chuck Ebbert <cebbert at redhat.com>
 - Update the r8169 network driver to the 2.6.28 version.
 
-* Fri Nov 07 2008 John W. Linville <linville at redhat.com> 2.6.27.4-85
+* Fri Nov 07 2008 John W. Linville <linville at redhat.com>
 - Re-modularize ieee80211 component
 - Cleanup ieee80211-related config stuff
 

linux-2.6-compile-fixes.patch:

Index: linux-2.6-compile-fixes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-compile-fixes.patch,v
retrieving revision 1.178
retrieving revision 1.179
diff -u -r1.178 -r1.179
--- linux-2.6-compile-fixes.patch	8 Oct 2008 22:32:46 -0000	1.178
+++ linux-2.6-compile-fixes.patch	12 Jan 2009 19:51:28 -0000	1.179
@@ -11,14 +11,15 @@
 Signed-off-by: Dave Jones <davej at redhat.com>
 
 diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c
-index 422c8fa..1c6c522 100644
+index 0494ee5..43a9e56 100644
 --- a/arch/powerpc/sysdev/fsl_lbc.c
 +++ b/arch/powerpc/sysdev/fsl_lbc.c
-@@ -16,6 +16,7 @@
+@@ -23,6 +23,8 @@
  #include <asm/fsl_lbc.h>
  
- spinlock_t fsl_lbc_lock = __SPIN_LOCK_UNLOCKED(fsl_lbc_lock);
+ static spinlock_t fsl_lbc_lock = __SPIN_LOCK_UNLOCKED(fsl_lbc_lock);
 +EXPORT_SYMBOL(fsl_lbc_lock);
++
+ static struct fsl_lbc_regs __iomem *fsl_lbc_regs;
  
- struct fsl_lbc_regs __iomem *fsl_lbc_regs;
- EXPORT_SYMBOL(fsl_lbc_regs);
+ static char __initdata *compat_lbc[] = {

linux-2.6-crash-driver.patch:

Index: linux-2.6-crash-driver.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-crash-driver.patch,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- linux-2.6-crash-driver.patch	12 Feb 2008 06:18:04 -0000	1.11
+++ linux-2.6-crash-driver.patch	12 Jan 2009 19:51:28 -0000	1.12
@@ -1,7 +1,104 @@
-diff -urNp --exclude-from=/home/davej/.exclude linux-1050/arch/ia64/kernel/ia64_ksyms.c linux-1060/arch/ia64/kernel/ia64_ksyms.c
---- linux-1050/arch/ia64/kernel/ia64_ksyms.c
-+++ linux-1060/arch/ia64/kernel/ia64_ksyms.c
-@@ -106,6 +106,9 @@ EXPORT_SYMBOL(ia64_save_scratch_fpregs);
+diff --git a/arch/ia64/include/asm/crash.h b/arch/ia64/include/asm/crash.h
+new file mode 100644
+index 0000000..541af84
+--- /dev/null
++++ b/arch/ia64/include/asm/crash.h
+@@ -0,0 +1,90 @@
++#ifndef _ASM_IA64_CRASH_H
++#define _ASM_IA64_CRASH_H
++
++/*
++ * linux/include/asm-ia64/crash.h
++ *
++ * Copyright (c) 2004 Red Hat, Inc. All rights reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ */
++
++#ifdef __KERNEL__
++
++#include <linux/efi.h>
++#include <linux/mm.h>
++#include <asm/mmzone.h>
++
++static inline void *
++map_virtual(u64 offset, struct page **pp)
++{
++	struct page *page;
++	unsigned long pfn;
++	u32 type;
++
++	if (REGION_NUMBER(offset) == 5) {
++		char byte;
++
++		if (__get_user(byte, (char *)offset) == 0)
++			return (void *)offset;
++		else
++			return NULL;
++	}
++
++	switch (type = efi_mem_type(offset)) 
++	{
++	case EFI_LOADER_CODE:
++	case EFI_LOADER_DATA:
++	case EFI_BOOT_SERVICES_CODE:
++	case EFI_BOOT_SERVICES_DATA:
++	case EFI_CONVENTIONAL_MEMORY:
++		break;
++
++	default:
++		printk(KERN_INFO
++		    "crash memory driver: invalid memory type for %lx: %d\n", 
++			offset, type);
++		return NULL;
++	}
++
++	pfn = offset >> PAGE_SHIFT;
++
++	if (!pfn_valid(pfn)) {
++		printk(KERN_INFO
++			"crash memory driver: invalid pfn: %lx )\n", pfn);
++		return NULL;
++	}
++
++	page = pfn_to_page(pfn);
++
++	if (!page->virtual) {
++		printk(KERN_INFO
++		    "crash memory driver: offset: %lx page: %lx page->virtual: NULL\n", 
++			offset, (unsigned long)page);
++		return NULL;
++	}
++
++	return (page->virtual + (offset & (PAGE_SIZE-1)));
++}
++
++static inline void unmap_virtual(struct page *page) 
++{ 
++	return;
++}
++
++#endif /* __KERNEL__ */
++
++#endif /* _ASM_IA64_CRASH_H */
+diff --git a/arch/ia64/kernel/ia64_ksyms.c b/arch/ia64/kernel/ia64_ksyms.c
+index 6da1f20..2984fb3 100644
+--- a/arch/ia64/kernel/ia64_ksyms.c
++++ b/arch/ia64/kernel/ia64_ksyms.c
+@@ -86,6 +86,9 @@ EXPORT_SYMBOL(ia64_save_scratch_fpregs);
  #include <asm/unwind.h>
  EXPORT_SYMBOL(unw_init_running);
  
@@ -10,10 +107,50 @@
 +
  #ifdef ASM_SUPPORTED
  # ifdef CONFIG_SMP
- #  if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
-diff -urNp --exclude-from=/home/davej/.exclude linux-1050/drivers/char/crash.c linux-1060/drivers/char/crash.c
---- linux-1050/drivers/char/crash.c
-+++ linux-1060/drivers/char/crash.c
+ #  if (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
+diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
+index d4c4307..d1c968f 100644
+--- a/arch/x86/mm/ioremap.c
++++ b/arch/x86/mm/ioremap.c
+@@ -133,6 +133,7 @@ int page_is_ram(unsigned long pagenr)
+ 	}
+ 	return 0;
+ }
++EXPORT_SYMBOL_GPL(page_is_ram);
+ 
+ int pagerange_is_ram(unsigned long start, unsigned long end)
+ {
+diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
+index 43d6ba8..0d81c9a 100644
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -460,6 +460,8 @@ config LEGACY_PTYS
+ 	  security.  This option enables these legacy devices; on most
+ 	  systems, it is safe to say N.
+ 
++config CRASH
++        tristate "Crash Utility memory driver"
+ 
+ config LEGACY_PTY_COUNT
+ 	int "Maximum number of legacy PTY in use"
+diff --git a/drivers/char/Makefile b/drivers/char/Makefile
+index 438f713..1b7767b 100644
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
+@@ -109,6 +109,8 @@ obj-$(CONFIG_PS3_FLASH)		+= ps3flash.o
+ obj-$(CONFIG_JS_RTC)		+= js-rtc.o
+ js-rtc-y = rtc.o
+ 
++obj-$(CONFIG_CRASH)		+= crash.o
++
+ # Files generated that shall be removed upon make clean
+ clean-files := consolemap_deftbl.c defkeymap.c
+ 
+diff --git a/drivers/char/crash.c b/drivers/char/crash.c
+new file mode 100644
+index 0000000..e5437de
+--- /dev/null
++++ b/drivers/char/crash.c
 @@ -0,0 +1,128 @@
 +/*
 + *  linux/drivers/char/crash.c
@@ -143,32 +280,11 @@
 +module_exit(crash_cleanup_module);
 +
 +MODULE_LICENSE("GPL");
-diff -urNp --exclude-from=/home/davej/.exclude linux-1050/drivers/char/Kconfig linux-1060/drivers/char/Kconfig
---- linux-1050/drivers/char/Kconfig
-+++ linux-1060/drivers/char/Kconfig
-@@ -441,6 +441,8 @@ config LEGACY_PTYS
- 	  security.  This option enables these legacy devices; on most
- 	  systems, it is safe to say N.
- 
-+config CRASH
-+        tristate "Crash Utility memory driver"
- 
- config LEGACY_PTY_COUNT
- 	int "Maximum number of legacy PTY in use"
---- linux-2.6.16.noarch/drivers/char/Makefile~	2006-03-25 18:50:42.000000000 -0500
-+++ linux-2.6.16.noarch/drivers/char/Makefile	2006-03-25 18:50:59.000000000 -0500
-@@ -95,6 +95,8 @@ obj-$(CONFIG_IPMI_HANDLER)	+= ipmi/
- obj-$(CONFIG_JS_RTC)		+= js-rtc.o
- js-rtc-y = rtc.o
- 
-+obj-$(CONFIG_CRASH)		+= crash.o
-+
- # Files generated that shall be removed upon make clean
- clean-files := consolemap_deftbl.c defkeymap.c
- 
-diff -urNp --exclude-from=/home/davej/.exclude linux-1050/include/asm-i386/crash.h linux-1060/include/asm-i386/crash.h
---- linux-1050/include/asm-x86/crash.h
-+++ linux-1060/include/asm-x86/crash.h
+diff --git a/include/asm-x86/crash.h b/include/asm-x86/crash.h
+new file mode 100644
+index 0000000..dfcc006
+--- /dev/null
++++ b/include/asm-x86/crash.h
 @@ -0,0 +1,75 @@
 +#ifndef _ASM_I386_CRASH_H
 +#define _ASM_I386_CRASH_H
@@ -245,109 +361,3 @@
 +#endif /* __KERNEL__ */
 +
 +#endif /* _ASM_I386_CRASH_H */
-diff -urNp --exclude-from=/home/davej/.exclude linux-1050/include/asm-ia64/crash.h linux-1060/include/asm-ia64/crash.h
---- linux-1050/include/asm-ia64/crash.h
-+++ linux-1060/include/asm-ia64/crash.h
-@@ -0,0 +1,90 @@
-+#ifndef _ASM_IA64_CRASH_H
-+#define _ASM_IA64_CRASH_H
-+
-+/*
-+ * linux/include/asm-ia64/crash.h
-+ *
-+ * Copyright (c) 2004 Red Hat, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/efi.h>
-+#include <linux/mm.h>
-+#include <asm/mmzone.h>
-+
-+static inline void *
-+map_virtual(u64 offset, struct page **pp)
-+{
-+	struct page *page;
-+	unsigned long pfn;
-+	u32 type;
-+
-+	if (REGION_NUMBER(offset) == 5) {
-+		char byte;
-+
-+		if (__get_user(byte, (char *)offset) == 0)
-+			return (void *)offset;
-+		else
-+			return NULL;
-+	}
-+
-+	switch (type = efi_mem_type(offset)) 
-+	{
-+	case EFI_LOADER_CODE:
-+	case EFI_LOADER_DATA:
-+	case EFI_BOOT_SERVICES_CODE:
-+	case EFI_BOOT_SERVICES_DATA:
-+	case EFI_CONVENTIONAL_MEMORY:
-+		break;
-+
-+	default:
-+		printk(KERN_INFO
-+		    "crash memory driver: invalid memory type for %lx: %d\n", 
-+			offset, type);
-+		return NULL;
-+	}
-+
-+	pfn = offset >> PAGE_SHIFT;
-+
-+	if (!pfn_valid(pfn)) {
-+		printk(KERN_INFO
-+			"crash memory driver: invalid pfn: %lx )\n", pfn);
-+		return NULL;
-+	}
-+
-+	page = pfn_to_page(pfn);
-+
-+	if (!page->virtual) {
-+		printk(KERN_INFO
-+		    "crash memory driver: offset: %lx page: %lx page->virtual: NULL\n", 
-+			offset, (unsigned long)page);
-+		return NULL;
-+	}
-+
-+	return (page->virtual + (offset & (PAGE_SIZE-1)));
-+}
-+
-+static inline void unmap_virtual(struct page *page) 
-+{ 
-+	return;
-+}
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _ASM_IA64_CRASH_H */
-diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
-index c004d94..13417a2 100644
---- a/arch/x86/mm/ioremap.c
-+++ b/arch/x86/mm/ioremap.c
-@@ -65,6 +65,7 @@ int page_is_ram(unsigned long pagenr)
- 	}
- 	return 0;
- }
-+EXPORT_SYMBOL_GPL(page_is_ram);
- 
- /*
-  * Fix up the linear direct mapping of the kernel to avoid cache attribute

linux-2.6-debug-taint-vm.patch:

Index: linux-2.6-debug-taint-vm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-debug-taint-vm.patch,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- linux-2.6-debug-taint-vm.patch	5 Mar 2008 15:12:35 -0000	1.21
+++ linux-2.6-debug-taint-vm.patch	12 Jan 2009 19:51:28 -0000	1.22
@@ -1,20 +1,48 @@
 diff --git a/kernel/panic.c b/kernel/panic.c
-index 6f6e03e..198fc58 100644
+index 4d50883..f4a6faa 100644
 --- a/kernel/panic.c
 +++ b/kernel/panic.c
-@@ -173,6 +173,7 @@ const char *print_tainted(void)
+@@ -193,6 +193,7 @@ const char *print_tainted(void)
  		snprintf(buf, sizeof(buf), "Not tainted");
  	return(buf);
  }
 +EXPORT_SYMBOL(print_tainted);
  
- void add_taint(unsigned flag)
+ int test_taint(unsigned flag)
  {
+@@ -328,8 +329,8 @@ void warn_on_slowpath(const char *file, int line)
+ 	sprint_symbol(function, caller);
+ 
+ 	printk(KERN_WARNING "------------[ cut here ]------------\n");
+-	printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file,
+-		line, function);
++	printk(KERN_WARNING "WARNING: at %s:%d %s() (%s)\n", file,
++		line, function, print_tainted());
+ 	print_modules();
+ 	dump_stack();
+ 	print_oops_end_marker();
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index d8ac014..1d035f0 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -224,10 +224,10 @@ static inline int bad_range(struct zone *zone, struct page *page)
+ static void bad_page(struct page *page)
+ {
+ 	printk(KERN_EMERG "Bad page state in process '%s'\n" KERN_EMERG
+-		"page:%p flags:0x%0*lx mapping:%p mapcount:%d count:%d\n",
++		"page:%p flags:0x%0*lx mapping:%p mapcount:%d count:%d (%s)\n",
+ 		current->comm, page, (int)(2*sizeof(unsigned long)),
+ 		(unsigned long)page->flags, page->mapping,
+-		page_mapcount(page), page_count(page));
++		page_mapcount(page), page_count(page), print_tainted());
+ 
+ 	printk(KERN_EMERG "Trying to fix it up, but a reboot is needed\n"
+ 		KERN_EMERG "Backtrace:\n");
 diff --git a/mm/slab.c b/mm/slab.c
-index 2e338a5..e5627f9 100644
+index 0918751..0977a03 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
-@@ -1846,8 +1846,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
+@@ -1858,8 +1858,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
  			/* Print header */
  			if (lines == 0) {
  				printk(KERN_ERR
@@ -25,7 +53,7 @@
  				print_objinfo(cachep, objp, 0);
  			}
  			/* Hexdump the affected line */
-@@ -2935,8 +2935,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
+@@ -2928,8 +2928,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
  	if (entries != cachep->num - slabp->inuse) {
  bad:
  		printk(KERN_ERR "slab: Internal list corruption detected in "
@@ -37,10 +65,10 @@
  		     i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t);
  		     i++) {
 diff --git a/mm/slub.c b/mm/slub.c
-index 9c1d9f3..e11d58d 100644
+index 749588a..0ef64f1 100644
 --- a/mm/slub.c
 +++ b/mm/slub.c
-@@ -451,7 +451,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
+@@ -430,7 +430,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
  	va_end(args);
  	printk(KERN_ERR "========================================"
  			"=====================================\n");
@@ -49,35 +77,3 @@
  	printk(KERN_ERR "----------------------------------------"
  			"-------------------------------------\n\n");
  }
-diff --git a/kernel/panic.c b/kernel/panic.c
-index d9e90cf..570b1f6 100644
---- a/kernel/panic.c
-+++ b/kernel/panic.c
-@@ -306,8 +306,8 @@ void warn_on_slowpath(const char *file, int line)
- 	sprint_symbol(function, caller);
- 
- 	printk(KERN_WARNING "------------[ cut here ]------------\n");
--	printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file,
--		line, function);
-+	printk(KERN_WARNING "WARNING: at %s:%d %s() (%s)\n", file,
-+		line, function, print_tainted());
- 	print_modules();
- 	dump_stack();
- 	print_oops_end_marker();
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 402a504..2085092 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -225,10 +225,10 @@ static void bad_page(struct page *page)
- 	void *pc = page_get_page_cgroup(page);
- 
- 	printk(KERN_EMERG "Bad page state in process '%s'\n" KERN_EMERG
--		"page:%p flags:0x%0*lx mapping:%p mapcount:%d count:%d\n",
-+		"page:%p flags:0x%0*lx mapping:%p mapcount:%d count:%d (%s)\n",
- 		current->comm, page, (int)(2*sizeof(unsigned long)),
- 		(unsigned long)page->flags, page->mapping,
--		page_mapcount(page), page_count(page));
-+		page_mapcount(page), page_count(page), print_tainted());
- 	if (pc) {
- 		printk(KERN_EMERG "cgroup:%p\n", pc);
- 		page_reset_bad_cgroup(page);

linux-2.6-defaults-pci_no_msi.patch:

Index: linux-2.6-defaults-pci_no_msi.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-defaults-pci_no_msi.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-defaults-pci_no_msi.patch	3 May 2008 03:36:55 -0000	1.1
+++ linux-2.6-defaults-pci_no_msi.patch	12 Jan 2009 19:51:29 -0000	1.2
@@ -1,10 +1,22 @@
-Disable PCI MSI by default, add kernel parameter to enable it.
-
-Signed-off-by: Chuck Ebbert <cebbert at redhat.com>
-
---- linux-2.6.20.noarch.orig/drivers/pci/msi.c
-+++ linux-2.6.20.noarch/drivers/pci/msi.c
-@@ -23,7 +23,7 @@ static DEFINE_SPINLOCK(msi_lock);
+diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
+index e0f346d..9e70467 100644
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -1623,6 +1623,9 @@ and is between 256 and 4096 characters. It is defined in the file
+ 				root domains (aka PCI segments, in ACPI-speak).
+ 		nommconf	[X86-32,X86_64] Disable use of MMCONFIG for PCI
+ 				Configuration
++		msi		[MSI] If the PCI_MSI kernel config parameter is
++				enabled, this kernel boot option can be used to
++				enable the use of MSI interrupts system-wide.
+ 		nomsi		[MSI] If the PCI_MSI kernel config parameter is
+ 				enabled, this kernel boot option can be used to
+ 				disable the use of MSI interrupts system-wide.
+diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
+index 74801f7..ffcf464 100644
+--- a/drivers/pci/msi.c
++++ b/drivers/pci/msi.c
+@@ -23,7 +23,7 @@
  #include "pci.h"
  #include "msi.h"
  
@@ -13,33 +25,23 @@
  
  /* Arch hooks */
  
-@@ -722,6 +722,11 @@ void pci_no_msi(void)
- {
+@@ -755,6 +755,11 @@ void pci_no_msi(void)
  	pci_msi_enable = 0;
  }
-+
+ 
 +void pci_yes_msi(void)
 +{
 +	pci_msi_enable = 1;
 +}
- 
++
  void pci_msi_init_pci_dev(struct pci_dev *dev)
  {
---- linux-2.6.20.noarch.orig/Documentation/kernel-parameters.txt
-+++ linux-2.6.20.noarch/Documentation/kernel-parameters.txt
-@@ -1429,6 +1429,9 @@ and is between 256 and 4096 characters. 
- 				root domains (aka PCI segments, in ACPI-speak).
- 		nommconf	[X86-32,X86_64] Disable use of MMCONFIG for PCI
- 				Configuration
-+		msi		[MSI] If the PCI_MSI kernel config parameter is
-+				enabled, this kernel boot option can be used to
-+				enable the use of MSI interrupts system-wide.
- 		nomsi		[MSI] If the PCI_MSI kernel config parameter is
- 				enabled, this kernel boot option can be used to
- 				disable the use of MSI interrupts system-wide.
---- linux-2.6.20.noarch.orig/drivers/pci/pci.c
-+++ linux-2.6.20.noarch/drivers/pci/pci.c
-@@ -1642,6 +1642,8 @@ static int __devinit pci_setup(char *str
+ 	INIT_LIST_HEAD(&dev->msi_list);
+diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
+index 061d1ee..883e572 100644
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -2051,6 +2051,8 @@ static int __init pci_setup(char *str)
  		if (*str && (str = pcibios_setup(str)) && *str) {
  			if (!strcmp(str, "nomsi")) {
  				pci_no_msi();
@@ -48,17 +50,20 @@
  			} else if (!strcmp(str, "noaer")) {
  				pci_no_aer();
  			} else if (!strcmp(str, "nodomains")) {
---- linux-2.6.20.noarch.orig/drivers/pci/pci.h
-+++ linux-2.6.20.noarch/drivers/pci/pci.h
-@@ -41,9 +41,11 @@ extern unsigned int pci_pm_d3_delay;
+diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
+index 9de87e9..c0327e7 100644
+--- a/drivers/pci/pci.h
++++ b/drivers/pci/pci.h
+@@ -97,10 +97,12 @@ extern unsigned int pci_pm_d3_delay;
  
  #ifdef CONFIG_PCI_MSI
  void pci_no_msi(void);
 +void pci_yes_msi(void);
  extern void pci_msi_init_pci_dev(struct pci_dev *dev);
+ extern void __devinit msi_init(void);
  #else
  static inline void pci_no_msi(void) { }
 +static inline void pci_yes_msi(void) { }
  static inline void pci_msi_init_pci_dev(struct pci_dev *dev) { }
+ static inline void msi_init(void) { }
  #endif
- 

linux-2.6-execshield.patch:

Index: linux-2.6-execshield.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-execshield.patch,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -r1.97 -r1.98
--- linux-2.6-execshield.patch	10 Oct 2008 19:46:18 -0000	1.97
+++ linux-2.6-execshield.patch	12 Jan 2009 19:51:29 -0000	1.98
@@ -1,6 +1,120 @@
---- linux-2.6.25.noarch/arch/x86/kernel/cpu/common.c~	2008-05-16 13:41:08.000000000 -0400
-+++ linux-2.6.25.noarch/arch/x86/kernel/cpu/common.c	2008-05-16 13:42:11.000000000 -0400
-@@ -479,6 +479,21 @@ void __cpuinit identify_cpu(struct cpuin
+diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
+index e6b82b1..c314884 100644
+--- a/arch/x86/include/asm/desc.h
++++ b/arch/x86/include/asm/desc.h
+@@ -6,6 +6,7 @@
+ #include <asm/ldt.h>
+ #include <asm/mmu.h>
+ #include <linux/smp.h>
++#include <linux/mm_types.h>
+ 
+ static inline void fill_ldt(struct desc_struct *desc,
+ 			    const struct user_desc *info)
+@@ -95,6 +96,9 @@ static inline int desc_empty(const void *ptr)
+ 
+ #define load_TLS(t, cpu) native_load_tls(t, cpu)
+ #define set_ldt native_set_ldt
++#ifdef CONFIG_X86_32
++#define load_user_cs_desc native_load_user_cs_desc
++#endif /*CONFIG_X86_32*/
+ 
+ #define write_ldt_entry(dt, entry, desc)	\
+ 	native_write_ldt_entry(dt, entry, desc)
+@@ -381,6 +385,24 @@ static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
+ 	_set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
+ }
+ 
++#ifdef CONFIG_X86_32
++static inline void set_user_cs(struct desc_struct *desc, unsigned long limit)
++{
++	limit = (limit - 1) / PAGE_SIZE;
++	desc->a = limit & 0xffff;
++	desc->b = (limit & 0xf0000) | 0x00c0fb00;
++}
++
++static inline void native_load_user_cs_desc(int cpu, struct mm_struct *mm)
++{
++	get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs;
++}
++
++extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
++extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
++extern void arch_flush_exec_range(struct mm_struct *mm);
++#endif /* CONFIG_X86_32 */
++
+ #else
+ /*
+  * GET_DESC_BASE reads the descriptor base of the specified segment.
+diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
+index 80a1dee..8314c66 100644
+--- a/arch/x86/include/asm/mmu.h
++++ b/arch/x86/include/asm/mmu.h
+@@ -7,12 +7,19 @@
+ /*
+  * The x86 doesn't have a mmu context, but
+  * we put the segment information here.
++ *
++ * exec_limit is used to track the range PROT_EXEC
++ * mappings span.
+  */
+ typedef struct {
+ 	void *ldt;
+ 	int size;
+ 	struct mutex lock;
+ 	void *vdso;
++#ifdef CONFIG_X86_32
++	struct desc_struct user_cs;
++	unsigned long exec_limit;
++#endif
+ } mm_context_t;
+ 
+ #ifdef CONFIG_SMP
+diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
+index ba3e2ff..42a65f4 100644
+--- a/arch/x86/include/asm/paravirt.h
++++ b/arch/x86/include/asm/paravirt.h
+@@ -113,6 +113,9 @@ struct pv_cpu_ops {
+ 	void (*store_gdt)(struct desc_ptr *);
+ 	void (*store_idt)(struct desc_ptr *);
+ 	void (*set_ldt)(const void *desc, unsigned entries);
++#ifdef CONFIG_X86_32
++	void (*load_user_cs_desc)(int cpu, struct mm_struct *mm);
++#endif /*CONFIG_X86_32*/
+ 	unsigned long (*store_tr)(void);
+ 	void (*load_tls)(struct thread_struct *t, unsigned int cpu);
+ #ifdef CONFIG_X86_64
+@@ -860,6 +863,12 @@ static inline void set_ldt(const void *addr, unsigned entries)
+ {
+ 	PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries);
+ }
++#ifdef CONFIG_X86_32
++static inline void load_user_cs_desc(unsigned int cpu, struct mm_struct *mm)
++{
++	PVOP_VCALL2(pv_cpu_ops.load_user_cs_desc, cpu, mm);
++}
++#endif /*CONFIG_X86_32*/
+ static inline void store_gdt(struct desc_ptr *dtr)
+ {
+ 	PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr);
+diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
+index 5ca01e3..4f319b1 100644
+--- a/arch/x86/include/asm/processor.h
++++ b/arch/x86/include/asm/processor.h
+@@ -154,6 +154,9 @@ static inline int hlt_works(int cpu)
+ 
+ #define cache_line_size()	(boot_cpu_data.x86_cache_alignment)
+ 
++#define __HAVE_ARCH_ALIGN_STACK
++extern unsigned long arch_align_stack(unsigned long sp);
++
+ extern void cpu_detect(struct cpuinfo_x86 *c);
+ 
+ extern struct pt_regs *idle_regs(struct pt_regs *);
+diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
+index b9c9ea0..666dd0e 100644
+--- a/arch/x86/kernel/cpu/common.c
++++ b/arch/x86/kernel/cpu/common.c
+@@ -687,6 +687,21 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
  	 * we do "generic changes."
  	 */
  
@@ -13,20 +127,45 @@
 +	 */
 +	if (exec_shield != 0) {
 +#ifdef CONFIG_X86_PAE
-+		if (!test_bit(X86_FEATURE_NX, c->x86_capability))
++		if (!test_cpu_cap(c, X86_FEATURE_NX))
 +#endif
-+			clear_bit(X86_FEATURE_SEP, c->x86_capability);
++			clear_cpu_cap(c, X86_FEATURE_SEP);
 +	}
 +
 +
  	/* If the model name is still unset, do table lookup. */
  	if (!c->x86_model_id[0]) {
  		char *p;
+diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
+index e4c8fb6..30f7508 100644
+--- a/arch/x86/kernel/paravirt.c
++++ b/arch/x86/kernel/paravirt.c
+@@ -326,6 +326,9 @@ struct pv_cpu_ops pv_cpu_ops = {
+ 	.read_tscp = native_read_tscp,
+ 	.load_tr_desc = native_load_tr_desc,
+ 	.set_ldt = native_set_ldt,
++#ifdef CONFIG_X86_32
++	.load_user_cs_desc = native_load_user_cs_desc,
++#endif /*CONFIG_X86_32*/
+ 	.load_gdt = native_load_gdt,
+ 	.load_idt = native_load_idt,
+ 	.store_gdt = native_store_gdt,
 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index a7d50a5..83f7b4e 100644
+index 0a1302f..ab96a10 100644
 --- a/arch/x86/kernel/process_32.c
 +++ b/arch/x86/kernel/process_32.c
-@@ -677,7 +677,8 @@ struct task_struct * __switch_to(struct task_struct *prev_p, struct task_struct
+@@ -354,6 +354,10 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
+ 	regs->cs		= __USER_CS;
+ 	regs->ip		= new_ip;
+ 	regs->sp		= new_sp;
++	preempt_disable();
++	load_user_cs_desc(smp_processor_id(), current->mm);
++	preempt_enable();
++
+ 	/*
+ 	 * Free the old FP and other extended state
+ 	 */
+@@ -558,7 +562,8 @@ struct task_struct * __switch_to(struct task_struct *prev_p, struct task_struct
  	/* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
  
  	__unlazy_fpu(prev_p);
@@ -36,11 +175,7 @@
  
  	/* we're going to use this soon, after a few expensive things */
  	if (next_p->fpu_counter > 5)
-diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index a7d50a5..86e35cb 100644
---- a/arch/x86/kernel/process_32.c
-+++ b/arch/x86/kernel/process_32.c
-@@ -847,3 +847,39 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
+@@ -731,3 +736,39 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
  	unsigned long range_end = mm->brk + 0x02000000;
  	return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
  }
@@ -80,8 +215,10 @@
 +	mm->context.exec_limit = 0;
 +	set_user_cs(&mm->context.user_cs, 0);
 +}
---- linux-2.6.25.noarch/arch/x86/kernel/tlb_32.c~	2008-05-16 13:30:44.000000000 -0400
-+++ linux-2.6.25.noarch/arch/x86/kernel/tlb_32.c	2008-05-16 13:31:14.000000000 -0400
+diff --git a/arch/x86/kernel/tlb_32.c b/arch/x86/kernel/tlb_32.c
+index f4049f3..e7a1b7c 100644
+--- a/arch/x86/kernel/tlb_32.c
++++ b/arch/x86/kernel/tlb_32.c
 @@ -2,6 +2,7 @@
  #include <linux/cpu.h>
  #include <linux/interrupt.h>
@@ -90,7 +227,7 @@
  #include <asm/tlbflush.h>
  
  DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate)
-@@ -92,6 +93,8 @@ void smp_invalidate_interrupt(struct pt_
+@@ -92,6 +93,8 @@ void smp_invalidate_interrupt(struct pt_regs *regs)
  	unsigned long cpu;
  
  	cpu = get_cpu();
@@ -99,13 +236,14 @@
  
  	if (!cpu_isset(cpu, flush_cpumask))
  		goto out;
---- linux-2.6.26.noarch/arch/x86/kernel/traps_32.c~	2008-07-14 20:20:15.000000000 -0400
-+++ linux-2.6.26.noarch/arch/x86/kernel/traps_32.c	2008-07-14 20:26:18.000000000 -0400
-@@ -596,7 +596,91 @@ DO_ERROR(10, SIGSEGV, "invalid TSS", inv
- DO_ERROR(11, SIGBUS, "segment not present", segment_not_present)
- DO_ERROR(12, SIGBUS, "stack segment", stack_segment)
- DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0, 0)
--DO_ERROR_INFO(32, SIGILL, "iret exception", iret_error, ILL_BADSTK, 0, 1)
+diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
+index 04d242a..bb52785 100644
+--- a/arch/x86/kernel/traps.c
++++ b/arch/x86/kernel/traps.c
+@@ -159,6 +159,63 @@ static int lazy_iobitmap_copy(void)
+ 
+ 	return 0;
+ }
 +
 +/*
 + * lazy-check for CS validity on exec-shield binaries:
@@ -157,94 +295,97 @@
 +				current->mm->context.exec_limit, desc1->a, desc1->b, desc2->a, desc2->b);
 +		}
 +		load_user_cs_desc(cpu, current->mm);
++
 +		return 1;
 +	}
 +
 +	return 0;
 +}
-+
-+/*
-+ * The fixup code for errors in iret jumps to here (iret_exc).  It loses
-+ * the original trap number and error code.  The bogus trap 32 and error
-+ * code 0 are what the vanilla kernel delivers via:
-+ * DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0, 1)
-+ *
-+ * NOTE: Because of the final "1" in the macro we need to enable interrupts.
-+ *
-+ * In case of a general protection fault in the iret instruction, we
-+ * need to check for a lazy CS update for exec-shield.
-+ */
-+void do_iret_error(struct pt_regs *regs, long error_code)
-+{
-+	int ok;
-+	local_irq_enable();
-+	ok = check_lazy_exec_limit(get_cpu(), regs, error_code);
-+	put_cpu();
-+	if (!ok && notify_die(DIE_TRAP, "iret exception", regs,
-+		error_code, 32, SIGSEGV) != NOTIFY_STOP) {
-+			siginfo_t info;
-+			info.si_signo = SIGSEGV;
-+			info.si_errno = 0;
-+			info.si_code = ILL_BADSTK;
-+			info.si_addr = 0;
-+			do_trap(32, SIGSEGV, "iret exception", 0, regs, error_code,
-+				&info);
-+	}
-+}
- 
- void __kprobes
- do_general_protection(struct pt_regs *regs, long error_code)
-@@ -605,6 +688,7 @@ do_general_protection(struct pt_regs *re
- 	struct thread_struct *thread;
- 	struct tss_struct *tss;
- 	int cpu;
-+	int ok;
+ #endif
  
- 	cpu = get_cpu();
- 	tss = &per_cpu(init_tss, cpu);
-@@ -645,6 +729,23 @@ do_general_protection(struct pt_regs *re
+ static void __kprobes
+@@ -320,6 +377,29 @@ do_general_protection(struct pt_regs *regs, long error_code)
  	if (!user_mode(regs))
  		goto gp_in_kernel;
  
-+	ok = check_lazy_exec_limit(cpu, regs, error_code);
++#ifdef CONFIG_X86_32
++{
++	int cpu;
++	int ok;
 +
++	cpu = get_cpu();
++	ok = check_lazy_exec_limit(cpu, regs, error_code);
 +	put_cpu();
 +
 +	if (ok)
 +		return;
 +
 +	if (print_fatal_signals) {
-+		printk(KERN_ERR "#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n", error_code,
-+			error_code/8, regs->ip, smp_processor_id());
++		printk(KERN_ERR "#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n",
++			error_code, error_code/8, regs->ip, smp_processor_id());
 +		printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x.\n",
 +			current->mm->context.exec_limit,
 +			current->mm->context.user_cs.a,
 +			current->mm->context.user_cs.b);
 +	}
-+
++}
++#endif /*CONFIG_X86_32*/
 +
  	tsk->thread.error_code = error_code;
  	tsk->thread.trap_no = 13;
  
-@@ -662,11 +763,13 @@ do_general_protection(struct pt_regs *re
- 	return;
+@@ -931,19 +1011,37 @@ do_device_not_available(struct pt_regs *regs, long error)
+ }
  
- gp_in_vm86:
-+	put_cpu();
+ #ifdef CONFIG_X86_32
++/*
++ * The fixup code for errors in iret jumps to here (iret_exc). It loses
++ * the original trap number and erorr code. The bogus trap 32 and error
++ * code 0 are what the vanilla kernel delivers via:
++ * DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0, 1)
++ *
++ * NOTE: Because of the final "1" in the macro we need to enable interrupts.
++ *
++ * In case of a general protection fault in the iret instruction, we
++ * need to check for a lazy CS update for exec-shield.
++ */
+ dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)
+ {
+-	siginfo_t info;
++	int ok;
++	int cpu;
++
  	local_irq_enable();
- 	handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code);
- 	return;
  
- gp_in_kernel:
+-	info.si_signo = SIGILL;
+-	info.si_errno = 0;
+-	info.si_code = ILL_BADSTK;
+-	info.si_addr = 0;
+-	if (notify_die(DIE_TRAP, "iret exception",
+-			regs, error_code, 32, SIGILL) == NOTIFY_STOP)
+-		return;
+-	do_trap(32, SIGILL, "iret exception", regs, error_code, &info);
++	cpu = get_cpu();
++	ok = check_lazy_exec_limit(cpu, regs, error_code);
 +	put_cpu();
- 	if (fixup_exception(regs))
- 		return;
++
++	if (!ok && notify_die(DIE_TRAP, "iret exception", regs,
++		error_code, 32, SIGSEGV) != NOTIFY_STOP) {
++			siginfo_t info;
++			info.si_signo = SIGSEGV;
++			info.si_errno = 0;
++			info.si_code = ILL_BADSTK;
++			info.si_addr = 0;
++			do_trap(32, SIGSEGV, "iret exception", 0, error_code, &info);
++	}
+ }
+ #endif
  
 diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
-index 8106bba..23932be 100644
+index c483f42..8c3bbd9 100644
 --- a/arch/x86/mm/init_32.c
 +++ b/arch/x86/mm/init_32.c
-@@ -473,7 +473,7 @@ static int disable_nx __initdata;
+@@ -570,7 +570,7 @@ static int disable_nx __initdata;
   * Control non executable mappings.
   *
   * on      Enable
@@ -253,7 +394,7 @@
   */
  static int __init noexec_setup(char *str)
  {
-@@ -482,14 +482,12 @@ static int __init noexec_setup(char *str)
+@@ -579,14 +579,12 @@ static int __init noexec_setup(char *str)
  			__supported_pte_mask |= _PAGE_NX;
  			disable_nx = 0;
  		}
@@ -274,7 +415,8 @@
  
  	return 0;
  }
-@@ -782,6 +782,10 @@ unsigned long __init_refok init_memory_m
+@@ -845,7 +843,11 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
+ 	set_nx();
  	if (nx_enabled)
  		printk(KERN_INFO "NX (Execute Disable) protection: active\n");
 +	else
@@ -307,10 +449,10 @@
  	}
  }
 diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
-index 348f134..0bd5f44 100644
+index 513f330..2fb420a 100644
 --- a/arch/x86/vdso/vdso32-setup.c
 +++ b/arch/x86/vdso/vdso32-setup.c
-@@ -336,7 +336,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack)
+@@ -331,7 +331,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack)
  	if (compat)
  		addr = VDSO_HIGH_BASE;
  	else {
@@ -319,11 +461,50 @@
  		if (IS_ERR_VALUE(addr)) {
  			ret = addr;
  			goto up_fail;
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index 5e4686d..b41f314 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -315,6 +315,24 @@ static void xen_set_ldt(const void *addr, unsigned entries)
+ 	xen_mc_issue(PARAVIRT_LAZY_CPU);
+ }
+ 
++#ifdef CONFIG_X86_32
++static void xen_load_user_cs_desc(int cpu, struct mm_struct *mm)
++{
++	void *gdt;
++	xmaddr_t mgdt;
++	u64 descriptor;
++	struct desc_struct user_cs;
++
++	gdt = &get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS];
++	mgdt = virt_to_machine(gdt);
++
++	user_cs = mm->context.user_cs;
++	descriptor = (u64) user_cs.a | ((u64) user_cs.b) << 32;
++
++	HYPERVISOR_update_descriptor(mgdt.maddr, descriptor);
++}
++#endif /*CONFIG_X86_32*/
++
+ static void xen_load_gdt(const struct desc_ptr *dtr)
+ {
+ 	unsigned long *frames;
+@@ -1231,6 +1249,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
+ 
+ 	.load_tr_desc = paravirt_nop,
+ 	.set_ldt = xen_set_ldt,
++#ifdef CONFIG_X86_32
++	.load_user_cs_desc = xen_load_user_cs_desc,
++#endif /*CONFIG_X86_32*/
+ 	.load_gdt = xen_load_gdt,
+ 	.load_idt = xen_load_idt,
+ 	.load_tls = xen_load_tls,
 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
-index 41a958a..22cbd06 100644
+index 8fcfa39..5e1e2d8 100644
 --- a/fs/binfmt_elf.c
 +++ b/fs/binfmt_elf.c
-@@ -81,7 +81,7 @@ static struct linux_binfmt elf_format = {
+@@ -80,7 +80,7 @@ static struct linux_binfmt elf_format = {
  		.hasvdso	= 1
  };
  
@@ -332,7 +513,7 @@
  
  static int set_brk(unsigned long start, unsigned long end)
  {
-@@ -709,6 +711,11 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -723,6 +723,11 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
  			break;
  		}
  
@@ -344,7 +525,7 @@
  	/* Some simple consistency checks for the interpreter */
  	if (elf_interpreter) {
  		retval = -ELIBBAD;
-@@ -721,6 +721,15 @@ static int load_elf_binary(struct linux_
+@@ -742,6 +747,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
  	if (retval)
  		goto out_free_dentry;
  
@@ -360,17 +541,17 @@
  	/* OK, This is the point of no return */
  	current->flags &= ~PF_FORKNOEXEC;
  	current->mm->def_flags = def_flags;
-@@ -741,7 +757,8 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -749,7 +763,8 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
  	/* Do this immediately, since STACK_TOP as used in setup_arg_pages
  	   may depend on the personality.  */
- 	SET_PERSONALITY(loc->elf_ex, 0);
+ 	SET_PERSONALITY(loc->elf_ex);
 -	if (elf_read_implies_exec(loc->elf_ex, executable_stack))
 +	if (!(exec_shield & 2) &&
 +			elf_read_implies_exec(loc->elf_ex, executable_stack))
  		current->personality |= READ_IMPLIES_EXEC;
  
  	if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
-@@ -906,7 +923,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -914,7 +929,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
  					    interpreter,
  					    &interp_map_addr,
  					    load_bias);
@@ -379,9 +560,11 @@
  			/*
  			 * load_elf_interp() returns relocation
  			 * adjustment
---- linux-2.6.25.noarch/fs/proc/array.c~	2008-05-16 13:51:04.000000000 -0400
-+++ linux-2.6.25.noarch/fs/proc/array.c	2008-05-16 13:53:24.000000000 -0400
-@@ -473,8 +473,13 @@ static int do_task_stat(struct seq_file 
+diff --git a/fs/proc/array.c b/fs/proc/array.c
+index 6af7fba..bb98552 100644
+--- a/fs/proc/array.c
++++ b/fs/proc/array.c
+@@ -412,8 +412,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
  		unlock_task_sighand(task, &flags);
  	}
  
@@ -397,87 +580,11 @@
  	if (!whole) {
  		min_flt = task->min_flt;
  		maj_flt = task->maj_flt;
-diff --git a/include/asm-x86/desc.h b/include/asm-x86/desc.h
-index 5b6a05d..7ad80b9 100644
---- a/include/asm-x86/desc.h
-+++ b/include/asm-x86/desc.h
-@@ -353,6 +353,22 @@ static inline void set_system_gate_ist(int n, void *addr, unsigned ist)
- 	_set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
- }
- 
-+#ifdef CONFIG_X86_32
-+static inline void set_user_cs(struct desc_struct *desc, unsigned long limit)
-+{
-+	limit = (limit - 1) / PAGE_SIZE;
-+	desc->a = limit & 0xffff;
-+	desc->b = (limit & 0xf0000) | 0x00c0fb00;
-+}
-+
-+#define load_user_cs_desc(cpu, mm) \
-+	get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs
-+
-+extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
-+extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
-+extern void arch_flush_exec_range(struct mm_struct *mm);
-+#endif /* CONFIG_X86_32 */
-+
- #else
- /*
-  * GET_DESC_BASE reads the descriptor base of the specified segment.
-diff --git a/include/asm-x86/mmu.h b/include/asm-x86/mmu.h
-index efa962c..db9b109 100644
---- a/include/asm-x86/mmu.h
-+++ b/include/asm-x86/mmu.h
-@@ -9,6 +9,8 @@
-  * we put the segment information here.
-  *
-  * cpu_vm_mask is used to optimize ldt flushing.
-+ * exec_limit is used to track the range PROT_EXEC
-+ * mappings span.
-  */
- typedef struct {
- 	void *ldt;
-@@ -18,6 +20,10 @@ typedef struct {
- 	int size;
- 	struct mutex lock;
- 	void *vdso;
-+#ifdef CONFIG_X86_32
-+	struct desc_struct user_cs;
-+	unsigned long exec_limit;
-+#endif
- } mm_context_t;
- 
- #ifdef CONFIG_SMP
---- linux-2.6.25.noarch/include/asm-x86/processor.h~	2008-05-16 15:56:21.000000000 -0400
-+++ linux-2.6.25.noarch/include/asm-x86/processor.h	2008-05-16 16:02:44.000000000 -0400
-@@ -151,6 +151,9 @@ static inline int hlt_works(int cpu)
- 
- #define cache_line_size()	(boot_cpu_data.x86_cache_alignment)
- 
-+#define __HAVE_ARCH_ALIGN_STACK
-+extern unsigned long arch_align_stack(unsigned long sp);
-+
- extern void cpu_detect(struct cpuinfo_x86 *c);
- 
- extern void identify_cpu(struct cpuinfo_x86 *);
---- linux-2.6.25.noarch/arch/x86/kernel/process_32.c~	2008-05-16 16:02:50.000000000 -0400
-+++ linux-2.6.25.noarch/arch/x86/kernel/process_32.c	2008-05-16 16:03:21.000000000 -0400
-@@ -411,6 +411,10 @@ start_thread(struct pt_regs *regs, unsig
- 	regs->cs		= __USER_CS;
- 	regs->ip		= new_ip;
- 	regs->sp		= new_sp;
-+	preempt_disable();
-+	load_user_cs_desc(smp_processor_id(), current->mm);
-+	preempt_enable();
-+
- 	/*
- 	 * Free the old FP and other extended state
- 	 */
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index e8abb38..1483fc7 100644
+index ffee2f7..c14817b 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -1041,7 +1041,13 @@ extern int install_special_mapping(struct mm_struct *mm,
+@@ -1105,7 +1105,13 @@ extern int install_special_mapping(struct mm_struct *mm,
  				   unsigned long addr, unsigned long len,
  				   unsigned long flags, struct page **pages);
  
@@ -493,10 +600,10 @@
  extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
  	unsigned long len, unsigned long prot,
 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index bfee0bd..30ec32f 100644
+index fe82547..8007dbf 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
-@@ -166,6 +166,9 @@ struct mm_struct {
+@@ -177,6 +177,9 @@ struct mm_struct {
  	unsigned long (*get_unmapped_area) (struct file *filp,
  				unsigned long addr, unsigned long len,
  				unsigned long pgoff, unsigned long flags);
@@ -507,10 +614,10 @@
  	unsigned long mmap_base;		/* base of mmap area */
  	unsigned long task_size;		/* size of task vm space */
 diff --git a/include/linux/resource.h b/include/linux/resource.h
-index ae13db7..14757af 100644
+index 40fc7e6..68c2549 100644
 --- a/include/linux/resource.h
 +++ b/include/linux/resource.h
-@@ -54,8 +54,11 @@ struct rlimit {
+@@ -55,8 +55,11 @@ struct rlimit {
  /*
   * Limit the stack by to some sane default: root can always
   * increase this limit if needed..  8MB seems reasonable.
@@ -522,12 +629,12 @@
 +#define EXEC_STACK_BIAS	(2*1024*1024)
  
  /*
-  * GPG wants 32kB of mlocked memory, to make sure pass phrases
+  * GPG2 wants 64kB of mlocked memory, to make sure pass phrases
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 00e1441..c1c8a7d 100644
+index 55e30d1..d400ab0 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -98,6 +98,9 @@ struct futex_pi_state;
+@@ -97,6 +97,9 @@ struct futex_pi_state;
  struct robust_list_head;
  struct bio;
  
@@ -537,7 +644,7 @@
  /*
   * List of flags we want to share for kernel threads,
   * if only because they are not used by them anyway.
-@@ -342,6 +345,10 @@ extern int sysctl_max_map_count;
+@@ -345,6 +348,10 @@ extern int sysctl_max_map_count;
  extern unsigned long
  arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
  		       unsigned long, unsigned long);
@@ -549,11 +656,11 @@
  arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
  			  unsigned long len, unsigned long pgoff,
 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index d41ef6b..5304704 100644
+index 3d56fe7..b512845 100644
 --- a/kernel/sysctl.c
 +++ b/kernel/sysctl.c
-@@ -83,6 +83,26 @@ extern int maps_protect;
- extern int sysctl_stat_interval;
+@@ -82,6 +82,26 @@ extern int percpu_pagelist_fraction;
+ extern int compat_log;
  extern int latencytop_enabled;
  extern int sysctl_nr_open_min, sysctl_nr_open_max;
 +
@@ -579,7 +686,7 @@
  #ifdef CONFIG_RCU_TORTURE_TEST
  extern int rcutorture_runnable;
  #endif /* #ifdef CONFIG_RCU_TORTURE_TEST */
-@@ -383,6 +403,14 @@ static struct ctl_table kern_table[] = {
+@@ -373,6 +393,14 @@ static struct ctl_table kern_table[] = {
  		.proc_handler	= &proc_dointvec,
  	},
  	{
@@ -595,7 +702,7 @@
  		.procname	= "core_uses_pid",
  		.data		= &core_uses_pid,
 diff --git a/mm/mmap.c b/mm/mmap.c
-index a32d28c..7634038 100644
+index d4855a6..0850042 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
 @@ -27,6 +27,7 @@
@@ -606,7 +713,7 @@
  
  #include <asm/uaccess.h>
  #include <asm/cacheflush.h>
-@@ -41,6 +41,18 @@
+@@ -43,6 +44,18 @@
  #define arch_rebalance_pgtables(addr, len)		(addr)
  #endif
  
@@ -625,7 +732,7 @@
  static void unmap_region(struct mm_struct *mm,
  		struct vm_area_struct *vma, struct vm_area_struct *prev,
  		unsigned long start, unsigned long end);
-@@ -377,6 +378,8 @@ static inline void
+@@ -391,6 +404,8 @@ static inline void
  __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma,
  		struct vm_area_struct *prev, struct rb_node *rb_parent)
  {
@@ -634,7 +741,7 @@
  	if (prev) {
  		vma->vm_next = prev->vm_next;
  		prev->vm_next = vma;
-@@ -480,6 +483,8 @@ __vma_unlink(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -494,6 +509,8 @@ __vma_unlink(struct mm_struct *mm, struct vm_area_struct *vma,
  	rb_erase(&vma->vm_rb, &mm->mm_rb);
  	if (mm->mmap_cache == vma)
  		mm->mmap_cache = prev;
@@ -643,7 +750,7 @@
  }
  
  /*
-@@ -785,6 +790,8 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
+@@ -800,6 +817,8 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
  		} else					/* cases 2, 5, 7 */
  			vma_adjust(prev, prev->vm_start,
  				end, prev->vm_pgoff, NULL);
@@ -652,7 +759,7 @@
  		return prev;
  	}
  
-@@ -940,7 +947,8 @@ unsigned long do_mmap_pgoff(struct file * file, unsigned long addr,
+@@ -955,7 +974,8 @@ unsigned long do_mmap_pgoff(struct file * file, unsigned long addr,
  	/* Obtain the address to map to. we verify (or select) it and ensure
  	 * that it represents a valid section of the address space.
  	 */
@@ -662,7 +769,7 @@
  	if (addr & ~PAGE_MASK)
  		return addr;
  
-@@ -1410,13 +1418,17 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
+@@ -1440,13 +1460,17 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
  }
  
  unsigned long
@@ -683,7 +790,7 @@
  	if (file && file->f_op && file->f_op->get_unmapped_area)
  		get_area = file->f_op->get_unmapped_area;
  	addr = get_area(file, addr, len, pgoff, flags);
-@@ -1430,8 +1442,74 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
+@@ -1460,8 +1484,74 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
  
  	return arch_rebalance_pgtables(addr, len);
  }
@@ -759,7 +866,7 @@
  
  /* Look up the first VMA which satisfies  addr < vm_end,  NULL if none. */
  struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr)
-@@ -1506,6 +1585,14 @@ out:
+@@ -1536,6 +1626,14 @@ out:
  	return prev ? prev->vm_next : vma;
  }
  
@@ -774,7 +881,7 @@
  /*
   * Verify that the stack growth is acceptable and
   * update accounting. This is shared with both the
-@@ -1522,7 +1609,7 @@ static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, un
+@@ -1552,7 +1650,7 @@ static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, un
  		return -ENOMEM;
  
  	/* Stack limit test */
@@ -783,7 +890,7 @@
  		return -ENOMEM;
  
  	/* mlock limit tests */
-@@ -1826,10 +1913,14 @@ int split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -1862,10 +1960,14 @@ int split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
  
@@ -800,7 +907,7 @@
  		vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
  
  	return 0;
-@@ -2173,6 +2173,7 @@ void exit_mmap(struct mm_struct *mm)
+@@ -2109,6 +2211,7 @@ void exit_mmap(struct mm_struct *mm)
  	vm_unacct_memory(nr_accounted);
  	free_pgtables(tlb, vma, FIRST_USER_ADDRESS, 0);
  	tlb_finish_mmu(tlb, 0, end);
@@ -809,11 +916,11 @@
  	/*
  	 * Walk the list again, actually closing and freeing it,
 diff --git a/mm/mprotect.c b/mm/mprotect.c
-index 4de5468..6d822ad 100644
+index fded06f..cdfcbd2 100644
 --- a/mm/mprotect.c
 +++ b/mm/mprotect.c
-@@ -23,8 +23,15 @@
- #include <linux/swapops.h>
+@@ -24,8 +24,15 @@
+ #include <linux/mmu_notifier.h>
  #include <asm/uaccess.h>
  #include <asm/pgtable.h>
 +#include <asm/pgalloc.h>
@@ -828,7 +935,7 @@
  
  #ifndef pgprot_modify
  static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
-@@ -134,7 +138,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -140,7 +147,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
  	struct mm_struct *mm = vma->vm_mm;
  	unsigned long oldflags = vma->vm_flags;
  	long nrpages = (end - start) >> PAGE_SHIFT;
@@ -837,7 +944,7 @@
  	pgoff_t pgoff;
  	int error;
  	int dirty_accountable = 0;
-@@ -211,6 +211,9 @@ success:
+@@ -204,6 +211,9 @@ success:
  		dirty_accountable = 1;
  	}
  
@@ -848,10 +955,10 @@
  	if (is_vm_hugetlb_page(vma))
  		hugetlb_change_protection(vma, start, end, vma->vm_page_prot);
 diff --git a/mm/mremap.c b/mm/mremap.c
-index 08e3c7f..101f885 100644
+index 58a2908..5bb50e6 100644
 --- a/mm/mremap.c
 +++ b/mm/mremap.c
-@@ -392,8 +392,8 @@ unsigned long do_mremap(unsigned long addr,
+@@ -400,8 +400,8 @@ unsigned long do_mremap(unsigned long addr,
  			if (vma->vm_flags & VM_MAYSHARE)
  				map_flags |= MAP_SHARED;
  

linux-2.6-firewire-git-pending.patch:

Index: linux-2.6-firewire-git-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-firewire-git-pending.patch,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- linux-2.6-firewire-git-pending.patch	18 Dec 2008 22:13:53 -0000	1.33
+++ linux-2.6-firewire-git-pending.patch	12 Jan 2009 19:51:29 -0000	1.34
@@ -3,128 +3,3 @@
 # tree (and/or in by the time your read this), which we want...
 #
 
-Date: Fri, 26 Sep 2008 16:35:45 -0400
-From: Jay Fenlason <fenlason at redhat.com>
-Subject: [Patch] fix two resource allocation bugs in fw-cdev.c
-
-Bug #1: the resource_handle used to number resources will eventually
-wrap, potentially resulting in two resources having the same handle.
-This will lead to a system crash when the wrong resource is freed.
-
-A better fix for this bug would be to use the idr functions rather
-than keeping a linked list of resources.  I will include that in a
-future patch.
-
-Bug #2: the release_client_resource() function does not check the type
-of the resource it is being asked to free.  Because the handle numbers
-can come directly from userspace, a malicious or buggy program may
-free resources that it shouldn't, possibly causing a program crash.
-
-Signed-off-by: Jay Fenlason <fenlason at redhat.com>
-
---
-
- fw-cdev.c |   32 +++++++++++++++++++++++++-------
- 1 file changed, 25 insertions(+), 7 deletions(-)
-
-diff -rup linux-2.6/drivers/firewire/fw-cdev.c linux-2.6.firewire/drivers/firewire/fw-cdev.c
---- linux-2.6/drivers/firewire/fw-cdev.c	2008-09-22 14:56:02.000000000 -0400
-+++ linux-2.6.firewire/drivers/firewire/fw-cdev.c	2008-09-25 16:13:00.000000000 -0400
-@@ -77,7 +77,6 @@ struct client {
- 	u32 version;
- 	struct fw_device *device;
- 	spinlock_t lock;
--	u32 resource_handle;
- 	struct list_head resource_list;
- 	struct list_head event_list;
- 	wait_queue_head_t wait;
-@@ -321,13 +320,32 @@ add_client_resource(struct client *clien
- 	unsigned long flags;
- 
- 	spin_lock_irqsave(&client->lock, flags);
--	list_add_tail(&resource->link, &client->resource_list);
--	resource->handle = client->resource_handle++;
-+	if (list_empty(&client->resource_list)
-+	    || list_first_entry(&client->resource_list,
-+				struct client_resource,
-+				link)->handle > 0) {
-+		resource->handle = 0;
-+		list_add(&resource->link, &client->resource_list);
-+	} else {
-+		struct client_resource *c_tmp, *c_tmp2;
-+
-+		c_tmp2 = NULL;
-+		list_for_each_entry(c_tmp, &client->resource_list,
-+				    link) {
-+			if (c_tmp2 && c_tmp->handle != c_tmp2->handle+1)
-+				break;
-+			c_tmp2 = c_tmp;
-+		}
-+		BUG_ON(c_tmp2 == NULL);
-+		resource->handle = c_tmp2->handle+1;
-+		list_add(&resource->link, &c_tmp2->link);
-+	}
- 	spin_unlock_irqrestore(&client->lock, flags);
- }
- 
- static int
- release_client_resource(struct client *client, u32 handle,
-+			void (*func)(struct client *client, struct client_resource *r),
- 			struct client_resource **resource)
- {
- 	struct client_resource *r;
-@@ -335,7 +353,7 @@ release_client_resource(struct client *c
- 
- 	spin_lock_irqsave(&client->lock, flags);
- 	list_for_each_entry(r, &client->resource_list, link) {
--		if (r->handle == handle) {
-+		if (r->handle == handle && r->release == func) {
- 			list_del(&r->link);
- 			break;
- 		}
-@@ -555,7 +573,7 @@ static int ioctl_deallocate(struct clien
- {
- 	struct fw_cdev_deallocate *request = buffer;
- 
--	return release_client_resource(client, request->handle, NULL);
-+	return release_client_resource(client, request->handle, release_address_handler, NULL);
- }
- 
- static int ioctl_send_response(struct client *client, void *buffer)
-@@ -564,7 +582,7 @@ static int ioctl_send_response(struct cl
- 	struct client_resource *resource;
- 	struct request *r;
- 
--	if (release_client_resource(client, request->handle, &resource) < 0)
-+	if (release_client_resource(client, request->handle, release_request, &resource) < 0)
- 		return -EINVAL;
- 	r = container_of(resource, struct request, resource);
- 	if (request->length < r->length)
-@@ -646,7 +664,7 @@ static int ioctl_remove_descriptor(struc
- {
- 	struct fw_cdev_remove_descriptor *request = buffer;
- 
--	return release_client_resource(client, request->handle, NULL);
-+	return release_client_resource(client, request->handle, release_descriptor, NULL);
- }
- 
- static void
-
-----------------------
-Date: Wed, 22 Oct 2008 15:59:42 -0400
-From: Jay Fenlason <fenlason at redhat.com>
-Subject: firewire: typo in comment
-
-Signed-off-by: Jay Fenlason <fenlason at redhat.com>
-diff -upr linux-2.6/drivers/firewire/fw-card.c linux-2.6.fw/drivers/firewire/fw-card.c
---- linux-2.6/drivers/firewire/fw-card.c	2008-10-07 11:26:15.000000000 -0400
-+++ linux-2.6.fw/drivers/firewire/fw-card.c	2008-10-22 14:40:14.000000000 -0400
-@@ -76,7 +76,7 @@ generate_config_rom(struct fw_card *card
- 	 * controller, block reads to the config rom accesses the host
- 	 * memory, but quadlet read access the hardware bus info block
- 	 * registers.  That's just crack, but it means we should make
--	 * sure the contents of bus info block in host memory mathces
-+	 * sure the contents of bus info block in host memory matches
- 	 * the version stored in the OHCI registers.
- 	 */
- 

linux-2.6-hdpvr.patch:

Index: linux-2.6-hdpvr.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-hdpvr.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-hdpvr.patch	6 Oct 2008 17:11:35 -0000	1.1
+++ linux-2.6-hdpvr.patch	12 Jan 2009 19:51:29 -0000	1.2
@@ -1,22 +1,8 @@
- drivers/media/video/Kconfig               |    2 +
- drivers/media/video/Makefile              |    2 +
- drivers/media/video/hdpvr/Kconfig         |   10 +
- drivers/media/video/hdpvr/Makefile        |    7 +
- drivers/media/video/hdpvr/hdpvr-control.c |  212 +++++
- drivers/media/video/hdpvr/hdpvr-core.c    |  455 +++++++++++
- drivers/media/video/hdpvr/hdpvr-i2c.c     |  145 ++++
- drivers/media/video/hdpvr/hdpvr-video.c   | 1258 +++++++++++++++++++++++++++++
- drivers/media/video/hdpvr/hdpvr.h         |  324 ++++++++
- drivers/media/video/v4l2-common.c         |    4 +
- include/linux/i2c-id.h                    |    1 +
- include/linux/videodev2.h                 |    7 +-
- 12 files changed, 2425 insertions(+), 2 deletions(-)
-
 diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
-index 3e9e0dc..578402f 100644
+index 47102c2..0e279dd 100644
 --- a/drivers/media/video/Kconfig
 +++ b/drivers/media/video/Kconfig
-@@ -801,6 +801,8 @@ source "drivers/media/video/gspca/Kconfig"
+@@ -781,6 +781,8 @@ source "drivers/media/video/gspca/Kconfig"
  
  source "drivers/media/video/pvrusb2/Kconfig"
  
@@ -26,10 +12,10 @@
  
  source "drivers/media/video/usbvision/Kconfig"
 diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
-index ef7c8d3..449ae8b 100644
+index 16962f3..4331a50 100644
 --- a/drivers/media/video/Makefile
 +++ b/drivers/media/video/Makefile
-@@ -121,6 +121,8 @@ obj-$(CONFIG_USB_PWC)           += pwc/
+@@ -115,6 +115,8 @@ obj-$(CONFIG_USB_PWC)           += pwc/
  obj-$(CONFIG_USB_ZC0301)        += zc0301/
  obj-$(CONFIG_USB_GSPCA)         += gspca/
  
@@ -2492,18 +2478,18 @@
 +void print_bytes(char *string, unsigned char *buf, size_t len);
 +#endif
 diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
-index 88ca131..8dfaa7d 100644
+index 846763d..34eca15 100644
 --- a/drivers/media/video/v4l2-common.c
 +++ b/drivers/media/video/v4l2-common.c
-@@ -354,6 +354,7 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
- 	case V4L2_CID_CONTRAST: 	name = "Contrast"; break;
- 	case V4L2_CID_SATURATION: 	name = "Saturation"; break;
- 	case V4L2_CID_HUE: 		name = "Hue"; break;
-+	case V4L2_CID_SHARPNESS: 	name = "Sharpness"; break;
+@@ -374,6 +374,7 @@ const char *v4l2_ctrl_get_name(u32 id)
+ 	case V4L2_CID_CONTRAST: 	return "Contrast";
+ 	case V4L2_CID_SATURATION: 	return "Saturation";
+ 	case V4L2_CID_HUE: 		return "Hue";
++	case V4L2_CID_SHARPNESS: 	return "Sharpness";
  
  	/* MPEG controls */
- 	case V4L2_CID_MPEG_CLASS: 		name = "MPEG Encoder Controls"; break;
-@@ -445,6 +446,7 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
+ 	case V4L2_CID_MPEG_CLASS: 		return "MPEG Encoder Controls";
+@@ -480,6 +481,7 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
  	case V4L2_CID_CONTRAST:
  	case V4L2_CID_SATURATION:
  	case V4L2_CID_HUE:
@@ -2511,7 +2497,7 @@
  		qctrl->flags |= V4L2_CTRL_FLAG_SLIDER;
  		break;
  	}
-@@ -483,6 +485,8 @@ int v4l2_ctrl_query_fill_std(struct v4l2_queryctrl *qctrl)
+@@ -518,6 +520,8 @@ int v4l2_ctrl_query_fill_std(struct v4l2_queryctrl *qctrl)
  		return v4l2_ctrl_query_fill(qctrl, 0, 127, 1, 64);
  	case V4L2_CID_HUE:
  		return v4l2_ctrl_query_fill(qctrl, -128, 127, 1, 0);
@@ -2521,10 +2507,10 @@
  	/* MPEG controls */
  	case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
 diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
-index bf34c5f..d0ec672 100644
+index 01d67ba..1a08b81 100644
 --- a/include/linux/i2c-id.h
 +++ b/include/linux/i2c-id.h
-@@ -111,6 +111,7 @@
+@@ -110,6 +110,7 @@
  #define I2C_HW_B_INTELFB	0x010021 /* intel framebuffer driver */
  #define I2C_HW_B_CX23885	0x010022 /* conexant 23885 based tv cards (bus1) */
  #define I2C_HW_B_AU0828		0x010023 /* auvitek au0828 usb bridge */
@@ -2532,28 +2518,3 @@
  
  /* --- PCF 8584 based algorithms					*/
  #define I2C_HW_P_ELEK		0x020002 /* Elektor ISA Bus inteface card */
-diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
-index 303d93f..f7b6bbc 100644
---- a/include/linux/videodev2.h
-+++ b/include/linux/videodev2.h
-@@ -910,6 +910,8 @@ enum v4l2_mpeg_audio_encoding {
- 	V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
- 	V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
- 	V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2,
-+	V4L2_MPEG_AUDIO_ENCODING_AAC     = 3,
-+	V4L2_MPEG_AUDIO_ENCODING_AC3     = 4,
- };
- #define V4L2_CID_MPEG_AUDIO_L1_BITRATE 		(V4L2_CID_MPEG_BASE+102)
- enum v4l2_mpeg_audio_l1_bitrate {
-@@ -992,8 +994,9 @@ enum v4l2_mpeg_audio_crc {
- /*  MPEG video */
- #define V4L2_CID_MPEG_VIDEO_ENCODING 		(V4L2_CID_MPEG_BASE+200)
- enum v4l2_mpeg_video_encoding {
--	V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
--	V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
-+	V4L2_MPEG_VIDEO_ENCODING_MPEG_1     = 0,
-+	V4L2_MPEG_VIDEO_ENCODING_MPEG_2     = 1,
-+	V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
- };
- #define V4L2_CID_MPEG_VIDEO_ASPECT 		(V4L2_CID_MPEG_BASE+201)
- enum v4l2_mpeg_video_aspect {

linux-2.6-netdev-atl2.patch:

Index: linux-2.6-netdev-atl2.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-netdev-atl2.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-netdev-atl2.patch	20 Jul 2008 21:36:08 -0000	1.2
+++ linux-2.6-netdev-atl2.patch	12 Jan 2009 19:51:29 -0000	1.3
@@ -1,12 +1,12 @@
-Index: linux-2.6.26.noarch/drivers/net/Kconfig
-===================================================================
---- linux-2.6.26.noarch.orig/drivers/net/Kconfig
-+++ linux-2.6.26.noarch/drivers/net/Kconfig
-@@ -2375,6 +2375,17 @@ config ATL1E
+diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
+index 231eeaf..9521c2e 100644
+--- a/drivers/net/Kconfig
++++ b/drivers/net/Kconfig
+@@ -2328,6 +2328,17 @@ config ATL1E
  	  To compile this driver as a module, choose M here.  The module
  	  will be called atl1e.
  
-+	config ATL2
++config ATL2
 +	tristate "Atheros L2 Fast Ethernet support (EXPERIMENTAL)"
 +	depends on PCI && EXPERIMENTAL
 +	select CRC32
@@ -17,32 +17,34 @@
 +	  To compile this driver as a module, choose M here.  The module
 +	  will be called atl2.
 +
- endif # NETDEV_1000
- 
- #
-Index: linux-2.6.26.noarch/drivers/net/Makefile
-===================================================================
---- linux-2.6.26.noarch.orig/drivers/net/Makefile
-+++ linux-2.6.26.noarch/drivers/net/Makefile
-@@ -17,6 +17,7 @@ obj-$(CONFIG_CAN) += can/
- obj-$(CONFIG_BONDING) += bonding/
+ config JME
+ 	tristate "JMicron(R) PCI-Express Gigabit Ethernet support"
+ 	depends on PCI
+diff --git a/drivers/net/Makefile b/drivers/net/Makefile
+index 017383a..8e12ec3 100644
+--- a/drivers/net/Makefile
++++ b/drivers/net/Makefile
+@@ -17,6 +17,7 @@ obj-$(CONFIG_BONDING) += bonding/
  obj-$(CONFIG_ATL1) += atlx/
+ obj-$(CONFIG_ATL2) += atlx/
  obj-$(CONFIG_ATL1E) += atl1e/
 +obj-$(CONFIG_ATL2) += atl2/
  obj-$(CONFIG_GIANFAR) += gianfar_driver.o
  obj-$(CONFIG_TEHUTI) += tehuti.o
- 
-Index: linux-2.6.26.noarch/drivers/net/atl2/Makefile
-===================================================================
+ obj-$(CONFIG_ENIC) += enic/
+diff --git a/drivers/net/atl2/Makefile b/drivers/net/atl2/Makefile
+new file mode 100644
+index 0000000..2e451e9
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/Makefile
++++ b/drivers/net/atl2/Makefile
 @@ -0,0 +1,2 @@
 +obj-$(CONFIG_ATL2)	+= atl2.o
 +atl2-y			+= atl2_main.o atl2_hw.o atl2_ethtool.o atl2_param.o
-Index: linux-2.6.26.noarch/drivers/net/atl2/atl2.h
-===================================================================
+diff --git a/drivers/net/atl2/atl2.h b/drivers/net/atl2/atl2.h
+new file mode 100644
+index 0000000..dbab2e7
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/atl2.h
++++ b/drivers/net/atl2/atl2.h
 @@ -0,0 +1,120 @@
 +/* atl2.h -- atl2 driver definitions
 + *
@@ -164,10 +166,11 @@
 +};
 +
 +#endif /* _ATL2_H_ */
-Index: linux-2.6.26.noarch/drivers/net/atl2/atl2_ethtool.c
-===================================================================
+diff --git a/drivers/net/atl2/atl2_ethtool.c b/drivers/net/atl2/atl2_ethtool.c
+new file mode 100644
+index 0000000..0466b4a
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/atl2_ethtool.c
++++ b/drivers/net/atl2/atl2_ethtool.c
 @@ -0,0 +1,416 @@
 +/* atl2_ethtool.c -- atl2 ethtool support
 + *
@@ -585,10 +588,11 @@
 +{
 +	SET_ETHTOOL_OPS(netdev, &atl2_ethtool_ops);
 +}
-Index: linux-2.6.26.noarch/drivers/net/atl2/atl2_hw.c
-===================================================================
+diff --git a/drivers/net/atl2/atl2_hw.c b/drivers/net/atl2/atl2_hw.c
+new file mode 100644
+index 0000000..b8ac641
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/atl2_hw.c
++++ b/drivers/net/atl2/atl2_hw.c
 @@ -0,0 +1,760 @@
 +/* atl2_hw.c -- atl2 hardware control functions
 + *
@@ -1350,10 +1354,11 @@
 +	atl2_write_phy_reg(hw, MII_DBG_ADDR, 3);
 +	atl2_write_phy_reg(hw, MII_DBG_DATA, 0);
 +}
-Index: linux-2.6.26.noarch/drivers/net/atl2/atl2_hw.h
-===================================================================
+diff --git a/drivers/net/atl2/atl2_hw.h b/drivers/net/atl2/atl2_hw.h
+new file mode 100644
+index 0000000..e8f5b97
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/atl2_hw.h
++++ b/drivers/net/atl2/atl2_hw.h
 @@ -0,0 +1,758 @@
 +/* atl2_hw.h -- atl2 hardware definitions
 + *
@@ -2113,10 +2118,11 @@
 +};
 +
 +#endif /* _ATL2_HW_H_ */
-Index: linux-2.6.26.noarch/drivers/net/atl2/atl2_main.c
-===================================================================
+diff --git a/drivers/net/atl2/atl2_main.c b/drivers/net/atl2/atl2_main.c
+new file mode 100644
+index 0000000..f1d1810
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/atl2_main.c
++++ b/drivers/net/atl2/atl2_main.c
 @@ -0,0 +1,1851 @@
 +/* atl2_main.c -- atl2 driver main functions
 + *
@@ -3969,10 +3975,11 @@
 +	struct atl2_adapter *adapter = hw->back;
 +	pci_write_config_word(adapter->pdev, reg, *value);
 +}
-Index: linux-2.6.26.noarch/drivers/net/atl2/atl2_osdep.h
-===================================================================
+diff --git a/drivers/net/atl2/atl2_osdep.h b/drivers/net/atl2/atl2_osdep.h
+new file mode 100644
+index 0000000..b4cf080
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/atl2_osdep.h
++++ b/drivers/net/atl2/atl2_osdep.h
 @@ -0,0 +1,72 @@
 +/* atl2_osdep.h -- atl2 compat cruft
 + *
@@ -4046,10 +4053,11 @@
 +	(readl(((a)->hw_addr + reg) + ((offset) << 2)))
 +
 +#endif /* _ATL2_OSDEP_H_ */
-Index: linux-2.6.26.noarch/drivers/net/atl2/atl2_param.c
-===================================================================
+diff --git a/drivers/net/atl2/atl2_param.c b/drivers/net/atl2/atl2_param.c
+new file mode 100644
+index 0000000..b26678c
 --- /dev/null
-+++ linux-2.6.26.noarch/drivers/net/atl2/atl2_param.c
++++ b/drivers/net/atl2/atl2_param.c
 @@ -0,0 +1,317 @@
 +/* atl2_param.c -- atl2 parameter processing
 + *

linux-2.6-pciehp-update.patch:

Index: linux-2.6-pciehp-update.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-pciehp-update.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- linux-2.6-pciehp-update.patch	8 Dec 2008 07:38:22 -0000	1.6
+++ linux-2.6-pciehp-update.patch	12 Jan 2009 19:51:29 -0000	1.7
@@ -1,7 +1,23 @@
-diff -ur vanilla-2.6.27/drivers/pci/hotplug/pciehp_core.c linux-2.6.27.noarch/drivers/pci/hotplug/pciehp_core.c
---- vanilla-2.6.27/drivers/pci/hotplug/pciehp_core.c	2008-10-09 23:13:53.000000000 +0100
-+++ linux-2.6.27.noarch/drivers/pci/hotplug/pciehp_core.c	2008-11-04 13:53:53.000000000 +0000
-@@ -41,6 +41,7 @@
+diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
+index b2801a7..c9f18f9 100644
+--- a/drivers/pci/hotplug/pciehp.h
++++ b/drivers/pci/hotplug/pciehp.h
+@@ -224,6 +224,10 @@ static inline int pciehp_get_hp_hw_control_from_firmware(struct pci_dev *dev)
+ {
+ 	u32 flags = (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL |
+ 		     OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL);
++	if (pciehp_force) {
++		dev_info(&dev->dev, "Bypassing BIOS check for pciehp\n");
++		return 0;
++	}
+ 	return acpi_get_hp_hw_control_from_firmware(dev, flags);
+ }
+ 
+diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
+index 39cf248..ab6b016 100644
+--- a/drivers/pci/hotplug/pciehp_core.c
++++ b/drivers/pci/hotplug/pciehp_core.c
+@@ -41,6 +41,7 @@ int pciehp_debug;
  int pciehp_poll_mode;
  int pciehp_poll_time;
  int pciehp_force;
@@ -9,7 +25,7 @@
  struct workqueue_struct *pciehp_wq;
  
  #define DRIVER_VERSION	"0.4"
-@@ -50,15 +51,18 @@
+@@ -50,15 +51,18 @@ struct workqueue_struct *pciehp_wq;
  MODULE_AUTHOR(DRIVER_AUTHOR);
  MODULE_DESCRIPTION(DRIVER_DESC);
  MODULE_LICENSE("GPL");
@@ -28,7 +44,7 @@
  
  #define PCIE_MODULE_NAME "pciehp"
  
-@@ -85,6 +89,13 @@
+@@ -85,6 +89,13 @@ static struct hotplug_slot_ops pciehp_hotplug_slot_ops = {
    	.get_cur_bus_speed =	get_cur_bus_speed,
  };
  
@@ -42,7 +58,7 @@
  /*
   * Check the status of the Electro Mechanical Interlock (EMI)
   */
-@@ -208,7 +219,11 @@
+@@ -212,7 +223,11 @@ static int init_slots(struct controller *ctrl)
  		hotplug_slot->info = info;
  		hotplug_slot->private = slot;
  		hotplug_slot->release = &release_slot;
@@ -55,39 +71,34 @@
  		slot->hotplug_slot = hotplug_slot;
  		snprintf(name, SLOT_NAME_SIZE, "%u", slot->number);
  
-@@ -401,10 +416,7 @@
+@@ -407,11 +422,7 @@ static int pciehp_probe(struct pcie_device *dev, const struct pcie_port_service_
  	u8 value;
  	struct pci_dev *pdev = dev->port;
  
 -	if (pciehp_force)
--		dbg("Bypassing BIOS check for pciehp use on %s\n",
--		    pci_name(pdev));
+-		dev_info(&dev->device,
+-			 "Bypassing BIOS check for pciehp use on %s\n",
+-			 pci_name(pdev));
 -	else if (pciehp_get_hp_hw_control_from_firmware(pdev))
 +	if (!pciehp_passive && pciehp_get_hp_hw_control_from_firmware(pdev))
  		goto err_out_none;
  
  	ctrl = pcie_init(dev);
-@@ -429,11 +441,9 @@
+@@ -436,7 +447,7 @@ static int pciehp_probe(struct pcie_device *dev, const struct pcie_port_service_
  	t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset);
- 
- 	t_slot->hpc_ops->get_adapter_status(t_slot, &value); /* Check if slot is occupied */
--	if (value && pciehp_force) {
--		rc = pciehp_enable_slot(t_slot);
--		if (rc)	/* -ENODEV: shouldn't happen, but deal with it */
--			value = 0;
--	}
-+	if (value && (pciehp_force || pciehp_passive))
-+		pciehp_enable_slot(t_slot);
-+
- 	if ((POWER_CTRL(ctrl)) && !value) {
- 		rc = t_slot->hpc_ops->power_off_slot(t_slot); /* Power off slot if not occupied*/
- 		if (rc)
-@@ -467,8 +477,11 @@
+ 	t_slot->hpc_ops->get_adapter_status(t_slot, &value);
+ 	if (value) {
+-		if (pciehp_force)
++		if (pciehp_force || pciehp_passive)
+ 			pciehp_enable_slot(t_slot);
+ 	} else {
+ 		/* Power off slot if not occupied */
+@@ -474,8 +485,11 @@ static int pciehp_suspend (struct pcie_device *dev, pm_message_t state)
  
  static int pciehp_resume (struct pcie_device *dev)
  {
 +	struct pci_dev *pdev = dev->port;
- 	printk("%s ENTRY\n", __func__);
+ 	dev_info(&dev->device, "%s ENTRY\n", __func__);
 -	if (pciehp_force) {
 +
 +	if (pciehp_force || (pciehp_passive &&
@@ -95,10 +106,11 @@
  		struct controller *ctrl = get_service_data(dev);
  		struct slot *t_slot;
  		u8 status;
-diff -ur vanilla-2.6.27/drivers/pci/hotplug/pciehp_ctrl.c linux-2.6.27.noarch/drivers/pci/hotplug/pciehp_ctrl.c
---- vanilla-2.6.27/drivers/pci/hotplug/pciehp_ctrl.c	2008-10-09 23:13:53.000000000 +0100
-+++ linux-2.6.27.noarch/drivers/pci/hotplug/pciehp_ctrl.c	2008-11-04 15:14:53.000000000 +0000
-@@ -179,7 +179,8 @@
+diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c
+index fead63c..12640bd 100644
+--- a/drivers/pci/hotplug/pciehp_ctrl.c
++++ b/drivers/pci/hotplug/pciehp_ctrl.c
+@@ -185,7 +185,8 @@ static void set_slot_off(struct controller *ctrl, struct slot * pslot)
  	 * before taking any action that relies on power having been
  	 * removed from the slot/adapter.
  	 */
@@ -108,17 +120,7 @@
  
  	if (PWR_LED(ctrl))
  		pslot->hpc_ops->green_led_off(pslot);
-@@ -219,9 +220,6 @@
- 	if (PWR_LED(ctrl))
- 		p_slot->hpc_ops->green_led_blink(p_slot);
- 
--	/* Wait for ~1 second */
--	msleep(1000);
--
- 	/* Check link training status */
- 	retval = p_slot->hpc_ops->check_lnk_status(ctrl);
- 	if (retval) {
-@@ -284,16 +282,16 @@
+@@ -288,16 +289,16 @@ static int remove_board(struct slot *p_slot)
  		}
  	}
  
@@ -143,123 +145,3 @@
  
  	return 0;
  }
-diff -ur vanilla-2.6.27/drivers/pci/hotplug/pciehp.h linux-2.6.27.noarch/drivers/pci/hotplug/pciehp.h
---- vanilla-2.6.27/drivers/pci/hotplug/pciehp.h	2008-10-09 23:13:53.000000000 +0100
-+++ linux-2.6.27.noarch/drivers/pci/hotplug/pciehp.h	2008-11-04 15:14:53.000000000 +0000
-@@ -98,6 +98,7 @@
- 	struct timer_list poll_timer;
- 	int cmd_busy;
- 	unsigned int no_cmd_complete:1;
-+	unsigned int link_active_reporting:1;
- };
- 
- #define INT_BUTTON_IGNORE		0
-@@ -206,6 +207,10 @@
- {
- 	u32 flags = (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL |
- 		     OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL);
-+	if (pciehp_force) {
-+		dev_info(&dev->dev, "Bypassing BIOS check for pciehp\n");
-+		return 0;
-+	}
- 	return acpi_get_hp_hw_control_from_firmware(dev, flags);
- }
- 
-diff -ur vanilla-2.6.27/drivers/pci/hotplug/pciehp_hpc.c linux-2.6.27.noarch/drivers/pci/hotplug/pciehp_hpc.c
---- vanilla-2.6.27/drivers/pci/hotplug/pciehp_hpc.c	2008-10-09 23:13:53.000000000 +0100
-+++ linux-2.6.27.noarch/drivers/pci/hotplug/pciehp_hpc.c	2008-11-04 15:17:48.000000000 +0000
-@@ -125,6 +125,7 @@
- /* Field definitions in Link Capabilities Register */
- #define MAX_LNK_SPEED		0x000F
- #define MAX_LNK_WIDTH		0x03F0
-+#define LINK_ACTIVE_REPORTING	0x00100000
- 
- /* Link Width Encoding */
- #define LNK_X1		0x01
-@@ -141,6 +142,7 @@
- #define LNK_TRN_ERR	0x0400
- #define	LNK_TRN		0x0800
- #define SLOT_CLK_CONF	0x1000
-+#define LINK_ACTIVE	0x2000
- 
- /* Field definitions in Slot Capabilities Register */
- #define ATTN_BUTTN_PRSN	0x00000001
-@@ -363,11 +365,52 @@
- 	return retval;
- }
- 
-+static inline int check_link_active(struct controller *ctrl)
-+{
-+	u16 link_status;
-+
-+	if (pciehp_readw(ctrl, LNKSTATUS, &link_status))
-+		return 0;
-+	return !!(link_status & LINK_ACTIVE);
-+}
-+
-+static void pcie_wait_link_active(struct controller *ctrl)
-+{
-+	int timeout = 1000;
-+
-+	if (check_link_active(ctrl))
-+		return;
-+	while (timeout > 0) {
-+		msleep(10);
-+		timeout -= 10;
-+		if (check_link_active(ctrl))
-+			return;
-+	}
-+	dbg("Data Link Layer Link Active not set in 1000 msec\n");
-+}
-+
- static int hpc_check_lnk_status(struct controller *ctrl)
- {
- 	u16 lnk_status;
- 	int retval = 0;
- 
-+        /*
-+         * Data Link Layer Link Active Reporting must be capable for
-+         * hot-plug capable downstream port. But old controller might
-+         * not implement it. In this case, we wait for 1000 ms.
-+         */
-+        if (ctrl->link_active_reporting){
-+                /* Wait for Data Link Layer Link Active bit to be set */
-+                pcie_wait_link_active(ctrl);
-+                /*
-+                 * We must wait for 100 ms after the Data Link Layer
-+                 * Link Active bit reads 1b before initiating a
-+                 * configuration access to the hot added device.
-+                 */
-+                msleep(100);
-+        } else
-+                msleep(1000);
-+
- 	retval = pciehp_readw(ctrl, LNKSTATUS, &lnk_status);
- 	if (retval) {
- 		err("%s: Cannot read LNKSTATUS register\n", __func__);
-@@ -1104,7 +1147,7 @@
- struct controller *pcie_init(struct pcie_device *dev)
- {
- 	struct controller *ctrl;
--	u32 slot_cap;
-+	u32 slot_cap, link_cap;
- 	struct pci_dev *pdev = dev->port;
- 
- 	ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
-@@ -1144,6 +1187,16 @@
- 	    !(POWER_CTRL(ctrl) | ATTN_LED(ctrl) | PWR_LED(ctrl) | EMI(ctrl)))
- 	    ctrl->no_cmd_complete = 1;
- 
-+        /* Check if Data Link Layer Link Active Reporting is implemented */
-+        if (pciehp_readl(ctrl, LNKCAP, &link_cap)) {
-+                err("%s: Cannot read LNKCAP register\n", __func__);
-+                goto abort_ctrl;
-+        }
-+        if (link_cap & LINK_ACTIVE_REPORTING) {
-+                dbg("Link Active Reporting supported\n");
-+                ctrl->link_active_reporting = 1;
-+        }
-+
- 	/* Clear all remaining event bits in Slot Status register */
- 	if (pciehp_writew(ctrl, SLOTSTATUS, 0x1f))
- 		goto abort_ctrl;

linux-2.6-silence-noise.patch:

Index: linux-2.6-silence-noise.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-silence-noise.patch,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- linux-2.6-silence-noise.patch	25 Sep 2008 20:36:21 -0000	1.21
+++ linux-2.6-silence-noise.patch	12 Jan 2009 19:51:30 -0000	1.22
@@ -41,3 +41,26 @@
 -- 
 1.6.0.1
 
+Socket fuzzers like sfuzz will trigger this printk a lot, even though it's
+ratelimited. It isn't particularly useful, so just remove it.
+
+Signed-off-by: Dave Jones <davej at redhat.com>
+
+--- linux-2.6.27.noarch/net/can/af_can.c~	2008-12-11 16:53:48.000000000 -0500
++++ linux-2.6.27.noarch/net/can/af_can.c	2008-12-11 16:54:42.000000000 -0500
+@@ -134,13 +134,9 @@ static int can_create(struct net *net, s
+ 		err = request_module("can-proto-%d", protocol);
+ 
+ 		/*
+-		 * In case of error we only print a message but don't
+-		 * return the error code immediately.  Below we will
+-		 * return -EPROTONOSUPPORT
++		 * In case of error we don't return the error code immediately.
++		 * Below we will return -EPROTONOSUPPORT
+ 		 */
+-		if (err && printk_ratelimit())
+-			printk(KERN_ERR "can: request_module "
+-			       "(can-proto-%d) failed.\n", protocol);
+ 	}
+ #endif
+ 

linux-2.6-squashfs.patch:

Index: linux-2.6-squashfs.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-squashfs.patch,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- linux-2.6-squashfs.patch	30 Sep 2008 19:20:33 -0000	1.31
+++ linux-2.6-squashfs.patch	12 Jan 2009 19:51:30 -0000	1.32
@@ -1,7 +1,8 @@
-diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/Kconfig linux-2.6.27-rc4-squashfs3.4/fs/Kconfig
---- linux-2.6.27-rc4/fs/Kconfig	2008-08-11 15:20:41.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/fs/Kconfig	2008-08-19 18:31:56.000000000 +0100
-@@ -1348,6 +1348,56 @@ config CRAMFS
+diff --git a/fs/Kconfig b/fs/Kconfig
+index 522469a..b3ecd03 100644
+--- a/fs/Kconfig
++++ b/fs/Kconfig
+@@ -931,6 +931,56 @@ config CRAMFS
  
  	  If unsure, say N.
  
@@ -58,10 +59,11 @@
  config VXFS_FS
  	tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
  	depends on BLOCK
-diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/Makefile linux-2.6.27-rc4-squashfs3.4/fs/Makefile
---- linux-2.6.27-rc4/fs/Makefile	2008-08-11 15:20:41.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/fs/Makefile	2008-08-19 18:31:56.000000000 +0100
-@@ -74,6 +74,7 @@ obj-$(CONFIG_JBD)		+= jbd/
+diff --git a/fs/Makefile b/fs/Makefile
+index d9f8afe..c567180 100644
+--- a/fs/Makefile
++++ b/fs/Makefile
+@@ -76,6 +76,7 @@ obj-$(CONFIG_JBD)		+= jbd/
  obj-$(CONFIG_JBD2)		+= jbd2/
  obj-$(CONFIG_EXT2_FS)		+= ext2/
  obj-$(CONFIG_CRAMFS)		+= cramfs/
@@ -69,10 +71,25 @@
  obj-y				+= ramfs/
  obj-$(CONFIG_HUGETLBFS)		+= hugetlbfs/
  obj-$(CONFIG_CODA_FS)		+= coda/
-diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/inode.c linux-2.6.27-rc4-squashfs3.4/fs/squashfs/inode.c
---- linux-2.6.27-rc4/fs/squashfs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/inode.c	2008-08-26 08:25:23.000000000 +0100
-@@ -0,0 +1,2173 @@
+diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
+new file mode 100644
+index 0000000..1bc7b06
+--- /dev/null
++++ b/fs/squashfs/Makefile
+@@ -0,0 +1,7 @@
++#
++# Makefile for the linux squashfs routines.
++#
++
++obj-$(CONFIG_SQUASHFS) += squashfs.o
++squashfs-y += inode.o
++squashfs-y += squashfs2_0.o
+diff --git a/fs/squashfs/inode.c b/fs/squashfs/inode.c
+new file mode 100644
+index 0000000..335ba3e
+--- /dev/null
++++ b/fs/squashfs/inode.c
+@@ -0,0 +1,2158 @@
 +/*
 + * Squashfs - a compressed read only filesystem for Linux
 + *
@@ -714,29 +731,14 @@
 +{
 +	squashfs_inode_t inode;
 +	struct inode *i;
-+	struct dentry *dentry;
++	struct dentry *dentry = ERR_PTR(-ENOENT);
 +
 +	TRACE("Entered squashfs_export_iget\n");
 +
 +	inode = squashfs_inode_lookup(s, inode_number);
-+	if(inode == SQUASHFS_INVALID_BLK) {
-+		dentry = ERR_PTR(-ENOENT);
-+		goto failure;
-+	}
-+
-+	i = squashfs_iget(s, inode, inode_number);
-+	if(i == NULL) {
-+		dentry = ERR_PTR(-EACCES);
-+		goto failure;
-+	}
++	if (inode != SQUASHFS_INVALID_BLK)
++		dentry = d_obtain_alias(squashfs_iget(s, inode, inode_number));
 +
-+	dentry = d_alloc_anon(i);
-+	if (dentry == NULL) {
-+		iput(i);
-+		dentry = ERR_PTR(-ENOMEM);
-+	}
-+
-+failure:
 +	return dentry;
 +}
 +
@@ -2246,20 +2248,103 @@
 +MODULE_DESCRIPTION("squashfs 3.4, a compressed read-only filesystem");
 +MODULE_AUTHOR("Phillip Lougher <phillip at lougher.demon.co.uk>");
 +MODULE_LICENSE("GPL");
-diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/Makefile linux-2.6.27-rc4-squashfs3.4/fs/squashfs/Makefile
---- linux-2.6.27-rc4/fs/squashfs/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/Makefile	2008-08-19 18:31:56.000000000 +0100
-@@ -0,0 +1,7 @@
-+#
-+# Makefile for the linux squashfs routines.
-+#
+diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
+new file mode 100644
+index 0000000..4e11742
+--- /dev/null
++++ b/fs/squashfs/squashfs.h
+@@ -0,0 +1,86 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
++ * Phillip Lougher <phillip at lougher.demon.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * squashfs.h
++ */
 +
-+obj-$(CONFIG_SQUASHFS) += squashfs.o
-+squashfs-y += inode.o
-+squashfs-y += squashfs2_0.o
-diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/squashfs2_0.c linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs2_0.c
---- linux-2.6.27-rc4/fs/squashfs/squashfs2_0.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs2_0.c	2008-08-19 18:31:56.000000000 +0100
++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
++#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY
++#endif
++
++#ifdef SQUASHFS_TRACE
++#define TRACE(s, args...)	printk(KERN_NOTICE "SQUASHFS: "s, ## args)
++#else
++#define TRACE(s, args...)	{}
++#endif
++
++#define ERROR(s, args...)	printk(KERN_ERR "SQUASHFS error: "s, ## args)
++
++#define SERROR(s, args...)	do { \
++				if (!silent) \
++				printk(KERN_ERR "SQUASHFS error: "s, ## args);\
++				} while(0)
++
++#define WARNING(s, args...)	printk(KERN_WARNING "SQUASHFS: "s, ## args)
++
++static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode)
++{
++	return list_entry(inode, struct squashfs_inode_info, vfs_inode);
++}
++
++#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY)
++#define SQSH_EXTERN
++extern unsigned int squashfs_read_data(struct super_block *s, char *buffer,
++				long long index, unsigned int length,
++				long long *next_index, int srclength);
++extern int squashfs_get_cached_block(struct super_block *s, void *buffer,
++				long long block, unsigned int offset,
++				int length, long long *next_block,
++				unsigned int *next_offset);
++extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct
++					squashfs_cache_entry *fragment);
++extern struct squashfs_cache_entry *get_cached_fragment(struct super_block
++					*s, long long start_block,
++					int length);
++extern struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number);
++extern const struct address_space_operations squashfs_symlink_aops;
++extern const struct address_space_operations squashfs_aops;
++extern struct inode_operations squashfs_dir_inode_ops;
++#else
++#define SQSH_EXTERN static
++#endif
++
++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
++extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk);
++#else
++static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk)
++{
++	return 0;
++}
++#endif
++
++#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY
++extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk);
++#else
++static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk)
++{
++	return 0;
++}
++#endif
+diff --git a/fs/squashfs/squashfs2_0.c b/fs/squashfs/squashfs2_0.c
+new file mode 100644
+index 0000000..30ebdb9
+--- /dev/null
++++ b/fs/squashfs/squashfs2_0.c
 @@ -0,0 +1,740 @@
 +/*
 + * Squashfs - a compressed read only filesystem for Linux
@@ -3001,99 +3086,11 @@
 +
 +	return 1;
 +}
-diff -x .gitignore -Nurp linux-2.6.27-rc4/fs/squashfs/squashfs.h linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs.h
---- linux-2.6.27-rc4/fs/squashfs/squashfs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/fs/squashfs/squashfs.h	2008-08-19 18:31:56.000000000 +0100
-@@ -0,0 +1,86 @@
-+/*
-+ * Squashfs - a compressed read only filesystem for Linux
-+ *
-+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+ * Phillip Lougher <phillip at lougher.demon.co.uk>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * squashfs.h
-+ */
-+
-+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
-+#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY
-+#endif
-+
-+#ifdef SQUASHFS_TRACE
-+#define TRACE(s, args...)	printk(KERN_NOTICE "SQUASHFS: "s, ## args)
-+#else
-+#define TRACE(s, args...)	{}
-+#endif
-+
-+#define ERROR(s, args...)	printk(KERN_ERR "SQUASHFS error: "s, ## args)
-+
-+#define SERROR(s, args...)	do { \
-+				if (!silent) \
-+				printk(KERN_ERR "SQUASHFS error: "s, ## args);\
-+				} while(0)
-+
-+#define WARNING(s, args...)	printk(KERN_WARNING "SQUASHFS: "s, ## args)
-+
-+static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode)
-+{
-+	return list_entry(inode, struct squashfs_inode_info, vfs_inode);
-+}
-+
-+#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY)
-+#define SQSH_EXTERN
-+extern unsigned int squashfs_read_data(struct super_block *s, char *buffer,
-+				long long index, unsigned int length,
-+				long long *next_index, int srclength);
-+extern int squashfs_get_cached_block(struct super_block *s, void *buffer,
-+				long long block, unsigned int offset,
-+				int length, long long *next_block,
-+				unsigned int *next_offset);
-+extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct
-+					squashfs_cache_entry *fragment);
-+extern struct squashfs_cache_entry *get_cached_fragment(struct super_block
-+					*s, long long start_block,
-+					int length);
-+extern struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number);
-+extern const struct address_space_operations squashfs_symlink_aops;
-+extern const struct address_space_operations squashfs_aops;
-+extern struct inode_operations squashfs_dir_inode_ops;
-+#else
-+#define SQSH_EXTERN static
-+#endif
-+
-+#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
-+extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk);
-+#else
-+static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk)
-+{
-+	return 0;
-+}
-+#endif
-+
-+#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY
-+extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk);
-+#else
-+static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk)
-+{
-+	return 0;
-+}
-+#endif
-diff -x .gitignore -Nurp linux-2.6.27-rc4/include/linux/squashfs_fs.h linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs.h
---- linux-2.6.27-rc4/include/linux/squashfs_fs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs.h	2008-08-19 18:31:56.000000000 +0100
+diff --git a/include/linux/squashfs_fs.h b/include/linux/squashfs_fs.h
+new file mode 100644
+index 0000000..4cdd11f
+--- /dev/null
++++ b/include/linux/squashfs_fs.h
 @@ -0,0 +1,935 @@
 +#ifndef SQUASHFS_FS
 +#define SQUASHFS_FS
@@ -4030,9 +4027,11 @@
 +
 +#endif
 +#endif
-diff -x .gitignore -Nurp linux-2.6.27-rc4/include/linux/squashfs_fs_i.h linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_i.h
---- linux-2.6.27-rc4/include/linux/squashfs_fs_i.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_i.h	2008-08-19 18:31:56.000000000 +0100
+diff --git a/include/linux/squashfs_fs_i.h b/include/linux/squashfs_fs_i.h
+new file mode 100644
+index 0000000..b41c13c
+--- /dev/null
++++ b/include/linux/squashfs_fs_i.h
 @@ -0,0 +1,45 @@
 +#ifndef SQUASHFS_FS_I
 +#define SQUASHFS_FS_I
@@ -4079,9 +4078,11 @@
 +	struct inode	vfs_inode;
 +};
 +#endif
-diff -x .gitignore -Nurp linux-2.6.27-rc4/include/linux/squashfs_fs_sb.h linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_sb.h
---- linux-2.6.27-rc4/include/linux/squashfs_fs_sb.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/include/linux/squashfs_fs_sb.h	2008-08-19 18:31:56.000000000 +0100
+diff --git a/include/linux/squashfs_fs_sb.h b/include/linux/squashfs_fs_sb.h
+new file mode 100644
+index 0000000..75c3716
+--- /dev/null
++++ b/include/linux/squashfs_fs_sb.h
 @@ -0,0 +1,79 @@
 +#ifndef SQUASHFS_FS_SB
 +#define SQUASHFS_FS_SB
@@ -4162,9 +4163,10 @@
 +	int			(*read_fragment_index_table)(struct super_block *s);
 +};
 +#endif
-diff -x .gitignore -Nurp linux-2.6.27-rc4/init/do_mounts_rd.c linux-2.6.27-rc4-squashfs3.4/init/do_mounts_rd.c
---- linux-2.6.27-rc4/init/do_mounts_rd.c	2008-08-11 15:20:55.000000000 +0100
-+++ linux-2.6.27-rc4-squashfs3.4/init/do_mounts_rd.c	2008-08-19 18:31:56.000000000 +0100
+diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c
+index a7c748f..a343342 100644
+--- a/init/do_mounts_rd.c
++++ b/init/do_mounts_rd.c
 @@ -5,6 +5,7 @@
  #include <linux/ext2_fs.h>
  #include <linux/romfs_fs.h>
@@ -4173,7 +4175,7 @@
  #include <linux/initrd.h>
  #include <linux/string.h>
  
-@@ -37,6 +38,7 @@ static int __init crd_load(int in_fd, in
+@@ -37,6 +38,7 @@ static int __init crd_load(int in_fd, int out_fd);
   * numbers could not be found.
   *
   * We currently check for the following magic numbers:
@@ -4181,7 +4183,7 @@
   * 	minix
   * 	ext2
   *	romfs
-@@ -51,6 +53,7 @@ identify_ramdisk_image(int fd, int start
+@@ -51,6 +53,7 @@ identify_ramdisk_image(int fd, int start_block)
  	struct ext2_super_block *ext2sb;
  	struct romfs_super_block *romfsb;
  	struct cramfs_super *cramfsb;
@@ -4189,7 +4191,7 @@
  	int nblocks = -1;
  	unsigned char *buf;
  
-@@ -62,6 +65,7 @@ identify_ramdisk_image(int fd, int start
+@@ -62,6 +65,7 @@ identify_ramdisk_image(int fd, int start_block)
  	ext2sb = (struct ext2_super_block *) buf;
  	romfsb = (struct romfs_super_block *) buf;
  	cramfsb = (struct cramfs_super *) buf;
@@ -4197,7 +4199,7 @@
  	memset(buf, 0xe5, size);
  
  	/*
-@@ -99,6 +103,18 @@ identify_ramdisk_image(int fd, int start
+@@ -99,6 +103,18 @@ identify_ramdisk_image(int fd, int start_block)
  		goto done;
  	}
  

linux-2.6-upstream-reverts.patch:

Index: linux-2.6-upstream-reverts.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-upstream-reverts.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- linux-2.6-upstream-reverts.patch	9 Nov 2008 22:38:20 -0000	1.6
+++ linux-2.6-upstream-reverts.patch	12 Jan 2009 19:51:30 -0000	1.7
@@ -1,384 +1 @@
-From 4b40893918203ee1a1f6a114316c2a19c072e9bd Mon Sep 17 00:00:00 2001
-From: Matthias Hopf <mhopf at suse.de>
-Date: Sat, 18 Oct 2008 07:18:05 +1000
-Subject: drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831)
-Status: O
-Content-Length: 1367
-Lines: 30
-
-From: Matthias Hopf <mhopf at suse.de>
-
-commit 4b40893918203ee1a1f6a114316c2a19c072e9bd upstream
-
-Olaf Kirch noticed that the i915_set_status_page() function of the i915
-kernel driver calls ioremap with an address offset that is supplied by
-userspace via ioctl. The function zeroes the mapped memory via memset
-and tells the hardware about the address. Turns out that access to that
-ioctl is not restricted to root so users could probably exploit that to
-do nasty things. We haven't tried to write actual exploit code though.
-
-It only affects the Intel G33 series and newer.
-
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/gpu/drm/i915/i915_dma.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/i915/i915_dma.c
-+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -836,7 +836,7 @@ struct drm_ioctl_desc i915_ioctls[] = {
- 	DRM_IOCTL_DEF(DRM_I915_SET_VBLANK_PIPE,  i915_vblank_pipe_set, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY ),
- 	DRM_IOCTL_DEF(DRM_I915_GET_VBLANK_PIPE,  i915_vblank_pipe_get, DRM_AUTH ),
- 	DRM_IOCTL_DEF(DRM_I915_VBLANK_SWAP, i915_vblank_swap, DRM_AUTH),
--	DRM_IOCTL_DEF(DRM_I915_HWS_ADDR, i915_set_status_page, DRM_AUTH),
-+	DRM_IOCTL_DEF(DRM_I915_HWS_ADDR, i915_set_status_page, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
- };
- 
- int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls);
-From cebbert at redhat.com  Mon Oct 27 13:55:39 2008
-Status: RO
-Content-Length: 324
-Lines: 7
-
-Revert these patches from the stable queue:
-firewire-fix-ioctl-return-code.patch
-firewire-fix-setting-tag-and-sy-in-iso-transmission.patch
-firewire-fix-struct-fw_node-memory-leak.patch
-firewire-fw-sbp2-delay-first-login-to-avoid-retries.patch
-firewire-fw-sbp2-fix-races.patch
-firewire-survive-more-than-256-bus-resets.patch
-
-From stefanr at s5r6.in-berlin.de  Tue Nov  4 13:55:39 2008
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Date: Mon, 27 Oct 2008 23:26:35 +0100 (CET)
-Subject: firewire: fix ioctl() return code
-To: stable at kernel.org
-Cc: linux1394-devel at lists.sourceforge.net, linux-kernel at vger.kernel.org
-Message-ID: <tkrat.509dbd5216c80cfd at s5r6.in-berlin.de>
-Content-Disposition: INLINE
-Status: O
-Content-Length: 680
-Lines: 27
-
-
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-
-commit 99692f71ee04c6f249d0bf6a581359f32f409a38 upstream
-
-Reported by Jay Fenlason:  ioctl() did not return as intended
-  - the size of data read into ioctl_send_request,
-  - the number of datagrams enqueued by ioctl_queue_iso.
-
-
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/firewire/fw-cdev.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/firewire/fw-cdev.c
-+++ b/drivers/firewire/fw-cdev.c
-@@ -913,7 +913,7 @@ dispatch_ioctl(struct client *client, un
- 			return -EFAULT;
- 	}
- 
--	return 0;
-+	return retval;
- }
- 
- static long
-From stefanr at s5r6.in-berlin.de  Tue Nov  4 13:54:50 2008
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Date: Mon, 27 Oct 2008 23:26:00 +0100 (CET)
-Subject: firewire: fix setting tag and sy in iso transmission
-To: stable at kernel.org
-Cc: linux1394-devel at lists.sourceforge.net, linux-kernel at vger.kernel.org
-Message-ID: <tkrat.c6c9e197bd5d3af2 at s5r6.in-berlin.de>
-Content-Disposition: INLINE
-Status: O
-Content-Length: 948
-Lines: 26
-
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-
-commit 7a1003449c693f0d57443c8786bbf19717921ae0 upstream
-
-Reported by Jay Fenlason:
-The iso packet control accessors in fw-cdev.c had bogus masks.
-
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/firewire/fw-cdev.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/firewire/fw-cdev.c
-+++ b/drivers/firewire/fw-cdev.c
-@@ -720,8 +720,8 @@ static int ioctl_create_iso_context(stru
- #define GET_PAYLOAD_LENGTH(v)	((v) & 0xffff)
- #define GET_INTERRUPT(v)	(((v) >> 16) & 0x01)
- #define GET_SKIP(v)		(((v) >> 17) & 0x01)
--#define GET_TAG(v)		(((v) >> 18) & 0x02)
--#define GET_SY(v)		(((v) >> 20) & 0x04)
-+#define GET_TAG(v)		(((v) >> 18) & 0x03)
-+#define GET_SY(v)		(((v) >> 20) & 0x0f)
- #define GET_HEADER_LENGTH(v)	(((v) >> 24) & 0xff)
- 
- static int ioctl_queue_iso(struct client *client, void *buffer)
-From stefanr at s5r6.in-berlin.de  Tue Nov  4 13:57:03 2008
-From: Jay Fenlason <fenlason at redhat.com>
-Date: Mon, 27 Oct 2008 23:28:14 +0100 (CET)
-Subject: firewire: fix struct fw_node memory leak
-To: stable at kernel.org
-Cc: linux1394-devel at lists.sourceforge.net, linux-kernel at vger.kernel.org
-Message-ID: <tkrat.e499a05eaa0ec529 at s5r6.in-berlin.de>
-Content-Disposition: INLINE
-Status: O
-Content-Length: 1050
-Lines: 36
-
-From: Jay Fenlason <fenlason at redhat.com>
-
-commit 77e557191701afa55ae7320d42ad6458a2ad292e upstream
-
-With the bus_resets patch applied, it is easy to see this memory leak
-by repeatedly resetting the firewire bus while running slabtop in
-another window.  Just watch kmalloc-32 grow and grow...
-
-Signed-off-by: Jay Fenlason <fenlason at redhat.com>
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-
----
- drivers/firewire/fw-topology.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/drivers/firewire/fw-topology.c
-+++ b/drivers/firewire/fw-topology.c
-@@ -413,7 +413,7 @@ static void
- update_tree(struct fw_card *card, struct fw_node *root)
- {
- 	struct list_head list0, list1;
--	struct fw_node *node0, *node1;
-+	struct fw_node *node0, *node1, *next1;
- 	int i, event;
- 
- 	INIT_LIST_HEAD(&list0);
-@@ -485,7 +485,9 @@ update_tree(struct fw_card *card, struct
- 		}
- 
- 		node0 = fw_node(node0->link.next);
--		node1 = fw_node(node1->link.next);
-+		next1 = fw_node(node1->link.next);
-+		fw_node_put(node1);
-+		node1 = next1;
- 	}
- }
- 
-From stefanr at s5r6.in-berlin.de  Tue Nov  4 13:57:36 2008
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Date: Mon, 27 Oct 2008 23:29:00 +0100 (CET)
-Subject: firewire: fw-sbp2: delay first login to avoid retries
-To: stable at kernel.org
-Cc: linux1394-devel at lists.sourceforge.net, linux-kernel at vger.kernel.org
-Message-ID: <tkrat.9bc21c3b6a97bebe at s5r6.in-berlin.de>
-Content-Disposition: INLINE
-Status: O
-Content-Length: 1597
-Lines: 40
-
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-
-commit 0dcfeb7e3c8695c5aa3677dda8efb9bef2e7e64d upstream
-
-This optimizes firewire-sbp2's device probe for the case that the local
-node and the SBP-2 node were discovered at the same time.  In this case,
-fw-core's bus management work and fw-sbp2's login and SCSI probe work
-are scheduled in parallel (in the globally shared workqueue and in
-fw-sbp2's workqueue, respectively).  The bus reset from fw-core may then
-disturb and extremely delay the login and SCSI probe because the latter
-fails with several command timeouts and retries and has to be retried
-from scratch.
-
-We avoid this particular situation of sbp2_login() and fw_card_bm_work()
-running in parallel by delaying the first sbp2_login() a little bit.
-
-This is meant to be a short-term fix for
-https://bugzilla.redhat.com/show_bug.cgi?id=466679.  In the long run,
-the SCSI probe, i.e. fw-sbp2's call of __scsi_add_device(), should be
-parallelized with sbp2_reconnect().
-
-Problem reported and fix tested and confirmed by Alex Kanavin.
-
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/firewire/fw-sbp2.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/firewire/fw-sbp2.c
-+++ b/drivers/firewire/fw-sbp2.c
-@@ -1158,7 +1158,7 @@ static int sbp2_probe(struct device *dev
- 
- 	/* Do the login in a workqueue so we can easily reschedule retries. */
- 	list_for_each_entry(lu, &tgt->lu_list, link)
--		sbp2_queue_work(lu, 0);
-+		sbp2_queue_work(lu, DIV_ROUND_UP(HZ, 5));
- 	return 0;
- 
-  fail_tgt_put:
-From stefanr at s5r6.in-berlin.de  Tue Nov  4 13:58:11 2008
-From: Jay Fenlason <fenlason at redhat.com>
-Date: Mon, 27 Oct 2008 23:29:32 +0100 (CET)
-Subject: firewire: fw-sbp2: fix races
-To: stable at kernel.org
-Cc: linux1394-devel at lists.sourceforge.net, linux-kernel at vger.kernel.org
-Message-ID: <tkrat.84265bc39337ceb3 at s5r6.in-berlin.de>
-Status: O
-Content-Length: 3223
-Lines: 95
-
-From: Jay Fenlason <fenlason at redhat.com>
-
-Same as commit cd1f70fdb4823c97328a1f151f328eb36fafd579 upstream
-
-1: There is a small race between queue_delayed_work() and its
-   corresponding kref_get().  Do the kref_get first, and _put it again
-   if the queue_delayed_work() failed, so there is no chance of the
-   kref going to zero while the work is scheduled.
-2: An SBP2_LOGOUT_REQUEST could be sent out with a login_id full of
-   garbage.  Initialize it to an invalid value so we can tell if we
-   ever got a valid login_id.
-3: The node ID and generation may have changed but the new values may
-   not yet have been recorded in lu and tgt when the final logout is
-   attempted.  Use the latest values from the device in
-   sbp2_release_target().
-
-Signed-off-by: Jay Fenlason <fenlason at redhat.com>
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/firewire/fw-sbp2.c |   36 ++++++++++++++++++++++++++----------
- 1 file changed, 26 insertions(+), 10 deletions(-)
-
---- a/drivers/firewire/fw-sbp2.c
-+++ b/drivers/firewire/fw-sbp2.c
-@@ -172,6 +172,9 @@ struct sbp2_target {
- 	int blocked;	/* ditto */
- };
- 
-+/* Impossible login_id, to detect logout attempt before successful login */
-+#define INVALID_LOGIN_ID 0x10000
-+
- /*
-  * Per section 7.4.8 of the SBP-2 spec, a mgt_ORB_timeout value can be
-  * provided in the config rom. Most devices do provide a value, which
-@@ -791,9 +794,20 @@ static void sbp2_release_target(struct k
- 			scsi_remove_device(sdev);
- 			scsi_device_put(sdev);
- 		}
--		sbp2_send_management_orb(lu, tgt->node_id, lu->generation,
--				SBP2_LOGOUT_REQUEST, lu->login_id, NULL);
--
-+		if (lu->login_id != INVALID_LOGIN_ID) {
-+			int generation, node_id;
-+			/*
-+			 * tgt->node_id may be obsolete here if we failed
-+			 * during initial login or after a bus reset where
-+			 * the topology changed.
-+			 */
-+			generation = device->generation;
-+			smp_rmb(); /* node_id vs. generation */
-+			node_id    = device->node_id;
-+			sbp2_send_management_orb(lu, node_id, generation,
-+						 SBP2_LOGOUT_REQUEST,
-+						 lu->login_id, NULL);
-+		}
- 		fw_core_remove_address_handler(&lu->address_handler);
- 		list_del(&lu->link);
- 		kfree(lu);
-@@ -808,19 +822,20 @@ static void sbp2_release_target(struct k
- 
- static struct workqueue_struct *sbp2_wq;
- 
-+static void sbp2_target_put(struct sbp2_target *tgt)
-+{
-+	kref_put(&tgt->kref, sbp2_release_target);
-+}
-+
- /*
-  * Always get the target's kref when scheduling work on one its units.
-  * Each workqueue job is responsible to call sbp2_target_put() upon return.
-  */
- static void sbp2_queue_work(struct sbp2_logical_unit *lu, unsigned long delay)
- {
--	if (queue_delayed_work(sbp2_wq, &lu->work, delay))
--		kref_get(&lu->tgt->kref);
--}
--
--static void sbp2_target_put(struct sbp2_target *tgt)
--{
--	kref_put(&tgt->kref, sbp2_release_target);
-+	kref_get(&lu->tgt->kref);
-+	if (!queue_delayed_work(sbp2_wq, &lu->work, delay))
-+		sbp2_target_put(lu->tgt);
- }
- 
- static void
-@@ -993,6 +1008,7 @@ static int sbp2_add_logical_unit(struct 
- 
- 	lu->tgt      = tgt;
- 	lu->lun      = lun_entry & 0xffff;
-+	lu->login_id = INVALID_LOGIN_ID;
- 	lu->retries  = 0;
- 	lu->has_sdev = false;
- 	lu->blocked  = false;
-From stefanr at s5r6.in-berlin.de  Tue Nov  4 13:56:10 2008
-From: Jay Fenlason <fenlason at redhat.com>
-Date: Mon, 27 Oct 2008 23:27:37 +0100 (CET)
-Subject: firewire: Survive more than 256 bus resets
-To: stable at kernel.org
-Cc: linux1394-devel at lists.sourceforge.net, linux-kernel at vger.kernel.org
-Message-ID: <tkrat.6faab57f3da8f9b9 at s5r6.in-berlin.de>
-Content-Disposition: INLINE
-Status: O
-Content-Length: 1058
-Lines: 31
-
-From: Jay Fenlason <fenlason at redhat.com>
-
-Same as commit 4f9740d4f5a17fa6a1b097fa3ccdfb7246660307 upstream
-
-The "color" is used during the topology building after a bus reset,
-hovever in "struct fw_node"s it is stored in a u8, but in struct fw_card
-it is stored in an int.  When the value wraps in one struct, but not
-the other, disaster strikes.
-
-Fixes http://bugzilla.kernel.org/show_bug.cgi?id=10922 -
-machine locks up solid if a series of bus resets occurs.
-
-
-Signed-off-by: Jay Fenlason <fenlason at redhat.com>
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
----
- drivers/firewire/fw-transaction.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/firewire/fw-transaction.h
-+++ b/drivers/firewire/fw-transaction.h
-@@ -248,7 +248,7 @@ struct fw_card {
- 	struct fw_node *local_node;
- 	struct fw_node *root_node;
- 	struct fw_node *irm_node;
--	int color;
-+	u8 color; /* must be u8 to match the definition in struct fw_node */
- 	int gap_count;
- 	bool beta_repeaters_present;
- 
+nil

linux-2.6-utrace.patch:

Index: linux-2.6-utrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6-utrace.patch,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -r1.103 -r1.104
--- linux-2.6-utrace.patch	8 Jan 2009 04:44:02 -0000	1.103
+++ linux-2.6-utrace.patch	12 Jan 2009 19:51:30 -0000	1.104
@@ -1,5 +1,5 @@
- Documentation/DocBook/Makefile    |    2 +-
- Documentation/DocBook/utrace.tmpl |  571 ++++++++
+ Documentation/DocBook/Makefile    |    4 +-
+ Documentation/DocBook/utrace.tmpl |  566 ++++++++
  fs/proc/array.c                   |    3 +
  include/linux/ptrace.h            |   21 +
  include/linux/sched.h             |    6 +
@@ -9,15 +9,19 @@
  kernel/Makefile                   |    1 +
  kernel/ptrace.c                   |  793 +++++++++++-
  kernel/signal.c                   |   14 +-
- kernel/utrace.c                   | 2590 +++++++++++++++++++++++++++++++++++++
- 12 files changed, 4790 insertions(+), 12 deletions(-)
+ kernel/utrace.c                   | 2587 +++++++++++++++++++++++++++++++++++++
+ 12 files changed, 4783 insertions(+), 13 deletions(-)
 
 diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
-index 1615350..d27e093 100644  
+index 9b1f6ca..e39334b 100644  
 --- a/Documentation/DocBook/Makefile
 +++ b/Documentation/DocBook/Makefile
-@@ -9,7 +9,7 @@
- DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
+@@ -6,10 +6,10 @@
+ # To add a new book the only step required is to add the book to the
+ # list of DOCBOOKS.
+ 
+-DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml \
++DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml \
  	    kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
  	    procfs-guide.xml writing_usb_driver.xml networking.xml \
 -	    kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
@@ -27,10 +31,10 @@
  	    mac80211.xml debugobjects.xml sh.xml
 diff --git a/Documentation/DocBook/utrace.tmpl b/Documentation/DocBook/utrace.tmpl
 new file mode 100644
-index ...f253402 100644  
+index ...1c37104 100644  
 --- /dev/null
 +++ b/Documentation/DocBook/utrace.tmpl
-@@ -0,0 +1,571 @@
+@@ -0,0 +1,566 @@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 +"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
@@ -97,11 +101,6 @@
 +    Many engines can be attached to each thread.  When a thread has an
 +    event, each engine gets a callback if it has set the event flag for
 +    that event type.  Engines are called in the order they attached.
-+    Engines that attach after the event has occurred do not get callbacks
-+    for that event.  This includes any new engines just attached by an
-+    existing engine's callback function.  Once the sequence of callbacks
-+    for that one event has completed, such new engines are then eligible in
-+    the next sequence that starts when there is another event.
 +  </para>
 +
 +  <para>
@@ -603,7 +602,7 @@
 +
 +</book>
 diff --git a/fs/proc/array.c b/fs/proc/array.c
-index 71c9be5..adc7a53 100644  
+index 6af7fba..9b6902a 100644  
 --- a/fs/proc/array.c
 +++ b/fs/proc/array.c
 @@ -81,6 +81,7 @@
@@ -614,7 +613,7 @@
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-@@ -190,6 +191,8 @@ static inline void task_state(struct seq
+@@ -185,6 +186,8 @@ static inline void task_state(struct seq
  		p->uid, p->euid, p->suid, p->fsuid,
  		p->gid, p->egid, p->sgid, p->fsgid);
  
@@ -624,10 +623,10 @@
  	if (p->files)
  		fdt = files_fdtable(p->files);
 diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
-index ea7416c..06eaace 100644  
+index 22641d5..91b3412 100644  
 --- a/include/linux/ptrace.h
 +++ b/include/linux/ptrace.h
-@@ -121,6 +121,7 @@ static inline void ptrace_unlink(struct 
+@@ -120,6 +120,7 @@ static inline void ptrace_unlink(struct 
  int generic_ptrace_peekdata(struct task_struct *tsk, long addr, long data);
  int generic_ptrace_pokedata(struct task_struct *tsk, long addr, long data);
  
@@ -635,7 +634,7 @@
  /**
   * task_ptrace - return %PT_* flags that apply to a task
   * @task:	pointer to &task_struct in question
-@@ -154,6 +155,26 @@ static inline int ptrace_event(int mask,
+@@ -153,6 +154,26 @@ static inline int ptrace_event(int mask,
  	return 1;
  }
  
@@ -663,10 +662,10 @@
   * ptrace_init_task - initialize ptrace state for a new child
   * @child:		new child task
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 086f5e1..b0be16c 100644  
+index 55e30d1..b82b5f4 100644  
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1200,6 +1200,11 @@ struct task_struct {
+@@ -1243,6 +1243,11 @@ struct task_struct {
  #endif
  	seccomp_t seccomp;
  
@@ -678,7 +677,7 @@
  /* Thread group tracking */
     	u32 parent_exec_id;
     	u32 self_exec_id;
-@@ -1778,6 +1783,7 @@ extern int kill_pgrp(struct pid *pid, in
+@@ -1829,6 +1834,7 @@ extern int kill_pgrp(struct pid *pid, in
  extern int kill_pid(struct pid *pid, int sig, int priv);
  extern int kill_proc_info(int, struct siginfo *, pid_t);
  extern int do_notify_parent(struct task_struct *, int);
@@ -1633,10 +1632,10 @@
 +
 +#endif	/* linux/utrace.h */
 diff --git a/init/Kconfig b/init/Kconfig
-index c11da38..9ca2a8f 100644  
+index f763762..df75f9c 100644  
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -898,6 +898,32 @@ config STOP_MACHINE
+@@ -923,6 +923,32 @@ config STOP_MACHINE
  	help
  	  Need stop_machine() primitive.
  
@@ -1670,10 +1669,10 @@
  
  config PREEMPT_NOTIFIERS
 diff --git a/kernel/Makefile b/kernel/Makefile
-index 143e8b6..a1e4b62 100644  
+index 19fad00..16a30b0 100644  
 --- a/kernel/Makefile
 +++ b/kernel/Makefile
-@@ -62,6 +62,7 @@ obj-$(CONFIG_IKCONFIG) += configs.o
+@@ -64,6 +64,7 @@ obj-$(CONFIG_IKCONFIG) += configs.o
  obj-$(CONFIG_RESOURCE_COUNTERS) += res_counter.o
  obj-$(CONFIG_STOP_MACHINE) += stop_machine.o
  obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
@@ -1682,7 +1681,7 @@
  obj-$(CONFIG_AUDITSYSCALL) += auditsc.o
  obj-$(CONFIG_AUDIT_TREE) += audit_tree.o
 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
-index 356699a..bc81174 100644  
+index 4c8bcd7..8d19d04 100644  
 --- a/kernel/ptrace.c
 +++ b/kernel/ptrace.c
 @@ -16,6 +16,7 @@
@@ -1701,7 +1700,7 @@
  /*
   * Turn a tracing stop into a normal stop now, since with no tracer there
   * would be no way to wake it up with SIGCONT or SIGKILL.  If there was a
-@@ -58,6 +60,72 @@ void ptrace_untrace(struct task_struct *
+@@ -58,6 +60,72 @@ static void ptrace_untrace(struct task_s
  	spin_unlock(&child->sighand->siglock);
  }
  
@@ -2577,10 +2576,10 @@
  
  /**
 diff --git a/kernel/signal.c b/kernel/signal.c
-index e661b01..1effefc 100644  
+index 4530fc6..0e85826 100644  
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
-@@ -1415,7 +1415,7 @@ int do_notify_parent(struct task_struct 
+@@ -1419,7 +1419,7 @@ int do_notify_parent(struct task_struct 
  	return ret;
  }
  
@@ -2589,7 +2588,7 @@
  {
  	struct siginfo info;
  	unsigned long flags;
-@@ -1470,6 +1470,8 @@ static void do_notify_parent_cldstop(str
+@@ -1474,6 +1474,8 @@ static void do_notify_parent_cldstop(str
  	spin_unlock_irqrestore(&sighand->siglock, flags);
  }
  
@@ -2598,7 +2597,7 @@
  static inline int may_ptrace_stop(void)
  {
  	if (!likely(current->ptrace & PT_PTRACED))
-@@ -1602,6 +1604,8 @@ void ptrace_notify(int exit_code)
+@@ -1606,6 +1608,8 @@ void ptrace_notify(int exit_code)
  	spin_unlock_irq(&current->sighand->siglock);
  }
  
@@ -2607,7 +2606,7 @@
  static void
  finish_stop(int stop_count)
  {
-@@ -1679,6 +1683,7 @@ static int do_signal_stop(int signr)
+@@ -1683,6 +1687,7 @@ static int do_signal_stop(int signr)
  	return 1;
  }
  
@@ -2615,7 +2614,7 @@
  static int ptrace_signal(int signr, siginfo_t *info,
  			 struct pt_regs *regs, void *cookie)
  {
-@@ -1717,6 +1722,13 @@ static int ptrace_signal(int signr, sigi
+@@ -1721,6 +1726,13 @@ static int ptrace_signal(int signr, sigi
  
  	return signr;
  }
@@ -2631,14 +2630,14 @@
  			  struct pt_regs *regs, void *cookie)
 diff --git a/kernel/utrace.c b/kernel/utrace.c
 new file mode 100644
-index ...1873b9d 100644  
+index ...3e2191c 100644  
 --- /dev/null
 +++ b/kernel/utrace.c
-@@ -0,0 +1,2590 @@
+@@ -0,0 +1,2587 @@
 +/*
 + * utrace infrastructure interface for debugging user processes
 + *
-+ * Copyright (C) 2006-2009 Red Hat, Inc.  All rights reserved.
++ * Copyright (C) 2006, 2007, 2008 Red Hat, Inc.  All rights reserved.
 + *
 + * This copyrighted material is made available to anyone wishing to use,
 + * modify, copy, or redistribute it subject to the terms and conditions
@@ -3013,25 +3012,27 @@
 +	list_add_tail(&engine->entry, &utrace->attaching);
 +
 +	/*
-+	 * Now the new engine is on the pending ->attaching list.
-+	 * Make sure it gets onto the ->attached list by the next
-+	 * time it's examined.
-+	 *
-+	 * When target == current, it would be safe just to call
-+	 * splice_attaching() right here.  But if we're inside a
-+	 * callback, that would mean the new engine also gets
-+	 * notified about the event that precipitated its own
-+	 * creation.  This is not what the user wants.
-+	 *
-+	 * Setting ->report ensures that start_report() takes the
-+	 * lock and does it next time.  Whenever setting ->report,
-+	 * we must maintain the invariant that TIF_NOTIFY_RESUME is
-+	 * also set.  Otherwise utrace_control() or utrace_do_stop()
-+	 * might skip setting TIF_NOTIFY_RESUME upon seeing ->report
-+	 * already set, and we'd miss a necessary callback.
++	 * Now the new engine is on the pending ->attaching list.  Make
++	 * sure it gets onto the ->attached list by the next time it's
++	 * examined.  When called on current (e.g. from inside a callback),
++	 * we can do it right away.  Otherwise, we set ->report to ensure
++	 * that start_report() takes the lock and does it next time.
 +	 */
-+	utrace->report = 1;
-+	set_notify_resume(target);
++
++	if (target == current) {
++		splice_attaching(utrace);
++	} else {
++		/*
++		 * Whenever setting ->report, we must maintain the
++		 * invariant that TIF_NOTIFY_RESUME is also set.
++		 * Otherwise utrace_control() or utrace_do_stop()
++		 * might skip setting TIF_NOTIFY_RESUME upon seeing
++		 * ->report already set, and we'd miss a necessary
++		 * callback.
++		 */
++		utrace->report = 1;
++		set_notify_resume(target);
++	}
 +	goto finish;
 +
 +first:
@@ -3455,12 +3456,6 @@
 + *
 + * To synchronize after an -%EINPROGRESS return, see utrace_barrier().
 + *
-+ * When @target is @current, -%EINPROGRESS is not returned.  But
-+ * note that a newly-created engine will not receive any callbacks
-+ * related to an event notification already in progress.  This call
-+ * enables @events callbacks to be made as soon as @engine becomes
-+ * eligible for any callbacks, see utrace_attach_task().
-+ *
 + * These rules provide for coherent synchronization based on %UTRACE_STOP,
 + * even when %SIGKILL is breaking its normal simple rules.
 + */
@@ -3915,10 +3910,11 @@
 +	case UTRACE_REPORT:
 +		/*
 +		 * Make the thread call tracehook_notify_resume() soon.
-+		 * But don't bother if it's already been interrupted.
-+		 * In that case, utrace_get_signal() will be reporting soon.
++		 * But don't bother if it's already been stopped or
++		 * interrupted.  In those cases, utrace_get_signal()
++		 * will be reporting soon.
 +		 */
-+		if (!utrace->report && !utrace->interrupt) {
++		if (!utrace->report && !utrace->interrupt && !utrace->stopped) {
 +			utrace->report = 1;
 +			set_notify_resume(target);
 +		}

linux-2.6.27-lirc.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.1 -r 1.2 linux-2.6.27-lirc.patch
Index: linux-2.6.27-lirc.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6.27-lirc.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6.27-lirc.patch	21 Oct 2008 21:08:57 -0000	1.1
+++ linux-2.6.27-lirc.patch	12 Jan 2009 19:51:30 -0000	1.2
@@ -1,32 +1,7 @@
-Linux Infrared Remote Control drivers
-
-Signed-off-by: Jarod Wilson <jarod at redhat.com>
-
----
-diff -Naurp linux-2.6.27.noarch/drivers/hid/usbhid/hid-quirks.c linux-2.6.27.noarch.lirc/drivers/hid/usbhid/hid-quirks.c
---- linux-2.6.27.noarch/drivers/hid/usbhid/hid-quirks.c	2008-10-09 18:13:53.000000000 -0400
-+++ linux-2.6.27.noarch.lirc/drivers/hid/usbhid/hid-quirks.c	2008-10-21 16:40:06.000000000 -0400
-@@ -386,6 +386,8 @@
- 
- #define USB_VENDOR_ID_SOUNDGRAPH	0x15c2
- #define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD	0x0038
-+#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD2	0x0036
-+#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD3	0x0034
- 
- #define USB_VENDOR_ID_SUN		0x0430
- #define USB_DEVICE_ID_RARITAN_KVM_DONGLE	0xcdab
-@@ -585,6 +587,8 @@ static const struct hid_blacklist {
- 	{ USB_VENDOR_ID_PANJIT, 0x0003, HID_QUIRK_IGNORE },
- 	{ USB_VENDOR_ID_PANJIT, 0x0004, HID_QUIRK_IGNORE },
- 	{ USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD, HID_QUIRK_IGNORE },
-+	{ USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD2, HID_QUIRK_IGNORE },
-+	{ USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD3, HID_QUIRK_IGNORE },
- 	{ USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_LABPRO, HID_QUIRK_IGNORE },
- 	{ USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_GOTEMP, HID_QUIRK_IGNORE },
- 	{ USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_SKIP, HID_QUIRK_IGNORE },
-diff -Naurp linux-2.6.27.noarch/drivers/input/Kconfig linux-2.6.27.noarch.lirc/drivers/input/Kconfig
---- linux-2.6.27.noarch/drivers/input/Kconfig	2008-10-09 18:13:53.000000000 -0400
-+++ linux-2.6.27.noarch.lirc/drivers/input/Kconfig	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
+index 5f9d860..2ba0904 100644
+--- a/drivers/input/Kconfig
++++ b/drivers/input/Kconfig
 @@ -170,6 +170,8 @@ source "drivers/input/tablet/Kconfig"
  
  source "drivers/input/touchscreen/Kconfig"
@@ -36,9 +11,21 @@
  source "drivers/input/misc/Kconfig"
  
  endif
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/Kconfig linux-2.6.27.noarch.lirc/drivers/input/lirc/Kconfig
---- linux-2.6.27.noarch/drivers/input/lirc/Kconfig	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/Kconfig	2008-10-21 16:04:34.000000000 -0400
+diff --git a/drivers/input/Makefile b/drivers/input/Makefile
+index 98c4f9a..6a1049b 100644
+--- a/drivers/input/Makefile
++++ b/drivers/input/Makefile
+@@ -25,3 +25,5 @@ obj-$(CONFIG_INPUT_MISC)	+= misc/
+ obj-$(CONFIG_INPUT_APMPOWER)	+= apm-power.o
+ 
+ obj-$(CONFIG_XEN_KBDDEV_FRONTEND)	+= xen-kbdfront.o
++
++obj-$(CONFIG_INPUT_LIRC)       += lirc/
+diff --git a/drivers/input/lirc/Kconfig b/drivers/input/lirc/Kconfig
+new file mode 100644
+index 0000000..fad3bbb
+--- /dev/null
++++ b/drivers/input/lirc/Kconfig
 @@ -0,0 +1,128 @@
 +#
 +# LIRC driver(s) configuration
@@ -168,9 +155,149 @@
 +	  PVR-150/500, HVR-1200/1250/1700/1800, HD-PVR and other cards
 +
 +endif
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_bt829.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_bt829.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_bt829.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_bt829.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/Makefile b/drivers/input/lirc/Makefile
+new file mode 100644
+index 0000000..ceb5c86
+--- /dev/null
++++ b/drivers/input/lirc/Makefile
+@@ -0,0 +1,23 @@
++# Makefile for the lirc drivers.
++#
++
++# Each configuration option enables a list of files.
++
++EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -I$(src)
++
++obj-$(CONFIG_LIRC_DEV)		+= lirc_dev.o
++obj-$(CONFIG_LIRC_BT829)	+= lirc_bt829.o
++obj-$(CONFIG_LIRC_I2C)		+= lirc_i2c.o
++obj-$(CONFIG_LIRC_IGORPLUGUSB)	+= lirc_igorplugusb.o
++obj-$(CONFIG_LIRC_IMON)		+= lirc_imon.o
++obj-$(CONFIG_LIRC_IT87)		+= lirc_it87.o
++obj-$(CONFIG_LIRC_ITE8709)	+= lirc_ite8709.o
++obj-$(CONFIG_LIRC_MCEUSB)	+= lirc_mceusb.o
++obj-$(CONFIG_LIRC_MCEUSB2)	+= lirc_mceusb2.o
++obj-$(CONFIG_LIRC_PARALLEL)	+= lirc_parallel.o
++obj-$(CONFIG_LIRC_SASEM)	+= lirc_sasem.o
++obj-$(CONFIG_LIRC_SERIAL)	+= lirc_serial.o
++obj-$(CONFIG_LIRC_SIR)		+= lirc_sir.o
++obj-$(CONFIG_LIRC_STREAMZAP)	+= lirc_streamzap.o
++obj-$(CONFIG_LIRC_TTUSBIR)	+= lirc_ttusbir.o
++obj-$(CONFIG_LIRC_ZILOG)	+= lirc_zilog.o
+diff --git a/drivers/input/lirc/lirc.h b/drivers/input/lirc/lirc.h
+new file mode 100644
+index 0000000..dcdb6e8
+--- /dev/null
++++ b/drivers/input/lirc/lirc.h
+@@ -0,0 +1,103 @@
++/*
++ * lirc.h - linux infrared remote control header file
++ * last modified 2007/09/27
++ */
++
++#ifndef _LINUX_LIRC_H
++#define _LINUX_LIRC_H
++
++#include <linux/types.h>
++#include <linux/ioctl.h>
++
++#define PULSE_BIT  0x01000000
++#define PULSE_MASK 0x00FFFFFF
++
++/*
++ * lirc compatible hardware features
++ */
++
++
++#define LIRC_MODE2SEND(x) (x)
++#define LIRC_SEND2MODE(x) (x)
++#define LIRC_MODE2REC(x) ((x) << 16)
++#define LIRC_REC2MODE(x) ((x) >> 16)
++
++#define LIRC_MODE_RAW                  0x00000001
++#define LIRC_MODE_PULSE                0x00000002
++#define LIRC_MODE_MODE2                0x00000004
++#define LIRC_MODE_CODE                 0x00000008
++#define LIRC_MODE_LIRCCODE             0x00000010
++#define LIRC_MODE_STRING               0x00000020
++
++
++#define LIRC_CAN_SEND_RAW              LIRC_MODE2SEND(LIRC_MODE_RAW)
++#define LIRC_CAN_SEND_PULSE            LIRC_MODE2SEND(LIRC_MODE_PULSE)
++#define LIRC_CAN_SEND_MODE2            LIRC_MODE2SEND(LIRC_MODE_MODE2)
++#define LIRC_CAN_SEND_CODE             LIRC_MODE2SEND(LIRC_MODE_CODE)
++#define LIRC_CAN_SEND_LIRCCODE         LIRC_MODE2SEND(LIRC_MODE_LIRCCODE)
++#define LIRC_CAN_SEND_STRING           LIRC_MODE2SEND(LIRC_MODE_STRING)
++
++#define LIRC_CAN_SEND_MASK             0x0000003f
++
++#define LIRC_CAN_SET_SEND_CARRIER      0x00000100
++#define LIRC_CAN_SET_SEND_DUTY_CYCLE   0x00000200
++#define LIRC_CAN_SET_TRANSMITTER_MASK  0x00000400
++
++#define LIRC_CAN_REC_RAW               LIRC_MODE2REC(LIRC_MODE_RAW)
++#define LIRC_CAN_REC_PULSE             LIRC_MODE2REC(LIRC_MODE_PULSE)
++#define LIRC_CAN_REC_MODE2             LIRC_MODE2REC(LIRC_MODE_MODE2)
++#define LIRC_CAN_REC_CODE              LIRC_MODE2REC(LIRC_MODE_CODE)
++#define LIRC_CAN_REC_LIRCCODE          LIRC_MODE2REC(LIRC_MODE_LIRCCODE)
++#define LIRC_CAN_REC_STRING            LIRC_MODE2REC(LIRC_MODE_STRING)
++
++#define LIRC_CAN_REC_MASK              LIRC_MODE2REC(LIRC_CAN_SEND_MASK)
++
++#define LIRC_CAN_SET_REC_CARRIER       (LIRC_CAN_SET_SEND_CARRIER << 16)
++#define LIRC_CAN_SET_REC_DUTY_CYCLE    (LIRC_CAN_SET_SEND_DUTY_CYCLE << 16)
++
++#define LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE 0x40000000
++#define LIRC_CAN_SET_REC_CARRIER_RANGE    0x80000000
++#define LIRC_CAN_GET_REC_RESOLUTION       0x20000000
++
++#define LIRC_CAN_SEND(x) ((x)&LIRC_CAN_SEND_MASK)
++#define LIRC_CAN_REC(x) ((x)&LIRC_CAN_REC_MASK)
++
++#define LIRC_CAN_NOTIFY_DECODE            0x01000000
++
++/*
++ * IOCTL commands for lirc driver
++ */
++
++#define LIRC_GET_FEATURES              _IOR('i', 0x00000000, __u32)
++
++#define LIRC_GET_SEND_MODE             _IOR('i', 0x00000001, __u32)
++#define LIRC_GET_REC_MODE              _IOR('i', 0x00000002, __u32)
++#define LIRC_GET_SEND_CARRIER          _IOR('i', 0x00000003, __u32)
++#define LIRC_GET_REC_CARRIER           _IOR('i', 0x00000004, __u32)
++#define LIRC_GET_SEND_DUTY_CYCLE       _IOR('i', 0x00000005, __u32)
++#define LIRC_GET_REC_DUTY_CYCLE        _IOR('i', 0x00000006, __u32)
++#define LIRC_GET_REC_RESOLUTION        _IOR('i', 0x00000007, __u32)
++
++/* code length in bits, currently only for LIRC_MODE_LIRCCODE */
++#define LIRC_GET_LENGTH                _IOR('i', 0x0000000f, __u32)
++
++#define LIRC_SET_SEND_MODE             _IOW('i', 0x00000011, __u32)
++#define LIRC_SET_REC_MODE              _IOW('i', 0x00000012, __u32)
++/* Note: these can reset the according pulse_width */
++#define LIRC_SET_SEND_CARRIER          _IOW('i', 0x00000013, __u32)
++#define LIRC_SET_REC_CARRIER           _IOW('i', 0x00000014, __u32)
[...3906 lines suppressed...]
++
++	i = usb_register(&usb_remote_driver);
++	if (i < 0) {
++		printk(DRIVER_NAME ": usb register failed, result = %d\n", i);
++		return -ENODEV;
 +	}
 +
-+	info(DRIVER_DESC " " DRIVER_VERSION);
-+	return 0;
++	return SUCCESS;
 +}
 +
-+
-+/**
-+ *	usb_mceusb_exit
-+ */
-+static void __exit usb_mceusb_exit(void)
++static void __exit usb_remote_exit(void)
 +{
-+	/* deregister this driver with the USB subsystem */
-+	usb_deregister(&mceusb_driver);
++	usb_deregister(&usb_remote_driver);
 +}
 +
-+#ifdef MODULE
-+module_init(usb_mceusb_init);
-+module_exit(usb_mceusb_exit);
++module_init(usb_remote_init);
++module_exit(usb_remote_exit);
 +
 +MODULE_DESCRIPTION(DRIVER_DESC);
 +MODULE_AUTHOR(DRIVER_AUTHOR);
 +MODULE_LICENSE("GPL");
-+MODULE_DEVICE_TABLE(usb, mceusb_table);
++MODULE_DEVICE_TABLE(usb, usb_remote_table);
 +
-+module_param(debug, int, 0644);
++module_param(debug, bool, 0644);
 +MODULE_PARM_DESC(debug, "Debug enabled or not");
-+
-+#else /* not MODULE */
-+subsys_initcall(usb_mceusb_init);
-+
 +#endif /* MODULE */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_parallel.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_parallel.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_parallel.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_parallel.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_parallel.c b/drivers/input/lirc/lirc_parallel.c
+new file mode 100644
+index 0000000..912cad2
+--- /dev/null
++++ b/drivers/input/lirc/lirc_parallel.c
 @@ -0,0 +1,728 @@
 +/****************************************************************************
 + ** lirc_parallel.c *********************************************************
@@ -8780,9 +8822,11 @@
 +MODULE_PARM_DESC(debug, "Check for printer (default: 0)");
 +
 +#endif /* MODULE */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_parallel.h linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_parallel.h
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_parallel.h	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_parallel.h	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_parallel.h b/drivers/input/lirc/lirc_parallel.h
+new file mode 100644
+index 0000000..4bed6af
+--- /dev/null
++++ b/drivers/input/lirc/lirc_parallel.h
 @@ -0,0 +1,26 @@
 +/* lirc_parallel.h */
 +
@@ -8810,9 +8854,11 @@
 +#define LIRC_PARALLEL_TRANSMITTER_MASK ((1<<LIRC_PARALLEL_MAX_TRANSMITTERS) - 1)
 +
 +#endif
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_sasem.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_sasem.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_sasem.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_sasem.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_sasem.c b/drivers/input/lirc/lirc_sasem.c
+new file mode 100644
+index 0000000..003f492
+--- /dev/null
++++ b/drivers/input/lirc/lirc_sasem.c
 @@ -0,0 +1,969 @@
 +/* lirc_sasem.c - USB remote support for LIRC
 + * Version 0.5
@@ -9783,9 +9829,11 @@
 +module_exit(sasem_exit);
 +
 +#endif /* MODULE */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_serial.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_serial.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_serial.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_serial.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_serial.c b/drivers/input/lirc/lirc_serial.c
+new file mode 100644
+index 0000000..465edd9
+--- /dev/null
++++ b/drivers/input/lirc/lirc_serial.c
 @@ -0,0 +1,1312 @@
 +/****************************************************************************
 + ** lirc_serial.c ***********************************************************
@@ -11099,9 +11147,11 @@
 +MODULE_PARM_DESC(debug, "Enable debugging messages");
 +
 +#endif /* MODULE */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_sir.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_sir.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_sir.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_sir.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_sir.c b/drivers/input/lirc/lirc_sir.c
+new file mode 100644
+index 0000000..ea192b2
+--- /dev/null
++++ b/drivers/input/lirc/lirc_sir.c
 @@ -0,0 +1,1302 @@
 +/*
 + * LIRC SIR driver, (C) 2000 Milan Pikula <www at fornax.sk>
@@ -12405,9 +12455,11 @@
 +MODULE_PARM_DESC(debug, "Enable debugging messages");
 +
 +#endif /* MODULE */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_streamzap.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_streamzap.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_streamzap.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_streamzap.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_streamzap.c b/drivers/input/lirc/lirc_streamzap.c
+new file mode 100644
+index 0000000..69865cb
+--- /dev/null
++++ b/drivers/input/lirc/lirc_streamzap.c
 @@ -0,0 +1,795 @@
 +/*
 + * Streamzap Remote Control driver
@@ -13204,9 +13256,11 @@
 +MODULE_PARM_DESC(debug, "Enable debugging messages");
 +
 +#endif /* MODULE */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_ttusbir.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_ttusbir.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_ttusbir.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_ttusbir.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_ttusbir.c b/drivers/input/lirc/lirc_ttusbir.c
+new file mode 100644
+index 0000000..9ed9c7b
+--- /dev/null
++++ b/drivers/input/lirc/lirc_ttusbir.c
 @@ -0,0 +1,400 @@
 +/****************************************************************************
 + ** lirc_ttusbir.c ***********************************************************
@@ -13608,9 +13662,11 @@
 +subsys_initcall(ttusbir_init_module);
 +
 +#endif /* MODULE */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/lirc_zilog.c linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_zilog.c
---- linux-2.6.27.noarch/drivers/input/lirc/lirc_zilog.c	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/lirc_zilog.c	2008-10-21 16:03:34.000000000 -0400
+diff --git a/drivers/input/lirc/lirc_zilog.c b/drivers/input/lirc/lirc_zilog.c
+new file mode 100644
+index 0000000..20e6b27
+--- /dev/null
++++ b/drivers/input/lirc/lirc_zilog.c
 @@ -0,0 +1,1395 @@
 +/*
 + * i2c IR lirc plugin for devices with zilog IR processors
@@ -15007,39 +15063,3 @@
 + * c-basic-offset: 8
 + * End:
 + */
-diff -Naurp linux-2.6.27.noarch/drivers/input/lirc/Makefile linux-2.6.27.noarch.lirc/drivers/input/lirc/Makefile
---- linux-2.6.27.noarch/drivers/input/lirc/Makefile	1969-12-31 19:00:00.000000000 -0500
-+++ linux-2.6.27.noarch.lirc/drivers/input/lirc/Makefile	2008-10-21 16:04:26.000000000 -0400
-@@ -0,0 +1,23 @@
-+# Makefile for the lirc drivers.
-+#
-+
-+# Each configuration option enables a list of files.
-+
-+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -I$(src)
-+
-+obj-$(CONFIG_LIRC_DEV)		+= lirc_dev.o
-+obj-$(CONFIG_LIRC_BT829)	+= lirc_bt829.o
-+obj-$(CONFIG_LIRC_I2C)		+= lirc_i2c.o
-+obj-$(CONFIG_LIRC_IGORPLUGUSB)	+= lirc_igorplugusb.o
-+obj-$(CONFIG_LIRC_IMON)		+= lirc_imon.o
-+obj-$(CONFIG_LIRC_IT87)		+= lirc_it87.o
-+obj-$(CONFIG_LIRC_ITE8709)	+= lirc_ite8709.o
-+obj-$(CONFIG_LIRC_MCEUSB)	+= lirc_mceusb.o
-+obj-$(CONFIG_LIRC_MCEUSB2)	+= lirc_mceusb2.o
-+obj-$(CONFIG_LIRC_PARALLEL)	+= lirc_parallel.o
-+obj-$(CONFIG_LIRC_SASEM)	+= lirc_sasem.o
-+obj-$(CONFIG_LIRC_SERIAL)	+= lirc_serial.o
-+obj-$(CONFIG_LIRC_SIR)		+= lirc_sir.o
-+obj-$(CONFIG_LIRC_STREAMZAP)	+= lirc_streamzap.o
-+obj-$(CONFIG_LIRC_TTUSBIR)	+= lirc_ttusbir.o
-+obj-$(CONFIG_LIRC_ZILOG)	+= lirc_zilog.o
-diff -Naurp linux-2.6.27.noarch/drivers/input/Makefile linux-2.6.27.noarch.lirc/drivers/input/Makefile
---- linux-2.6.27.noarch/drivers/input/Makefile	2008-10-09 18:13:53.000000000 -0400
-+++ linux-2.6.27.noarch.lirc/drivers/input/Makefile	2008-10-21 16:03:34.000000000 -0400
-@@ -25,3 +25,5 @@ obj-$(CONFIG_INPUT_MISC)	+= misc/
- obj-$(CONFIG_INPUT_APMPOWER)	+= apm-power.o
- 
- obj-$(CONFIG_XEN_KBDDEV_FRONTEND)	+= xen-kbdfront.o
-+
-+obj-$(CONFIG_INPUT_LIRC)       += lirc/

linux-2.6.27-pci-hush-allocation-failures.patch:

Index: linux-2.6.27-pci-hush-allocation-failures.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6.27-pci-hush-allocation-failures.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6.27-pci-hush-allocation-failures.patch	23 Oct 2008 14:41:05 -0000	1.2
+++ linux-2.6.27-pci-hush-allocation-failures.patch	12 Jan 2009 19:51:30 -0000	1.3
@@ -1,42 +1,8 @@
-diff -up linux-2.6.27.noarch/drivers/pci/setup-res.c.jx linux-2.6.27.noarch/drivers/pci/setup-res.c
---- linux-2.6.27.noarch/drivers/pci/setup-res.c.jx	2008-10-09 18:13:53.000000000 -0400
-+++ linux-2.6.27.noarch/drivers/pci/setup-res.c	2008-10-16 14:12:13.000000000 -0400
-@@ -138,10 +138,10 @@ int pci_assign_resource(struct pci_dev *
- 
- 	align = resource_alignment(res);
- 	if (!align) {
--		dev_err(&dev->dev, "BAR %d: can't allocate resource (bogus "
--			"alignment) [%#llx-%#llx] flags %#lx\n",
--			resno, (unsigned long long)res->start,
--			(unsigned long long)res->end, res->flags);
-+		dev_info(&dev->dev, "BAR %d: can't allocate resource (bogus "
-+			 "alignment) [%#llx-%#llx] flags %#lx\n",
-+			 resno, (unsigned long long)res->start,
-+			 (unsigned long long)res->end, res->flags);
- 		return -EINVAL;
- 	}
- 
-@@ -162,11 +162,11 @@ int pci_assign_resource(struct pci_dev *
- 	}
- 
- 	if (ret) {
--		dev_err(&dev->dev, "BAR %d: can't allocate %s resource "
--			"[%#llx-%#llx]\n", resno,
--			res->flags & IORESOURCE_IO ? "I/O" : "mem",
--			(unsigned long long)res->start,
--			(unsigned long long)res->end);
-+		dev_info(&dev->dev, "BAR %d: can't allocate %s resource "
-+			 "[%#llx-%#llx]\n", resno,
-+			 res->flags & IORESOURCE_IO ? "I/O" : "mem",
-+			 (unsigned long long)res->start,
-+			 (unsigned long long)res->end);
- 	} else {
- 		res->flags &= ~IORESOURCE_STARTALIGN;
- 		if (resno < PCI_BRIDGE_RESOURCES)
-diff -up linux-2.6.27.noarch/arch/x86/pci/i386.c.jx linux-2.6.27.noarch/arch/x86/pci/i386.c
---- linux-2.6.27.noarch/arch/x86/pci/i386.c.jx	2008-10-09 18:13:53.000000000 -0400
-+++ linux-2.6.27.noarch/arch/x86/pci/i386.c	2008-10-23 10:21:14.000000000 -0400
-@@ -128,7 +128,7 @@ static void __init pcibios_allocate_bus_
+diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
+index 844df0c..43d9783 100644
+--- a/arch/x86/pci/i386.c
++++ b/arch/x86/pci/i386.c
+@@ -129,7 +129,7 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
  				pr = pci_find_parent_resource(dev, r);
  				if (!r->start || !pr ||
  				    request_resource(pr, r) < 0) {
@@ -45,7 +11,7 @@
  					/*
  					 * Something is wrong with the region.
  					 * Invalidate the resource to prevent
-@@ -169,7 +169,7 @@ static void __init pcibios_allocate_reso
+@@ -170,7 +170,7 @@ static void __init pcibios_allocate_resources(int pass)
  					r->flags, disabled, pass);
  				pr = pci_find_parent_resource(dev, r);
  				if (!pr || request_resource(pr, r) < 0) {
@@ -54,3 +20,25 @@
  					/* We'll assign a new address later */
  					r->end -= r->start;
  					r->start = 0;
+diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
+index 2dbd96c..4e37563 100644
+--- a/drivers/pci/setup-res.c
++++ b/drivers/pci/setup-res.c
+@@ -134,7 +134,7 @@ int pci_assign_resource(struct pci_dev *dev, int resno)
+ 
+ 	align = resource_alignment(res);
+ 	if (!align) {
+-		dev_err(&dev->dev, "BAR %d: can't allocate resource (bogus "
++		dev_info(&dev->dev, "BAR %d: can't allocate resource (bogus "
+ 			"alignment) %pR flags %#lx\n",
+ 			resno, res, res->flags);
+ 		return -EINVAL;
+@@ -157,7 +157,7 @@ int pci_assign_resource(struct pci_dev *dev, int resno)
+ 	}
+ 
+ 	if (ret) {
+-		dev_err(&dev->dev, "BAR %d: can't allocate %s resource %pR\n",
++		dev_info(&dev->dev, "BAR %d: can't allocate %s resource %pR\n",
+ 			resno, res->flags & IORESOURCE_IO ? "I/O" : "mem", res);
+ 	} else {
+ 		res->flags &= ~IORESOURCE_STARTALIGN;


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/sources,v
retrieving revision 1.922
retrieving revision 1.923
diff -u -r1.922 -r1.923
--- sources	18 Dec 2008 22:13:54 -0000	1.922
+++ sources	12 Jan 2009 19:51:31 -0000	1.923
@@ -1,2 +1 @@
-b3e78977aa79d3754cb7f8143d7ddabd  linux-2.6.27.tar.bz2
-82691ff96bff9b4fa19f91b69a9695f9  patch-2.6.27.10.bz2
+d351e44709c9810b85e29b877f50968a  linux-2.6.28.tar.bz2


Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/upstream,v
retrieving revision 1.834
retrieving revision 1.835
diff -u -r1.834 -r1.835
--- upstream	18 Dec 2008 22:13:54 -0000	1.834
+++ upstream	12 Jan 2009 19:51:31 -0000	1.835
@@ -1,2 +1 @@
-linux-2.6.27.tar.bz2
-patch-2.6.27.10.bz2
+linux-2.6.28.tar.bz2


--- drm-fix-master-enable.patch DELETED ---


--- drm-intel-8xx-pae-no-gem.patch DELETED ---


--- linux-2.6-acpi-dock-fix-eject-request-process.patch DELETED ---


--- linux-2.6-acpi-handle-ec-init-failure.patch DELETED ---


--- linux-2.6-alsa-backport-beep-switch.patch DELETED ---


--- linux-2.6-alsa-hda-remove-broken-headphone-control-for-dell-laptops.patch DELETED ---


--- linux-2.6-alsa-hda-revert-remove-unneeded-hp-nid-references.patch DELETED ---


--- linux-2.6-alsa-hda-stac-dell-m6-eapd.patch DELETED ---


--- linux-2.6-amd64-yes-i-know-you-live.patch DELETED ---


--- linux-2.6-crypto-fips_enable.patch DELETED ---


--- linux-2.6-default-mmf_dump_elf_headers.patch DELETED ---


--- linux-2.6-defaults-fat-utf8.patch DELETED ---


--- linux-2.6-dmi-autoload.patch DELETED ---


--- linux-2.6-e1000e-add-support-for-82567LM-3-and-82567LF-3-ICH10D-parts.patch DELETED ---


--- linux-2.6-e1000e-add-support-for-new-82574L-part.patch DELETED ---


--- linux-2.6-e1000e-add-support-for-the-82567LM-4-device.patch DELETED ---


--- linux-2.6-eeepc-laptop-update.patch DELETED ---


--- linux-2.6-gspca-vc0321-fix-frame-overflow.patch DELETED ---


--- linux-2.6-input.git-i8042-add-xps-m1530-to-nomux.patch DELETED ---


--- linux-2.6-iwl3945-ibss-tsf-fix.patch DELETED ---


--- linux-2.6-iwlagn-downgrade-BUG_ON-in-interrupt.patch DELETED ---


--- linux-2.6-merge-efifb-imacfb.patch DELETED ---


--- linux-2.6-mm-pagefault-enable-ints.patch DELETED ---


--- linux-2.6-net-qla-silence-debug-printks.patch DELETED ---


--- linux-2.6-netdev-r8169-2.6.28.patch DELETED ---


--- linux-2.6-nfs-client-mounts-hang.patch DELETED ---


--- linux-2.6-olpc-touchpad.patch DELETED ---


--- linux-2.6-pci-fix-pciehp-irq0.patch DELETED ---


--- linux-2.6-pciehp-kill-annoying-messages.patch DELETED ---


--- linux-2.6-quiet-iommu.patch DELETED ---


--- linux-2.6-quieter-mmc.patch DELETED ---


--- linux-2.6-sched-fine-tune-SD_MC_INIT.patch DELETED ---


--- linux-2.6-sched-fine-tune-SD_SIBLING_INIT.patch DELETED ---


--- linux-2.6-sched-wakeup-preempt-when-small-overlap.patch DELETED ---


--- linux-2.6-selinux-empty-tty-files.patch DELETED ---


--- linux-2.6-selinux-recognise-addrlabel.patch DELETED ---


--- linux-2.6-toshiba-acpi-update.patch DELETED ---


--- linux-2.6-usb-ehci-hcd-respect-nousb.patch DELETED ---


--- linux-2.6-uvc-hg.patch DELETED ---


--- linux-2.6-uvc-spca525.patch DELETED ---


--- linux-2.6-wireless-ath9k-dma-fixes.patch DELETED ---


--- linux-2.6-x86-pci-amd-config-space.patch DELETED ---


--- linux-2.6-x86-tracehook.patch DELETED ---


--- linux-2.6-xen-execshield-add-xen-specific-load_user_cs_desc.patch DELETED ---


--- linux-2.6-xen-execshield-only-define-load_user_cs_desc-on-32-bit.patch DELETED ---


--- linux-2.6.27-ext4-rename-ext4dev-to-ext4.patch DELETED ---


--- linux-2.6.27-hwmon-applesmc-2.6.28.patch DELETED ---


--- linux-2.6.27-x86-tracehook-syscall-arg-order.patch DELETED ---


--- linux-2.6.27.7-alsa-driver-fixups.patch DELETED ---


--- linux-2.6.27.9-alsa-driver-1.0.18a.patch DELETED ---


--- linux-2.6.27.9-alsa-hda-add-a-quirk-for-dell-studio-15.patch DELETED ---


--- linux-2.6.27.9-alsa-hda-mark-dell-studio-1535-quirk.patch DELETED ---


--- linux-2.6.27.9-alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch DELETED ---


--- linux-2.6.27.9-ext4-cap-check-delay.patch DELETED ---


--- linux-2.6.27.tar.bz2.sign DELETED ---


--- nvidia-agp.patch DELETED ---


--- patch-2.6.27.10.bz2.sign DELETED ---


--- sparc-2.6.git-aae7fb87ec4d2df6cb551670b1765cf4e5795a3b.patch DELETED ---




More information about the fedora-extras-commits mailing list