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
- Previous message (by thread): rpms/kernel/F-10/scripts pull-upstreams.sh,1.6,1.7
- Next message (by thread): rpms/kscope/devel kscope-1.9.0-compilefix.patch, NONE, 1.1 kscope.desktop, NONE, 1.1 .cvsignore, 1.3, 1.4 kscope.spec, 1.4, 1.5 sources, 1.3, 1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
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(¤t->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 ---
- Previous message (by thread): rpms/kernel/F-10/scripts pull-upstreams.sh,1.6,1.7
- Next message (by thread): rpms/kscope/devel kscope-1.9.0-compilefix.patch, NONE, 1.1 kscope.desktop, NONE, 1.1 .cvsignore, 1.3, 1.4 kscope.spec, 1.4, 1.5 sources, 1.3, 1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list