Commit ee583c2d authored by Richard Russon's avatar Richard Russon

Merge flatcap.org:/home/flatcap/backup/bk/ntfs-2.6

into flatcap.org:/home/flatcap/backup/bk/ntfs-2.6-devel
parents bee6541d 276ca536
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-rc1
# Tue Aug 24 15:08:24 2004
#
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
#
# General setup
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=20
CONFIG_HOTPLUG=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
#
# Processor type and features
#
CONFIG_IA64=y
CONFIG_64BIT=y
CONFIG_MMU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_TIME_INTERPOLATION=y
CONFIG_EFI=y
CONFIG_IA64_GENERIC=y
# CONFIG_IA64_DIG is not set
# CONFIG_IA64_HP_ZX1 is not set
# CONFIG_IA64_SGI_SN2 is not set
# CONFIG_IA64_HP_SIM is not set
# CONFIG_ITANIUM is not set
CONFIG_MCKINLEY=y
# CONFIG_IA64_PAGE_SIZE_4KB is not set
# CONFIG_IA64_PAGE_SIZE_8KB is not set
CONFIG_IA64_PAGE_SIZE_16KB=y
# CONFIG_IA64_PAGE_SIZE_64KB is not set
CONFIG_IA64_L1_CACHE_SHIFT=7
CONFIG_NUMA=y
CONFIG_VIRTUAL_MEM_MAP=y
CONFIG_DISCONTIGMEM=y
CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y
CONFIG_FORCE_MAX_ZONEORDER=18
CONFIG_SMP=y
CONFIG_NR_CPUS=512
CONFIG_HOTPLUG_CPU=y
# CONFIG_PREEMPT is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y
CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y
#
# Firmware Drivers
#
CONFIG_EFI_VARS=y
CONFIG_EFI_PCDP=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
#
# Power management and ACPI
#
CONFIG_PM=y
CONFIG_ACPI=y
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
#
# Bus options (PCI, PCMCIA)
#
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
#
# PCI Hotplug Support
#
CONFIG_HOTPLUG_PCI=m
# CONFIG_HOTPLUG_PCI_FAKE is not set
CONFIG_HOTPLUG_PCI_ACPI=m
# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_PCIE is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
#
# PCMCIA/CardBus support
#
# CONFIG_PCMCIA is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
# Block devices
#
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_SIZE=4096
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE 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_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
CONFIG_BLK_DEV_CMD64X=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
CONFIG_BLK_DEV_SGIIOC4=y
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INIA100 is not set
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
CONFIG_SCSI_QLOGIC_FC=y
# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
CONFIG_SCSI_QLOGIC_1280=y
CONFIG_SCSI_QLA2XXX=y
CONFIG_SCSI_QLA21XX=m
CONFIG_SCSI_QLA22XX=m
CONFIG_SCSI_QLA2300=m
CONFIG_SCSI_QLA2322=m
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA6322 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
# CONFIG_MD_RAID10 is not set
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
#
# Fusion MPT device support
#
CONFIG_FUSION=y
CONFIG_FUSION_MAX_SGE=40
# CONFIG_FUSION_ISENSE is not set
# CONFIG_FUSION_CTL is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_NETLINK_DEV=y
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
CONFIG_ARPD=y
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
#
# Tulip family network device support
#
CONFIG_NET_TULIP=y
# CONFIG_DE2104X is not set
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set
CONFIG_EEPRO100=m
# CONFIG_EEPRO100_PIO is not set
CONFIG_E100=m
# CONFIG_E100_NAPI is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
CONFIG_E1000=m
# CONFIG_E1000_NAPI is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
CONFIG_TIGON3=y
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Telephony Support
#
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input I/O drivers
#
CONFIG_GAMEPORT=m
CONFIG_SOUND_GAMEPORT=m
# CONFIG_GAMEPORT_NS558 is not set
# CONFIG_GAMEPORT_L4 is not set
# CONFIG_GAMEPORT_EMU10K1 is not set
# CONFIG_GAMEPORT_VORTEX is not set
# CONFIG_GAMEPORT_FM801 is not set
# CONFIG_GAMEPORT_CS461x is not set
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_SYNCLINK is not set
# CONFIG_SYNCLINKMP is not set
# CONFIG_N_HDLC is not set
# CONFIG_STALDRV is not set
CONFIG_SGI_SNSC=y
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_ACPI=y
CONFIG_SERIAL_8250_NR_UARTS=6
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_MULTIPORT is not set
# CONFIG_SERIAL_8250_RSA is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_SGI_L1_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_QIC02_TAPE is not set
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_EFI_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
CONFIG_AGP=m
CONFIG_AGP_I460=m
CONFIG_AGP_HP_ZX1=m
CONFIG_DRM=y
CONFIG_DRM_TDFX=m
CONFIG_DRM_GAMMA=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_RAW_DRIVER=m
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
CONFIG_MAX_RAW_DEVS=256
#
# I2C support
#
# CONFIG_I2C is not set
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Misc devices
#
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# Graphics support
#
# CONFIG_FB is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
CONFIG_SOUND=m
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_VERBOSE_PRINTK=y
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
#
# PCI devices
#
CONFIG_SND_AC97_CODEC=m
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CS4281=m
CONFIG_SND_EMU10K1=m
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_MAESTRO3 is not set
CONFIG_SND_FM801=m
# CONFIG_SND_FM801_TEA575X is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VX222 is not set
#
# ALSA USB devices
#
# CONFIG_SND_USB_AUDIO is not set
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
#
# USB support
#
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_UHCI_HCD=m
#
# USB Device Class drivers
#
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_RW_DETECT is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_HP8200e is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
#
# USB Human Interface Devices (HID)
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set
#
# USB Multimedia devices
#
# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
#
#
# USB Network adaptors
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
#
# USB port drivers
#
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_TEST is not set
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
# CONFIG_MSDOS_FS is not set
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp437"
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_POSIX is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
CONFIG_EFI_PARTITION=y
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
#
# Library routines
#
# CONFIG_CRC_CCITT is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
#
# HP Simulator drivers
#
# CONFIG_HP_SIMETH is not set
# CONFIG_HP_SIMSERIAL is not set
# CONFIG_HP_SIMSCSI is not set
#
# Profiling support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
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_INFO is not set
CONFIG_IA64_GRANULE_16MB=y
# CONFIG_IA64_GRANULE_64MB is not set
# CONFIG_IA64_PRINT_HAZARDS is not set
# CONFIG_DISABLE_VHPT is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set
CONFIG_SYSVIPC_COMPAT=y
#
# Security options
#
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=m
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_TEST is not set
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-rc2 # Linux kernel version: 2.6.10-rc1
# Fri Sep 24 08:59:00 2004 # Mon Nov 1 14:35:44 2004
# #
# #
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
# #
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y CONFIG_CLEAN_COMPILE=y
CONFIG_LOCK_KERNEL=y
# #
# General setup # General setup
...@@ -22,6 +23,7 @@ CONFIG_SYSCTL=y ...@@ -22,6 +23,7 @@ CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set # CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=20 CONFIG_LOG_BUF_SHIFT=20
CONFIG_HOTPLUG=y CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set # CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set # CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y CONFIG_KALLSYMS=y
...@@ -29,12 +31,12 @@ CONFIG_KALLSYMS_ALL=y ...@@ -29,12 +31,12 @@ CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y CONFIG_FUTEX=y
CONFIG_EPOLL=y CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set # CONFIG_TINY_SHMEM is not set
# #
...@@ -45,6 +47,7 @@ CONFIG_MODULE_UNLOAD=y ...@@ -45,6 +47,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set # CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
...@@ -84,6 +87,7 @@ CONFIG_PREEMPT=y ...@@ -84,6 +87,7 @@ CONFIG_PREEMPT=y
CONFIG_HAVE_DEC_LOCK=y CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
CONFIG_IA64_MCA_RECOVERY=y
CONFIG_PERFMON=y CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y CONFIG_IA64_PALINFO=y
...@@ -109,6 +113,7 @@ CONFIG_ACPI_INTERPRETER=y ...@@ -109,6 +113,7 @@ CONFIG_ACPI_INTERPRETER=y
# CONFIG_ACPI_FAN is not set # CONFIG_ACPI_FAN is not set
# CONFIG_ACPI_PROCESSOR is not set # CONFIG_ACPI_PROCESSOR is not set
CONFIG_ACPI_NUMA=y CONFIG_ACPI_NUMA=y
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y CONFIG_ACPI_BUS=y
CONFIG_ACPI_POWER=y CONFIG_ACPI_POWER=y
...@@ -136,9 +141,13 @@ CONFIG_HOTPLUG_PCI=y ...@@ -136,9 +141,13 @@ CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_SGI=y CONFIG_HOTPLUG_PCI_SGI=y
# #
# PCMCIA/CardBus support # PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# PC-card bridges
# #
# CONFIG_PCMCIA is not set
# #
# Device Drivers # Device Drivers
...@@ -181,6 +190,16 @@ CONFIG_BLK_DEV_NBD=m ...@@ -181,6 +190,16 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# #
# ATA/ATAPI/MFM/RLL support # ATA/ATAPI/MFM/RLL support
...@@ -199,7 +218,6 @@ CONFIG_BLK_DEV_IDECD=y ...@@ -199,7 +218,6 @@ CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set # CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
# #
# IDE chipset support/bugfixes # IDE chipset support/bugfixes
...@@ -283,6 +301,7 @@ CONFIG_SCSI_FC_ATTRS=y ...@@ -283,6 +301,7 @@ CONFIG_SCSI_FC_ATTRS=y
# CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_LEGACY is not set
CONFIG_SCSI_SATA=y CONFIG_SCSI_SATA=y
# CONFIG_SCSI_SATA_AHCI is not set
# CONFIG_SCSI_SATA_SVW is not set # CONFIG_SCSI_SATA_SVW is not set
# CONFIG_SCSI_ATA_PIIX is not set # CONFIG_SCSI_ATA_PIIX is not set
# CONFIG_SCSI_SATA_NV is not set # CONFIG_SCSI_SATA_NV is not set
...@@ -290,6 +309,7 @@ CONFIG_SCSI_SATA=y ...@@ -290,6 +309,7 @@ CONFIG_SCSI_SATA=y
# CONFIG_SCSI_SATA_SX4 is not set # CONFIG_SCSI_SATA_SX4 is not set
# CONFIG_SCSI_SATA_SIL is not set # CONFIG_SCSI_SATA_SIL is not set
# CONFIG_SCSI_SATA_SIS is not set # CONFIG_SCSI_SATA_SIS is not set
# CONFIG_SCSI_SATA_ULI is not set
# CONFIG_SCSI_SATA_VIA is not set # CONFIG_SCSI_SATA_VIA is not set
CONFIG_SCSI_SATA_VITESSE=y CONFIG_SCSI_SATA_VITESSE=y
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
...@@ -299,12 +319,14 @@ CONFIG_SCSI_SATA_VITESSE=y ...@@ -299,12 +319,14 @@ CONFIG_SCSI_SATA_VITESSE=y
# CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set # CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set # CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_ISP is not set # CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_FC is not set
CONFIG_SCSI_QLOGIC_1280=y CONFIG_SCSI_QLOGIC_1280=y
# CONFIG_SCSI_QLOGIC_1280_1040 is not set
CONFIG_SCSI_QLA2XXX=y CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set # CONFIG_SCSI_QLA21XX is not set
CONFIG_SCSI_QLA22XX=y CONFIG_SCSI_QLA22XX=y
...@@ -402,7 +424,6 @@ CONFIG_IPV6=m ...@@ -402,7 +424,6 @@ CONFIG_IPV6=m
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
# #
# QoS and/or fair queueing # QoS and/or fair queueing
...@@ -632,6 +653,8 @@ CONFIG_USB=m ...@@ -632,6 +653,8 @@ CONFIG_USB=m
# CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set # CONFIG_USB_OTG is not set
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# #
# USB Host Controller Drivers # USB Host Controller Drivers
...@@ -651,7 +674,7 @@ CONFIG_USB_UHCI_HCD=m ...@@ -651,7 +674,7 @@ CONFIG_USB_UHCI_HCD=m
# CONFIG_USB_STORAGE is not set # CONFIG_USB_STORAGE is not set
# #
# USB Human Interface Devices (HID) # USB Input Devices
# #
CONFIG_USB_HID=m CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y CONFIG_USB_HIDINPUT=y
...@@ -718,8 +741,13 @@ CONFIG_USB_HIDINPUT=y ...@@ -718,8 +741,13 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_LCD is not set # CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set # CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set # CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_PHIDGETSERVO is not set
#
# USB ATM/DSL drivers
#
# #
# USB Gadget Support # USB Gadget Support
# #
...@@ -758,6 +786,7 @@ CONFIG_QUOTA=y ...@@ -758,6 +786,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set # CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set # CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m CONFIG_AUTOFS4_FS=m
...@@ -789,6 +818,8 @@ CONFIG_SYSFS=y ...@@ -789,6 +818,8 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set # CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y CONFIG_TMPFS=y
CONFIG_TMPFS_XATTR=y
CONFIG_TMPFS_SECURITY=y
CONFIG_HUGETLBFS=y CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y CONFIG_RAMFS=y
...@@ -921,9 +952,11 @@ CONFIG_ZLIB_DEFLATE=m ...@@ -921,9 +952,11 @@ CONFIG_ZLIB_DEFLATE=m
# #
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO=y
CONFIG_IA64_GRANULE_16MB=y CONFIG_IA64_GRANULE_16MB=y
# CONFIG_IA64_GRANULE_64MB is not set # CONFIG_IA64_GRANULE_64MB is not set
...@@ -936,6 +969,7 @@ CONFIG_SYSVIPC_COMPAT=y ...@@ -936,6 +969,7 @@ CONFIG_SYSVIPC_COMPAT=y
# #
# Security options # Security options
# #
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set # CONFIG_SECURITY is not set
# #
...@@ -949,7 +983,7 @@ CONFIG_CRYPTO_MD5=m ...@@ -949,7 +983,7 @@ CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WHIRLPOOL is not set # CONFIG_CRYPTO_WP512 is not set
CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH is not set
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-rc2 # Linux kernel version: 2.6.10-rc1
# Tue Sep 28 09:03:25 2004 # Tue Nov 2 11:35:10 2004
# #
# #
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
# #
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y CONFIG_CLEAN_COMPILE=y
CONFIG_LOCK_KERNEL=y
# #
# General setup # General setup
...@@ -22,6 +23,7 @@ CONFIG_SYSCTL=y ...@@ -22,6 +23,7 @@ CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set # CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=20 CONFIG_LOG_BUF_SHIFT=20
CONFIG_HOTPLUG=y CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set # CONFIG_EMBEDDED is not set
...@@ -30,12 +32,12 @@ CONFIG_KALLSYMS_ALL=y ...@@ -30,12 +32,12 @@ CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y CONFIG_FUTEX=y
CONFIG_EPOLL=y CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set # CONFIG_TINY_SHMEM is not set
# #
...@@ -46,6 +48,7 @@ CONFIG_MODULE_UNLOAD=y ...@@ -46,6 +48,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
...@@ -83,6 +86,7 @@ CONFIG_HOTPLUG_CPU=y ...@@ -83,6 +86,7 @@ CONFIG_HOTPLUG_CPU=y
CONFIG_HAVE_DEC_LOCK=y CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
CONFIG_IA64_MCA_RECOVERY=y
CONFIG_PERFMON=y CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y CONFIG_IA64_PALINFO=y
...@@ -109,6 +113,7 @@ CONFIG_ACPI_BUTTON=m ...@@ -109,6 +113,7 @@ CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=m CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y CONFIG_ACPI_BUS=y
CONFIG_ACPI_POWER=y CONFIG_ACPI_POWER=y
...@@ -136,9 +141,13 @@ CONFIG_HOTPLUG_PCI_ACPI=m ...@@ -136,9 +141,13 @@ CONFIG_HOTPLUG_PCI_ACPI=m
# CONFIG_HOTPLUG_PCI_SHPC is not set # CONFIG_HOTPLUG_PCI_SHPC is not set
# #
# PCMCIA/CardBus support # PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# PC-card bridges
# #
# CONFIG_PCMCIA is not set
# #
# Device Drivers # Device Drivers
...@@ -180,6 +189,16 @@ CONFIG_BLK_DEV_NBD=m ...@@ -180,6 +189,16 @@ CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# #
# ATA/ATAPI/MFM/RLL support # ATA/ATAPI/MFM/RLL support
...@@ -198,7 +217,6 @@ CONFIG_BLK_DEV_IDECD=y ...@@ -198,7 +217,6 @@ CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDEFLOPPY=y CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=m CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set # CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
# #
# IDE chipset support/bugfixes # IDE chipset support/bugfixes
...@@ -288,6 +306,7 @@ CONFIG_SCSI_FC_ATTRS=y ...@@ -288,6 +306,7 @@ CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set # CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_INIA100 is not set
CONFIG_SCSI_SYM53C8XX_2=y CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
...@@ -299,6 +318,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 ...@@ -299,6 +318,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_QLOGIC_FC=y CONFIG_SCSI_QLOGIC_FC=y
# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
CONFIG_SCSI_QLOGIC_1280=y CONFIG_SCSI_QLOGIC_1280=y
# CONFIG_SCSI_QLOGIC_1280_1040 is not set
CONFIG_SCSI_QLA2XXX=y CONFIG_SCSI_QLA2XXX=y
CONFIG_SCSI_QLA21XX=m CONFIG_SCSI_QLA21XX=m
CONFIG_SCSI_QLA22XX=m CONFIG_SCSI_QLA22XX=m
...@@ -371,6 +391,7 @@ CONFIG_SYN_COOKIES=y ...@@ -371,6 +391,7 @@ CONFIG_SYN_COOKIES=y
# CONFIG_INET_ESP is not set # CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set # CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set # CONFIG_INET_TUNNEL is not set
CONFIG_IP_TCPDIAG=y
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set # CONFIG_NETFILTER is not set
...@@ -390,7 +411,6 @@ CONFIG_SYN_COOKIES=y ...@@ -390,7 +411,6 @@ CONFIG_SYN_COOKIES=y
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
# #
# QoS and/or fair queueing # QoS and/or fair queueing
...@@ -463,7 +483,6 @@ CONFIG_E100=m ...@@ -463,7 +483,6 @@ CONFIG_E100=m
# CONFIG_EPIC100 is not set # CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set # CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set # CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
# #
# Ethernet (1000 Mbit) # Ethernet (1000 Mbit)
...@@ -477,6 +496,7 @@ CONFIG_E1000=y ...@@ -477,6 +496,7 @@ CONFIG_E1000=y
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set # CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set # CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y CONFIG_TIGON3=y
# #
...@@ -691,6 +711,8 @@ CONFIG_USB_DEVICEFS=y ...@@ -691,6 +711,8 @@ CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set # CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set # CONFIG_USB_OTG is not set
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# #
# USB Host Controller Drivers # USB Host Controller Drivers
...@@ -720,7 +742,7 @@ CONFIG_USB_STORAGE=m ...@@ -720,7 +742,7 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set
# #
# USB Human Interface Devices (HID) # USB Input Devices
# #
CONFIG_USB_HID=y CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT=y CONFIG_USB_HIDINPUT=y
...@@ -781,9 +803,14 @@ CONFIG_USB_HIDINPUT=y ...@@ -781,9 +803,14 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_LCD is not set # CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set # CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set # CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_TEST is not set # CONFIG_USB_TEST is not set
#
# USB ATM/DSL drivers
#
# #
# USB Gadget Support # USB Gadget Support
# #
...@@ -819,6 +846,7 @@ CONFIG_XFS_FS=y ...@@ -819,6 +846,7 @@ CONFIG_XFS_FS=y
# CONFIG_MINIX_FS is not set # CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set # CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set # CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y CONFIG_AUTOFS4_FS=y
...@@ -852,6 +880,8 @@ CONFIG_SYSFS=y ...@@ -852,6 +880,8 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set # CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y CONFIG_TMPFS=y
CONFIG_TMPFS_XATTR=y
CONFIG_TMPFS_SECURITY=y
CONFIG_HUGETLBFS=y CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y CONFIG_RAMFS=y
...@@ -983,9 +1013,11 @@ CONFIG_CRC32=y ...@@ -983,9 +1013,11 @@ CONFIG_CRC32=y
# #
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_INFO is not set
CONFIG_IA64_GRANULE_16MB=y CONFIG_IA64_GRANULE_16MB=y
# CONFIG_IA64_GRANULE_64MB is not set # CONFIG_IA64_GRANULE_64MB is not set
...@@ -998,6 +1030,7 @@ CONFIG_SYSVIPC_COMPAT=y ...@@ -998,6 +1030,7 @@ CONFIG_SYSVIPC_COMPAT=y
# #
# Security options # Security options
# #
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set # CONFIG_SECURITY is not set
# #
...@@ -1011,7 +1044,7 @@ CONFIG_CRYPTO_MD5=m ...@@ -1011,7 +1044,7 @@ CONFIG_CRYPTO_MD5=m
# CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WHIRLPOOL is not set # CONFIG_CRYPTO_WP512 is not set
CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH is not set
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.10-rc1
# Tue Nov 2 11:47:56 2004
# #
# #
# Code maturity level options # Code maturity level options
# #
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
# CONFIG_CLEAN_COMPILE is not set CONFIG_CLEAN_COMPILE=y
# CONFIG_STANDALONE is not set CONFIG_LOCK_KERNEL=y
CONFIG_BROKEN=y
CONFIG_BROKEN_ON_SMP=y
# #
# General setup # General setup
# #
CONFIG_LOCALVERSION=""
CONFIG_SWAP=y CONFIG_SWAP=y
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set # CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=16 CONFIG_LOG_BUF_SHIFT=20
CONFIG_HOTPLUG=y CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set # CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y CONFIG_FUTEX=y
CONFIG_EPOLL=y CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
# #
# Loadable module support # Loadable module support
# #
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y CONFIG_STOP_MACHINE=y
...@@ -57,9 +61,10 @@ CONFIG_MMU=y ...@@ -57,9 +61,10 @@ CONFIG_MMU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_TIME_INTERPOLATION=y CONFIG_TIME_INTERPOLATION=y
CONFIG_EFI=y CONFIG_EFI=y
# CONFIG_IA64_GENERIC is not set CONFIG_GENERIC_IOMAP=y
CONFIG_IA64_GENERIC=y
# CONFIG_IA64_DIG is not set # CONFIG_IA64_DIG is not set
CONFIG_IA64_HP_ZX1=y # CONFIG_IA64_HP_ZX1 is not set
# CONFIG_IA64_SGI_SN2 is not set # CONFIG_IA64_SGI_SN2 is not set
# CONFIG_IA64_HP_SIM is not set # CONFIG_IA64_HP_SIM is not set
# CONFIG_ITANIUM is not set # CONFIG_ITANIUM is not set
...@@ -69,18 +74,20 @@ CONFIG_MCKINLEY=y ...@@ -69,18 +74,20 @@ CONFIG_MCKINLEY=y
CONFIG_IA64_PAGE_SIZE_16KB=y CONFIG_IA64_PAGE_SIZE_16KB=y
# CONFIG_IA64_PAGE_SIZE_64KB is not set # CONFIG_IA64_PAGE_SIZE_64KB is not set
CONFIG_IA64_L1_CACHE_SHIFT=7 CONFIG_IA64_L1_CACHE_SHIFT=7
# CONFIG_NUMA is not set CONFIG_NUMA=y
CONFIG_VIRTUAL_MEM_MAP=y CONFIG_VIRTUAL_MEM_MAP=y
# CONFIG_IA64_CYCLONE is not set CONFIG_DISCONTIGMEM=y
CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y CONFIG_IOSAPIC=y
CONFIG_FORCE_MAX_ZONEORDER=18 CONFIG_FORCE_MAX_ZONEORDER=18
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_NR_CPUS=16 CONFIG_NR_CPUS=512
# CONFIG_HOTPLUG_CPU is not set CONFIG_HOTPLUG_CPU=y
# CONFIG_PREEMPT is not set # CONFIG_PREEMPT is not set
CONFIG_HAVE_DEC_LOCK=y CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
CONFIG_IA64_MCA_RECOVERY=y
CONFIG_PERFMON=y CONFIG_PERFMON=y
CONFIG_IA64_PALINFO=y CONFIG_IA64_PALINFO=y
...@@ -90,7 +97,7 @@ CONFIG_IA64_PALINFO=y ...@@ -90,7 +97,7 @@ CONFIG_IA64_PALINFO=y
CONFIG_EFI_VARS=y CONFIG_EFI_VARS=y
CONFIG_EFI_PCDP=y CONFIG_EFI_PCDP=y
CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y CONFIG_BINFMT_MISC=m
# #
# Power management and ACPI # Power management and ACPI
...@@ -103,10 +110,12 @@ CONFIG_ACPI=y ...@@ -103,10 +110,12 @@ CONFIG_ACPI=y
# #
CONFIG_ACPI_BOOT=y CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_BUTTON=y CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=y CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=y CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_NUMA=y
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y CONFIG_ACPI_BUS=y
CONFIG_ACPI_POWER=y CONFIG_ACPI_POWER=y
...@@ -118,19 +127,29 @@ CONFIG_ACPI_SYSTEM=y ...@@ -118,19 +127,29 @@ CONFIG_ACPI_SYSTEM=y
# #
CONFIG_PCI=y CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_USE_VECTOR is not set # CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y CONFIG_PCI_NAMES=y
# #
# PCI Hotplug Support # PCI Hotplug Support
# #
# CONFIG_HOTPLUG_PCI is not set CONFIG_HOTPLUG_PCI=m
# CONFIG_HOTPLUG_PCI_FAKE is not set
CONFIG_HOTPLUG_PCI_ACPI=m
# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_PCIE is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
# #
# PCMCIA/CardBus support # PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# PC-card bridges
# #
# CONFIG_PCMCIA is not set
# #
# Device Drivers # Device Drivers
...@@ -139,6 +158,7 @@ CONFIG_PCI_NAMES=y ...@@ -139,6 +158,7 @@ CONFIG_PCI_NAMES=y
# #
# Generic Driver Options # Generic Driver Options
# #
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set # CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DRIVER is not set
...@@ -164,13 +184,23 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y ...@@ -164,13 +184,23 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y # CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# #
# ATA/ATAPI/MFM/RLL support # ATA/ATAPI/MFM/RLL support
...@@ -183,20 +213,19 @@ CONFIG_BLK_DEV_IDE=y ...@@ -183,20 +213,19 @@ CONFIG_BLK_DEV_IDE=y
# #
# CONFIG_BLK_DEV_IDE_SATA is not set # CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y # CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECD=y CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=m CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=m CONFIG_BLK_DEV_IDESCSI=m
CONFIG_IDE_TASK_IOCTL=y # CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_TASKFILE_IO=y
# #
# IDE chipset support/bugfixes # IDE chipset support/bugfixes
# #
# CONFIG_IDE_GENERIC is not set CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_IDEPCI=y CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y # CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set # CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set # CONFIG_BLK_DEV_OPTI621 is not set
...@@ -204,7 +233,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y ...@@ -204,7 +233,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set # CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set # CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set # CONFIG_BLK_DEV_AMD74XX is not set
...@@ -216,12 +244,13 @@ CONFIG_BLK_DEV_CMD64X=y ...@@ -216,12 +244,13 @@ CONFIG_BLK_DEV_CMD64X=y
# CONFIG_BLK_DEV_HPT34X is not set # CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set # CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set # CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_NS87415 is not set # CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set # CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set # CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set # CONFIG_BLK_DEV_SVWKS is not set
CONFIG_BLK_DEV_SIIMAGE=y CONFIG_BLK_DEV_SGIIOC4=y
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set # CONFIG_BLK_DEV_VIA82CXXX is not set
...@@ -241,24 +270,24 @@ CONFIG_SCSI_PROC_FS=y ...@@ -241,24 +270,24 @@ CONFIG_SCSI_PROC_FS=y
# SCSI support type (disk, tape, CD-ROM) # SCSI support type (disk, tape, CD-ROM)
# #
CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=y # CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y # CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SG=m
# #
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
# #
CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_CONSTANTS is not set
CONFIG_SCSI_LOGGING=y # CONFIG_SCSI_LOGGING is not set
# #
# SCSI Transport Attributes # SCSI Transport Attributes
# #
CONFIG_SCSI_SPI_ATTRS=y CONFIG_SCSI_SPI_ATTRS=y
# CONFIG_SCSI_FC_ATTRS is not set CONFIG_SCSI_FC_ATTRS=y
# #
# SCSI low-level drivers # SCSI low-level drivers
...@@ -268,13 +297,12 @@ CONFIG_SCSI_SPI_ATTRS=y ...@@ -268,13 +297,12 @@ CONFIG_SCSI_SPI_ATTRS=y
# CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set # CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX is not set
CONFIG_SCSI_AIC7XXX_OLD=y # CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_ADVANSYS is not set # CONFIG_MEGARAID_NEWGEN is not set
CONFIG_SCSI_MEGARAID=y # CONFIG_MEGARAID_LEGACY is not set
# CONFIG_SCSI_SATA is not set # CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set # CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set # CONFIG_SCSI_EATA_PIO is not set
...@@ -289,16 +317,16 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 ...@@ -289,16 +317,16 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set # CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set
# CONFIG_SCSI_QLOGIC_ISP is not set # CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set CONFIG_SCSI_QLOGIC_FC=y
# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
CONFIG_SCSI_QLOGIC_1280=y CONFIG_SCSI_QLOGIC_1280=y
# CONFIG_SCSI_QLOGIC_1280_1040 is not set
CONFIG_SCSI_QLA2XXX=y CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set CONFIG_SCSI_QLA21XX=m
# CONFIG_SCSI_QLA22XX is not set CONFIG_SCSI_QLA22XX=m
# CONFIG_SCSI_QLA2300 is not set CONFIG_SCSI_QLA2300=m
# CONFIG_SCSI_QLA2322 is not set CONFIG_SCSI_QLA2322=m
# CONFIG_SCSI_QLA6312 is not set # CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA6322 is not set # CONFIG_SCSI_QLA6322 is not set
# CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC395x is not set
...@@ -313,21 +341,21 @@ CONFIG_BLK_DEV_MD=m ...@@ -313,21 +341,21 @@ CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m CONFIG_MD_RAID1=m
# CONFIG_MD_RAID10 is not set
CONFIG_MD_RAID5=m CONFIG_MD_RAID5=m
# CONFIG_MD_RAID6 is not set CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m CONFIG_MD_MULTIPATH=m
CONFIG_BLK_DEV_DM=m CONFIG_BLK_DEV_DM=m
# CONFIG_DM_CRYPT is not set CONFIG_DM_CRYPT=m
# CONFIG_DM_SNAPSHOT is not set CONFIG_DM_SNAPSHOT=m
# CONFIG_DM_MIRROR is not set CONFIG_DM_MIRROR=m
# CONFIG_DM_ZERO is not set CONFIG_DM_ZERO=m
# #
# Fusion MPT device support # Fusion MPT device support
# #
CONFIG_FUSION=y CONFIG_FUSION=y
CONFIG_FUSION_MAX_SGE=40 CONFIG_FUSION_MAX_SGE=40
# CONFIG_FUSION_ISENSE is not set
# CONFIG_FUSION_CTL is not set # CONFIG_FUSION_CTL is not set
# #
...@@ -350,7 +378,7 @@ CONFIG_NET=y ...@@ -350,7 +378,7 @@ CONFIG_NET=y
# #
CONFIG_PACKET=y CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set # CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set CONFIG_NETLINK_DEV=y
CONFIG_UNIX=y CONFIG_UNIX=y
# CONFIG_NET_KEY is not set # CONFIG_NET_KEY is not set
CONFIG_INET=y CONFIG_INET=y
...@@ -360,31 +388,15 @@ CONFIG_IP_MULTICAST=y ...@@ -360,31 +388,15 @@ CONFIG_IP_MULTICAST=y
# CONFIG_NET_IPIP is not set # CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set # CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set # CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set CONFIG_ARPD=y
# CONFIG_SYN_COOKIES is not set CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set # CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set # CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set # CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_IP_TCPDIAG=y
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
CONFIG_NETFILTER=y # CONFIG_NETFILTER is not set
# CONFIG_NETFILTER_DEBUG is not set
#
# IP: Netfilter Configuration
#
# CONFIG_IP_NF_CONNTRACK is not set
# CONFIG_IP_NF_QUEUE is not set
# CONFIG_IP_NF_IPTABLES is not set
CONFIG_IP_NF_ARPTABLES=y
# CONFIG_IP_NF_ARPFILTER is not set
# CONFIG_IP_NF_ARP_MANGLE is not set
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
# #
# SCTP Configuration (EXPERIMENTAL) # SCTP Configuration (EXPERIMENTAL)
...@@ -402,7 +414,6 @@ CONFIG_IP_NF_ARPTABLES=y ...@@ -402,7 +414,6 @@ CONFIG_IP_NF_ARPTABLES=y
# CONFIG_NET_DIVERT is not set # CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set # CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set # CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
# #
# QoS and/or fair queueing # QoS and/or fair queueing
...@@ -414,16 +425,19 @@ CONFIG_IP_NF_ARPTABLES=y ...@@ -414,16 +425,19 @@ CONFIG_IP_NF_ARPTABLES=y
# Network testing # Network testing
# #
# CONFIG_NET_PKTGEN is not set # CONFIG_NET_PKTGEN is not set
# CONFIG_NETPOLL is not set CONFIG_NETPOLL=y
# CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set # CONFIG_IRDA is not set
# CONFIG_BT is not set # CONFIG_BT is not set
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
CONFIG_DUMMY=y CONFIG_DUMMY=m
CONFIG_BONDING=y # CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set # CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set # CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
# #
# ARCnet devices # ARCnet devices
...@@ -434,7 +448,7 @@ CONFIG_BONDING=y ...@@ -434,7 +448,7 @@ CONFIG_BONDING=y
# Ethernet (10 or 100Mbit) # Ethernet (10 or 100Mbit)
# #
CONFIG_NET_ETHERNET=y CONFIG_NET_ETHERNET=y
CONFIG_MII=y CONFIG_MII=m
# CONFIG_HAPPYMEAL is not set # CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set # CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_3COM is not set
...@@ -442,7 +456,15 @@ CONFIG_MII=y ...@@ -442,7 +456,15 @@ CONFIG_MII=y
# #
# Tulip family network device support # Tulip family network device support
# #
# CONFIG_NET_TULIP is not set CONFIG_NET_TULIP=y
# CONFIG_DE2104X is not set
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_HP100 is not set # CONFIG_HP100 is not set
CONFIG_NET_PCI=y CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set # CONFIG_PCNET32 is not set
...@@ -451,9 +473,10 @@ CONFIG_NET_PCI=y ...@@ -451,9 +473,10 @@ CONFIG_NET_PCI=y
# CONFIG_B44 is not set # CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set # CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set # CONFIG_DGRS is not set
CONFIG_EEPRO100=y CONFIG_EEPRO100=m
# CONFIG_EEPRO100_PIO is not set # CONFIG_EEPRO100_PIO is not set
# CONFIG_E100 is not set CONFIG_E100=m
# CONFIG_E100_NAPI is not set
# CONFIG_FEALNX is not set # CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set # CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set # CONFIG_NE2K_PCI is not set
...@@ -463,7 +486,6 @@ CONFIG_EEPRO100=y ...@@ -463,7 +486,6 @@ CONFIG_EEPRO100=y
# CONFIG_EPIC100 is not set # CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set # CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set # CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
# #
# Ethernet (1000 Mbit) # Ethernet (1000 Mbit)
...@@ -477,6 +499,7 @@ CONFIG_E1000=y ...@@ -477,6 +499,7 @@ CONFIG_E1000=y
# CONFIG_YELLOWFIN is not set # CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set # CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set # CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y CONFIG_TIGON3=y
# #
...@@ -505,7 +528,7 @@ CONFIG_TIGON3=y ...@@ -505,7 +528,7 @@ CONFIG_TIGON3=y
# CONFIG_SLIP is not set # CONFIG_SLIP is not set
# CONFIG_NET_FC is not set # CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set # CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set CONFIG_NETCONSOLE=y
# #
# ISDN subsystem # ISDN subsystem
...@@ -529,27 +552,42 @@ CONFIG_INPUT_MOUSEDEV=y ...@@ -529,27 +552,42 @@ CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=y # CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set # CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set # CONFIG_INPUT_EVBUG is not set
# #
# Input I/O drivers # Input I/O drivers
# #
# CONFIG_GAMEPORT is not set CONFIG_GAMEPORT=m
CONFIG_SOUND_GAMEPORT=y CONFIG_SOUND_GAMEPORT=m
# CONFIG_GAMEPORT_NS558 is not set
# CONFIG_GAMEPORT_L4 is not set
# CONFIG_GAMEPORT_EMU10K1 is not set
# CONFIG_GAMEPORT_VORTEX is not set
# CONFIG_GAMEPORT_FM801 is not set
# CONFIG_GAMEPORT_CS461x is not set
CONFIG_SERIO=y CONFIG_SERIO=y
# CONFIG_SERIO_I8042 is not set CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set # CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_RAW is not set
# #
# Input Device Drivers # Input Device Drivers
# #
# CONFIG_INPUT_KEYBOARD is not set CONFIG_INPUT_KEYBOARD=y
# CONFIG_INPUT_MOUSE is not set CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set # CONFIG_INPUT_MISC is not set
...@@ -560,7 +598,14 @@ CONFIG_SERIO=y ...@@ -560,7 +598,14 @@ CONFIG_SERIO=y
CONFIG_VT=y CONFIG_VT=y
CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_SYNCLINK is not set
# CONFIG_SYNCLINKMP is not set
# CONFIG_N_HDLC is not set
# CONFIG_STALDRV is not set
CONFIG_SGI_SNSC=y
# #
# Serial drivers # Serial drivers
...@@ -568,28 +613,27 @@ CONFIG_HW_CONSOLE=y ...@@ -568,28 +613,27 @@ CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_ACPI=y CONFIG_SERIAL_8250_ACPI=y
CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_NR_UARTS=6
# CONFIG_SERIAL_8250_EXTENDED is not set CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_MULTIPORT is not set
# CONFIG_SERIAL_8250_RSA is not set
# #
# Non-8250 serial port support # Non-8250 serial port support
# #
CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_SGI_L1_CONSOLE=y
CONFIG_UNIX98_PTYS=y CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256 CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_QIC02_TAPE is not set
# #
# IPMI # IPMI
# #
CONFIG_IPMI_HANDLER=m # CONFIG_IPMI_HANDLER is not set
CONFIG_IPMI_PANIC_EVENT=y
CONFIG_IPMI_PANIC_STRING=y
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
# #
# Watchdog Cards # Watchdog Cards
...@@ -604,90 +648,26 @@ CONFIG_EFI_RTC=y ...@@ -604,90 +648,26 @@ CONFIG_EFI_RTC=y
# #
# Ftape, the floppy tape device driver # Ftape, the floppy tape device driver
# #
# CONFIG_FTAPE is not set
CONFIG_AGP=m CONFIG_AGP=m
CONFIG_AGP_I460=m
CONFIG_AGP_HP_ZX1=m CONFIG_AGP_HP_ZX1=m
CONFIG_DRM=y CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set CONFIG_DRM_TDFX=m
# CONFIG_DRM_GAMMA is not set CONFIG_DRM_R128=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m CONFIG_DRM_RADEON=m
# CONFIG_DRM_MGA is not set CONFIG_DRM_MGA=m
# CONFIG_DRM_SIS is not set CONFIG_DRM_SIS=m
# CONFIG_RAW_DRIVER is not set CONFIG_RAW_DRIVER=m
# CONFIG_HPET is not set CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
CONFIG_MAX_RAW_DEVS=256
CONFIG_MMTIMER=y
# #
# I2C support # I2C support
# #
CONFIG_I2C=y # CONFIG_I2C is not set
# CONFIG_I2C_CHARDEV is not set
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_ALGOPCF is not set
#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_ISA is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
#
# Hardware Sensors Chip support
#
# CONFIG_I2C_SENSOR is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set
#
# Other I2C Chip support
#
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
# #
# Dallas's 1-wire bus # Dallas's 1-wire bus
...@@ -711,53 +691,18 @@ CONFIG_I2C_ALGOBIT=y ...@@ -711,53 +691,18 @@ CONFIG_I2C_ALGOBIT=y
# #
# Graphics support # Graphics support
# #
CONFIG_FB=y # CONFIG_FB is not set
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_RIVA=m
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON_OLD is not set
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set
# #
# Console display driver support # Console display driver support
# #
CONFIG_VGA_CONSOLE=y CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
#
# Logo configuration
#
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
# #
# Sound # Sound
# #
CONFIG_SOUND=y CONFIG_SOUND=m
# #
# Advanced Linux Sound Architecture # Advanced Linux Sound Architecture
...@@ -768,11 +713,12 @@ CONFIG_SND_PCM=m ...@@ -768,11 +713,12 @@ CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQUENCER=m
# CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_SEQ_DUMMY=m
# CONFIG_SND_MIXER_OSS is not set CONFIG_SND_OSSEMUL=y
# CONFIG_SND_PCM_OSS is not set CONFIG_SND_MIXER_OSS=m
# CONFIG_SND_SEQUENCER_OSS is not set CONFIG_SND_PCM_OSS=m
# CONFIG_SND_VERBOSE_PRINTK is not set CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_VERBOSE_PRINTK=y
# CONFIG_SND_DEBUG is not set # CONFIG_SND_DEBUG is not set
# #
...@@ -780,11 +726,11 @@ CONFIG_SND_SEQUENCER=m ...@@ -780,11 +726,11 @@ CONFIG_SND_SEQUENCER=m
# #
CONFIG_SND_MPU401_UART=m CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL3_LIB=m
# CONFIG_SND_DUMMY is not set CONFIG_SND_DUMMY=m
# CONFIG_SND_VIRMIDI is not set CONFIG_SND_VIRMIDI=m
# CONFIG_SND_MTPAV is not set CONFIG_SND_MTPAV=m
# CONFIG_SND_SERIAL_U16550 is not set CONFIG_SND_SERIAL_U16550=m
# CONFIG_SND_MPU401 is not set CONFIG_SND_MPU401=m
# #
# PCI devices # PCI devices
...@@ -792,14 +738,16 @@ CONFIG_SND_OPL3_LIB=m ...@@ -792,14 +738,16 @@ CONFIG_SND_OPL3_LIB=m
CONFIG_SND_AC97_CODEC=m CONFIG_SND_AC97_CODEC=m
# CONFIG_SND_ALI5451 is not set # CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set # CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set # CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set # CONFIG_SND_BT87X is not set
# CONFIG_SND_CS46XX is not set CONFIG_SND_CS46XX=m
# CONFIG_SND_CS4281 is not set CONFIG_SND_CS46XX_NEW_DSP=y
# CONFIG_SND_EMU10K1 is not set CONFIG_SND_CS4281=m
CONFIG_SND_EMU10K1=m
# CONFIG_SND_KORG1212 is not set # CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MIXART is not set # CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set # CONFIG_SND_NM256 is not set
...@@ -827,9 +775,10 @@ CONFIG_SND_FM801=m ...@@ -827,9 +775,10 @@ CONFIG_SND_FM801=m
# CONFIG_SND_VX222 is not set # CONFIG_SND_VX222 is not set
# #
# ALSA USB devices # USB devices
# #
# CONFIG_SND_USB_AUDIO is not set # CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set
# #
# Open Sound System # Open Sound System
...@@ -839,24 +788,28 @@ CONFIG_SND_FM801=m ...@@ -839,24 +788,28 @@ CONFIG_SND_FM801=m
# #
# USB support # USB support
# #
CONFIG_USB=y CONFIG_USB=m
# CONFIG_USB_DEBUG is not set # CONFIG_USB_DEBUG is not set
# #
# Miscellaneous USB options # Miscellaneous USB options
# #
CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y # CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# #
# USB Host Controller Drivers # USB Host Controller Drivers
# #
CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_SPLIT_ISO is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y # CONFIG_USB_EHCI_ROOT_HUB_TT is not set
CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD=m
CONFIG_USB_UHCI_HCD=y CONFIG_USB_UHCI_HCD=m
# #
# USB Device Class drivers # USB Device Class drivers
...@@ -866,15 +819,31 @@ CONFIG_USB_UHCI_HCD=y ...@@ -866,15 +819,31 @@ CONFIG_USB_UHCI_HCD=y
# CONFIG_USB_MIDI is not set # CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set # CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set # CONFIG_USB_PRINTER is not set
# CONFIG_USB_STORAGE is not set CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_RW_DETECT is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_HP8200e is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
#
# USB Input Devices
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set
# #
# USB Human Interface Devices (HID) # USB HID Boot Protocol drivers
# #
CONFIG_USB_HID=y # CONFIG_USB_KBD is not set
CONFIG_USB_HIDINPUT=y # CONFIG_USB_MOUSE is not set
# CONFIG_HID_FF is not set
CONFIG_USB_HIDDEV=y
# CONFIG_USB_AIPTEK is not set # CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set # CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set # CONFIG_USB_KBTAB is not set
...@@ -930,9 +899,14 @@ CONFIG_USB_HIDDEV=y ...@@ -930,9 +899,14 @@ CONFIG_USB_HIDDEV=y
# CONFIG_USB_LCD is not set # CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set # CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set # CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_TEST is not set # CONFIG_USB_TEST is not set
#
# USB ATM/DSL drivers
#
# #
# USB Gadget Support # USB Gadget Support
# #
...@@ -943,42 +917,55 @@ CONFIG_USB_HIDDEV=y ...@@ -943,42 +917,55 @@ CONFIG_USB_HIDDEV=y
# #
CONFIG_EXT2_FS=y CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_EXT2_FS_SECURITY is not set CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=y CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set CONFIG_EXT3_FS_SECURITY=y
CONFIG_JBD=y CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set # CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set # CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_MINIX_FS is not set # CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set # CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set # CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y CONFIG_AUTOFS_FS=y
# CONFIG_AUTOFS4_FS is not set CONFIG_AUTOFS4_FS=y
# #
# CD-ROM/DVD Filesystems # CD-ROM/DVD Filesystems
# #
CONFIG_ISO9660_FS=y CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set # CONFIG_ZISOFS is not set
CONFIG_UDF_FS=y CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y CONFIG_UDF_NLS=y
# #
# DOS/FAT/NT Filesystems # DOS/FAT/NT Filesystems
# #
CONFIG_FAT_FS=y CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y # CONFIG_MSDOS_FS is not set
CONFIG_VFAT_FS=y CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
# #
# Pseudo filesystems # Pseudo filesystems
...@@ -989,6 +976,8 @@ CONFIG_SYSFS=y ...@@ -989,6 +976,8 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set # CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y CONFIG_TMPFS=y
CONFIG_TMPFS_XATTR=y
CONFIG_TMPFS_SECURITY=y
CONFIG_HUGETLBFS=y CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y CONFIG_RAMFS=y
...@@ -1003,7 +992,6 @@ CONFIG_RAMFS=y ...@@ -1003,7 +992,6 @@ CONFIG_RAMFS=y
# CONFIG_BEFS_FS is not set # CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set # CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set # CONFIG_EFS_FS is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
# CONFIG_CRAMFS is not set # CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set # CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set # CONFIG_HPFS_FS is not set
...@@ -1014,22 +1002,28 @@ CONFIG_RAMFS=y ...@@ -1014,22 +1002,28 @@ CONFIG_RAMFS=y
# #
# Network File Systems # Network File Systems
# #
CONFIG_NFS_FS=y CONFIG_NFS_FS=m
CONFIG_NFS_V3=y CONFIG_NFS_V3=y
CONFIG_NFS_V4=y CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=y CONFIG_NFSD=m
CONFIG_NFSD_V3=y CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set CONFIG_NFSD_V4=y
# CONFIG_NFSD_TCP is not set CONFIG_NFSD_TCP=y
CONFIG_LOCKD=y CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y CONFIG_EXPORTFS=m
CONFIG_SUNRPC=y CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=y CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=y CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_SMB_FS is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_CIFS is not set CONFIG_SMB_FS=m
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp437"
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_POSIX is not set
# CONFIG_NCP_FS is not set # CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set # CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set # CONFIG_AFS_FS is not set
...@@ -1049,7 +1043,7 @@ CONFIG_MSDOS_PARTITION=y ...@@ -1049,7 +1043,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set # CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set # CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set # CONFIG_SUN_PARTITION is not set
CONFIG_EFI_PARTITION=y CONFIG_EFI_PARTITION=y
...@@ -1060,43 +1054,43 @@ CONFIG_EFI_PARTITION=y ...@@ -1060,43 +1054,43 @@ CONFIG_EFI_PARTITION=y
CONFIG_NLS=y CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set CONFIG_NLS_CODEPAGE_737=m
# CONFIG_NLS_CODEPAGE_775 is not set CONFIG_NLS_CODEPAGE_775=m
# CONFIG_NLS_CODEPAGE_850 is not set CONFIG_NLS_CODEPAGE_850=m
# CONFIG_NLS_CODEPAGE_852 is not set CONFIG_NLS_CODEPAGE_852=m
# CONFIG_NLS_CODEPAGE_855 is not set CONFIG_NLS_CODEPAGE_855=m
# CONFIG_NLS_CODEPAGE_857 is not set CONFIG_NLS_CODEPAGE_857=m
# CONFIG_NLS_CODEPAGE_860 is not set CONFIG_NLS_CODEPAGE_860=m
# CONFIG_NLS_CODEPAGE_861 is not set CONFIG_NLS_CODEPAGE_861=m
# CONFIG_NLS_CODEPAGE_862 is not set CONFIG_NLS_CODEPAGE_862=m
# CONFIG_NLS_CODEPAGE_863 is not set CONFIG_NLS_CODEPAGE_863=m
# CONFIG_NLS_CODEPAGE_864 is not set CONFIG_NLS_CODEPAGE_864=m
# CONFIG_NLS_CODEPAGE_865 is not set CONFIG_NLS_CODEPAGE_865=m
# CONFIG_NLS_CODEPAGE_866 is not set CONFIG_NLS_CODEPAGE_866=m
# CONFIG_NLS_CODEPAGE_869 is not set CONFIG_NLS_CODEPAGE_869=m
# CONFIG_NLS_CODEPAGE_936 is not set CONFIG_NLS_CODEPAGE_936=m
# CONFIG_NLS_CODEPAGE_950 is not set CONFIG_NLS_CODEPAGE_950=m
# CONFIG_NLS_CODEPAGE_932 is not set CONFIG_NLS_CODEPAGE_932=m
# CONFIG_NLS_CODEPAGE_949 is not set CONFIG_NLS_CODEPAGE_949=m
# CONFIG_NLS_CODEPAGE_874 is not set CONFIG_NLS_CODEPAGE_874=m
# CONFIG_NLS_ISO8859_8 is not set CONFIG_NLS_ISO8859_8=m
# CONFIG_NLS_CODEPAGE_1250 is not set CONFIG_NLS_CODEPAGE_1250=m
# CONFIG_NLS_CODEPAGE_1251 is not set CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=y # CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set CONFIG_NLS_ISO8859_2=m
# CONFIG_NLS_ISO8859_3 is not set CONFIG_NLS_ISO8859_3=m
# CONFIG_NLS_ISO8859_4 is not set CONFIG_NLS_ISO8859_4=m
# CONFIG_NLS_ISO8859_5 is not set CONFIG_NLS_ISO8859_5=m
# CONFIG_NLS_ISO8859_6 is not set CONFIG_NLS_ISO8859_6=m
# CONFIG_NLS_ISO8859_7 is not set CONFIG_NLS_ISO8859_7=m
# CONFIG_NLS_ISO8859_9 is not set CONFIG_NLS_ISO8859_9=m
# CONFIG_NLS_ISO8859_13 is not set CONFIG_NLS_ISO8859_13=m
# CONFIG_NLS_ISO8859_14 is not set CONFIG_NLS_ISO8859_14=m
# CONFIG_NLS_ISO8859_15 is not set CONFIG_NLS_ISO8859_15=m
# CONFIG_NLS_KOI8_R is not set CONFIG_NLS_KOI8_R=m
# CONFIG_NLS_KOI8_U is not set CONFIG_NLS_KOI8_U=m
# CONFIG_NLS_UTF8 is not set CONFIG_NLS_UTF8=m
# #
# Library routines # Library routines
...@@ -1105,6 +1099,13 @@ CONFIG_NLS_ISO8859_1=y ...@@ -1105,6 +1099,13 @@ CONFIG_NLS_ISO8859_1=y
CONFIG_CRC32=y CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set # CONFIG_LIBCRC32C is not set
#
# HP Simulator drivers
#
# CONFIG_HP_SIMETH is not set
# CONFIG_HP_SIMSERIAL is not set
# CONFIG_HP_SIMSCSI is not set
# #
# Profiling support # Profiling support
# #
...@@ -1113,24 +1114,26 @@ CONFIG_CRC32=y ...@@ -1113,24 +1114,26 @@ CONFIG_CRC32=y
# #
# Kernel hacking # Kernel hacking
# #
CONFIG_IA64_GRANULE_16MB=y
# CONFIG_IA64_GRANULE_64MB is not set
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_IA64_PRINT_HAZARDS=y
# CONFIG_DISABLE_VHPT is not set
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
# CONFIG_IA64_EARLY_PRINTK_VGA is not set # CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_IA64_GRANULE_16MB=y
# CONFIG_IA64_GRANULE_64MB is not set
# CONFIG_IA64_PRINT_HAZARDS is not set
# CONFIG_DISABLE_VHPT is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set # CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set # CONFIG_IA64_DEBUG_IRQ is not set
CONFIG_DEBUG_INFO=y
CONFIG_SYSVIPC_COMPAT=y CONFIG_SYSVIPC_COMPAT=y
# #
# Security options # Security options
# #
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set # CONFIG_SECURITY is not set
# #
...@@ -1140,11 +1143,12 @@ CONFIG_CRYPTO=y ...@@ -1140,11 +1143,12 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MD5=m
# CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA512 is not set
CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_WP512 is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set # CONFIG_CRYPTO_SERPENT is not set
...@@ -1153,6 +1157,7 @@ CONFIG_CRYPTO_DES=y ...@@ -1153,6 +1157,7 @@ CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set # CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set # CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_DEFLATE is not set # CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_CRC32C is not set
......
...@@ -479,7 +479,7 @@ sba_search_bitmap(struct ioc *ioc, unsigned long bits_wanted) ...@@ -479,7 +479,7 @@ sba_search_bitmap(struct ioc *ioc, unsigned long bits_wanted)
* purges IOTLB entries in power-of-two sizes, so we also * purges IOTLB entries in power-of-two sizes, so we also
* allocate IOVA space in power-of-two sizes. * allocate IOVA space in power-of-two sizes.
*/ */
bits_wanted = 1UL << get_iovp_order(bits_wanted << PAGE_SHIFT); bits_wanted = 1UL << get_iovp_order(bits_wanted << iovp_shift);
if (likely(bits_wanted == 1)) { if (likely(bits_wanted == 1)) {
unsigned int bitshiftcnt; unsigned int bitshiftcnt;
...@@ -688,7 +688,7 @@ sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size) ...@@ -688,7 +688,7 @@ sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size)
unsigned long m; unsigned long m;
/* Round up to power-of-two size: see AR2305 note above */ /* Round up to power-of-two size: see AR2305 note above */
bits_not_wanted = 1UL << get_iovp_order(bits_not_wanted << PAGE_SHIFT); bits_not_wanted = 1UL << get_iovp_order(bits_not_wanted << iovp_shift);
for (; bits_not_wanted > 0 ; res_ptr++) { for (; bits_not_wanted > 0 ; res_ptr++) {
if (unlikely(bits_not_wanted > BITS_PER_LONG)) { if (unlikely(bits_not_wanted > BITS_PER_LONG)) {
......
...@@ -190,17 +190,20 @@ ia64_init_itm (void) ...@@ -190,17 +190,20 @@ ia64_init_itm (void)
itc_ratio.den = 1; /* avoid division by zero */ itc_ratio.den = 1; /* avoid division by zero */
itc_freq = (platform_base_freq*itc_ratio.num)/itc_ratio.den; itc_freq = (platform_base_freq*itc_ratio.num)/itc_ratio.den;
if (platform_base_drift != -1)
itc_drift = platform_base_drift*itc_ratio.num/itc_ratio.den;
else
itc_drift = -1;
local_cpu_data->itm_delta = (itc_freq + HZ/2) / HZ; local_cpu_data->itm_delta = (itc_freq + HZ/2) / HZ;
printk(KERN_DEBUG "CPU %d: base freq=%lu.%03luMHz, ITC ratio=%lu/%lu, " printk(KERN_DEBUG "CPU %d: base freq=%lu.%03luMHz, ITC ratio=%lu/%lu, "
"ITC freq=%lu.%03luMHz+/-%ldppm\n", smp_processor_id(), "ITC freq=%lu.%03luMHz", smp_processor_id(),
platform_base_freq / 1000000, (platform_base_freq / 1000) % 1000, platform_base_freq / 1000000, (platform_base_freq / 1000) % 1000,
itc_ratio.num, itc_ratio.den, itc_freq / 1000000, (itc_freq / 1000) % 1000, itc_ratio.num, itc_ratio.den, itc_freq / 1000000, (itc_freq / 1000) % 1000);
itc_drift);
if (platform_base_drift != -1) {
itc_drift = platform_base_drift*itc_ratio.num/itc_ratio.den;
printk("+/-%ldppm\n", itc_drift);
} else {
itc_drift = -1;
printk("\n");
}
local_cpu_data->proc_freq = (platform_base_freq*proc_ratio.num)/proc_ratio.den; local_cpu_data->proc_freq = (platform_base_freq*proc_ratio.num)/proc_ratio.den;
local_cpu_data->itc_freq = itc_freq; local_cpu_data->itc_freq = itc_freq;
......
...@@ -328,33 +328,65 @@ pci_acpi_scan_root (struct acpi_device *device, int domain, int bus) ...@@ -328,33 +328,65 @@ pci_acpi_scan_root (struct acpi_device *device, int domain, int bus)
return NULL; return NULL;
} }
void __init void pcibios_resource_to_bus(struct pci_dev *dev,
pcibios_fixup_device_resources (struct pci_dev *dev, struct pci_bus *bus) struct pci_bus_region *region, struct resource *res)
{ {
struct pci_controller *controller = PCI_CONTROLLER(dev); struct pci_controller *controller = PCI_CONTROLLER(dev);
struct pci_window *window; unsigned long offset = 0;
int i, j; int i;
for (i = 0; i < controller->windows; i++) {
struct pci_window *window = &controller->window[i];
if (!(window->resource.flags & res->flags))
continue;
if (window->resource.start > res->start - window->offset)
continue;
if (window->resource.end < res->end - window->offset)
continue;
offset = window->offset;
break;
}
region->start = res->start - offset;
region->end = res->end - offset;
}
void pcibios_bus_to_resource(struct pci_dev *dev,
struct resource *res, struct pci_bus_region *region)
{
struct pci_controller *controller = PCI_CONTROLLER(dev);
unsigned long offset = 0;
int i;
for (i = 0; i < controller->windows; i++) {
struct pci_window *window = &controller->window[i];
if (!(window->resource.flags & res->flags))
continue;
if (window->resource.start > region->start)
continue;
if (window->resource.end < region->end)
continue;
offset = window->offset;
break;
}
res->start = region->start + offset;
res->end = region->end + offset;
}
static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev)
{
struct pci_bus_region region;
int i;
int limit = (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) ? \ int limit = (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) ? \
PCI_BRIDGE_RESOURCES : PCI_NUM_RESOURCES; PCI_BRIDGE_RESOURCES : PCI_NUM_RESOURCES;
for (i = 0; i < limit; i++) { for (i = 0; i < limit; i++) {
if (!dev->resource[i].start) if (!dev->resource[i].flags)
continue; continue;
region.start = dev->resource[i].start;
#define contains(win, res) ((res)->start >= (win)->start && \ region.end = dev->resource[i].end;
(res)->end <= (win)->end) pcibios_bus_to_resource(dev, &dev->resource[i], &region);
for (j = 0; j < controller->windows; j++) {
window = &controller->window[j];
if (((dev->resource[i].flags & IORESOURCE_MEM &&
window->resource.flags & IORESOURCE_MEM) ||
(dev->resource[i].flags & IORESOURCE_IO &&
window->resource.flags & IORESOURCE_IO)) &&
contains(&window->resource, &dev->resource[i])) {
dev->resource[i].start += window->offset;
dev->resource[i].end += window->offset;
}
}
pci_claim_resource(dev, i); pci_claim_resource(dev, i);
} }
} }
...@@ -368,7 +400,7 @@ pcibios_fixup_bus (struct pci_bus *b) ...@@ -368,7 +400,7 @@ pcibios_fixup_bus (struct pci_bus *b)
struct pci_dev *dev; struct pci_dev *dev;
list_for_each_entry(dev, &b->devices, bus_list) list_for_each_entry(dev, &b->devices, bus_list)
pcibios_fixup_device_resources(dev, b); pcibios_fixup_device_resources(dev);
return; return;
} }
...@@ -451,21 +483,21 @@ pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma, ...@@ -451,21 +483,21 @@ pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma,
enum pci_mmap_state mmap_state, int write_combine) enum pci_mmap_state mmap_state, int write_combine)
{ {
/* /*
* I/O space cannot be accessed via normal processor loads and stores on this * I/O space cannot be accessed via normal processor loads and
* platform. * stores on this platform.
*/ */
if (mmap_state == pci_mmap_io) if (mmap_state == pci_mmap_io)
/* /*
* XXX we could relax this for I/O spaces for which ACPI indicates that * XXX we could relax this for I/O spaces for which ACPI
* the space is 1-to-1 mapped. But at the moment, we don't support * indicates that the space is 1-to-1 mapped. But at the
* multiple PCI address spaces and the legacy I/O space is not 1-to-1 * moment, we don't support multiple PCI address spaces and
* mapped, so this is moot. * the legacy I/O space is not 1-to-1 mapped, so this is moot.
*/ */
return -EINVAL; return -EINVAL;
/* /*
* Leave vm_pgoff as-is, the PCI space address is the physical address on this * Leave vm_pgoff as-is, the PCI space address is the physical
* platform. * address on this platform.
*/ */
vma->vm_flags |= (VM_SHM | VM_LOCKED | VM_IO); vma->vm_flags |= (VM_SHM | VM_LOCKED | VM_IO);
......
...@@ -136,7 +136,7 @@ static void sn_fixup_ionodes(void) ...@@ -136,7 +136,7 @@ static void sn_fixup_ionodes(void)
for (i = 0; i < numionodes; i++) { for (i = 0; i < numionodes; i++) {
hubdev = (struct hubdev_info *)(NODEPDA(i)->pdinfo); hubdev = (struct hubdev_info *)(NODEPDA(i)->pdinfo);
nasid = COMPACT_TO_NASID_NODEID(i); nasid = cnodeid_to_nasid(i);
status = sal_get_hubdev_info(nasid, (uint64_t) __pa(hubdev)); status = sal_get_hubdev_info(nasid, (uint64_t) __pa(hubdev));
if (status) if (status)
continue; continue;
...@@ -313,7 +313,7 @@ static void sn_pci_controller_fixup(int segment, int busnum) ...@@ -313,7 +313,7 @@ static void sn_pci_controller_fixup(int segment, int busnum)
SN_PCIBUS_BUSSOFT(bus) = provider_soft; SN_PCIBUS_BUSSOFT(bus) = provider_soft;
nasid = NASID_GET(SN_PCIBUS_BUSSOFT(bus)->bs_base); nasid = NASID_GET(SN_PCIBUS_BUSSOFT(bus)->bs_base);
cnode = NASID_TO_COMPACT_NODEID(nasid); cnode = nasid_to_cnodeid(nasid);
hubdev_info = (struct hubdev_info *)(NODEPDA(cnode)->pdinfo); hubdev_info = (struct hubdev_info *)(NODEPDA(cnode)->pdinfo);
SN_PCIBUS_BUSSOFT(bus)->bs_xwidget_info = SN_PCIBUS_BUSSOFT(bus)->bs_xwidget_info =
&(hubdev_info->hdi_xwidget_info[SN_PCIBUS_BUSSOFT(bus)->bs_xid]); &(hubdev_info->hdi_xwidget_info[SN_PCIBUS_BUSSOFT(bus)->bs_xid]);
......
...@@ -82,15 +82,6 @@ short physical_node_map[MAX_PHYSNODE_ID]; ...@@ -82,15 +82,6 @@ short physical_node_map[MAX_PHYSNODE_ID];
EXPORT_SYMBOL(physical_node_map); EXPORT_SYMBOL(physical_node_map);
int numionodes; int numionodes;
/*
* This is the address of the RRegs in the HSpace of the global
* master. It is used by a hack in serial.c (serial_[in|out],
* printk.c (early_printk), and kdb_io.c to put console output on that
* node's Bedrock UART. It is initialized here to 0, so that
* early_printk won't try to access the UART before
* master_node_bedrock_address is properly calculated.
*/
u64 __iomem *master_node_bedrock_address;
static void sn_init_pdas(char **); static void sn_init_pdas(char **);
static void scan_for_ionodes(void); static void scan_for_ionodes(void);
...@@ -207,14 +198,6 @@ void __init early_sn_setup(void) ...@@ -207,14 +198,6 @@ void __init early_sn_setup(void)
} }
} }
} }
if (IS_RUNNING_ON_SIMULATOR()) {
master_node_bedrock_address = (u64 __iomem *)
REMOTE_HUB(boot_get_nasid(), SH_JUNK_BUS_UART0);
printk(KERN_DEBUG "early_sn_setup: setting "
"master_node_bedrock_address to 0x%p\n",
master_node_bedrock_address);
}
} }
extern int platform_intr_list[]; extern int platform_intr_list[];
...@@ -325,14 +308,6 @@ void __init sn_setup(char **cmdline_p) ...@@ -325,14 +308,6 @@ void __init sn_setup(char **cmdline_p)
platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR; platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR;
if (IS_RUNNING_ON_SIMULATOR()) {
master_node_bedrock_address = (u64 __iomem *)
REMOTE_HUB(boot_get_nasid(), SH_JUNK_BUS_UART0);
printk(KERN_DEBUG "sn_setup: setting "
"master_node_bedrock_address to 0x%p\n",
master_node_bedrock_address);
}
/* /*
* we set the default root device to /dev/hda * we set the default root device to /dev/hda
* to make simulation easy * to make simulation easy
......
...@@ -226,10 +226,10 @@ void sn_dma_flush(uint64_t addr) ...@@ -226,10 +226,10 @@ void sn_dma_flush(uint64_t addr)
return; return;
nasid = NASID_GET(addr); nasid = NASID_GET(addr);
if (-1 == NASID_TO_COMPACT_NODEID(nasid)) if (-1 == nasid_to_cnodeid(nasid))
return; return;
hubinfo = (NODEPDA(NASID_TO_COMPACT_NODEID(nasid)))->pdinfo; hubinfo = (NODEPDA(nasid_to_cnodeid(nasid)))->pdinfo;
if (!hubinfo) { if (!hubinfo) {
BUG(); BUG();
......
...@@ -98,7 +98,7 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft) ...@@ -98,7 +98,7 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft)
} }
nasid = NASID_GET(soft->pbi_buscommon.bs_base); nasid = NASID_GET(soft->pbi_buscommon.bs_base);
cnode = NASID_TO_COMPACT_NODEID(nasid); cnode = nasid_to_cnodeid(nasid);
hubdev_info = (struct hubdev_info *)(NODEPDA(cnode)->pdinfo); hubdev_info = (struct hubdev_info *)(NODEPDA(cnode)->pdinfo);
if (hubdev_info->hdi_flush_nasid_list.widget_p) { if (hubdev_info->hdi_flush_nasid_list.widget_p) {
......
...@@ -275,7 +275,8 @@ ext2_readdir (struct file * filp, void * dirent, filldir_t filldir) ...@@ -275,7 +275,8 @@ ext2_readdir (struct file * filp, void * dirent, filldir_t filldir)
"bad page in #%lu", "bad page in #%lu",
inode->i_ino); inode->i_ino);
filp->f_pos += PAGE_CACHE_SIZE - offset; filp->f_pos += PAGE_CACHE_SIZE - offset;
continue; ret = -EIO;
goto done;
} }
kaddr = page_address(page); kaddr = page_address(page);
if (need_revalidate) { if (need_revalidate) {
......
...@@ -121,7 +121,12 @@ static inline void pcibios_add_platform_entries(struct pci_dev *dev) ...@@ -121,7 +121,12 @@ static inline void pcibios_add_platform_entries(struct pci_dev *dev)
{ {
} }
/* generic pci stuff */ extern void pcibios_resource_to_bus(struct pci_dev *dev,
#include <asm-generic/pci.h> struct pci_bus_region *region, struct resource *res);
extern void pcibios_bus_to_resource(struct pci_dev *dev,
struct resource *res, struct pci_bus_region *region);
#define pcibios_scan_all_fns(a, b) 0
#endif /* _ASM_IA64_PCI_H */ #endif /* _ASM_IA64_PCI_H */
...@@ -22,17 +22,6 @@ ...@@ -22,17 +22,6 @@
*/ */
#define MAX_COMPACT_NODES 2048 #define MAX_COMPACT_NODES 2048
typedef u64 nic_t;
#define NASID_TO_COMPACT_NODEID(nasid) (nasid_to_cnodeid(nasid))
#define COMPACT_TO_NASID_NODEID(cnode) (cnodeid_to_nasid(cnode))
#define INVALID_NASID ((nasid_t)-1)
#define INVALID_SLAB (slabid_t)-1
#define INVALID_MODULE ((moduleid_t)-1)
#define INVALID_PARTID ((partid_t)-1)
extern void sn_flush_all_caches(long addr, long bytes); extern void sn_flush_all_caches(long addr, long bytes);
#endif /* _ASM_IA64_SN_ARCH_H */ #endif /* _ASM_IA64_SN_ARCH_H */
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <asm/sal.h> #include <asm/sal.h>
#include <asm/sn/sn_cpuid.h> #include <asm/sn/sn_cpuid.h>
#include <asm/sn/arch.h> #include <asm/sn/arch.h>
#include <asm/sn/geo.h>
#include <asm/sn/nodepda.h> #include <asm/sn/nodepda.h>
// SGI Specific Calls // SGI Specific Calls
...@@ -314,7 +315,7 @@ ia64_sn_plat_specific_err_print(int (*hook)(const char*, ...), char *rec) ...@@ -314,7 +315,7 @@ ia64_sn_plat_specific_err_print(int (*hook)(const char*, ...), char *rec)
ret_stuff.v0 = 0; ret_stuff.v0 = 0;
ret_stuff.v1 = 0; ret_stuff.v1 = 0;
ret_stuff.v2 = 0; ret_stuff.v2 = 0;
SAL_CALL_NOLOCK(ret_stuff, SN_SAL_PRINT_ERROR, (uint64_t)hook, (uint64_t)rec, 0, 0, 0, 0, 0); SAL_CALL_REENTRANT(ret_stuff, SN_SAL_PRINT_ERROR, (uint64_t)hook, (uint64_t)rec, 0, 0, 0, 0, 0);
return ret_stuff.status; return ret_stuff.status;
} }
......
...@@ -9,13 +9,15 @@ ...@@ -9,13 +9,15 @@
#ifndef _ASM_IA64_SN_TYPES_H #ifndef _ASM_IA64_SN_TYPES_H
#define _ASM_IA64_SN_TYPES_H #define _ASM_IA64_SN_TYPES_H
#include <linux/types.h>
typedef unsigned long cpuid_t; typedef unsigned long cpuid_t;
typedef signed short nasid_t; /* node id in numa-as-id space */ typedef signed short nasid_t; /* node id in numa-as-id space */
typedef signed char partid_t; /* partition ID type */ typedef signed char partid_t; /* partition ID type */
typedef unsigned int moduleid_t; /* user-visible module number type */ typedef unsigned int moduleid_t; /* user-visible module number type */
typedef unsigned int cmoduleid_t; /* kernel compact module id type */ typedef unsigned int cmoduleid_t; /* kernel compact module id type */
typedef signed char slabid_t; typedef signed char slabid_t;
typedef u64 nic_t;
typedef unsigned long iopaddr_t; typedef unsigned long iopaddr_t;
typedef unsigned long paddr_t; typedef unsigned long paddr_t;
typedef short cnodeid_t; typedef short cnodeid_t;
......
...@@ -109,6 +109,8 @@ struct divert_cf ...@@ -109,6 +109,8 @@ struct divert_cf
#include <linux/skbuff.h> #include <linux/skbuff.h>
#ifdef CONFIG_NET_DIVERT #ifdef CONFIG_NET_DIVERT
#include <linux/netdevice.h>
int alloc_divert_blk(struct net_device *); int alloc_divert_blk(struct net_device *);
void free_divert_blk(struct net_device *); void free_divert_blk(struct net_device *);
int divert_ioctl(unsigned int cmd, struct divert_cf __user *arg); int divert_ioctl(unsigned int cmd, struct divert_cf __user *arg);
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
#define __LINUX_FILTER_H__ #define __LINUX_FILTER_H__
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/types.h>
#include <asm/atomic.h>
/* /*
* Current version of the filter code architecture. * Current version of the filter code architecture.
...@@ -135,6 +138,9 @@ static inline unsigned int sk_filter_len(struct sk_filter *fp) ...@@ -135,6 +138,9 @@ static inline unsigned int sk_filter_len(struct sk_filter *fp)
#define SKF_LL_OFF (-0x200000) #define SKF_LL_OFF (-0x200000)
#ifdef __KERNEL__ #ifdef __KERNEL__
struct sk_buff;
struct sock;
extern int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen); extern int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen);
extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
extern int sk_chk_filter(struct sock_filter *filter, int flen); extern int sk_chk_filter(struct sock_filter *filter, int flen);
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
#ifndef _LINUX_ICMP_H #ifndef _LINUX_ICMP_H
#define _LINUX_ICMP_H #define _LINUX_ICMP_H
#include <linux/types.h>
#define ICMP_ECHOREPLY 0 /* Echo Reply */ #define ICMP_ECHOREPLY 0 /* Echo Reply */
#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ #define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
#define ICMP_SOURCE_QUENCH 4 /* Source Quench */ #define ICMP_SOURCE_QUENCH 4 /* Source Quench */
......
...@@ -43,6 +43,8 @@ ...@@ -43,6 +43,8 @@
#define _LINUX_INET_H #define _LINUX_INET_H
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <linux/types.h>
extern __u32 in_aton(const char *str); extern __u32 in_aton(const char *str);
#endif #endif
#endif /* _LINUX_INET_H */ #endif /* _LINUX_INET_H */
...@@ -3,7 +3,10 @@ ...@@ -3,7 +3,10 @@
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <linux/if.h>
#include <linux/netdevice.h>
#include <linux/rcupdate.h> #include <linux/rcupdate.h>
#include <linux/timer.h>
struct ipv4_devconf struct ipv4_devconf
{ {
......
...@@ -699,6 +699,7 @@ enum ...@@ -699,6 +699,7 @@ enum
TCA_RATE, TCA_RATE,
TCA_FCNT, TCA_FCNT,
TCA_STATS2, TCA_STATS2,
TCA_ACT_STATS,
__TCA_MAX __TCA_MAX
}; };
......
...@@ -28,7 +28,9 @@ struct tcf_police ...@@ -28,7 +28,9 @@ struct tcf_police
struct qdisc_rate_table *R_tab; struct qdisc_rate_table *R_tab;
struct qdisc_rate_table *P_tab; struct qdisc_rate_table *P_tab;
struct tc_stats stats; struct gnet_stats_basic bstats;
struct gnet_stats_queue qstats;
struct gnet_stats_rate_est rate_est;
spinlock_t *stats_lock; spinlock_t *stats_lock;
}; };
...@@ -44,10 +46,16 @@ struct tcf_##name *next; \ ...@@ -44,10 +46,16 @@ struct tcf_##name *next; \
u32 capab; \ u32 capab; \
int action; \ int action; \
struct tcf_t tm; \ struct tcf_t tm; \
struct tc_stats stats; \ struct gnet_stats_basic bstats; \
struct gnet_stats_queue qstats; \
struct gnet_stats_rate_est rate_est; \
spinlock_t *stats_lock; \ spinlock_t *stats_lock; \
spinlock_t lock spinlock_t lock
struct tcf_act_hdr
{
tca_gen(act_hdr);
};
struct tc_action struct tc_action
{ {
...@@ -95,6 +103,7 @@ extern int qdisc_copy_stats(struct sk_buff *skb, struct tc_stats *st, spinlock_t ...@@ -95,6 +103,7 @@ extern int qdisc_copy_stats(struct sk_buff *skb, struct tc_stats *st, spinlock_t
extern void tcf_police_destroy(struct tcf_police *p); extern void tcf_police_destroy(struct tcf_police *p);
extern struct tcf_police * tcf_police_locate(struct rtattr *rta, struct rtattr *est); extern struct tcf_police * tcf_police_locate(struct rtattr *rta, struct rtattr *est);
extern int tcf_police_dump(struct sk_buff *skb, struct tcf_police *p); extern int tcf_police_dump(struct sk_buff *skb, struct tcf_police *p);
extern int tcf_police_dump_stats(struct sk_buff *skb, struct tcf_police *p);
static inline int static inline int
tcf_police_release(struct tcf_police *p, int bind) tcf_police_release(struct tcf_police *p, int bind)
......
...@@ -198,6 +198,7 @@ ...@@ -198,6 +198,7 @@
/***************************** INCLUDES *****************************/ /***************************** INCLUDES *****************************/
#include <linux/wireless.h> /* IOCTL user space API */ #include <linux/wireless.h> /* IOCTL user space API */
#include <linux/if_ether.h>
/***************************** VERSION *****************************/ /***************************** VERSION *****************************/
/* /*
...@@ -294,6 +295,8 @@ struct iw_request_info ...@@ -294,6 +295,8 @@ struct iw_request_info
__u16 flags; /* More to come ;-) */ __u16 flags; /* More to come ;-) */
}; };
struct net_device;
/* /*
* This is how a function handling a Wireless Extension should look * This is how a function handling a Wireless Extension should look
* like (both get and set, standard and private). * like (both get and set, standard and private).
......
...@@ -189,7 +189,7 @@ struct neigh_table ...@@ -189,7 +189,7 @@ struct neigh_table
struct timer_list gc_timer; struct timer_list gc_timer;
struct timer_list proxy_timer; struct timer_list proxy_timer;
struct sk_buff_head proxy_queue; struct sk_buff_head proxy_queue;
int entries; atomic_t entries;
rwlock_t lock; rwlock_t lock;
unsigned long last_rand; unsigned long last_rand;
struct neigh_parms *parms_list; struct neigh_parms *parms_list;
......
...@@ -60,7 +60,7 @@ tcf_hash_destroy(struct tcf_st *p) ...@@ -60,7 +60,7 @@ tcf_hash_destroy(struct tcf_st *p)
*p1p = p->next; *p1p = p->next;
write_unlock_bh(&tcf_t_lock); write_unlock_bh(&tcf_t_lock);
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
qdisc_kill_estimator(&p->stats); gen_kill_estimator(&p->bstats, &p->rate_est);
#endif #endif
kfree(p); kfree(p);
return; return;
...@@ -256,9 +256,8 @@ tcf_hash_create(struct tc_st *parm, struct rtattr *est, struct tc_action *a, int ...@@ -256,9 +256,8 @@ tcf_hash_create(struct tc_st *parm, struct rtattr *est, struct tc_action *a, int
p->tm.install = jiffies; p->tm.install = jiffies;
p->tm.lastuse = jiffies; p->tm.lastuse = jiffies;
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
if (est) { if (est)
qdisc_new_estimator(&p->stats, p->stats_lock, est); gen_new_estimator(&p->bstats, &p->rate_est, p->stats_lock, est);
}
#endif #endif
h = tcf_hash(p->index); h = tcf_hash(p->index);
write_lock_bh(&tcf_t_lock); write_lock_bh(&tcf_t_lock);
......
...@@ -1261,11 +1261,6 @@ int dev_queue_xmit(struct sk_buff *skb) ...@@ -1261,11 +1261,6 @@ int dev_queue_xmit(struct sk_buff *skb)
struct Qdisc *q; struct Qdisc *q;
int rc = -ENOMEM; int rc = -ENOMEM;
/* Disable soft irqs for various locks below. Also
* stops preemption for RCU.
*/
local_bh_disable();
if (skb_shinfo(skb)->frag_list && if (skb_shinfo(skb)->frag_list &&
!(dev->features & NETIF_F_FRAGLIST) && !(dev->features & NETIF_F_FRAGLIST) &&
__skb_linearize(skb, GFP_ATOMIC)) __skb_linearize(skb, GFP_ATOMIC))
...@@ -1290,6 +1285,11 @@ int dev_queue_xmit(struct sk_buff *skb) ...@@ -1290,6 +1285,11 @@ int dev_queue_xmit(struct sk_buff *skb)
if (skb_checksum_help(skb, 0)) if (skb_checksum_help(skb, 0))
goto out_kfree_skb; goto out_kfree_skb;
/* Disable soft irqs for various locks below. Also
* stops preemption for RCU.
*/
local_bh_disable();
/* Updates of qdisc are serialized by queue_lock. /* Updates of qdisc are serialized by queue_lock.
* The struct Qdisc which is pointed to by qdisc is now a * The struct Qdisc which is pointed to by qdisc is now a
* rcu structure - it may be accessed without acquiring * rcu structure - it may be accessed without acquiring
...@@ -1352,7 +1352,6 @@ int dev_queue_xmit(struct sk_buff *skb) ...@@ -1352,7 +1352,6 @@ int dev_queue_xmit(struct sk_buff *skb)
if (net_ratelimit()) if (net_ratelimit())
printk(KERN_CRIT "Virtual device %s asks to " printk(KERN_CRIT "Virtual device %s asks to "
"queue packet!\n", dev->name); "queue packet!\n", dev->name);
goto out_enetdown;
} else { } else {
/* Recursion is detected! It is possible, /* Recursion is detected! It is possible,
* unfortunately */ * unfortunately */
...@@ -1361,10 +1360,13 @@ int dev_queue_xmit(struct sk_buff *skb) ...@@ -1361,10 +1360,13 @@ int dev_queue_xmit(struct sk_buff *skb)
"%s, fix it urgently!\n", dev->name); "%s, fix it urgently!\n", dev->name);
} }
} }
out_enetdown:
rc = -ENETDOWN; rc = -ENETDOWN;
local_bh_enable();
out_kfree_skb: out_kfree_skb:
kfree_skb(skb); kfree_skb(skb);
return rc;
out: out:
local_bh_enable(); local_bh_enable();
return rc; return rc;
...@@ -2374,6 +2376,9 @@ static int dev_ifsioc(struct ifreq *ifr, unsigned int cmd) ...@@ -2374,6 +2376,9 @@ static int dev_ifsioc(struct ifreq *ifr, unsigned int cmd)
return dev_set_mtu(dev, ifr->ifr_mtu); return dev_set_mtu(dev, ifr->ifr_mtu);
case SIOCGIFHWADDR: case SIOCGIFHWADDR:
if (!dev->addr_len)
memset(ifr->ifr_hwaddr.sa_data, 0, sizeof ifr->ifr_hwaddr.sa_data);
else
memcpy(ifr->ifr_hwaddr.sa_data, dev->dev_addr, memcpy(ifr->ifr_hwaddr.sa_data, dev->dev_addr,
min(sizeof ifr->ifr_hwaddr.sa_data, (size_t) dev->addr_len)); min(sizeof ifr->ifr_hwaddr.sa_data, (size_t) dev->addr_len));
ifr->ifr_hwaddr.sa_family = dev->type; ifr->ifr_hwaddr.sa_family = dev->type;
......
...@@ -125,6 +125,7 @@ gnet_stats_finish_copy(struct gnet_dump *d) ...@@ -125,6 +125,7 @@ gnet_stats_finish_copy(struct gnet_dump *d)
EXPORT_SYMBOL(gnet_stats_start_copy); EXPORT_SYMBOL(gnet_stats_start_copy);
EXPORT_SYMBOL(gnet_stats_start_copy_compat);
EXPORT_SYMBOL(gnet_stats_copy_basic); EXPORT_SYMBOL(gnet_stats_copy_basic);
EXPORT_SYMBOL(gnet_stats_copy_rate_est); EXPORT_SYMBOL(gnet_stats_copy_rate_est);
EXPORT_SYMBOL(gnet_stats_copy_queue); EXPORT_SYMBOL(gnet_stats_copy_queue);
......
...@@ -254,18 +254,20 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl) ...@@ -254,18 +254,20 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl)
{ {
struct neighbour *n = NULL; struct neighbour *n = NULL;
unsigned long now = jiffies; unsigned long now = jiffies;
int entries;
if (tbl->entries > tbl->gc_thresh3 || entries = atomic_inc_return(&tbl->entries) - 1;
(tbl->entries > tbl->gc_thresh2 && if (entries >= tbl->gc_thresh3 ||
(entries >= tbl->gc_thresh2 &&
time_after(now, tbl->last_flush + 5 * HZ))) { time_after(now, tbl->last_flush + 5 * HZ))) {
if (!neigh_forced_gc(tbl) && if (!neigh_forced_gc(tbl) &&
tbl->entries > tbl->gc_thresh3) entries >= tbl->gc_thresh3)
goto out; goto out_entries;
} }
n = kmem_cache_alloc(tbl->kmem_cachep, SLAB_ATOMIC); n = kmem_cache_alloc(tbl->kmem_cachep, SLAB_ATOMIC);
if (!n) if (!n)
goto out; goto out_entries;
memset(n, 0, tbl->entry_size); memset(n, 0, tbl->entry_size);
...@@ -281,12 +283,15 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl) ...@@ -281,12 +283,15 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl)
NEIGH_CACHE_STAT_INC(tbl, allocs); NEIGH_CACHE_STAT_INC(tbl, allocs);
neigh_glbl_allocs++; neigh_glbl_allocs++;
tbl->entries++;
n->tbl = tbl; n->tbl = tbl;
atomic_set(&n->refcnt, 1); atomic_set(&n->refcnt, 1);
n->dead = 1; n->dead = 1;
out: out:
return n; return n;
out_entries:
atomic_dec(&tbl->entries);
goto out;
} }
static struct neighbour **neigh_hash_alloc(unsigned int entries) static struct neighbour **neigh_hash_alloc(unsigned int entries)
...@@ -427,7 +432,7 @@ struct neighbour *neigh_create(struct neigh_table *tbl, const void *pkey, ...@@ -427,7 +432,7 @@ struct neighbour *neigh_create(struct neigh_table *tbl, const void *pkey,
write_lock_bh(&tbl->lock); write_lock_bh(&tbl->lock);
if (tbl->entries > (tbl->hash_mask + 1)) if (atomic_read(&tbl->entries) > (tbl->hash_mask + 1))
neigh_hash_grow(tbl, (tbl->hash_mask + 1) << 1); neigh_hash_grow(tbl, (tbl->hash_mask + 1) << 1);
hash_val = tbl->hash(pkey, dev) & tbl->hash_mask; hash_val = tbl->hash(pkey, dev) & tbl->hash_mask;
...@@ -608,7 +613,7 @@ void neigh_destroy(struct neighbour *neigh) ...@@ -608,7 +613,7 @@ void neigh_destroy(struct neighbour *neigh)
NEIGH_PRINTK2("neigh %p is destroyed.\n", neigh); NEIGH_PRINTK2("neigh %p is destroyed.\n", neigh);
neigh_glbl_allocs--; neigh_glbl_allocs--;
neigh->tbl->entries--; atomic_dec(&neigh->tbl->entries);
kmem_cache_free(neigh->tbl->kmem_cachep, neigh); kmem_cache_free(neigh->tbl->kmem_cachep, neigh);
} }
...@@ -1394,7 +1399,7 @@ int neigh_table_clear(struct neigh_table *tbl) ...@@ -1394,7 +1399,7 @@ int neigh_table_clear(struct neigh_table *tbl)
del_timer_sync(&tbl->proxy_timer); del_timer_sync(&tbl->proxy_timer);
pneigh_queue_purge(&tbl->proxy_queue); pneigh_queue_purge(&tbl->proxy_queue);
neigh_ifdown(tbl, NULL); neigh_ifdown(tbl, NULL);
if (tbl->entries) if (atomic_read(&tbl->entries))
printk(KERN_CRIT "neighbour leakage\n"); printk(KERN_CRIT "neighbour leakage\n");
write_lock(&neigh_tbl_lock); write_lock(&neigh_tbl_lock);
for (tp = &neigh_tables; *tp; tp = &(*tp)->next) { for (tp = &neigh_tables; *tp; tp = &(*tp)->next) {
...@@ -1951,7 +1956,7 @@ static int neigh_stat_seq_show(struct seq_file *seq, void *v) ...@@ -1951,7 +1956,7 @@ static int neigh_stat_seq_show(struct seq_file *seq, void *v)
seq_printf(seq, "%08x %08lx %08lx %08lx %08lx %08lx %08lx " seq_printf(seq, "%08x %08lx %08lx %08lx %08lx %08lx %08lx "
"%08lx %08lx %08lx %08lx\n", "%08lx %08lx %08lx %08lx\n",
tbl->entries, atomic_read(&tbl->entries),
st->allocs, st->allocs,
st->destroys, st->destroys,
......
...@@ -351,6 +351,7 @@ config INET_TUNNEL ...@@ -351,6 +351,7 @@ config INET_TUNNEL
config IP_TCPDIAG config IP_TCPDIAG
tristate "IP: TCP socket monitoring interface" tristate "IP: TCP socket monitoring interface"
depends on INET
default y default y
---help--- ---help---
Support for TCP socket monitoring interface used by native Linux Support for TCP socket monitoring interface used by native Linux
...@@ -358,5 +359,8 @@ config IP_TCPDIAG ...@@ -358,5 +359,8 @@ config IP_TCPDIAG
If unsure, say Y. If unsure, say Y.
config IP_TCPDIAG_IPV6
def_bool (IP_TCPDIAG=y && IPV6=y) || (IP_TCPDIAG=m && IPV6)
source "net/ipv4/ipvs/Kconfig" source "net/ipv4/ipvs/Kconfig"
...@@ -103,14 +103,12 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk, ...@@ -103,14 +103,12 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
r->tcpdiag_wqueue = 0; r->tcpdiag_wqueue = 0;
r->tcpdiag_uid = 0; r->tcpdiag_uid = 0;
r->tcpdiag_inode = 0; r->tcpdiag_inode = 0;
#ifdef CONFIG_IPV6
if (r->tcpdiag_family == AF_INET6) { if (r->tcpdiag_family == AF_INET6) {
ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_src, ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_src,
&tw->tw_v6_rcv_saddr); &tw->tw_v6_rcv_saddr);
ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst, ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst,
&tw->tw_v6_daddr); &tw->tw_v6_daddr);
} }
#endif
nlh->nlmsg_len = skb->tail - b; nlh->nlmsg_len = skb->tail - b;
return skb->len; return skb->len;
} }
...@@ -120,7 +118,6 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk, ...@@ -120,7 +118,6 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
r->id.tcpdiag_src[0] = inet->rcv_saddr; r->id.tcpdiag_src[0] = inet->rcv_saddr;
r->id.tcpdiag_dst[0] = inet->daddr; r->id.tcpdiag_dst[0] = inet->daddr;
#ifdef CONFIG_IPV6
if (r->tcpdiag_family == AF_INET6) { if (r->tcpdiag_family == AF_INET6) {
struct ipv6_pinfo *np = inet6_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk);
...@@ -129,7 +126,6 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk, ...@@ -129,7 +126,6 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst, ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst,
&np->daddr); &np->daddr);
} }
#endif
#define EXPIRES_IN_MS(tmo) ((tmo-jiffies)*1000+HZ-1)/HZ #define EXPIRES_IN_MS(tmo) ((tmo-jiffies)*1000+HZ-1)/HZ
...@@ -188,11 +184,19 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk, ...@@ -188,11 +184,19 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
return -1; return -1;
} }
extern struct sock *tcp_v4_lookup(u32 saddr, u16 sport, u32 daddr, u16 dport, int dif); extern struct sock *tcp_v4_lookup(u32 saddr, u16 sport, u32 daddr, u16 dport,
#ifdef CONFIG_IPV6 int dif);
#ifdef CONFIG_IP_TCPDIAG_IPV6
extern struct sock *tcp_v6_lookup(struct in6_addr *saddr, u16 sport, extern struct sock *tcp_v6_lookup(struct in6_addr *saddr, u16 sport,
struct in6_addr *daddr, u16 dport, struct in6_addr *daddr, u16 dport,
int dif); int dif);
#else
static inline struct sock *tcp_v6_lookup(struct in6_addr *saddr, u16 sport,
struct in6_addr *daddr, u16 dport,
int dif)
{
return NULL;
}
#endif #endif
static int tcpdiag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh) static int tcpdiag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh)
...@@ -207,13 +211,11 @@ static int tcpdiag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh) ...@@ -207,13 +211,11 @@ static int tcpdiag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh)
req->id.tcpdiag_src[0], req->id.tcpdiag_sport, req->id.tcpdiag_src[0], req->id.tcpdiag_sport,
req->id.tcpdiag_if); req->id.tcpdiag_if);
} }
#ifdef CONFIG_IPV6
else if (req->tcpdiag_family == AF_INET6) { else if (req->tcpdiag_family == AF_INET6) {
sk = tcp_v6_lookup((struct in6_addr*)req->id.tcpdiag_dst, req->id.tcpdiag_dport, sk = tcp_v6_lookup((struct in6_addr*)req->id.tcpdiag_dst, req->id.tcpdiag_dport,
(struct in6_addr*)req->id.tcpdiag_src, req->id.tcpdiag_sport, (struct in6_addr*)req->id.tcpdiag_src, req->id.tcpdiag_sport,
req->id.tcpdiag_if); req->id.tcpdiag_if);
} }
#endif
else { else {
return -EINVAL; return -EINVAL;
} }
...@@ -422,14 +424,12 @@ static int tcpdiag_dump_sock(struct sk_buff *skb, struct sock *sk, ...@@ -422,14 +424,12 @@ static int tcpdiag_dump_sock(struct sk_buff *skb, struct sock *sk,
struct inet_opt *inet = inet_sk(sk); struct inet_opt *inet = inet_sk(sk);
entry.family = sk->sk_family; entry.family = sk->sk_family;
#ifdef CONFIG_IPV6
if (entry.family == AF_INET6) { if (entry.family == AF_INET6) {
struct ipv6_pinfo *np = inet6_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk);
entry.saddr = np->rcv_saddr.s6_addr32; entry.saddr = np->rcv_saddr.s6_addr32;
entry.daddr = np->daddr.s6_addr32; entry.daddr = np->daddr.s6_addr32;
} else } else
#endif
{ {
entry.saddr = &inet->rcv_saddr; entry.saddr = &inet->rcv_saddr;
entry.daddr = &inet->daddr; entry.daddr = &inet->daddr;
...@@ -482,14 +482,12 @@ static int tcpdiag_fill_req(struct sk_buff *skb, struct sock *sk, ...@@ -482,14 +482,12 @@ static int tcpdiag_fill_req(struct sk_buff *skb, struct sock *sk,
r->tcpdiag_wqueue = 0; r->tcpdiag_wqueue = 0;
r->tcpdiag_uid = sock_i_uid(sk); r->tcpdiag_uid = sock_i_uid(sk);
r->tcpdiag_inode = 0; r->tcpdiag_inode = 0;
#ifdef CONFIG_IPV6
if (r->tcpdiag_family == AF_INET6) { if (r->tcpdiag_family == AF_INET6) {
ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_src, ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_src,
&req->af.v6_req.loc_addr); &req->af.v6_req.loc_addr);
ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst, ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst,
&req->af.v6_req.rmt_addr); &req->af.v6_req.rmt_addr);
} }
#endif
nlh->nlmsg_len = skb->tail - b; nlh->nlmsg_len = skb->tail - b;
return skb->len; return skb->len;
...@@ -545,16 +543,12 @@ static int tcpdiag_dump_reqs(struct sk_buff *skb, struct sock *sk, ...@@ -545,16 +543,12 @@ static int tcpdiag_dump_reqs(struct sk_buff *skb, struct sock *sk,
if (bc) { if (bc) {
entry.saddr = entry.saddr =
#ifdef CONFIG_IPV6
(entry.family == AF_INET6) ? (entry.family == AF_INET6) ?
req->af.v6_req.loc_addr.s6_addr32 : req->af.v6_req.loc_addr.s6_addr32 :
#endif
&req->af.v4_req.loc_addr; &req->af.v4_req.loc_addr;
entry.daddr = entry.daddr =
#ifdef CONFIG_IPV6
(entry.family == AF_INET6) ? (entry.family == AF_INET6) ?
req->af.v6_req.rmt_addr.s6_addr32 : req->af.v6_req.rmt_addr.s6_addr32 :
#endif
&req->af.v4_req.rmt_addr; &req->af.v4_req.rmt_addr;
entry.dport = ntohs(req->rmt_port); entry.dport = ntohs(req->rmt_port);
......
...@@ -1078,13 +1078,6 @@ static void ndisc_router_discovery(struct sk_buff *skb) ...@@ -1078,13 +1078,6 @@ static void ndisc_router_discovery(struct sk_buff *skb)
return; return;
} }
neigh->flags |= NTF_ROUTER; neigh->flags |= NTF_ROUTER;
/*
* If we where using an "all destinations on link" route
* delete it
*/
rt6_purge_dflt_routers();
} }
if (rt) if (rt)
......
...@@ -44,6 +44,12 @@ ...@@ -44,6 +44,12 @@
#include <linux/smp_lock.h> #include <linux/smp_lock.h>
#include <linux/notifier.h> #include <linux/notifier.h>
#include <linux/security.h> #include <linux/security.h>
#include <linux/jhash.h>
#include <linux/jiffies.h>
#include <linux/random.h>
#include <linux/bitops.h>
#include <linux/mm.h>
#include <linux/types.h>
#include <net/sock.h> #include <net/sock.h>
#include <net/scm.h> #include <net/scm.h>
...@@ -56,9 +62,9 @@ ...@@ -56,9 +62,9 @@
struct netlink_opt struct netlink_opt
{ {
u32 pid; u32 pid;
unsigned groups; unsigned int groups;
u32 dst_pid; u32 dst_pid;
unsigned dst_groups; unsigned int dst_groups;
unsigned long state; unsigned long state;
int (*handler)(int unit, struct sk_buff *skb); int (*handler)(int unit, struct sk_buff *skb);
wait_queue_head_t wait; wait_queue_head_t wait;
...@@ -69,9 +75,28 @@ struct netlink_opt ...@@ -69,9 +75,28 @@ struct netlink_opt
#define nlk_sk(__sk) ((struct netlink_opt *)(__sk)->sk_protinfo) #define nlk_sk(__sk) ((struct netlink_opt *)(__sk)->sk_protinfo)
static struct hlist_head nl_table[MAX_LINKS]; struct nl_pid_hash {
struct hlist_head *table;
unsigned long rehash_time;
unsigned int mask;
unsigned int shift;
unsigned int entries;
unsigned int max_shift;
u32 rnd;
};
struct netlink_table {
struct nl_pid_hash hash;
struct hlist_head mc_list;
};
static struct netlink_table *nl_table;
static DECLARE_WAIT_QUEUE_HEAD(nl_table_wait); static DECLARE_WAIT_QUEUE_HEAD(nl_table_wait);
static unsigned nl_nonroot[MAX_LINKS]; static unsigned int nl_nonroot[MAX_LINKS];
#ifdef NL_EMULATE_DEV #ifdef NL_EMULATE_DEV
static struct socket *netlink_kernel[MAX_LINKS]; static struct socket *netlink_kernel[MAX_LINKS];
...@@ -85,6 +110,11 @@ static atomic_t nl_table_users = ATOMIC_INIT(0); ...@@ -85,6 +110,11 @@ static atomic_t nl_table_users = ATOMIC_INIT(0);
static struct notifier_block *netlink_chain; static struct notifier_block *netlink_chain;
static struct hlist_head *nl_pid_hashfn(struct nl_pid_hash *hash, u32 pid)
{
return &hash->table[jhash_1word(pid, hash->rnd) & hash->mask];
}
static void netlink_sock_destruct(struct sock *sk) static void netlink_sock_destruct(struct sock *sk)
{ {
skb_queue_purge(&sk->sk_receive_queue); skb_queue_purge(&sk->sk_receive_queue);
...@@ -153,11 +183,14 @@ netlink_unlock_table(void) ...@@ -153,11 +183,14 @@ netlink_unlock_table(void)
static __inline__ struct sock *netlink_lookup(int protocol, u32 pid) static __inline__ struct sock *netlink_lookup(int protocol, u32 pid)
{ {
struct nl_pid_hash *hash = &nl_table[protocol].hash;
struct hlist_head *head;
struct sock *sk; struct sock *sk;
struct hlist_node *node; struct hlist_node *node;
read_lock(&nl_table_lock); read_lock(&nl_table_lock);
sk_for_each(sk, node, &nl_table[protocol]) { head = nl_pid_hashfn(hash, pid);
sk_for_each(sk, node, head) {
if (nlk_sk(sk)->pid == pid) { if (nlk_sk(sk)->pid == pid) {
sock_hold(sk); sock_hold(sk);
goto found; goto found;
...@@ -169,27 +202,118 @@ static __inline__ struct sock *netlink_lookup(int protocol, u32 pid) ...@@ -169,27 +202,118 @@ static __inline__ struct sock *netlink_lookup(int protocol, u32 pid)
return sk; return sk;
} }
static inline struct hlist_head *nl_pid_hash_alloc(size_t size)
{
if (size <= PAGE_SIZE)
return kmalloc(size, GFP_ATOMIC);
else
return (struct hlist_head *)
__get_free_pages(GFP_ATOMIC, get_order(size));
}
static inline void nl_pid_hash_free(struct hlist_head *table, size_t size)
{
if (size <= PAGE_SIZE)
kfree(table);
else
free_pages((unsigned long)table, get_order(size));
}
static int nl_pid_hash_rehash(struct nl_pid_hash *hash, int grow)
{
unsigned int omask, mask, shift;
size_t osize, size;
struct hlist_head *otable, *table;
int i;
omask = mask = hash->mask;
osize = size = (mask + 1) * sizeof(*table);
shift = hash->shift;
if (grow) {
if (++shift > hash->max_shift)
return 0;
mask = mask * 2 + 1;
size *= 2;
}
table = nl_pid_hash_alloc(size);
if (!table)
return 0;
memset(table, 0, size);
otable = hash->table;
hash->table = table;
hash->mask = mask;
hash->shift = shift;
get_random_bytes(&hash->rnd, sizeof(hash->rnd));
for (i = 0; i <= omask; i++) {
struct sock *sk;
struct hlist_node *node, *tmp;
sk_for_each_safe(sk, node, tmp, &otable[i])
__sk_add_node(sk, nl_pid_hashfn(hash, nlk_sk(sk)->pid));
}
nl_pid_hash_free(otable, osize);
hash->rehash_time = jiffies + 10 * 60 * HZ;
return 1;
}
static inline int nl_pid_hash_dilute(struct nl_pid_hash *hash, int len)
{
int avg = hash->entries >> hash->shift;
if (unlikely(avg > 1) && nl_pid_hash_rehash(hash, 1))
return 1;
if (unlikely(len > avg) && time_after(jiffies, hash->rehash_time)) {
nl_pid_hash_rehash(hash, 0);
return 1;
}
return 0;
}
static struct proto_ops netlink_ops; static struct proto_ops netlink_ops;
static int netlink_insert(struct sock *sk, u32 pid) static int netlink_insert(struct sock *sk, u32 pid)
{ {
struct nl_pid_hash *hash = &nl_table[sk->sk_protocol].hash;
struct hlist_head *head;
int err = -EADDRINUSE; int err = -EADDRINUSE;
struct sock *osk; struct sock *osk;
struct hlist_node *node; struct hlist_node *node;
int len;
netlink_table_grab(); netlink_table_grab();
sk_for_each(osk, node, &nl_table[sk->sk_protocol]) { head = nl_pid_hashfn(hash, pid);
len = 0;
sk_for_each(osk, node, head) {
if (nlk_sk(osk)->pid == pid) if (nlk_sk(osk)->pid == pid)
break; break;
len++;
} }
if (!node) { if (node)
goto err;
err = -EBUSY; err = -EBUSY;
if (nlk_sk(sk)->pid == 0) { if (nlk_sk(sk)->pid)
goto err;
err = -ENOMEM;
if (BITS_PER_LONG > 32 && unlikely(hash->entries >= UINT_MAX))
goto err;
if (len && nl_pid_hash_dilute(hash, len))
head = nl_pid_hashfn(hash, pid);
hash->entries++;
nlk_sk(sk)->pid = pid; nlk_sk(sk)->pid = pid;
sk_add_node(sk, &nl_table[sk->sk_protocol]); sk_add_node(sk, head);
err = 0; err = 0;
}
} err:
netlink_table_ungrab(); netlink_table_ungrab();
return err; return err;
} }
...@@ -197,7 +321,10 @@ static int netlink_insert(struct sock *sk, u32 pid) ...@@ -197,7 +321,10 @@ static int netlink_insert(struct sock *sk, u32 pid)
static void netlink_remove(struct sock *sk) static void netlink_remove(struct sock *sk)
{ {
netlink_table_grab(); netlink_table_grab();
nl_table[sk->sk_protocol].hash.entries--;
sk_del_node_init(sk); sk_del_node_init(sk);
if (nlk_sk(sk)->groups)
__sk_del_bind_node(sk);
netlink_table_ungrab(); netlink_table_ungrab();
} }
...@@ -282,19 +409,25 @@ static int netlink_release(struct socket *sock) ...@@ -282,19 +409,25 @@ static int netlink_release(struct socket *sock)
static int netlink_autobind(struct socket *sock) static int netlink_autobind(struct socket *sock)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct nl_pid_hash *hash = &nl_table[sk->sk_protocol].hash;
struct hlist_head *head;
struct sock *osk; struct sock *osk;
struct hlist_node *node; struct hlist_node *node;
s32 pid = current->pid; s32 pid = current->pid;
int err; int err;
static s32 rover = -4097;
retry: retry:
cond_resched();
netlink_table_grab(); netlink_table_grab();
sk_for_each(osk, node, &nl_table[sk->sk_protocol]) { head = nl_pid_hashfn(hash, pid);
sk_for_each(osk, node, head) {
if (nlk_sk(osk)->pid == pid) { if (nlk_sk(osk)->pid == pid) {
/* Bind collision, search negative pid values. */ /* Bind collision, search negative pid values. */
if (pid > 0) if (pid > 0)
pid = -4096; pid = rover;
pid--; else if (--pid > 0)
pid = -4097;
netlink_table_ungrab(); netlink_table_ungrab();
goto retry; goto retry;
} }
...@@ -308,7 +441,7 @@ static int netlink_autobind(struct socket *sock) ...@@ -308,7 +441,7 @@ static int netlink_autobind(struct socket *sock)
return 0; return 0;
} }
static inline int netlink_capable(struct socket *sock, unsigned flag) static inline int netlink_capable(struct socket *sock, unsigned int flag)
{ {
return (nl_nonroot[sock->sk->sk_protocol] & flag) || return (nl_nonroot[sock->sk->sk_protocol] & flag) ||
capable(CAP_NET_ADMIN); capable(CAP_NET_ADMIN);
...@@ -331,21 +464,19 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr, int addr_len ...@@ -331,21 +464,19 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr, int addr_len
if (nlk->pid) { if (nlk->pid) {
if (nladdr->nl_pid != nlk->pid) if (nladdr->nl_pid != nlk->pid)
return -EINVAL; return -EINVAL;
nlk->groups = nladdr->nl_groups; } else {
return 0; err = nladdr->nl_pid ?
} netlink_insert(sk, nladdr->nl_pid) :
netlink_autobind(sock);
if (nladdr->nl_pid == 0) { if (err)
err = netlink_autobind(sock);
if (err == 0)
nlk->groups = nladdr->nl_groups;
return err; return err;
} }
err = netlink_insert(sk, nladdr->nl_pid);
if (err == 0)
nlk->groups = nladdr->nl_groups; nlk->groups = nladdr->nl_groups;
return err; if (nladdr->nl_groups)
sk_add_bind_node(sk, &nl_table[sk->sk_protocol].mc_list);
return 0;
} }
static int netlink_connect(struct socket *sock, struct sockaddr *addr, static int netlink_connect(struct socket *sock, struct sockaddr *addr,
...@@ -590,94 +721,142 @@ static __inline__ int netlink_broadcast_deliver(struct sock *sk, struct sk_buff ...@@ -590,94 +721,142 @@ static __inline__ int netlink_broadcast_deliver(struct sock *sk, struct sk_buff
return -1; return -1;
} }
int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, u32 pid, struct netlink_broadcast_data {
u32 group, int allocation) struct sock *exclude_sk;
{ u32 pid;
struct sock *sk; u32 group;
struct hlist_node *node; int failure;
struct sk_buff *skb2 = NULL; int congested;
int protocol = ssk->sk_protocol; int delivered;
int failure = 0, delivered = 0; int allocation;
int congested = 0; struct sk_buff *skb, *skb2;
int val; };
netlink_trim(skb, allocation);
/* While we sleep in clone, do not allow to change socket list */
netlink_lock_table();
sk_for_each(sk, node, &nl_table[protocol]) { static inline int do_one_broadcast(struct sock *sk,
struct netlink_broadcast_data *p)
{
struct netlink_opt *nlk = nlk_sk(sk); struct netlink_opt *nlk = nlk_sk(sk);
int val;
if (ssk == sk) if (p->exclude_sk == sk)
continue; goto out;
if (nlk->pid == pid || !(nlk->groups & group)) if (nlk->pid == p->pid || !(nlk->groups & p->group))
continue; goto out;
if (failure) { if (p->failure) {
netlink_overrun(sk); netlink_overrun(sk);
continue; goto out;
} }
sock_hold(sk); sock_hold(sk);
if (skb2 == NULL) { if (p->skb2 == NULL) {
if (atomic_read(&skb->users) != 1) { if (atomic_read(&p->skb->users) != 1) {
skb2 = skb_clone(skb, allocation); p->skb2 = skb_clone(p->skb, p->allocation);
} else { } else {
skb2 = skb; p->skb2 = p->skb;
atomic_inc(&skb->users); atomic_inc(&p->skb->users);
} }
} }
if (skb2 == NULL) { if (p->skb2 == NULL) {
netlink_overrun(sk); netlink_overrun(sk);
/* Clone failed. Notify ALL listeners. */ /* Clone failed. Notify ALL listeners. */
failure = 1; p->failure = 1;
} else if ((val = netlink_broadcast_deliver(sk, skb2)) < 0) { } else if ((val = netlink_broadcast_deliver(sk, p->skb2)) < 0) {
netlink_overrun(sk); netlink_overrun(sk);
} else { } else {
congested |= val; p->congested |= val;
delivered = 1; p->delivered = 1;
skb2 = NULL; p->skb2 = NULL;
} }
sock_put(sk); sock_put(sk);
}
out:
return 0;
}
int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, u32 pid,
u32 group, int allocation)
{
struct netlink_broadcast_data info;
struct hlist_node *node;
struct sock *sk;
info.exclude_sk = ssk;
info.pid = pid;
info.group = group;
info.failure = 0;
info.congested = 0;
info.delivered = 0;
info.allocation = allocation;
info.skb = skb;
info.skb2 = NULL;
netlink_trim(skb, allocation);
/* While we sleep in clone, do not allow to change socket list */
netlink_lock_table();
sk_for_each_bound(sk, node, &nl_table[ssk->sk_protocol].mc_list)
do_one_broadcast(sk, &info);
netlink_unlock_table(); netlink_unlock_table();
if (skb2) if (info.skb2)
kfree_skb(skb2); kfree_skb(info.skb2);
kfree_skb(skb); kfree_skb(skb);
if (delivered) { if (info.delivered) {
if (congested && (allocation & __GFP_WAIT)) if (info.congested && (allocation & __GFP_WAIT))
yield(); yield();
return 0; return 0;
} }
if (failure) if (info.failure)
return -ENOBUFS; return -ENOBUFS;
return -ESRCH; return -ESRCH;
} }
struct netlink_set_err_data {
struct sock *exclude_sk;
u32 pid;
u32 group;
int code;
};
static inline int do_one_set_err(struct sock *sk,
struct netlink_set_err_data *p)
{
struct netlink_opt *nlk = nlk_sk(sk);
if (sk == p->exclude_sk)
goto out;
if (nlk->pid == p->pid || !(nlk->groups & p->group))
goto out;
sk->sk_err = p->code;
sk->sk_error_report(sk);
out:
return 0;
}
void netlink_set_err(struct sock *ssk, u32 pid, u32 group, int code) void netlink_set_err(struct sock *ssk, u32 pid, u32 group, int code)
{ {
struct sock *sk; struct netlink_set_err_data info;
struct hlist_node *node; struct hlist_node *node;
int protocol = ssk->sk_protocol; struct sock *sk;
info.exclude_sk = ssk;
info.pid = pid;
info.group = group;
info.code = code;
read_lock(&nl_table_lock); read_lock(&nl_table_lock);
sk_for_each(sk, node, &nl_table[protocol]) {
struct netlink_opt *nlk = nlk_sk(sk);
if (ssk == sk)
continue;
if (nlk->pid == pid || !(nlk->groups & group)) sk_for_each_bound(sk, node, &nl_table[ssk->sk_protocol].mc_list)
continue; do_one_set_err(sk, &info);
sk->sk_err = code;
sk->sk_error_report(sk);
}
read_unlock(&nl_table_lock); read_unlock(&nl_table_lock);
} }
...@@ -853,6 +1032,9 @@ netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len)) ...@@ -853,6 +1032,9 @@ netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len))
struct socket *sock; struct socket *sock;
struct sock *sk; struct sock *sk;
if (!nl_table)
return NULL;
if (unit<0 || unit>=MAX_LINKS) if (unit<0 || unit>=MAX_LINKS)
return NULL; return NULL;
...@@ -875,9 +1057,9 @@ netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len)) ...@@ -875,9 +1057,9 @@ netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len))
return sk; return sk;
} }
void netlink_set_nonroot(int protocol, unsigned flags) void netlink_set_nonroot(int protocol, unsigned int flags)
{ {
if ((unsigned)protocol < MAX_LINKS) if ((unsigned int)protocol < MAX_LINKS)
nl_nonroot[protocol] = flags; nl_nonroot[protocol] = flags;
} }
...@@ -1070,22 +1252,33 @@ int netlink_post(int unit, struct sk_buff *skb) ...@@ -1070,22 +1252,33 @@ int netlink_post(int unit, struct sk_buff *skb)
#endif #endif
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
struct nl_seq_iter {
int link;
int hash_idx;
};
static struct sock *netlink_seq_socket_idx(struct seq_file *seq, loff_t pos) static struct sock *netlink_seq_socket_idx(struct seq_file *seq, loff_t pos)
{ {
long i; struct nl_seq_iter *iter = seq->private;
int i, j;
struct sock *s; struct sock *s;
struct hlist_node *node; struct hlist_node *node;
loff_t off = 0; loff_t off = 0;
for (i=0; i<MAX_LINKS; i++) { for (i=0; i<MAX_LINKS; i++) {
sk_for_each(s, node, &nl_table[i]) { struct nl_pid_hash *hash = &nl_table[i].hash;
for (j = 0; j <= hash->mask; j++) {
sk_for_each(s, node, &hash->table[j]) {
if (off == pos) { if (off == pos) {
seq->private = (void *) i; iter->link = i;
iter->hash_idx = j;
return s; return s;
} }
++off; ++off;
} }
} }
}
return NULL; return NULL;
} }
...@@ -1098,6 +1291,8 @@ static void *netlink_seq_start(struct seq_file *seq, loff_t *pos) ...@@ -1098,6 +1291,8 @@ static void *netlink_seq_start(struct seq_file *seq, loff_t *pos)
static void *netlink_seq_next(struct seq_file *seq, void *v, loff_t *pos) static void *netlink_seq_next(struct seq_file *seq, void *v, loff_t *pos)
{ {
struct sock *s; struct sock *s;
struct nl_seq_iter *iter;
int i, j;
++*pos; ++*pos;
...@@ -1105,18 +1300,29 @@ static void *netlink_seq_next(struct seq_file *seq, void *v, loff_t *pos) ...@@ -1105,18 +1300,29 @@ static void *netlink_seq_next(struct seq_file *seq, void *v, loff_t *pos)
return netlink_seq_socket_idx(seq, 0); return netlink_seq_socket_idx(seq, 0);
s = sk_next(v); s = sk_next(v);
if (!s) { if (s)
long i = (long)seq->private; return s;
iter = seq->private;
i = iter->link;
j = iter->hash_idx + 1;
while (++i < MAX_LINKS) { do {
s = sk_head(&nl_table[i]); struct nl_pid_hash *hash = &nl_table[i].hash;
for (; j <= hash->mask; j++) {
s = sk_head(&hash->table[j]);
if (s) { if (s) {
seq->private = (void *) i; iter->link = i;
break; iter->hash_idx = j;
} return s;
} }
} }
return s;
j = 0;
} while (++i < MAX_LINKS);
return NULL;
} }
static void netlink_seq_stop(struct seq_file *seq, void *v) static void netlink_seq_stop(struct seq_file *seq, void *v)
...@@ -1160,7 +1366,24 @@ static struct seq_operations netlink_seq_ops = { ...@@ -1160,7 +1366,24 @@ static struct seq_operations netlink_seq_ops = {
static int netlink_seq_open(struct inode *inode, struct file *file) static int netlink_seq_open(struct inode *inode, struct file *file)
{ {
return seq_open(file, &netlink_seq_ops); struct seq_file *seq;
struct nl_seq_iter *iter;
int err;
iter = kmalloc(sizeof(*iter), GFP_KERNEL);
if (!iter)
return -ENOMEM;
err = seq_open(file, &netlink_seq_ops);
if (err) {
kfree(iter);
return err;
}
memset(iter, 0, sizeof(*iter));
seq = file->private_data;
seq->private = iter;
return 0;
} }
static struct file_operations netlink_seq_fops = { static struct file_operations netlink_seq_fops = {
...@@ -1168,7 +1391,7 @@ static struct file_operations netlink_seq_fops = { ...@@ -1168,7 +1391,7 @@ static struct file_operations netlink_seq_fops = {
.open = netlink_seq_open, .open = netlink_seq_open,
.read = seq_read, .read = seq_read,
.llseek = seq_lseek, .llseek = seq_lseek,
.release = seq_release, .release = seq_release_private,
}; };
#endif #endif
...@@ -1210,14 +1433,54 @@ static struct net_proto_family netlink_family_ops = { ...@@ -1210,14 +1433,54 @@ static struct net_proto_family netlink_family_ops = {
.owner = THIS_MODULE, /* for consistency 8) */ .owner = THIS_MODULE, /* for consistency 8) */
}; };
extern void netlink_skb_parms_too_large(void);
static int __init netlink_proto_init(void) static int __init netlink_proto_init(void)
{ {
struct sk_buff *dummy_skb; struct sk_buff *dummy_skb;
int i;
unsigned long max;
unsigned int order;
if (sizeof(struct netlink_skb_parms) > sizeof(dummy_skb->cb)) { if (sizeof(struct netlink_skb_parms) > sizeof(dummy_skb->cb))
printk(KERN_CRIT "netlink_init: panic\n"); netlink_skb_parms_too_large();
return -1;
nl_table = kmalloc(sizeof(*nl_table) * MAX_LINKS, GFP_KERNEL);
if (!nl_table) {
enomem:
printk(KERN_CRIT "netlink_init: Cannot allocate nl_table\n");
return -ENOMEM;
}
memset(nl_table, 0, sizeof(*nl_table) * MAX_LINKS);
if (num_physpages >= (128 * 1024))
max = num_physpages >> (21 - PAGE_SHIFT);
else
max = num_physpages >> (23 - PAGE_SHIFT);
order = get_bitmask_order(max) - 1 + PAGE_SHIFT;
max = (1UL << order) / sizeof(struct hlist_head);
order = get_bitmask_order(max > UINT_MAX ? UINT_MAX : max) - 1;
for (i = 0; i < MAX_LINKS; i++) {
struct nl_pid_hash *hash = &nl_table[i].hash;
hash->table = nl_pid_hash_alloc(1 * sizeof(*hash->table));
if (!hash->table) {
while (i-- > 0)
nl_pid_hash_free(nl_table[i].hash.table,
1 * sizeof(*hash->table));
kfree(nl_table);
goto enomem;
} }
memset(hash->table, 0, 1 * sizeof(*hash->table));
hash->max_shift = order;
hash->shift = 0;
hash->mask = 0;
hash->rehash_time = jiffies;
}
sock_register(&netlink_family_ops); sock_register(&netlink_family_ops);
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
proc_net_fops_create("netlink", 0, &netlink_seq_fops); proc_net_fops_create("netlink", 0, &netlink_seq_fops);
...@@ -1231,6 +1494,8 @@ static void __exit netlink_proto_exit(void) ...@@ -1231,6 +1494,8 @@ static void __exit netlink_proto_exit(void)
{ {
sock_unregister(PF_NETLINK); sock_unregister(PF_NETLINK);
proc_net_remove("netlink"); proc_net_remove("netlink");
kfree(nl_table);
nl_table = NULL;
} }
core_initcall(netlink_proto_init); core_initcall(netlink_proto_init);
......
...@@ -416,14 +416,37 @@ int tcf_action_init(struct rtattr *rta, struct rtattr *est, struct tc_action *a, ...@@ -416,14 +416,37 @@ int tcf_action_init(struct rtattr *rta, struct rtattr *est, struct tc_action *a,
int tcf_action_copy_stats (struct sk_buff *skb,struct tc_action *a) int tcf_action_copy_stats (struct sk_buff *skb,struct tc_action *a)
{ {
struct gnet_dump d;
struct tcf_act_hdr *h = a->priv;
#ifdef CONFIG_KMOD #ifdef CONFIG_KMOD
/* place holder */ /* place holder */
#endif #endif
if (NULL == a->ops || NULL == a->ops->get_stats) if (NULL == h)
return 1; goto errout;
if (gnet_stats_start_copy(skb, TCA_ACT_STATS, h->stats_lock, &d) < 0)
goto errout;
if (NULL != a->ops && NULL != a->ops->get_stats)
if (a->ops->get_stats(skb, a) < 0)
goto errout;
if (gnet_stats_copy_basic(&d, &h->bstats) < 0 ||
#ifdef CONFIG_NET_ESTIMATOR
gnet_stats_copy_rate_est(&d, &h->rate_est) < 0 ||
#endif
gnet_stats_copy_queue(&d, &h->qstats) < 0)
goto errout;
return a->ops->get_stats(skb,a); if (gnet_stats_finish_copy(&d) < 0)
goto errout;
return 0;
errout:
return -1;
} }
......
...@@ -395,11 +395,9 @@ static int fw_dump(struct tcf_proto *tp, unsigned long fh, ...@@ -395,11 +395,9 @@ static int fw_dump(struct tcf_proto *tp, unsigned long fh,
} }
#else /* CONFIG_NET_CLS_ACT */ #else /* CONFIG_NET_CLS_ACT */
#ifdef CONFIG_NET_CLS_POLICE #ifdef CONFIG_NET_CLS_POLICE
if (f->police) { if (f->police)
if (qdisc_copy_stats(skb, &f->police->stats, if (tcf_police_dump_stats(skb, f->police) < 0)
f->police->stats_lock))
goto rtattr_failure; goto rtattr_failure;
}
#endif /* CONFIG_NET_CLS_POLICE */ #endif /* CONFIG_NET_CLS_POLICE */
#endif /* CONFIG_NET_CLS_ACT */ #endif /* CONFIG_NET_CLS_ACT */
return skb->len; return skb->len;
......
...@@ -566,11 +566,9 @@ static int route4_dump(struct tcf_proto *tp, unsigned long fh, ...@@ -566,11 +566,9 @@ static int route4_dump(struct tcf_proto *tp, unsigned long fh,
rta->rta_len = skb->tail - b; rta->rta_len = skb->tail - b;
#ifdef CONFIG_NET_CLS_POLICE #ifdef CONFIG_NET_CLS_POLICE
if (f->police) { if (f->police)
if (qdisc_copy_stats(skb, &f->police->stats, if (tcf_police_dump_stats(skb, f->police) < 0)
f->police->stats_lock))
goto rtattr_failure; goto rtattr_failure;
}
#endif #endif
return skb->len; return skb->len;
......
...@@ -631,11 +631,9 @@ static int rsvp_dump(struct tcf_proto *tp, unsigned long fh, ...@@ -631,11 +631,9 @@ static int rsvp_dump(struct tcf_proto *tp, unsigned long fh,
rta->rta_len = skb->tail - b; rta->rta_len = skb->tail - b;
#ifdef CONFIG_NET_CLS_POLICE #ifdef CONFIG_NET_CLS_POLICE
if (f->police) { if (f->police)
if (qdisc_copy_stats(skb, &f->police->stats, if (tcf_police_dump_stats(skb, f->police) < 0)
f->police->stats_lock))
goto rtattr_failure; goto rtattr_failure;
}
#endif #endif
return skb->len; return skb->len;
......
...@@ -775,11 +775,9 @@ static int u32_dump(struct tcf_proto *tp, unsigned long fh, ...@@ -775,11 +775,9 @@ static int u32_dump(struct tcf_proto *tp, unsigned long fh,
} }
#else #else
#ifdef CONFIG_NET_CLS_POLICE #ifdef CONFIG_NET_CLS_POLICE
if (TC_U32_KEY(n->handle) && n->police) { if (TC_U32_KEY(n->handle) && n->police)
if (qdisc_copy_stats(skb, &n->police->stats, if (tcf_police_dump_stats(skb, n->police) < 0)
n->police->stats_lock))
goto rtattr_failure; goto rtattr_failure;
}
#endif #endif
#endif #endif
return skb->len; return skb->len;
......
...@@ -62,7 +62,7 @@ gact_net_rand(struct tcf_gact *p) { ...@@ -62,7 +62,7 @@ gact_net_rand(struct tcf_gact *p) {
int int
gact_determ(struct tcf_gact *p) { gact_determ(struct tcf_gact *p) {
if (p->stats.packets%p->pval) if (p->bstats.packets%p->pval)
return p->action; return p->action;
return p->paction; return p->paction;
} }
...@@ -163,10 +163,10 @@ tcf_gact(struct sk_buff **pskb, struct tc_action *a) ...@@ -163,10 +163,10 @@ tcf_gact(struct sk_buff **pskb, struct tc_action *a)
#else #else
action = p->action; action = p->action;
#endif #endif
p->stats.bytes += skb->len; p->bstats.bytes += skb->len;
p->stats.packets++; p->bstats.packets++;
if (TC_ACT_SHOT == action) if (TC_ACT_SHOT == action)
p->stats.drops++; p->qstats.drops++;
p->tm.lastuse = jiffies; p->tm.lastuse = jiffies;
spin_unlock(&p->lock); spin_unlock(&p->lock);
...@@ -214,17 +214,6 @@ tcf_gact_dump(struct sk_buff *skb, struct tc_action *a, int bind, int ref) ...@@ -214,17 +214,6 @@ tcf_gact_dump(struct sk_buff *skb, struct tc_action *a, int bind, int ref)
return -1; return -1;
} }
int
tcf_gact_stats(struct sk_buff *skb, struct tc_action *a)
{
struct tcf_gact *p;
p = PRIV(a,gact);
if (NULL != p)
return qdisc_copy_stats(skb, &p->stats,p->stats_lock);
return 1;
}
struct tc_action_ops act_gact_ops = { struct tc_action_ops act_gact_ops = {
.next = NULL, .next = NULL,
.kind = "gact", .kind = "gact",
...@@ -232,7 +221,6 @@ struct tc_action_ops act_gact_ops = { ...@@ -232,7 +221,6 @@ struct tc_action_ops act_gact_ops = {
.capab = TCA_CAP_NONE, .capab = TCA_CAP_NONE,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.act = tcf_gact, .act = tcf_gact,
.get_stats = tcf_gact_stats,
.dump = tcf_gact_dump, .dump = tcf_gact_dump,
.cleanup = tcf_gact_cleanup, .cleanup = tcf_gact_cleanup,
.lookup = tcf_hash_search, .lookup = tcf_hash_search,
......
...@@ -218,9 +218,8 @@ tcf_ipt_init(struct rtattr *rta, struct rtattr *est, struct tc_action *a, int ov ...@@ -218,9 +218,8 @@ tcf_ipt_init(struct rtattr *rta, struct rtattr *est, struct tc_action *a, int ov
*/ */
p->tm.install = jiffies; p->tm.install = jiffies;
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
if (est) { if (est)
qdisc_new_estimator(&p->stats, p->stats_lock, est); gen_new_estimator(&p->bstats, &p->rate_est, p->stats_lock, est);
}
#endif #endif
h = tcf_hash(p->index); h = tcf_hash(p->index);
write_lock_bh(&ipt_lock); write_lock_bh(&ipt_lock);
...@@ -258,8 +257,8 @@ tcf_ipt(struct sk_buff **pskb, struct tc_action *a) ...@@ -258,8 +257,8 @@ tcf_ipt(struct sk_buff **pskb, struct tc_action *a)
spin_lock(&p->lock); spin_lock(&p->lock);
p->tm.lastuse = jiffies; p->tm.lastuse = jiffies;
p->stats.bytes += skb->len; p->bstats.bytes += skb->len;
p->stats.packets++; p->bstats.packets++;
if (skb_cloned(skb) ) { if (skb_cloned(skb) ) {
if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) { if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) {
...@@ -278,7 +277,7 @@ tcf_ipt(struct sk_buff **pskb, struct tc_action *a) ...@@ -278,7 +277,7 @@ tcf_ipt(struct sk_buff **pskb, struct tc_action *a)
break; break;
case NF_DROP: case NF_DROP:
result = TC_ACT_SHOT; result = TC_ACT_SHOT;
p->stats.drops++; p->qstats.drops++;
break; break;
case IPT_CONTINUE: case IPT_CONTINUE:
result = TC_ACT_PIPE; result = TC_ACT_PIPE;
...@@ -346,17 +345,6 @@ tcf_ipt_dump(struct sk_buff *skb, struct tc_action *a, int bind, int ref) ...@@ -346,17 +345,6 @@ tcf_ipt_dump(struct sk_buff *skb, struct tc_action *a, int bind, int ref)
return -1; return -1;
} }
int
tcf_ipt_stats(struct sk_buff *skb, struct tc_action *a)
{
struct tcf_ipt *p;
p = PRIV(a,ipt);
if (NULL != p)
return qdisc_copy_stats(skb, &p->stats, p->stats_lock);
return 1;
}
struct tc_action_ops act_ipt_ops = { struct tc_action_ops act_ipt_ops = {
.next = NULL, .next = NULL,
.kind = "ipt", .kind = "ipt",
...@@ -364,7 +352,6 @@ struct tc_action_ops act_ipt_ops = { ...@@ -364,7 +352,6 @@ struct tc_action_ops act_ipt_ops = {
.capab = TCA_CAP_NONE, .capab = TCA_CAP_NONE,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.act = tcf_ipt, .act = tcf_ipt,
.get_stats = tcf_ipt_stats,
.dump = tcf_ipt_dump, .dump = tcf_ipt_dump,
.cleanup = tcf_ipt_cleanup, .cleanup = tcf_ipt_cleanup,
.lookup = tcf_hash_search, .lookup = tcf_hash_search,
......
...@@ -195,9 +195,9 @@ tcf_mirred(struct sk_buff **pskb, struct tc_action *a) ...@@ -195,9 +195,9 @@ tcf_mirred(struct sk_buff **pskb, struct tc_action *a)
bad_mirred: bad_mirred:
if (NULL != skb2) if (NULL != skb2)
kfree_skb(skb2); kfree_skb(skb2);
p->stats.overlimits++; p->qstats.overlimits++;
p->stats.bytes += skb->len; p->bstats.bytes += skb->len;
p->stats.packets++; p->bstats.packets++;
spin_unlock(&p->lock); spin_unlock(&p->lock);
/* should we be asking for packet to be dropped? /* should we be asking for packet to be dropped?
* may make sense for redirect case only * may make sense for redirect case only
...@@ -216,8 +216,8 @@ tcf_mirred(struct sk_buff **pskb, struct tc_action *a) ...@@ -216,8 +216,8 @@ tcf_mirred(struct sk_buff **pskb, struct tc_action *a)
goto bad_mirred; goto bad_mirred;
} }
p->stats.bytes += skb2->len; p->bstats.bytes += skb2->len;
p->stats.packets++; p->bstats.packets++;
if ( !(at & AT_EGRESS)) { if ( !(at & AT_EGRESS)) {
if (p->ok_push) { if (p->ok_push) {
skb_push(skb2, skb2->dev->hard_header_len); skb_push(skb2, skb2->dev->hard_header_len);
...@@ -268,18 +268,6 @@ tcf_mirred_dump(struct sk_buff *skb, struct tc_action *a,int bind, int ref) ...@@ -268,18 +268,6 @@ tcf_mirred_dump(struct sk_buff *skb, struct tc_action *a,int bind, int ref)
return -1; return -1;
} }
int
tcf_mirred_stats(struct sk_buff *skb, struct tc_action *a)
{
struct tcf_mirred *p;
p = PRIV(a,mirred);
if (NULL != p)
return qdisc_copy_stats(skb, &p->stats, p->stats_lock);
return 1;
}
static struct tc_action_ops act_mirred_ops = { static struct tc_action_ops act_mirred_ops = {
.next = NULL, .next = NULL,
.kind = "mirred", .kind = "mirred",
...@@ -287,7 +275,6 @@ static struct tc_action_ops act_mirred_ops = { ...@@ -287,7 +275,6 @@ static struct tc_action_ops act_mirred_ops = {
.capab = TCA_CAP_NONE, .capab = TCA_CAP_NONE,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.act = tcf_mirred, .act = tcf_mirred,
.get_stats = tcf_mirred_stats,
.dump = tcf_mirred_dump, .dump = tcf_mirred_dump,
.cleanup = tcf_mirred_cleanup, .cleanup = tcf_mirred_cleanup,
.lookup = tcf_hash_search, .lookup = tcf_hash_search,
......
...@@ -183,10 +183,10 @@ tcf_pedit(struct sk_buff **pskb, struct tc_action *a) ...@@ -183,10 +183,10 @@ tcf_pedit(struct sk_buff **pskb, struct tc_action *a)
} }
bad: bad:
p->stats.overlimits++; p->qstats.overlimits++;
done: done:
p->stats.bytes += skb->len; p->bstats.bytes += skb->len;
p->stats.packets++; p->bstats.packets++;
spin_unlock(&p->lock); spin_unlock(&p->lock);
return p->action; return p->action;
} }
...@@ -255,17 +255,6 @@ tcf_pedit_dump(struct sk_buff *skb, struct tc_action *a,int bind, int ref) ...@@ -255,17 +255,6 @@ tcf_pedit_dump(struct sk_buff *skb, struct tc_action *a,int bind, int ref)
return -1; return -1;
} }
int
tcf_pedit_stats(struct sk_buff *skb, struct tc_action *a)
{
struct tcf_pedit *p;
p = PRIV(a,pedit);
if (NULL != p)
return qdisc_copy_stats(skb, &p->stats, p->stats_lock);
return 1;
}
static static
struct tc_action_ops act_pedit_ops = { struct tc_action_ops act_pedit_ops = {
.kind = "pedit", .kind = "pedit",
...@@ -273,7 +262,6 @@ struct tc_action_ops act_pedit_ops = { ...@@ -273,7 +262,6 @@ struct tc_action_ops act_pedit_ops = {
.capab = TCA_CAP_NONE, .capab = TCA_CAP_NONE,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.act = tcf_pedit, .act = tcf_pedit,
.get_stats = tcf_pedit_stats,
.dump = tcf_pedit_dump, .dump = tcf_pedit_dump,
.cleanup = tcf_pedit_cleanup, .cleanup = tcf_pedit_cleanup,
.lookup = tcf_hash_search, .lookup = tcf_hash_search,
......
...@@ -149,7 +149,7 @@ void tcf_police_destroy(struct tcf_police *p) ...@@ -149,7 +149,7 @@ void tcf_police_destroy(struct tcf_police *p)
*p1p = p->next; *p1p = p->next;
write_unlock_bh(&police_lock); write_unlock_bh(&police_lock);
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
qdisc_kill_estimator(&p->stats); gen_kill_estimator(&p->bstats, &p->rate_est);
#endif #endif
if (p->R_tab) if (p->R_tab)
qdisc_put_rtab(p->R_tab); qdisc_put_rtab(p->R_tab);
...@@ -245,7 +245,7 @@ int tcf_act_police_locate(struct rtattr *rta, struct rtattr *est,struct tc_actio ...@@ -245,7 +245,7 @@ int tcf_act_police_locate(struct rtattr *rta, struct rtattr *est,struct tc_actio
p->index = parm->index ? : tcf_police_new_index(); p->index = parm->index ? : tcf_police_new_index();
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
if (est) if (est)
qdisc_new_estimator(&p->stats, p->stats_lock, est); gen_new_estimator(&p->bstats, &p->rate_est, p->stats_lock, est);
#endif #endif
h = tcf_police_hash(p->index); h = tcf_police_hash(p->index);
write_lock_bh(&police_lock); write_lock_bh(&police_lock);
...@@ -275,16 +275,6 @@ int tcf_act_police_cleanup(struct tc_action *a, int bind) ...@@ -275,16 +275,6 @@ int tcf_act_police_cleanup(struct tc_action *a, int bind)
return 0; return 0;
} }
int tcf_act_police_stats(struct sk_buff *skb, struct tc_action *a)
{
struct tcf_police *p;
p = PRIV(a);
if (NULL != p)
return qdisc_copy_stats(skb, &p->stats, p->stats_lock);
return 1;
}
int tcf_act_police(struct sk_buff **pskb, struct tc_action *a) int tcf_act_police(struct sk_buff **pskb, struct tc_action *a)
{ {
psched_time_t now; psched_time_t now;
...@@ -302,12 +292,12 @@ int tcf_act_police(struct sk_buff **pskb, struct tc_action *a) ...@@ -302,12 +292,12 @@ int tcf_act_police(struct sk_buff **pskb, struct tc_action *a)
spin_lock(&p->lock); spin_lock(&p->lock);
p->stats.bytes += skb->len; p->bstats.bytes += skb->len;
p->stats.packets++; p->bstats.packets++;
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
if (p->ewma_rate && p->stats.bps >= p->ewma_rate) { if (p->ewma_rate && p->rate_est.bps >= p->ewma_rate) {
p->stats.overlimits++; p->qstats.overlimits++;
spin_unlock(&p->lock); spin_unlock(&p->lock);
return p->action; return p->action;
} }
...@@ -343,7 +333,7 @@ int tcf_act_police(struct sk_buff **pskb, struct tc_action *a) ...@@ -343,7 +333,7 @@ int tcf_act_police(struct sk_buff **pskb, struct tc_action *a)
} }
} }
p->stats.overlimits++; p->qstats.overlimits++;
spin_unlock(&p->lock); spin_unlock(&p->lock);
return p->action; return p->action;
} }
...@@ -400,7 +390,6 @@ static struct tc_action_ops act_police_ops = { ...@@ -400,7 +390,6 @@ static struct tc_action_ops act_police_ops = {
.capab = TCA_CAP_NONE, .capab = TCA_CAP_NONE,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.act = tcf_act_police, .act = tcf_act_police,
.get_stats = tcf_act_police_stats,
.dump = tcf_act_police_dump, .dump = tcf_act_police_dump,
.cleanup = tcf_act_police_cleanup, .cleanup = tcf_act_police_cleanup,
.lookup = tcf_hash_search, .lookup = tcf_hash_search,
...@@ -480,7 +469,7 @@ struct tcf_police * tcf_police_locate(struct rtattr *rta, struct rtattr *est) ...@@ -480,7 +469,7 @@ struct tcf_police * tcf_police_locate(struct rtattr *rta, struct rtattr *est)
p->action = parm->action; p->action = parm->action;
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
if (est) if (est)
qdisc_new_estimator(&p->stats, p->stats_lock, est); gen_new_estimator(&p->bstats, &p->rate_est, p->stats_lock, est);
#endif #endif
h = tcf_police_hash(p->index); h = tcf_police_hash(p->index);
write_lock_bh(&police_lock); write_lock_bh(&police_lock);
...@@ -504,12 +493,12 @@ int tcf_police(struct sk_buff *skb, struct tcf_police *p) ...@@ -504,12 +493,12 @@ int tcf_police(struct sk_buff *skb, struct tcf_police *p)
spin_lock(&p->lock); spin_lock(&p->lock);
p->stats.bytes += skb->len; p->bstats.bytes += skb->len;
p->stats.packets++; p->bstats.packets++;
#ifdef CONFIG_NET_ESTIMATOR #ifdef CONFIG_NET_ESTIMATOR
if (p->ewma_rate && p->stats.bps >= p->ewma_rate) { if (p->ewma_rate && p->rate_est.bps >= p->ewma_rate) {
p->stats.overlimits++; p->qstats.overlimits++;
spin_unlock(&p->lock); spin_unlock(&p->lock);
return p->action; return p->action;
} }
...@@ -545,7 +534,7 @@ int tcf_police(struct sk_buff *skb, struct tcf_police *p) ...@@ -545,7 +534,7 @@ int tcf_police(struct sk_buff *skb, struct tcf_police *p)
} }
} }
p->stats.overlimits++; p->qstats.overlimits++;
spin_unlock(&p->lock); spin_unlock(&p->lock);
return p->action; return p->action;
} }
...@@ -581,9 +570,34 @@ int tcf_police_dump(struct sk_buff *skb, struct tcf_police *p) ...@@ -581,9 +570,34 @@ int tcf_police_dump(struct sk_buff *skb, struct tcf_police *p)
return -1; return -1;
} }
int tcf_police_dump_stats(struct sk_buff *skb, struct tcf_police *p)
{
struct gnet_dump d;
if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS,
TCA_XSTATS, p->stats_lock, &d) < 0)
if (gnet_stats_copy_basic(&d, &p->bstats) < 0 ||
#ifdef CONFIG_NET_ESTIMATOR
gnet_stats_copy_rate_est(&d, &p->rate_est) < 0 ||
#endif
gnet_stats_copy_queue(&d, &p->qstats) < 0)
goto errout;
if (gnet_stats_finish_copy(&d) < 0)
goto errout;
return 0;
errout:
return -1;
}
EXPORT_SYMBOL(tcf_police); EXPORT_SYMBOL(tcf_police);
EXPORT_SYMBOL(tcf_police_destroy); EXPORT_SYMBOL(tcf_police_destroy);
EXPORT_SYMBOL(tcf_police_dump); EXPORT_SYMBOL(tcf_police_dump);
EXPORT_SYMBOL(tcf_police_dump_stats);
EXPORT_SYMBOL(tcf_police_hash); EXPORT_SYMBOL(tcf_police_hash);
EXPORT_SYMBOL(tcf_police_ht); EXPORT_SYMBOL(tcf_police_ht);
EXPORT_SYMBOL(tcf_police_locate); EXPORT_SYMBOL(tcf_police_locate);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment