* version 1.8.0
* Support for kernels:
2.6.5-7.287.3 (SLES 9),
- 2.6.9-55.0.12.EL (RHEL 4),
+ 2.6.9-67.EL (RHEL 4),
2.6.16.54-0.2.3 (SLES 10),
2.6.18-53.1.4.el5 (RHEL 5).
2.6.18.8 vanilla (kernel.org)
* Note that reiserfs quotas are disabled on SLES 10 in this kernel.
Severity : enhancement
+Bugzilla : 14288
+Description: Update to RHEL4 U6 kernel-2.6.9-67.EL.
+
+Severity : enhancement
Bugzilla : 14368
Description: Update to RHEL5 latest kernel-2.6.18-53.1.4.el5.
LB_LINUX_TRY_COMPILE([
#include <linux/mutex.h>
#include <linux/fs.h>
+ #undef i_mutex
],[
struct inode i;
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.9-prep.qp2.2.5.11.3qsnet
-# Mon Mar 12 20:13:46 2007
+# Linux kernel version: 2.6.9-prep.qp3.5.34.4qsnet
+# Sat Nov 24 21:29:36 2007
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_MICROCODE=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
-# CONFIG_HOTPLUG_CPU is not set
#
# Firmware Drivers
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOXEN_FE is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
+# CONFIG_HOTPLUG_CPU is not set
#
# PCMCIA/CardBus support
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
# CONFIG_SCSI_DPT_I2O is not set
+CONFIG_SCSI_ARCMSR=m
# CONFIG_SCSI_IN2000 is not set
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
CONFIG_SCSI_QLA24XX=m
-CONFIG_QLA3XXX=m
CONFIG_SCSI_QLA4XXX=m
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
-CONFIG_ATA=y
+CONFIG_ATA=m
CONFIG_SATA_AHCI=m
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INTEL_COMBINED=y
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_JMICRON=m
#
# Old CD-ROM drivers (not SCSI, not IDE)
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
+CONFIG_E1000E=m
+CONFIG_IGB=m
CONFIG_NS83820=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
+CONFIG_QLA3XXX=m
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
CONFIG_IXGB_NAPI=y
+CONFIG_CHELSIO_T3=m
CONFIG_S2IO=m
CONFIG_S2IO_NAPI=y
+CONFIG_NETXEN_NIC=m
#
# Token Ring devices
CONFIG_SMCTR=m
#
-# Quadrics QsNet
-#
-CONFIG_QSNET=m
-CONFIG_ELAN3=m
-CONFIG_ELAN4=m
-CONFIG_EP=m
-CONFIG_EIP=m
-CONFIG_RMS=m
-CONFIG_JTAG=m
-
-#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Video Adapters
#
-# CONFIG_VIDEO_BT848 is not set
+CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
#
# Graphics support
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SDP=m
# CONFIG_INFINIBAND_SDP_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-# CONFIG_INFINIBAND_ISER is not set
-# CONFIG_INFINIBAND_RDS
-# CONFIG_INFINIBAND_RDS_DEBUG is not set
+CONFIG_INFINIBAND_VNIC=m
+# CONFIG_INFINIBAND_VNIC_DEBUG is not set
+CONFIG_INFINIBAND_VNIC_STATS=y
CONFIG_INFINIBAND_MADEYE=m
#
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82860=m
+CONFIG_EDAC_K8=m
CONFIG_EDAC_R82600=m
CONFIG_EDAC_POLL=y
-CONFIG_EDAC_K8=m
#
# File systems
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_4KSTACKS is not set
# CONFIG_SCHEDSTATS is not set
-CONFIG_LOCKMETER=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
-# CONFIG_KGDB is not set
-# CONFIG_PROC_SLEEP is not set
-
#
# Security options
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_HAS_IOMEM=y
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
+CONFIG_X86_SYSENTER=y
CONFIG_PC=y
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.9-prep.qp2.2.5.11.3qsnet
-# Tue Nov 7 10:22:12 2006
+# Linux kernel version: 2.6.9-prep.qp3.5.34.4qsnet
+# Sat Nov 24 21:30:07 2007
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_HPET_EMULATE_RTC=y
# CONFIG_SMP is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_X86_UP_APIC is not set
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
CONFIG_MICROCODE=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
-# CONFIG_HOTPLUG_CPU is not set
#
# Firmware Drivers
CONFIG_EDD=m
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
-CONFIG_NOHIGHMEM=y
-# CONFIG_HIGHMEM4G is not set
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
-# CONFIG_USER_3GB is not set
-# CONFIG_USER_2GB is not set
-CONFIG_USER_1GB=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOXEN_FE is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECS=m
CONFIG_BLK_DEV_DELKIN=m
-# CONFIG_BLK_DEV_IDECD is not set
+CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=m
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
# CONFIG_SCSI_DPT_I2O is not set
+CONFIG_SCSI_ARCMSR=m
# CONFIG_SCSI_IN2000 is not set
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
CONFIG_SCSI_QLA24XX=m
-CONFIG_QLA3XXX=m
CONFIG_SCSI_QLA4XXX=m
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
-CONFIG_ATA=y
+CONFIG_ATA=m
CONFIG_SATA_AHCI=m
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INTEL_COMBINED=y
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_JMICRON=m
#
# Old CD-ROM drivers (not SCSI, not IDE)
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
+CONFIG_E1000E=m
+CONFIG_IGB=m
CONFIG_NS83820=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
+CONFIG_QLA3XXX=m
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
CONFIG_IXGB_NAPI=y
+CONFIG_CHELSIO_T3=m
CONFIG_S2IO=m
CONFIG_S2IO_NAPI=y
+CONFIG_NETXEN_NIC=m
#
# Token Ring devices
CONFIG_SMCTR=m
#
-# Quadrics QsNet
-#
-CONFIG_QSNET=m
-CONFIG_ELAN3=m
-CONFIG_ELAN4=m
-CONFIG_EP=m
-CONFIG_EIP=m
-CONFIG_RMS=m
-CONFIG_JTAG=m
-
-#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Video Adapters
#
-# CONFIG_VIDEO_BT848 is not set
+CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
#
# Graphics support
#
# USB Host Controller Drivers
#
-# CONFIG_USB_EHCI_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_UHCI_HCD is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_SPLIT_ISO=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_UHCI_HCD=m
#
# USB Device Class drivers
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SDP=m
# CONFIG_INFINIBAND_SDP_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-# CONFIG_INFINIBAND_ISER is not set
-# CONFIG_INFINIBAND_RDS
-# CONFIG_INFINIBAND_RDS_DEBUG is not set
+CONFIG_INFINIBAND_VNIC=m
+# CONFIG_INFINIBAND_VNIC_DEBUG is not set
+CONFIG_INFINIBAND_VNIC_STATS=y
CONFIG_INFINIBAND_MADEYE=m
#
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82860=m
+CONFIG_EDAC_K8=m
CONFIG_EDAC_R82600=m
CONFIG_EDAC_POLL=y
-CONFIG_EDAC_K8=m
#
# File systems
# CONFIG_DEBUG_SLAB is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
+CONFIG_DEBUG_HIGHMEM=y
CONFIG_DEBUG_INFO=y
-CONFIG_FRAME_POINTER=y
+# CONFIG_FRAME_POINTER is not set
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_KPROBES=y
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_4KSTACKS is not set
# CONFIG_SCHEDSTATS is not set
-# CONFIG_KGDB is not set
-CONFIG_PROC_SLEEP=y
#
# Security options
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_HAS_IOMEM=y
CONFIG_X86_BIOS_REBOOT=y
+CONFIG_X86_SYSENTER=y
CONFIG_PC=y
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.9-prep.qp2.2.5.11.3qsnet
-# Mon Jul 31 19:41:42 2006
+# Linux kernel version: 2.6.9-prep.qp3.5.34.4qsnet
+# Sat Nov 24 21:28:15 2007
#
#
CONFIG_DISCONTIGMEM=y
CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y
+CONFIG_IA64_LOCAL_APIC_INFO_MOD=m
CONFIG_FORCE_MAX_ZONEORDER=18
CONFIG_SMP=y
CONFIG_NR_CPUS=64
CONFIG_IA64_PALINFO=y
CONFIG_IOPROC=y
CONFIG_PTRACK=y
-CONFIG_IA64_LOCAL_APIC_INFO_MOD=m
#
# Firmware Drivers
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_ARCMSR=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
CONFIG_SCSI_QLA24XX=m
-CONFIG_QLA3XXX=m
CONFIG_SCSI_QLA4XXX=m
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
-CONFIG_ATA=y
+CONFIG_ATA=m
CONFIG_SATA_AHCI=m
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INTEL_COMBINED=y
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_JMICRON=m
#
# Multi-device support (RAID and LVM)
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
+CONFIG_E1000E=m
+CONFIG_IGB=m
CONFIG_NS83820=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
+CONFIG_QLA3XXX=m
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
CONFIG_IXGB_NAPI=y
+CONFIG_CHELSIO_T3=m
CONFIG_S2IO=m
CONFIG_S2IO_NAPI=y
+CONFIG_NETXEN_NIC=m
#
# Token Ring devices
CONFIG_ABYSS=m
#
-# Quadrics QsNet
-#
-CONFIG_QSNET=m
-CONFIG_ELAN3=m
-CONFIG_ELAN4=m
-CONFIG_EP=m
-CONFIG_EIP=m
-CONFIG_RMS=m
-CONFIG_JTAG=m
-
-#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Video Adapters
#
-# CONFIG_VIDEO_BT848 is not set
+CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
#
# Graphics support
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_ADDR_TRANS=y
-# CONFIG_IPATH_CORE is not set
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SDP=m
# CONFIG_INFINIBAND_SDP_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-# CONFIG_INFINIBAND_ISER is not set
-# CONFIG_INFINIBAND_RDS_DEBUG is not set
+CONFIG_INFINIBAND_VNIC=m
+# CONFIG_INFINIBAND_VNIC_DEBUG is not set
+CONFIG_INFINIBAND_VNIC_STATS=y
CONFIG_INFINIBAND_MADEYE=m
#
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_HAS_IOMEM=y
#
# HP Simulator drivers
# CONFIG_DISABLE_VHPT is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set
-# CONFIG_KGDB is not set
#
# Security options
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.9-prep.qp2.2.5.11.3qsnet
-# Mon Jul 31 19:44:37 2006
+# Linux kernel version: 2.6.9-prep.qp3.5.34.4qsnet
+# Sat Nov 24 21:28:54 2007
#
#
CONFIG_DISCONTIGMEM=y
CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y
+CONFIG_IA64_LOCAL_APIC_INFO_MOD=m
CONFIG_FORCE_MAX_ZONEORDER=18
CONFIG_SMP=y
CONFIG_NR_CPUS=64
CONFIG_IA64_PALINFO=y
CONFIG_IOPROC=y
CONFIG_PTRACK=y
-CONFIG_IA64_LOCAL_APIC_INFO_MOD=m
#
# Firmware Drivers
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_ARCMSR=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
CONFIG_SCSI_QLA24XX=m
-CONFIG_QLA3XXX=m
CONFIG_SCSI_QLA4XXX=m
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
-CONFIG_ATA=y
+CONFIG_ATA=m
CONFIG_SATA_AHCI=m
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INTEL_COMBINED=y
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_JMICRON=m
#
# Multi-device support (RAID and LVM)
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
+CONFIG_E1000E=m
+CONFIG_IGB=m
CONFIG_NS83820=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
+CONFIG_QLA3XXX=m
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
CONFIG_IXGB_NAPI=y
+CONFIG_CHELSIO_T3=m
CONFIG_S2IO=m
CONFIG_S2IO_NAPI=y
+CONFIG_NETXEN_NIC=m
#
# Token Ring devices
CONFIG_ABYSS=m
#
-# Quadrics QsNet
-#
-CONFIG_QSNET=m
-CONFIG_ELAN3=m
-CONFIG_ELAN4=m
-CONFIG_EP=m
-CONFIG_EIP=m
-CONFIG_RMS=m
-CONFIG_JTAG=m
-
-#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Video Adapters
#
-# CONFIG_VIDEO_BT848 is not set
+CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
#
# Graphics support
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_ADDR_TRANS=y
-# CONFIG_IPATH_CORE is not set
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SDP=m
# CONFIG_INFINIBAND_SDP_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-# CONFIG_INFINIBAND_ISER is not set
-# CONFIG_INFINIBAND_RDS_DEBUG is not set
+CONFIG_INFINIBAND_VNIC=m
+# CONFIG_INFINIBAND_VNIC_DEBUG is not set
+CONFIG_INFINIBAND_VNIC_STATS=y
CONFIG_INFINIBAND_MADEYE=m
#
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_HAS_IOMEM=y
#
# HP Simulator drivers
# CONFIG_DISABLE_VHPT is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set
-# CONFIG_KGDB is not set
#
# Security options
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.9-prep.qp2.2.5.11.3qsnet
-# Mon Jul 31 19:52:59 2006
+# Linux kernel version: 2.6.9-prep.qp3.5.34.4qsnet
+# Sat Nov 24 21:26:14 2007
#
CONFIG_X86_64=y
CONFIG_64BIT=y
# CONFIG_MPSC is not set
CONFIG_GENERIC_CPU=y
# CONFIG_MEM_MIRROR is not set
+# CONFIG_X86_64_XEN is not set
CONFIG_X86_L1_CACHE_BYTES=128
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_TSC=y
CONFIG_X86_MCE_AMD=y
CONFIG_IOPROC=y
CONFIG_PTRACK=y
-# CONFIG_X86_64_XEN is not set
-
+
#
# Power management options
#
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_ARCMSR=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
CONFIG_SCSI_QLA24XX=m
-CONFIG_QLA3XXX=m
CONFIG_SCSI_QLA4XXX=m
-
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
-CONFIG_ATA=y
+CONFIG_ATA=m
CONFIG_SATA_AHCI=m
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INTEL_COMBINED=y
-
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_JMICRON=m
#
# Multi-device support (RAID and LVM)
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
+CONFIG_E1000E=m
+CONFIG_IGB=m
CONFIG_NS83820=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
+CONFIG_QLA3XXX=m
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
CONFIG_IXGB_NAPI=y
+CONFIG_CHELSIO_T3=m
CONFIG_S2IO=m
CONFIG_S2IO_NAPI=y
+CONFIG_NETXEN_NIC=m
#
# Token Ring devices
CONFIG_ABYSS=m
#
-# Quadrics QsNet
-#
-CONFIG_QSNET=m
-CONFIG_ELAN3=m
-CONFIG_ELAN4=m
-CONFIG_EP=m
-CONFIG_EIP=m
-CONFIG_RMS=m
-CONFIG_JTAG=m
-
-#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Video Adapters
#
-# CONFIG_VIDEO_BT848 is not set
+CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
#
# Graphics support
#
# InfiniBand support
#
-# CONFIG_INFINIBAND is not set
-CONFIG_IPATH_CORE=m
-CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SDP=m
# CONFIG_INFINIBAND_SDP_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-# CONFIG_INFINIBAND_ISER is not set
-# CONFIG_INFINIBAND_RDS_DEBUG is not set
+CONFIG_INFINIBAND_VNIC=m
+# CONFIG_INFINIBAND_VNIC_DEBUG is not set
+CONFIG_INFINIBAND_VNIC_STATS=y
CONFIG_INFINIBAND_MADEYE=m
#
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82860=m
+CONFIG_EDAC_K8=m
CONFIG_EDAC_R82600=m
CONFIG_EDAC_POLL=y
-CONFIG_EDAC_K8=m
#
# Firmware Drivers
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_INFO is not set
-CONFIG_FRAME_POINTER=y
-CONFIG_FRAME_POINTER_FORCE=y
CONFIG_INIT_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_IOMMU_DEBUG is not set
CONFIG_KPROBES=y
-# CONFIG_LOCKMETER is not set
-CONFIG_PROC_SLEEP=y
#
# Security options
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_HAS_IOMEM=y
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.9-prep.qp2.2.5.11.3qsnet
-# Mon Jul 31 19:51:03 2006
+# Linux kernel version: 2.6.9-prep.qp3.5.34.4qsnet
+# Sat Nov 24 21:27:28 2007
#
CONFIG_X86_64=y
CONFIG_64BIT=y
# CONFIG_MPSC is not set
CONFIG_GENERIC_CPU=y
# CONFIG_MEM_MIRROR is not set
+# CONFIG_X86_64_XEN is not set
CONFIG_X86_L1_CACHE_BYTES=128
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_TSC=y
CONFIG_X86_MCE_AMD=y
CONFIG_IOPROC=y
CONFIG_PTRACK=y
-# CONFIG_X86_64_XEN is not set
-
+
#
# Power management options
#
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_ARCMSR=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
CONFIG_SCSI_QLA24XX=m
-CONFIG_QLA3XXX=m
CONFIG_SCSI_QLA4XXX=m
-
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
-CONFIG_ATA=y
+CONFIG_ATA=m
CONFIG_SATA_AHCI=m
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INTEL_COMBINED=y
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_JMICRON=m
#
# Multi-device support (RAID and LVM)
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
+CONFIG_E1000E=m
+CONFIG_IGB=m
CONFIG_NS83820=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
+CONFIG_QLA3XXX=m
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
CONFIG_IXGB_NAPI=y
+CONFIG_CHELSIO_T3=m
CONFIG_S2IO=m
CONFIG_S2IO_NAPI=y
+CONFIG_NETXEN_NIC=m
#
# Token Ring devices
CONFIG_ABYSS=m
#
-# Quadrics QsNet
-#
-CONFIG_QSNET=m
-CONFIG_ELAN3=m
-CONFIG_ELAN4=m
-CONFIG_EP=m
-CONFIG_EIP=m
-CONFIG_RMS=m
-CONFIG_JTAG=m
-
-#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Video Adapters
#
-# CONFIG_VIDEO_BT848 is not set
+CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
#
# Graphics support
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_IPATH_CORE=m
-CONFIG_INFINIBAND_IPATH=m
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SDP=m
# CONFIG_INFINIBAND_SDP_DEBUG is not set
-CONFIG_INFINIBAND_SRP=m
-# CONFIG_INFINIBAND_ISER is not set
-# CONFIG_INFINIBAND_RDS_DEBUG is not set
+CONFIG_INFINIBAND_VNIC=m
+# CONFIG_INFINIBAND_VNIC_DEBUG is not set
+CONFIG_INFINIBAND_VNIC_STATS=y
CONFIG_INFINIBAND_MADEYE=m
#
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82860=m
+CONFIG_EDAC_K8=m
CONFIG_EDAC_R82600=m
CONFIG_EDAC_POLL=y
-CONFIG_EDAC_K8=m
#
# Firmware Drivers
# CONFIG_SCHEDSTATS is not set
# CONFIG_IOMMU_DEBUG is not set
CONFIG_KPROBES=y
-# CONFIG_KGDB is not set
#
# Security options
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_HAS_IOMEM=y
===================================================================
--- linux-2.6.4-51.0.orig/fs/dcache.c 2004-05-06 22:24:42.000000000 -0400
+++ linux-2.6.4-51.0/fs/dcache.c 2004-05-06 22:58:37.000000000 -0400
-@@ -1195,12 +1195,11 @@
+@@ -1195,7 +1195,7 @@
* dcache entries should not be moved in this way.
*/
--void d_move(struct dentry * dentry, struct dentry * target)
-+void __d_move(struct dentry * dentry, struct dentry * target)
+-static void d_move_locked(struct dentry * dentry, struct dentry * target)
++void d_move_locked(struct dentry * dentry, struct dentry * target)
{
- if (!dentry->d_inode)
- printk(KERN_WARNING "VFS: moving negative dcache entry\n");
-
-- spin_lock(&dcache_lock);
- write_seqlock(&rename_lock);
- /*
- * XXXX: do we really need to take target->d_lock?
-@@ -1253,6 +1252,14 @@
- spin_unlock(&target->d_lock);
- spin_unlock(&dentry->d_lock);
+ struct hlist_head *list;
+
+@@ -1253,6 +1252,8 @@
write_sequnlock(&rename_lock);
-+}
-+
-+EXPORT_SYMBOL(__d_move);
-+
-+void d_move(struct dentry *dentry, struct dentry *target)
-+{
-+ spin_lock(&dcache_lock);
-+ __d_move(dentry, target);
- spin_unlock(&dcache_lock);
}
++EXPORT_SYMBOL(d_move_locked);
++
+ /**
+ * d_move - move a dentry
+ * @dentry: entry to move
Index: linux-2.6.4-51.0/include/linux/dcache.h
===================================================================
--- linux-2.6.4-51.0.orig/include/linux/dcache.h 2004-05-06 22:24:42.000000000 -0400
* This adds the entry to the hash queues.
*/
extern void d_rehash(struct dentry *);
-+extern void __d_rehash(struct dentry *, int lock);
++extern void d_rehash_cond(struct dentry *, int lock);
/**
* d_add - add dentry to hash queues
/* used for rename() and baskets */
extern void d_move(struct dentry *, struct dentry *);
-+extern void __d_move(struct dentry *, struct dentry *);
++extern void d_move_locked(struct dentry *, struct dentry *);
/* appendix may either be NULL or be used for transname suffixes */
extern struct dentry * d_lookup(struct dentry *, struct qstr *);
* tracks a compound transaction through its various states:
*
@@ -553,6 +563,21 @@ struct transaction_s
- spinlock_t t_handle_lock;
-
- /*
+ spinlock_t t_handle_lock;
+
+ /*
+ * Longest time some handle had to wait for running transaction
+ */
+ unsigned long t_max_wait;
* [t_handle_lock]
*/
@@ -592,6 +617,57 @@ struct transaction_s
- struct list_head t_jcb;
+ #endif
};
-
+
+struct transaction_run_stats_s {
+ unsigned long rs_wait;
+ unsigned long rs_running;
===================================================================
--- linux-2.6.9.orig/fs/jbd/checkpoint.c
+++ linux-2.6.9/fs/jbd/checkpoint.c
-@@ -166,6 +166,7 @@ static int __cleanup_transaction(journal
- transaction_t *t = jh->b_transaction;
- tid_t tid = t->t_tid;
-
-+ transaction->t_chp_stats.cs_forced_to_close++;
- spin_unlock(&journal->j_list_lock);
- jbd_unlock_bh_state(bh);
- log_start_commit(journal, tid);
-@@ -226,7 +227,7 @@ __flush_batch(journal_t *journal, struct
+@@ -126,7 +127,8 @@
+ * Called under jbd_lock_bh_state(jh2bh(jh)), and drops it
*/
- static int __flush_buffer(journal_t *journal, struct journal_head *jh,
- struct buffer_head **bhs, int *batch_count,
-- int *drop_count)
-+ int *drop_count, transaction_t *transaction)
+ static int __process_buffer(journal_t *journal, struct journal_head *jh,
+- struct buffer_head **bhs, int *batch_count)
++ struct buffer_head **bhs, int *batch_count,
++ transaction_t *transaction)
{
struct buffer_head *bh = jh2bh(jh);
int ret = 0;
-@@ -247,6 +248,7 @@ static int __flush_buffer(journal_t *jou
- set_buffer_jwrite(bh);
+@@ -166,6 +166,7 @@
+ transaction_t *t = jh->b_transaction;
+ tid_t tid = t->t_tid;
+
++ transaction->t_chp_stats.cs_forced_to_close++;
+ spin_unlock(&journal->j_list_lock);
+ jbd_unlock_bh_state(bh);
+ log_start_commit(journal, tid);
+@@ -247,6 +248,7 @@
bhs[*batch_count] = bh;
+ __buffer_relink_io(jh);
jbd_unlock_bh_state(bh);
+ transaction->t_chp_stats.cs_written++;
(*batch_count)++;
if (*batch_count == NR_BATCH) {
- __flush_batch(journal, bhs, batch_count);
+ spin_unlock(&journal->j_list_lock);
@@ -315,6 +317,8 @@ int log_do_checkpoint(journal_t *journal
- tid_t this_tid;
-
- transaction = journal->j_checkpoint_transactions;
-+ if (transaction->t_chp_stats.cs_chp_time == 0)
-+ transaction->t_chp_stats.cs_chp_time = CURRENT_MSECS;
- this_tid = transaction->t_tid;
- jh = transaction->t_checkpoint_list;
- last_jh = jh->b_cpprev;
+ if (!journal->j_checkpoint_transactions)
+ goto out;
+ transaction = journal->j_checkpoint_transactions;
++ if (transaction->t_chp_stats.cs_chp_time == 0)
++ transaction->t_chp_stats.cs_chp_time = CURRENT_MSECS;
+ this_tid = transaction->t_tid;
+ restart:
+ /*
@@ -331,7 +335,8 @@ int log_do_checkpoint(journal_t *journal
retry = 1;
break;
}
-- retry = __flush_buffer(journal, jh, bhs, &batch_count, &drop_count);
-+ retry = __flush_buffer(journal, jh, bhs, &batch_count,
-+ &drop_count, transaction);
- } while (jh != last_jh && !retry);
+- retry = __process_buffer(journal, jh, bhs,&batch_count);
++ retry = __process_buffer(journal, jh, bhs,&batch_count,
++ transaction);
+ }
if (batch_count) {
@@ -597,6 +602,8 @@ void __journal_insert_checkpoint(struct
out:
return VM_FAULT_MINOR;
@@ -1813,6 +1824,7 @@ retry:
+
/* no need to invalidate: a not-present page shouldn't be cached */
update_mmu_cache(vma, address, entry);
- lazy_mmu_prot_update(entry);
+ ioproc_update_page(vma, address);
spin_unlock(&mm->page_table_lock);
out:
--- /dev/null
+--- linux-2.6.9-67/drivers/md/raid5.c 2007-11-21 21:12:50.000000000 -0700
++++ linux-2.6.9-55.0.12/drivers/md/raid5.c 2007-11-02 01:10:35.000000000 -0700
+@@ -49,7 +49,7 @@
+ * This macro is used to determine the 'next' bio in the list, given the sector
+ * of the current stripe+device
+ */
+-#define r5_next_bio(bio, sect) ( ( (bio)->bi_sector + ((bio)->bi_size>>9) < sect + STRIPE_SECTORS) ? (bio)->bi_next : NULL)
++#define r5_next_bio(bio, sect) ( ( bio->bi_sector + (bio->bi_size>>9) < sect + STRIPE_SECTORS) ? bio->bi_next : NULL)
+ /*
+ * The following can be used to debug the driver
+ */
+@@ -232,7 +232,6 @@ static struct stripe_head *__find_stripe
+ }
+
+ static void unplug_slaves(mddev_t *mddev);
+-static void raid5_unplug_device(request_queue_t *q);
+
+ static struct stripe_head *get_active_stripe(raid5_conf_t *conf, sector_t sector,
+ int pd_idx, int noblock)
+@@ -727,10 +726,6 @@ static void compute_parity(struct stripe
+ ptr[count++] = page_address(sh->dev[i].page);
+ chosen = sh->dev[i].towrite;
+ sh->dev[i].towrite = NULL;
+-
+- if (test_and_clear_bit(R5_Overlap, &sh->dev[i].flags))
+- wake_up(&conf->wait_for_overlap);
+-
+ if (sh->dev[i].written) BUG();
+ sh->dev[i].written = chosen;
+ check_xor();
+@@ -743,10 +738,6 @@ static void compute_parity(struct stripe
+ if (i!=pd_idx && sh->dev[i].towrite) {
+ chosen = sh->dev[i].towrite;
+ sh->dev[i].towrite = NULL;
+-
+- if (test_and_clear_bit(R5_Overlap, &sh->dev[i].flags))
+- wake_up(&conf->wait_for_overlap);
+-
+ if (sh->dev[i].written) BUG();
+ sh->dev[i].written = chosen;
+ }
+@@ -803,7 +794,7 @@ static void compute_parity(struct stripe
+ * toread/towrite point to the first in a chain.
+ * The bi_next chain must be in order.
+ */
+-static int add_stripe_bio(struct stripe_head *sh, struct bio *bi, int dd_idx, int forwrite)
++static void add_stripe_bio (struct stripe_head *sh, struct bio *bi, int dd_idx, int forwrite)
+ {
+ struct bio **bip;
+ raid5_conf_t *conf = sh->raid_conf;
+@@ -820,13 +811,10 @@ static int add_stripe_bio(struct stripe_
+ else
+ bip = &sh->dev[dd_idx].toread;
+ while (*bip && (*bip)->bi_sector < bi->bi_sector) {
+- if ((*bip)->bi_sector + ((*bip)->bi_size >> 9) > bi->bi_sector)
+- goto overlap;
++ BUG_ON((*bip)->bi_sector + ((*bip)->bi_size >> 9) > bi->bi_sector);
+ bip = & (*bip)->bi_next;
+ }
+- if (*bip && (*bip)->bi_sector < bi->bi_sector + ((bi->bi_size)>>9))
+- goto overlap;
+-
++/* FIXME do I need to worry about overlapping bion */
+ if (*bip && bi->bi_next && (*bip) != bi->bi_next)
+ BUG();
+ if (*bip)
+@@ -841,7 +829,7 @@ static int add_stripe_bio(struct stripe_
+ (unsigned long long)sh->sector, dd_idx);
+
+ if (forwrite) {
+- /* check if page is covered */
++ /* check if page is coverred */
+ sector_t sector = sh->dev[dd_idx].sector;
+ for (bi=sh->dev[dd_idx].towrite;
+ sector < sh->dev[dd_idx].sector + STRIPE_SECTORS &&
+@@ -853,13 +841,6 @@ static int add_stripe_bio(struct stripe_
+ if (sector >= sh->dev[dd_idx].sector + STRIPE_SECTORS)
+ set_bit(R5_OVERWRITE, &sh->dev[dd_idx].flags);
+ }
+- return 1;
+-
+- overlap:
+- set_bit(R5_Overlap, &sh->dev[dd_idx].flags);
+- spin_unlock_irq(&conf->device_lock);
+- spin_unlock(&sh->lock);
+- return 0;
+ }
+
+
+@@ -920,8 +901,6 @@ static void handle_stripe(struct stripe_
+ spin_lock_irq(&conf->device_lock);
+ rbi = dev->toread;
+ dev->toread = NULL;
+- if (test_and_clear_bit(R5_Overlap, &dev->flags))
+- wake_up(&conf->wait_for_overlap);
+ spin_unlock_irq(&conf->device_lock);
+ while (rbi && rbi->bi_sector < dev->sector + STRIPE_SECTORS) {
+ copy_data(0, rbi, dev->page, dev->sector);
+@@ -969,9 +948,6 @@ static void handle_stripe(struct stripe_
+ sh->dev[i].towrite = NULL;
+ if (bi) to_write--;
+
+- if (test_and_clear_bit(R5_Overlap, &sh->dev[i].flags))
+- wake_up(&conf->wait_for_overlap);
+-
+ while (bi && bi->bi_sector < sh->dev[i].sector + STRIPE_SECTORS){
+ struct bio *nextbi = r5_next_bio(bi, sh->dev[i].sector);
+ clear_bit(BIO_UPTODATE, &bi->bi_flags);
+@@ -1000,8 +976,6 @@ static void handle_stripe(struct stripe_
+ if (!test_bit(R5_Insync, &sh->dev[i].flags)) {
+ bi = sh->dev[i].toread;
+ sh->dev[i].toread = NULL;
+- if (test_and_clear_bit(R5_Overlap, &sh->dev[i].flags))
+- wake_up(&conf->wait_for_overlap);
+ if (bi) to_read--;
+ while (bi && bi->bi_sector < sh->dev[i].sector + STRIPE_SECTORS){
+ struct bio *nextbi = r5_next_bio(bi, sh->dev[i].sector);
+@@ -1441,7 +1415,6 @@ static int make_request (request_queue_t
+ if ( bio_data_dir(bi) == WRITE )
+ md_write_start(mddev);
+ for (;logical_sector < last_sector; logical_sector += STRIPE_SECTORS) {
+- DEFINE_WAIT(w);
+
+ new_sector = raid5_compute_sector(logical_sector,
+ raid_disks, data_disks, &dd_idx, &pd_idx, conf);
+@@ -1450,28 +1423,17 @@ static int make_request (request_queue_t
+ (unsigned long long)new_sector,
+ (unsigned long long)logical_sector);
+
+- retry:
+- prepare_to_wait(&conf->wait_for_overlap, &w, TASK_UNINTERRUPTIBLE);
+ sh = get_active_stripe(conf, new_sector, pd_idx, (bi->bi_rw&RWA_MASK));
+ if (sh) {
+- if (!add_stripe_bio(sh, bi, dd_idx, (bi->bi_rw&RW_MASK))) {
+- /* Add failed due to overlap. Flush everything
+- * and wait a while
+- */
+- raid5_unplug_device(mddev->queue);
+- release_stripe(sh);
+- schedule();
+- goto retry;
+- }
+- finish_wait(&conf->wait_for_overlap, &w);
++
++ add_stripe_bio(sh, bi, dd_idx, (bi->bi_rw&RW_MASK));
++
+ raid5_plug_device(conf);
+ handle_stripe(sh);
+ release_stripe(sh);
+-
+ } else {
+ /* cannot get stripe for read-ahead, just give-up */
+ clear_bit(BIO_UPTODATE, &bi->bi_flags);
+- finish_wait(&conf->wait_for_overlap, &w);
+ break;
+ }
+
+@@ -1619,7 +1581,6 @@ static int run (mddev_t *mddev)
+
+ conf->device_lock = SPIN_LOCK_UNLOCKED;
+ init_waitqueue_head(&conf->wait_for_stripe);
+- init_waitqueue_head(&conf->wait_for_overlap);
+ INIT_LIST_HEAD(&conf->handle_list);
+ INIT_LIST_HEAD(&conf->delayed_list);
+ INIT_LIST_HEAD(&conf->inactive_list);
+--- linux-2.6.9-67/include/linux/raid/raid5.h 2007-11-21 21:12:41.000000000 -0700
++++ linux-2.6.9-55.0.12/include/linux/raid/raid5.h 2004-10-18 15:54:55.000000000 -0600
+@@ -152,7 +152,6 @@ struct stripe_head {
+ #define R5_Wantread 4 /* want to schedule a read */
+ #define R5_Wantwrite 5
+ #define R5_Syncio 6 /* this io need to be accounted as resync io */
+-#define R5_Overlap 7 /* There is a pending overlapping request on this block */
+
+ /*
+ * Write method
+@@ -220,7 +219,6 @@ struct raid5_private_data {
+ atomic_t active_stripes;
+ struct list_head inactive_list;
+ wait_queue_head_t wait_for_stripe;
+- wait_queue_head_t wait_for_overlap;
+ int inactive_blocked; /* release of inactive stripes blocked,
+ * waiting for 25% to be free
+ */
+--- linux-2.6.9-67/drivers/md/raid6main.c 2007-11-21 21:12:41.000000000 -0700
++++ linux-2.6.9-55.0.12/drivers/md/raid6main.c 2007-11-02 01:10:20.000000000 -0700
+@@ -54,7 +54,7 @@
+ * This macro is used to determine the 'next' bio in the list, given the sector
+ * of the current stripe+device
+ */
+-#define r5_next_bio(bio, sect) ( ( (bio)->bi_sector + ((bio)->bi_size>>9) < sect + STRIPE_SECTORS) ? (bio)->bi_next : NULL)
++#define r5_next_bio(bio, sect) ( ( bio->bi_sector + (bio->bi_size>>9) < sect + STRIPE_SECTORS) ? bio->bi_next : NULL)
+ /*
+ * The following can be used to debug the driver
+ */
+@@ -740,10 +740,6 @@ static void compute_parity(struct stripe
+ if ( i != pd_idx && i != qd_idx && sh->dev[i].towrite ) {
+ chosen = sh->dev[i].towrite;
+ sh->dev[i].towrite = NULL;
+-
+- if (test_and_clear_bit(R5_Overlap, &sh->dev[i].flags))
+- wake_up(&conf->wait_for_overlap);
+-
+ if (sh->dev[i].written) BUG();
+ sh->dev[i].written = chosen;
+ }
+@@ -902,7 +898,7 @@ static void compute_block_2(struct strip
+ * toread/towrite point to the first in a chain.
+ * The bi_next chain must be in order.
+ */
+-static int add_stripe_bio(struct stripe_head *sh, struct bio *bi, int dd_idx, int forwrite)
++static void add_stripe_bio (struct stripe_head *sh, struct bio *bi, int dd_idx, int forwrite)
+ {
+ struct bio **bip;
+ raid6_conf_t *conf = sh->raid_conf;
+@@ -919,13 +915,10 @@ static int add_stripe_bio(struct stripe_
+ else
+ bip = &sh->dev[dd_idx].toread;
+ while (*bip && (*bip)->bi_sector < bi->bi_sector) {
+- if ((*bip)->bi_sector + ((*bip)->bi_size >> 9) > bi->bi_sector)
+- goto overlap;
+- bip = &(*bip)->bi_next;
++ BUG_ON((*bip)->bi_sector + ((*bip)->bi_size >> 9) > bi->bi_sector);
++ bip = & (*bip)->bi_next;
+ }
+- if (*bip && (*bip)->bi_sector < bi->bi_sector + ((bi->bi_size)>>9))
+- goto overlap;
+-
++/* FIXME do I need to worry about overlapping bion */
+ if (*bip && bi->bi_next && (*bip) != bi->bi_next)
+ BUG();
+ if (*bip)
+@@ -940,7 +933,7 @@ static int add_stripe_bio(struct stripe_
+ (unsigned long long)sh->sector, dd_idx);
+
+ if (forwrite) {
+- /* check if page is covered */
++ /* check if page is coverred */
+ sector_t sector = sh->dev[dd_idx].sector;
+ for (bi=sh->dev[dd_idx].towrite;
+ sector < sh->dev[dd_idx].sector + STRIPE_SECTORS &&
+@@ -952,13 +945,6 @@ static int add_stripe_bio(struct stripe_
+ if (sector >= sh->dev[dd_idx].sector + STRIPE_SECTORS)
+ set_bit(R5_OVERWRITE, &sh->dev[dd_idx].flags);
+ }
+- return 1;
+-
+- overlap:
+- set_bit(R5_Overlap, &sh->dev[dd_idx].flags);
+- spin_unlock_irq(&conf->device_lock);
+- spin_unlock(&sh->lock);
+- return 0;
+ }
+
+
+@@ -1022,8 +1008,6 @@ static void handle_stripe(struct stripe_
+ spin_lock_irq(&conf->device_lock);
+ rbi = dev->toread;
+ dev->toread = NULL;
+- if (test_and_clear_bit(R5_Overlap, &dev->flags))
+- wake_up(&conf->wait_for_overlap);
+ spin_unlock_irq(&conf->device_lock);
+ while (rbi && rbi->bi_sector < dev->sector + STRIPE_SECTORS) {
+ copy_data(0, rbi, dev->page, dev->sector);
+@@ -1073,9 +1057,6 @@ static void handle_stripe(struct stripe_
+ sh->dev[i].towrite = NULL;
+ if (bi) to_write--;
+
+- if (test_and_clear_bit(R5_Overlap, &sh->dev[i].flags))
+- wake_up(&conf->wait_for_overlap);
+-
+ while (bi && bi->bi_sector < sh->dev[i].sector + STRIPE_SECTORS){
+ struct bio *nextbi = r5_next_bio(bi, sh->dev[i].sector);
+ clear_bit(BIO_UPTODATE, &bi->bi_flags);
+@@ -1104,8 +1085,6 @@ static void handle_stripe(struct stripe_
+ if (!test_bit(R5_Insync, &sh->dev[i].flags)) {
+ bi = sh->dev[i].toread;
+ sh->dev[i].toread = NULL;
+- if (test_and_clear_bit(R5_Overlap, &sh->dev[i].flags))
+- wake_up(&conf->wait_for_overlap);
+ if (bi) to_read--;
+ while (bi && bi->bi_sector < sh->dev[i].sector + STRIPE_SECTORS){
+ struct bio *nextbi = r5_next_bio(bi, sh->dev[i].sector);
+@@ -1597,7 +1576,6 @@ static int make_request (request_queue_t
+ if ( bio_data_dir(bi) == WRITE )
+ md_write_start(mddev);
+ for (;logical_sector < last_sector; logical_sector += STRIPE_SECTORS) {
+- DEFINE_WAIT(w);
+
+ new_sector = raid6_compute_sector(logical_sector,
+ raid_disks, data_disks, &dd_idx, &pd_idx, conf);
+@@ -1606,27 +1584,17 @@ static int make_request (request_queue_t
+ (unsigned long long)new_sector,
+ (unsigned long long)logical_sector);
+
+- retry:
+- prepare_to_wait(&conf->wait_for_overlap, &w, TASK_UNINTERRUPTIBLE);
+ sh = get_active_stripe(conf, new_sector, pd_idx, (bi->bi_rw&RWA_MASK));
+ if (sh) {
+- if (!add_stripe_bio(sh, bi, dd_idx, (bi->bi_rw&RW_MASK))) {
+- /* Add failed due to overlap. Flush everything
+- * and wait a while
+- */
+- raid6_unplug_device(mddev->queue);
+- release_stripe(sh);
+- schedule();
+- goto retry;
+- }
+- finish_wait(&conf->wait_for_overlap, &w);
++
++ add_stripe_bio(sh, bi, dd_idx, (bi->bi_rw&RW_MASK));
++
+ raid6_plug_device(conf);
+ handle_stripe(sh);
+ release_stripe(sh);
+ } else {
+ /* cannot get stripe for read-ahead, just give-up */
+ clear_bit(BIO_UPTODATE, &bi->bi_flags);
+- finish_wait(&conf->wait_for_overlap, &w);
+ break;
+ }
+
+@@ -1774,7 +1742,6 @@ static int run (mddev_t *mddev)
+
+ conf->device_lock = SPIN_LOCK_UNLOCKED;
+ init_waitqueue_head(&conf->wait_for_stripe);
+- init_waitqueue_head(&conf->wait_for_overlap);
+ INIT_LIST_HEAD(&conf->handle_list);
+ INIT_LIST_HEAD(&conf->delayed_list);
+ INIT_LIST_HEAD(&conf->inactive_list);
--- linux+rhel4+chaos.orig/include/linux/sysctl.h
+++ linux+rhel4+chaos/include/linux/sysctl.h
@@ -348,6 +348,8 @@ enum
- NET_TCP_TSO_WIN_DIVISOR=107,
- NET_TCP_BIC_BETA=108,
NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109,
-+ NET_TCP_RTO_MAX=110,
-+ NET_TCP_RTO_INIT=111,
+ NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=110,
+ NET_TCP_SLOW_START_AFTER_IDLE=111,
++ NET_TCP_RTO_MAX=112,
++ NET_TCP_RTO_INIT=113,
};
enum {
nr_disposed++;
}
@@ -317,7 +323,6 @@
- continue;
- invalidate_inode_buffers(inode);
- if (!atomic_read(&inode->i_count)) {
-- hlist_del_init(&inode->i_hash);
- list_move(&inode->i_list, dispose);
- inode->i_state |= I_FREEING;
- count++;
+ else {
+ invalidate_inode_buffers(inode);
+ if (!atomic_read(&inode->i_count)) {
+- hlist_del_init(&inode->i_hash);
+ list_move(&inode->i_list, dispose);
+ inode->i_state |= I_FREEING;
+ count++;
@@ -455,7 +460,6 @@
if (!can_unuse(inode))
continue;
diff -rup RH_2_6_9_55.orig/fs/nfs/nfs4proc.c RH_2_6_9_55/fs/nfs/nfs4proc.c
--- RH_2_6_9_55.orig/fs/nfs/nfs4proc.c
+++ RH_2_6_9_55/fs/nfs/nfs4proc.c
-@@ -770,17 +770,17 @@ nfs4_atomic_open(struct inode *dir, stru
- struct nfs4_state *state;
+@@ -770,27 +770,27 @@ nfs4_atomic_open(struct inode *dir, stru
+ struct nfs4_inc_open *inc_open;
if (nd->flags & LOOKUP_CREATE) {
- attr.ia_mode = nd->intent.open.create_mode;
+ BUG_ON(nd->intent.it_flags & O_CREAT);
}
+ /* track info in case the open never completes */
+ if (!(inc_open = kmalloc(sizeof(*inc_open), GFP_KERNEL)))
+ return ERR_PTR(-ENOMEM);
cred = rpcauth_lookupcred(NFS_SERVER(dir)->client->cl_auth, 0);
- state = nfs4_do_open(dir, &dentry->d_name, nd->intent.open.flags, &attr, cred);
+ state = nfs4_do_open(dir, &dentry->d_name, nd->intent.it_flags, &attr, cred);
put_rpccred(cred);
- if (IS_ERR(state))
- return (struct inode *)state;
+ if (IS_ERR(state)) {
+ kfree(inc_open);
+ return (struct inode *)state;
+ }
+ inc_open->task = current;
+- inc_open->flags = nd->intent.open.flags;
++ inc_open->flags = nd->intent.it_flags;
+ INIT_LIST_HEAD(&inc_open->state);
+ spin_lock(&state->inode->i_lock);
+ list_add(&inc_open->state, &state->inc_open);
diff -rup RH_2_6_9_55.orig/fs/open.c RH_2_6_9_55/fs/open.c
--- RH_2_6_9_55.orig/fs/open.c
+++ RH_2_6_9_55/fs/open.c
*/
-void d_rehash(struct dentry * entry)
-+void __d_rehash(struct dentry * entry, int lock)
++void d_rehash_cond(struct dentry * entry, int lock)
{
struct hlist_head *list = d_hash(entry->d_parent, entry->d_name.hash);
+ spin_unlock(&dcache_lock);
}
-+EXPORT_SYMBOL(__d_rehash);
++EXPORT_SYMBOL(d_rehash_cond);
+
+void d_rehash(struct dentry * entry)
+{
-+ __d_rehash(entry, 1);
-+ }
++ d_rehash_cond(entry, 1);
++}
+
#define do_switch(x,y) do { \
__typeof__ (x) __tmp = x; \
linux-2.6-binutils-2.16.patch
vm-tunables-rhel4.patch
tcp-rto_proc-2.6.9.patch
+rollback-raid5ch-to-55.patch
raid5-stats.patch
raid5-configurable-cachesize.patch
raid5-large-io.patch
lnxmaj="2.6.9"
-lnxrel="55.0.12.EL"
+lnxrel="67.EL"
KERNEL=linux-${lnxmaj}-${lnxrel}.tar.bz2
SERIES=2.6-rhel4.series
SUPPORTED KERNELS:
2.6-suse SLES9 before SP1 already in SLES9 SP1 kernel
2.6-suse-newer SLES9: 2.6.5-7.287.3 extra patches for SLES9 after SP1
-2.6-rhel4 RHEL4: 2.6.9-55.0.12.EL
+2.6-rhel4 RHEL4: 2.6.9-67.EL
2.6-sles10 SLES10: 2.6.16.54-0.2.3
2.6-rhel5.series RHEL5: 2.6.18-53.1.4.el5
2.6.18-vanilla.series kernel.org: 2.6.18.8