···131131be lost due to memory pressure or process' receiving queue overflowed,132132so caller is warned must be prepared. That is why struct cn_msg [main133133connector's message header] contains u32 seq and u32 ack fields.134134+135135+/*****************************************/136136+Userspace usage.137137+/*****************************************/138138+2.6.14 has a new netlink socket implementation, which by default does not139139+allow to send data to netlink groups other than 1.140140+So, if to use netlink socket (for example using connector) 141141+with different group number userspace application must subscribe to 142142+that group. It can be achieved by following pseudocode:143143+144144+s = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR);145145+146146+l_local.nl_family = AF_NETLINK;147147+l_local.nl_groups = 12345;148148+l_local.nl_pid = 0;149149+150150+if (bind(s, (struct sockaddr *)&l_local, sizeof(struct sockaddr_nl)) == -1) {151151+ perror("bind");152152+ close(s);153153+ return -1;154154+}155155+156156+{157157+ int on = l_local.nl_groups;158158+ setsockopt(s, 270, 1, &on, sizeof(on));159159+}160160+161161+Where 270 above is SOL_NETLINK, and 1 is a NETLINK_ADD_MEMBERSHIP socket162162+option. To drop multicast subscription one should call above socket option163163+with NETLINK_DROP_MEMBERSHIP parameter which is defined as 0.164164+165165+2.6.14 netlink code only allows to select a group which is less or equal to166166+the maximum group number, which is used at netlink_kernel_create() time.167167+In case of connector it is CN_NETLINK_USERS + 0xf, so if you want to use168168+group number 12345, you must increment CN_NETLINK_USERS to that number.169169+Additional 0xf numbers are allocated to be used by non-in-kernel users.170170+171171+Due to this limitation, group 0xffffffff does not work now, so one can172172+not use add/remove connector's group notifications, but as far as I know, 173173+only cn_test.c test module used it.174174+175175+Some work in netlink area is still being done, so things can be changed in176176+2.6.15 timeframe, if it will happen, documentation will be updated for that177177+kernel.
+28-10
Documentation/dell_rbu.txt
···3535/sys/class/firmware/dell_rbu/data3636/sys/devices/platform/dell_rbu/image_type3737/sys/devices/platform/dell_rbu/data3838+/sys/devices/platform/dell_rbu/packet_size38393940The driver supports two types of update mechanism; monolithic and packetized.4041These update mechanism depends upon the BIOS currently running on the system.···4847changed to packets during the driver load time by specifying the load4948parameter image_type=packet. This can also be changed later as below5049echo packet > /sys/devices/platform/dell_rbu/image_type5151-Also echoing either mono ,packet or init in to image_type will free up the5252-memory allocated by the driver.5050+5151+In packet update mode the packet size has to be given before any packets can5252+be downloaded. It is done as below5353+echo XXXX > /sys/devices/platform/dell_rbu/packet_size5454+In the packet update mechanism, the user neesd to create a new file having5555+packets of data arranged back to back. It can be done as follows5656+The user creates packets header, gets the chunk of the BIOS image and5757+placs it next to the packetheader; now, the packetheader + BIOS image chunk5858+added to geather should match the specified packet_size. This makes one5959+packet, the user needs to create more such packets out of the entire BIOS6060+image file and then arrange all these packets back to back in to one single6161+file.6262+This file is then copied to /sys/class/firmware/dell_rbu/data.6363+Once this file gets to the driver, the driver extracts packet_size data from6464+the file and spreads it accross the physical memory in contiguous packet_sized6565+space.6666+This method makes sure that all the packets get to the driver in a single operation.6767+6868+In monolithic update the user simply get the BIOS image (.hdr file) and copies6969+to the data file as is without any change to the BIOS image itself.53705471Do the steps below to download the BIOS image.55721) echo 1 > /sys/class/firmware/dell_rbu/loading···7758The /sys/class/firmware/dell_rbu/ entries will remain till the following is7859done.7960echo -1 > /sys/class/firmware/dell_rbu/loading.8080-Until this step is completed the drivr cannot be unloaded.6161+Until this step is completed the driver cannot be unloaded.6262+Also echoing either mono ,packet or init in to image_type will free up the6363+memory allocated by the driver.6464+8165If an user by accident executes steps 1 and 3 above without executing step 2;8266it will make the /sys/class/firmware/dell_rbu/ entries to disappear.8367The entries can be recreated by doing the following···8866NOTE: echoing init in image_type does not change it original value.89679068Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to9191-read back the image downloaded. This is useful in case of packet update9292-mechanism where the above steps 1,2,3 will repeated for every packet.9393-By reading the /sys/devices/platform/dell_rbu/data file all packet data9494-downloaded can be verified in a single file.9595-The packets are arranged in this file one after the other in a FIFO order.6969+read back the image downloaded.96709771NOTE:9898-This driver requires a patch for firmware_class.c which has the addition9999-of request_firmware_nowait_nohotplug function to wortk7272+This driver requires a patch for firmware_class.c which has the modified7373+request_firmware_nowait function.10074Also after updating the BIOS image an user mdoe application neeeds to execute10175code which message the BIOS update request to the BIOS. So on the next reboot10276the BIOS knows about the new image downloaded and it updates it self.
+161
Documentation/keys-request-key.txt
···11+ ===================22+ KEY REQUEST SERVICE33+ ===================44+55+The key request service is part of the key retention service (refer to66+Documentation/keys.txt). This document explains more fully how that the77+requesting algorithm works.88+99+The process starts by either the kernel requesting a service by calling1010+request_key():1111+1212+ struct key *request_key(const struct key_type *type,1313+ const char *description,1414+ const char *callout_string);1515+1616+Or by userspace invoking the request_key system call:1717+1818+ key_serial_t request_key(const char *type,1919+ const char *description,2020+ const char *callout_info,2121+ key_serial_t dest_keyring);2222+2323+The main difference between the two access points is that the in-kernel2424+interface does not need to link the key to a keyring to prevent it from being2525+immediately destroyed. The kernel interface returns a pointer directly to the2626+key, and it's up to the caller to destroy the key.2727+2828+The userspace interface links the key to a keyring associated with the process2929+to prevent the key from going away, and returns the serial number of the key to3030+the caller.3131+3232+3333+===========3434+THE PROCESS3535+===========3636+3737+A request proceeds in the following manner:3838+3939+ (1) Process A calls request_key() [the userspace syscall calls the kernel4040+ interface].4141+4242+ (2) request_key() searches the process's subscribed keyrings to see if there's4343+ a suitable key there. If there is, it returns the key. If there isn't, and4444+ callout_info is not set, an error is returned. Otherwise the process4545+ proceeds to the next step.4646+4747+ (3) request_key() sees that A doesn't have the desired key yet, so it creates4848+ two things:4949+5050+ (a) An uninstantiated key U of requested type and description.5151+5252+ (b) An authorisation key V that refers to key U and notes that process A5353+ is the context in which key U should be instantiated and secured, and5454+ from which associated key requests may be satisfied.5555+5656+ (4) request_key() then forks and executes /sbin/request-key with a new session5757+ keyring that contains a link to auth key V.5858+5959+ (5) /sbin/request-key execs an appropriate program to perform the actual6060+ instantiation.6161+6262+ (6) The program may want to access another key from A's context (say a6363+ Kerberos TGT key). It just requests the appropriate key, and the keyring6464+ search notes that the session keyring has auth key V in its bottom level.6565+6666+ This will permit it to then search the keyrings of process A with the6767+ UID, GID, groups and security info of process A as if it was process A,6868+ and come up with key W.6969+7070+ (7) The program then does what it must to get the data with which to7171+ instantiate key U, using key W as a reference (perhaps it contacts a7272+ Kerberos server using the TGT) and then instantiates key U.7373+7474+ (8) Upon instantiating key U, auth key V is automatically revoked so that it7575+ may not be used again.7676+7777+ (9) The program then exits 0 and request_key() deletes key V and returns key7878+ U to the caller.7979+8080+This also extends further. If key W (step 5 above) didn't exist, key W would be8181+created uninstantiated, another auth key (X) would be created [as per step 3]8282+and another copy of /sbin/request-key spawned [as per step 4]; but the context8383+specified by auth key X will still be process A, as it was in auth key V.8484+8585+This is because process A's keyrings can't simply be attached to8686+/sbin/request-key at the appropriate places because (a) execve will discard two8787+of them, and (b) it requires the same UID/GID/Groups all the way through.8888+8989+9090+======================9191+NEGATIVE INSTANTIATION9292+======================9393+9494+Rather than instantiating a key, it is possible for the possessor of an9595+authorisation key to negatively instantiate a key that's under construction.9696+This is a short duration placeholder that causes any attempt at re-requesting9797+the key whilst it exists to fail with error ENOKEY.9898+9999+This is provided to prevent excessive repeated spawning of /sbin/request-key100100+processes for a key that will never be obtainable.101101+102102+Should the /sbin/request-key process exit anything other than 0 or die on a103103+signal, the key under construction will be automatically negatively104104+instantiated for a short amount of time.105105+106106+107107+====================108108+THE SEARCH ALGORITHM109109+====================110110+111111+A search of any particular keyring proceeds in the following fashion:112112+113113+ (1) When the key management code searches for a key (keyring_search_aux) it114114+ firstly calls key_permission(SEARCH) on the keyring it's starting with,115115+ if this denies permission, it doesn't search further.116116+117117+ (2) It considers all the non-keyring keys within that keyring and, if any key118118+ matches the criteria specified, calls key_permission(SEARCH) on it to see119119+ if the key is allowed to be found. If it is, that key is returned; if120120+ not, the search continues, and the error code is retained if of higher121121+ priority than the one currently set.122122+123123+ (3) It then considers all the keyring-type keys in the keyring it's currently124124+ searching. It calls key_permission(SEARCH) on each keyring, and if this125125+ grants permission, it recurses, executing steps (2) and (3) on that126126+ keyring.127127+128128+The process stops immediately a valid key is found with permission granted to129129+use it. Any error from a previous match attempt is discarded and the key is130130+returned.131131+132132+When search_process_keyrings() is invoked, it performs the following searches133133+until one succeeds:134134+135135+ (1) If extant, the process's thread keyring is searched.136136+137137+ (2) If extant, the process's process keyring is searched.138138+139139+ (3) The process's session keyring is searched.140140+141141+ (4) If the process has a request_key() authorisation key in its session142142+ keyring then:143143+144144+ (a) If extant, the calling process's thread keyring is searched.145145+146146+ (b) If extant, the calling process's process keyring is searched.147147+148148+ (c) The calling process's session keyring is searched.149149+150150+The moment one succeeds, all pending errors are discarded and the found key is151151+returned.152152+153153+Only if all these fail does the whole thing fail with the highest priority154154+error. Note that several errors may have come from LSM.155155+156156+The error priority is:157157+158158+ EKEYREVOKED > EKEYEXPIRED > ENOKEY159159+160160+EACCES/EPERM are only returned on a direct search of a specific keyring where161161+the basal keyring does not grant Search permission.
+11-7
Documentation/keys.txt
···361361 /sbin/request-key will be invoked in an attempt to obtain a key. The362362 callout_info string will be passed as an argument to the program.363363364364+ See also Documentation/keys-request-key.txt.365365+364366365367The keyctl syscall functions are:366368···535533536534 (*) Read the payload data from a key:537535538538- key_serial_t keyctl(KEYCTL_READ, key_serial_t keyring, char *buffer,539539- size_t buflen);536536+ long keyctl(KEYCTL_READ, key_serial_t keyring, char *buffer,537537+ size_t buflen);540538541539 This function attempts to read the payload data from the specified key542540 into the buffer. The process must have read permission on the key to···557555558556 (*) Instantiate a partially constructed key.559557560560- key_serial_t keyctl(KEYCTL_INSTANTIATE, key_serial_t key,561561- const void *payload, size_t plen,562562- key_serial_t keyring);558558+ long keyctl(KEYCTL_INSTANTIATE, key_serial_t key,559559+ const void *payload, size_t plen,560560+ key_serial_t keyring);563561564562 If the kernel calls back to userspace to complete the instantiation of a565563 key, userspace should use this call to supply data for the key before the···578576579577 (*) Negatively instantiate a partially constructed key.580578581581- key_serial_t keyctl(KEYCTL_NEGATE, key_serial_t key,582582- unsigned timeout, key_serial_t keyring);579579+ long keyctl(KEYCTL_NEGATE, key_serial_t key,580580+ unsigned timeout, key_serial_t keyring);583581584582 If the kernel calls back to userspace to complete the instantiation of a585583 key, userspace should use this call mark the key as negative before the···689687690688 If successful, the key will have been attached to the default keyring for691689 implicitly obtained request-key keys, as set by KEYCTL_SET_REQKEY_KEYRING.690690+691691+ See also Documentation/keys-request-key.txt.692692693693694694(*) When it is no longer required, the key should be released using:
···11+#22+# Automatically generated make config: don't edit33+# Linux kernel version: 2.6.14-rc344+# Sun Oct 9 16:55:14 200555+#66+CONFIG_ARM=y77+CONFIG_MMU=y88+CONFIG_UID16=y99+CONFIG_RWSEM_GENERIC_SPINLOCK=y1010+CONFIG_GENERIC_CALIBRATE_DELAY=y1111+1212+#1313+# Code maturity level options1414+#1515+CONFIG_EXPERIMENTAL=y1616+# CONFIG_CLEAN_COMPILE is not set1717+CONFIG_BROKEN=y1818+CONFIG_BROKEN_ON_SMP=y1919+CONFIG_LOCK_KERNEL=y2020+CONFIG_INIT_ENV_ARG_LIMIT=322121+2222+#2323+# General setup2424+#2525+CONFIG_LOCALVERSION=""2626+CONFIG_LOCALVERSION_AUTO=y2727+CONFIG_SWAP=y2828+CONFIG_SYSVIPC=y2929+# CONFIG_POSIX_MQUEUE is not set3030+CONFIG_BSD_PROCESS_ACCT=y3131+# CONFIG_BSD_PROCESS_ACCT_V3 is not set3232+CONFIG_SYSCTL=y3333+# CONFIG_AUDIT is not set3434+CONFIG_HOTPLUG=y3535+CONFIG_KOBJECT_UEVENT=y3636+# CONFIG_IKCONFIG is not set3737+CONFIG_INITRAMFS_SOURCE=""3838+CONFIG_EMBEDDED=y3939+CONFIG_KALLSYMS=y4040+# CONFIG_KALLSYMS_ALL is not set4141+# CONFIG_KALLSYMS_EXTRA_PASS is not set4242+CONFIG_PRINTK=y4343+CONFIG_BUG=y4444+CONFIG_BASE_FULL=y4545+CONFIG_FUTEX=y4646+CONFIG_EPOLL=y4747+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set4848+CONFIG_SHMEM=y4949+CONFIG_CC_ALIGN_FUNCTIONS=05050+CONFIG_CC_ALIGN_LABELS=05151+CONFIG_CC_ALIGN_LOOPS=05252+CONFIG_CC_ALIGN_JUMPS=05353+# CONFIG_TINY_SHMEM is not set5454+CONFIG_BASE_SMALL=05555+5656+#5757+# Loadable module support5858+#5959+CONFIG_MODULES=y6060+CONFIG_MODULE_UNLOAD=y6161+CONFIG_MODULE_FORCE_UNLOAD=y6262+CONFIG_OBSOLETE_MODPARM=y6363+CONFIG_MODVERSIONS=y6464+# CONFIG_MODULE_SRCVERSION_ALL is not set6565+CONFIG_KMOD=y6666+6767+#6868+# System Type6969+#7070+# CONFIG_ARCH_CLPS7500 is not set7171+# CONFIG_ARCH_CLPS711X is not set7272+# CONFIG_ARCH_CO285 is not set7373+# CONFIG_ARCH_EBSA110 is not set7474+# CONFIG_ARCH_CAMELOT is not set7575+# CONFIG_ARCH_FOOTBRIDGE is not set7676+# CONFIG_ARCH_INTEGRATOR is not set7777+# CONFIG_ARCH_IOP3XX is not set7878+# CONFIG_ARCH_IXP4XX is not set7979+# CONFIG_ARCH_IXP2000 is not set8080+# CONFIG_ARCH_L7200 is not set8181+# CONFIG_ARCH_PXA is not set8282+# CONFIG_ARCH_RPC is not set8383+CONFIG_ARCH_SA1100=y8484+# CONFIG_ARCH_S3C2410 is not set8585+# CONFIG_ARCH_SHARK is not set8686+# CONFIG_ARCH_LH7A40X is not set8787+# CONFIG_ARCH_OMAP is not set8888+# CONFIG_ARCH_VERSATILE is not set8989+# CONFIG_ARCH_IMX is not set9090+# CONFIG_ARCH_H720X is not set9191+# CONFIG_ARCH_AAEC2000 is not set9292+9393+#9494+# SA11x0 Implementations9595+#9696+# CONFIG_SA1100_ASSABET is not set9797+# CONFIG_SA1100_CERF is not set9898+CONFIG_SA1100_COLLIE=y9999+# CONFIG_SA1100_H3100 is not set100100+# CONFIG_SA1100_H3600 is not set101101+# CONFIG_SA1100_H3800 is not set102102+# CONFIG_SA1100_BADGE4 is not set103103+# CONFIG_SA1100_JORNADA720 is not set104104+# CONFIG_SA1100_HACKKIT is not set105105+# CONFIG_SA1100_LART is not set106106+# CONFIG_SA1100_PLEB is not set107107+# CONFIG_SA1100_SHANNON is not set108108+# CONFIG_SA1100_SIMPAD is not set109109+# CONFIG_SA1100_SSP is not set110110+111111+#112112+# Processor Type113113+#114114+CONFIG_CPU_32=y115115+CONFIG_CPU_SA1100=y116116+CONFIG_CPU_32v4=y117117+CONFIG_CPU_ABRT_EV4=y118118+CONFIG_CPU_CACHE_V4WB=y119119+CONFIG_CPU_CACHE_VIVT=y120120+CONFIG_CPU_TLB_V4WB=y121121+122122+#123123+# Processor Features124124+#125125+CONFIG_SHARP_LOCOMO=y126126+CONFIG_SHARP_PARAM=y127127+CONFIG_SHARP_SCOOP=y128128+129129+#130130+# Bus support131131+#132132+CONFIG_ISA=y133133+CONFIG_ISA_DMA_API=y134134+135135+#136136+# PCCARD (PCMCIA/CardBus) support137137+#138138+# CONFIG_PCCARD is not set139139+140140+#141141+# Kernel Features142142+#143143+# CONFIG_SMP is not set144144+CONFIG_PREEMPT=y145145+# CONFIG_NO_IDLE_HZ is not set146146+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y147147+CONFIG_SELECT_MEMORY_MODEL=y148148+# CONFIG_FLATMEM_MANUAL is not set149149+CONFIG_DISCONTIGMEM_MANUAL=y150150+# CONFIG_SPARSEMEM_MANUAL is not set151151+CONFIG_DISCONTIGMEM=y152152+CONFIG_FLAT_NODE_MEM_MAP=y153153+CONFIG_NEED_MULTIPLE_NODES=y154154+# CONFIG_SPARSEMEM_STATIC is not set155155+# CONFIG_LEDS is not set156156+CONFIG_ALIGNMENT_TRAP=y157157+158158+#159159+# Boot options160160+#161161+CONFIG_ZBOOT_ROM_TEXT=0x0162162+CONFIG_ZBOOT_ROM_BSS=0x0163163+CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug"164164+# CONFIG_XIP_KERNEL is not set165165+166166+#167167+# CPU Frequency scaling168168+#169169+# CONFIG_CPU_FREQ is not set170170+171171+#172172+# Floating point emulation173173+#174174+175175+#176176+# At least one emulation must be selected177177+#178178+CONFIG_FPE_NWFPE=y179179+# CONFIG_FPE_NWFPE_XP is not set180180+# CONFIG_FPE_FASTFPE is not set181181+182182+#183183+# Userspace binary formats184184+#185185+CONFIG_BINFMT_ELF=y186186+CONFIG_BINFMT_AOUT=m187187+CONFIG_BINFMT_MISC=m188188+# CONFIG_ARTHUR is not set189189+190190+#191191+# Power management options192192+#193193+CONFIG_PM=y194194+CONFIG_APM=y195195+196196+#197197+# Networking198198+#199199+CONFIG_NET=y200200+201201+#202202+# Networking options203203+#204204+CONFIG_PACKET=y205205+CONFIG_PACKET_MMAP=y206206+CONFIG_UNIX=y207207+# CONFIG_NET_KEY is not set208208+CONFIG_INET=y209209+# CONFIG_IP_MULTICAST is not set210210+# CONFIG_IP_ADVANCED_ROUTER is not set211211+CONFIG_IP_FIB_HASH=y212212+# CONFIG_IP_PNP is not set213213+# CONFIG_NET_IPIP is not set214214+# CONFIG_NET_IPGRE is not set215215+# CONFIG_ARPD is not set216216+CONFIG_SYN_COOKIES=y217217+# CONFIG_INET_AH is not set218218+# CONFIG_INET_ESP is not set219219+# CONFIG_INET_IPCOMP is not set220220+# CONFIG_INET_TUNNEL is not set221221+CONFIG_INET_DIAG=y222222+CONFIG_INET_TCP_DIAG=y223223+# CONFIG_TCP_CONG_ADVANCED is not set224224+CONFIG_TCP_CONG_BIC=y225225+# CONFIG_IPV6 is not set226226+# CONFIG_NETFILTER is not set227227+228228+#229229+# DCCP Configuration (EXPERIMENTAL)230230+#231231+# CONFIG_IP_DCCP is not set232232+233233+#234234+# SCTP Configuration (EXPERIMENTAL)235235+#236236+# CONFIG_IP_SCTP is not set237237+# CONFIG_ATM is not set238238+# CONFIG_BRIDGE is not set239239+# CONFIG_VLAN_8021Q is not set240240+# CONFIG_DECNET is not set241241+# CONFIG_LLC2 is not set242242+# CONFIG_IPX is not set243243+# CONFIG_ATALK is not set244244+# CONFIG_X25 is not set245245+# CONFIG_LAPB is not set246246+# CONFIG_NET_DIVERT is not set247247+# CONFIG_ECONET is not set248248+# CONFIG_WAN_ROUTER is not set249249+# CONFIG_NET_SCHED is not set250250+# CONFIG_NET_CLS_ROUTE is not set251251+252252+#253253+# Network testing254254+#255255+# CONFIG_NET_PKTGEN is not set256256+# CONFIG_HAMRADIO is not set257257+# CONFIG_IRDA is not set258258+# CONFIG_BT is not set259259+# CONFIG_IEEE80211 is not set260260+261261+#262262+# Device Drivers263263+#264264+265265+#266266+# Generic Driver Options267267+#268268+CONFIG_STANDALONE=y269269+CONFIG_PREVENT_FIRMWARE_BUILD=y270270+CONFIG_FW_LOADER=m271271+# CONFIG_DEBUG_DRIVER is not set272272+273273+#274274+# Memory Technology Devices (MTD)275275+#276276+CONFIG_MTD=y277277+# CONFIG_MTD_DEBUG is not set278278+# CONFIG_MTD_CONCAT is not set279279+CONFIG_MTD_PARTITIONS=y280280+# CONFIG_MTD_REDBOOT_PARTS is not set281281+# CONFIG_MTD_CMDLINE_PARTS is not set282282+# CONFIG_MTD_AFS_PARTS is not set283283+284284+#285285+# User Modules And Translation Layers286286+#287287+CONFIG_MTD_CHAR=y288288+CONFIG_MTD_BLOCK=y289289+# CONFIG_FTL is not set290290+# CONFIG_NFTL is not set291291+# CONFIG_INFTL is not set292292+293293+#294294+# RAM/ROM/Flash chip drivers295295+#296296+# CONFIG_MTD_CFI is not set297297+# CONFIG_MTD_JEDECPROBE is not set298298+CONFIG_MTD_MAP_BANK_WIDTH_1=y299299+CONFIG_MTD_MAP_BANK_WIDTH_2=y300300+CONFIG_MTD_MAP_BANK_WIDTH_4=y301301+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set302302+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set303303+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set304304+CONFIG_MTD_CFI_I1=y305305+CONFIG_MTD_CFI_I2=y306306+# CONFIG_MTD_CFI_I4 is not set307307+# CONFIG_MTD_CFI_I8 is not set308308+# CONFIG_MTD_RAM is not set309309+# CONFIG_MTD_ROM is not set310310+# CONFIG_MTD_ABSENT is not set311311+CONFIG_MTD_OBSOLETE_CHIPS=y312312+# CONFIG_MTD_AMDSTD is not set313313+CONFIG_MTD_SHARP=y314314+# CONFIG_MTD_JEDEC is not set315315+316316+#317317+# Mapping drivers for chip access318318+#319319+# CONFIG_MTD_COMPLEX_MAPPINGS is not set320320+# CONFIG_MTD_PLATRAM is not set321321+322322+#323323+# Self-contained MTD device drivers324324+#325325+# CONFIG_MTD_SLRAM is not set326326+# CONFIG_MTD_PHRAM is not set327327+# CONFIG_MTD_MTDRAM is not set328328+# CONFIG_MTD_BLKMTD is not set329329+# CONFIG_MTD_BLOCK2MTD is not set330330+331331+#332332+# Disk-On-Chip Device Drivers333333+#334334+# CONFIG_MTD_DOC2000 is not set335335+# CONFIG_MTD_DOC2001 is not set336336+# CONFIG_MTD_DOC2001PLUS is not set337337+338338+#339339+# NAND Flash Device Drivers340340+#341341+# CONFIG_MTD_NAND is not set342342+343343+#344344+# Parallel port support345345+#346346+# CONFIG_PARPORT is not set347347+348348+#349349+# Plug and Play support350350+#351351+# CONFIG_PNP is not set352352+353353+#354354+# Block devices355355+#356356+# CONFIG_BLK_DEV_XD is not set357357+# CONFIG_BLK_DEV_COW_COMMON is not set358358+CONFIG_BLK_DEV_LOOP=y359359+# CONFIG_BLK_DEV_CRYPTOLOOP is not set360360+# CONFIG_BLK_DEV_NBD is not set361361+CONFIG_BLK_DEV_RAM=y362362+CONFIG_BLK_DEV_RAM_COUNT=16363363+CONFIG_BLK_DEV_RAM_SIZE=1024364364+CONFIG_BLK_DEV_INITRD=y365365+# CONFIG_CDROM_PKTCDVD is not set366366+367367+#368368+# IO Schedulers369369+#370370+CONFIG_IOSCHED_NOOP=y371371+CONFIG_IOSCHED_AS=y372372+CONFIG_IOSCHED_DEADLINE=y373373+CONFIG_IOSCHED_CFQ=y374374+CONFIG_ATA_OVER_ETH=m375375+376376+#377377+# ATA/ATAPI/MFM/RLL support378378+#379379+# CONFIG_IDE is not set380380+381381+#382382+# SCSI device support383383+#384384+# CONFIG_RAID_ATTRS is not set385385+# CONFIG_SCSI is not set386386+387387+#388388+# Multi-device support (RAID and LVM)389389+#390390+# CONFIG_MD is not set391391+392392+#393393+# Fusion MPT device support394394+#395395+# CONFIG_FUSION is not set396396+397397+#398398+# IEEE 1394 (FireWire) support399399+#400400+# CONFIG_IEEE1394 is not set401401+402402+#403403+# I2O device support404404+#405405+406406+#407407+# Network device support408408+#409409+# CONFIG_NETDEVICES is not set410410+# CONFIG_NETPOLL is not set411411+# CONFIG_NET_POLL_CONTROLLER is not set412412+413413+#414414+# ISDN subsystem415415+#416416+# CONFIG_ISDN is not set417417+418418+#419419+# Input device support420420+#421421+CONFIG_INPUT=y422422+423423+#424424+# Userland interfaces425425+#426426+# CONFIG_INPUT_MOUSEDEV is not set427427+# CONFIG_INPUT_JOYDEV is not set428428+CONFIG_INPUT_TSDEV=y429429+CONFIG_INPUT_TSDEV_SCREEN_X=240430430+CONFIG_INPUT_TSDEV_SCREEN_Y=320431431+CONFIG_INPUT_EVDEV=y432432+CONFIG_INPUT_EVBUG=y433433+434434+#435435+# Input Device Drivers436436+#437437+CONFIG_INPUT_KEYBOARD=y438438+# CONFIG_KEYBOARD_ATKBD is not set439439+# CONFIG_KEYBOARD_SUNKBD is not set440440+# CONFIG_KEYBOARD_LKKBD is not set441441+CONFIG_KEYBOARD_LOCOMO=y442442+# CONFIG_KEYBOARD_XTKBD is not set443443+# CONFIG_KEYBOARD_NEWTON is not set444444+# CONFIG_INPUT_MOUSE is not set445445+# CONFIG_INPUT_JOYSTICK is not set446446+# CONFIG_INPUT_TOUCHSCREEN is not set447447+# CONFIG_INPUT_MISC is not set448448+449449+#450450+# Hardware I/O ports451451+#452452+CONFIG_SERIO=y453453+# CONFIG_SERIO_SERPORT is not set454454+# CONFIG_SERIO_LIBPS2 is not set455455+# CONFIG_SERIO_RAW is not set456456+# CONFIG_GAMEPORT is not set457457+458458+#459459+# Character devices460460+#461461+CONFIG_VT=y462462+CONFIG_VT_CONSOLE=y463463+CONFIG_HW_CONSOLE=y464464+# CONFIG_SERIAL_NONSTANDARD is not set465465+466466+#467467+# Serial drivers468468+#469469+# CONFIG_SERIAL_8250 is not set470470+471471+#472472+# Non-8250 serial port support473473+#474474+CONFIG_SERIAL_SA1100=y475475+CONFIG_SERIAL_SA1100_CONSOLE=y476476+CONFIG_SERIAL_CORE=y477477+CONFIG_SERIAL_CORE_CONSOLE=y478478+CONFIG_UNIX98_PTYS=y479479+# CONFIG_LEGACY_PTYS is not set480480+481481+#482482+# IPMI483483+#484484+# CONFIG_IPMI_HANDLER is not set485485+486486+#487487+# Watchdog Cards488488+#489489+# CONFIG_WATCHDOG is not set490490+# CONFIG_NVRAM is not set491491+# CONFIG_RTC is not set492492+# CONFIG_DTLK is not set493493+# CONFIG_R3964 is not set494494+495495+#496496+# Ftape, the floppy tape device driver497497+#498498+# CONFIG_RAW_DRIVER is not set499499+500500+#501501+# TPM devices502502+#503503+504504+#505505+# I2C support506506+#507507+CONFIG_I2C=m508508+# CONFIG_I2C_CHARDEV is not set509509+510510+#511511+# I2C Algorithms512512+#513513+CONFIG_I2C_ALGOBIT=m514514+# CONFIG_I2C_ALGOPCF is not set515515+# CONFIG_I2C_ALGOPCA is not set516516+517517+#518518+# I2C Hardware Bus support519519+#520520+# CONFIG_I2C_ELEKTOR is not set521521+# CONFIG_I2C_PARPORT_LIGHT is not set522522+# CONFIG_I2C_STUB is not set523523+# CONFIG_I2C_PCA_ISA is not set524524+525525+#526526+# Miscellaneous I2C Chip support527527+#528528+# CONFIG_SENSORS_DS1337 is not set529529+# CONFIG_SENSORS_DS1374 is not set530530+# CONFIG_SENSORS_EEPROM is not set531531+# CONFIG_SENSORS_PCF8574 is not set532532+# CONFIG_SENSORS_PCA9539 is not set533533+# CONFIG_SENSORS_PCF8591 is not set534534+# CONFIG_SENSORS_RTC8564 is not set535535+# CONFIG_SENSORS_MAX6875 is not set536536+# CONFIG_I2C_DEBUG_CORE is not set537537+# CONFIG_I2C_DEBUG_ALGO is not set538538+# CONFIG_I2C_DEBUG_BUS is not set539539+# CONFIG_I2C_DEBUG_CHIP is not set540540+541541+#542542+# Hardware Monitoring support543543+#544544+CONFIG_HWMON=y545545+# CONFIG_HWMON_VID is not set546546+# CONFIG_SENSORS_ADM1021 is not set547547+# CONFIG_SENSORS_ADM1025 is not set548548+# CONFIG_SENSORS_ADM1026 is not set549549+# CONFIG_SENSORS_ADM1031 is not set550550+# CONFIG_SENSORS_ADM9240 is not set551551+# CONFIG_SENSORS_ASB100 is not set552552+# CONFIG_SENSORS_ATXP1 is not set553553+# CONFIG_SENSORS_DS1621 is not set554554+# CONFIG_SENSORS_FSCHER is not set555555+# CONFIG_SENSORS_FSCPOS is not set556556+# CONFIG_SENSORS_GL518SM is not set557557+# CONFIG_SENSORS_GL520SM is not set558558+# CONFIG_SENSORS_IT87 is not set559559+# CONFIG_SENSORS_LM63 is not set560560+# CONFIG_SENSORS_LM75 is not set561561+# CONFIG_SENSORS_LM77 is not set562562+# CONFIG_SENSORS_LM78 is not set563563+# CONFIG_SENSORS_LM80 is not set564564+# CONFIG_SENSORS_LM83 is not set565565+# CONFIG_SENSORS_LM85 is not set566566+# CONFIG_SENSORS_LM87 is not set567567+# CONFIG_SENSORS_LM90 is not set568568+# CONFIG_SENSORS_LM92 is not set569569+# CONFIG_SENSORS_MAX1619 is not set570570+# CONFIG_SENSORS_PC87360 is not set571571+# CONFIG_SENSORS_SMSC47M1 is not set572572+# CONFIG_SENSORS_SMSC47B397 is not set573573+# CONFIG_SENSORS_W83781D is not set574574+# CONFIG_SENSORS_W83792D is not set575575+# CONFIG_SENSORS_W83L785TS is not set576576+# CONFIG_SENSORS_W83627HF is not set577577+# CONFIG_SENSORS_W83627EHF is not set578578+# CONFIG_HWMON_DEBUG_CHIP is not set579579+580580+#581581+# Misc devices582582+#583583+584584+#585585+# Multimedia Capabilities Port drivers586586+#587587+# CONFIG_MCP_SA11X0 is not set588588+589589+#590590+# Multimedia devices591591+#592592+CONFIG_VIDEO_DEV=m593593+594594+#595595+# Video For Linux596596+#597597+598598+#599599+# Video Adapters600600+#601601+# CONFIG_VIDEO_PMS is not set602602+# CONFIG_VIDEO_CPIA is not set603603+# CONFIG_VIDEO_SAA5246A is not set604604+# CONFIG_VIDEO_SAA5249 is not set605605+# CONFIG_TUNER_3036 is not set606606+# CONFIG_VIDEO_OVCAMCHIP is not set607607+608608+#609609+# Radio Adapters610610+#611611+# CONFIG_RADIO_CADET is not set612612+# CONFIG_RADIO_RTRACK is not set613613+# CONFIG_RADIO_RTRACK2 is not set614614+# CONFIG_RADIO_AZTECH is not set615615+# CONFIG_RADIO_GEMTEK is not set616616+# CONFIG_RADIO_MAESTRO is not set617617+# CONFIG_RADIO_SF16FMI is not set618618+# CONFIG_RADIO_SF16FMR2 is not set619619+# CONFIG_RADIO_TERRATEC is not set620620+# CONFIG_RADIO_TRUST is not set621621+# CONFIG_RADIO_TYPHOON is not set622622+# CONFIG_RADIO_ZOLTRIX is not set623623+624624+#625625+# Digital Video Broadcasting Devices626626+#627627+# CONFIG_DVB is not set628628+629629+#630630+# Graphics support631631+#632632+CONFIG_FB=y633633+CONFIG_FB_CFB_FILLRECT=y634634+CONFIG_FB_CFB_COPYAREA=y635635+CONFIG_FB_CFB_IMAGEBLIT=y636636+CONFIG_FB_SOFT_CURSOR=y637637+# CONFIG_FB_MACMODES is not set638638+CONFIG_FB_MODE_HELPERS=y639639+# CONFIG_FB_TILEBLITTING is not set640640+CONFIG_FB_SA1100=y641641+# CONFIG_FB_S1D13XXX is not set642642+# CONFIG_FB_VIRTUAL is not set643643+644644+#645645+# Console display driver support646646+#647647+# CONFIG_VGA_CONSOLE is not set648648+# CONFIG_MDA_CONSOLE is not set649649+CONFIG_DUMMY_CONSOLE=y650650+CONFIG_FRAMEBUFFER_CONSOLE=y651651+CONFIG_FONTS=y652652+CONFIG_FONT_8x8=y653653+# CONFIG_FONT_8x16 is not set654654+# CONFIG_FONT_6x11 is not set655655+# CONFIG_FONT_7x14 is not set656656+# CONFIG_FONT_PEARL_8x8 is not set657657+# CONFIG_FONT_ACORN_8x8 is not set658658+# CONFIG_FONT_MINI_4x6 is not set659659+# CONFIG_FONT_SUN8x16 is not set660660+# CONFIG_FONT_SUN12x22 is not set661661+# CONFIG_FONT_10x18 is not set662662+663663+#664664+# Logo configuration665665+#666666+# CONFIG_LOGO is not set667667+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set668668+669669+#670670+# Sound671671+#672672+# CONFIG_SOUND is not set673673+674674+#675675+# USB support676676+#677677+CONFIG_USB_ARCH_HAS_HCD=y678678+# CONFIG_USB_ARCH_HAS_OHCI is not set679679+# CONFIG_USB is not set680680+681681+#682682+# USB Gadget Support683683+#684684+CONFIG_USB_GADGET=y685685+# CONFIG_USB_GADGET_DEBUG_FILES is not set686686+# CONFIG_USB_GADGET_NET2280 is not set687687+# CONFIG_USB_GADGET_PXA2XX is not set688688+# CONFIG_USB_GADGET_GOKU is not set689689+# CONFIG_USB_GADGET_LH7A40X is not set690690+# CONFIG_USB_GADGET_OMAP is not set691691+# CONFIG_USB_GADGET_DUMMY_HCD is not set692692+# CONFIG_USB_GADGET_DUALSPEED is not set693693+694694+#695695+# MMC/SD Card support696696+#697697+# CONFIG_MMC is not set698698+699699+#700700+# File systems701701+#702702+CONFIG_EXT2_FS=y703703+CONFIG_EXT2_FS_XATTR=y704704+CONFIG_EXT2_FS_POSIX_ACL=y705705+CONFIG_EXT2_FS_SECURITY=y706706+# CONFIG_EXT2_FS_XIP is not set707707+# CONFIG_EXT3_FS is not set708708+# CONFIG_JBD is not set709709+CONFIG_FS_MBCACHE=y710710+# CONFIG_REISERFS_FS is not set711711+# CONFIG_JFS_FS is not set712712+CONFIG_FS_POSIX_ACL=y713713+# CONFIG_XFS_FS is not set714714+# CONFIG_MINIX_FS is not set715715+CONFIG_ROMFS_FS=y716716+CONFIG_INOTIFY=y717717+# CONFIG_QUOTA is not set718718+# CONFIG_DNOTIFY is not set719719+# CONFIG_AUTOFS_FS is not set720720+# CONFIG_AUTOFS4_FS is not set721721+# CONFIG_FUSE_FS is not set722722+723723+#724724+# CD-ROM/DVD Filesystems725725+#726726+# CONFIG_ISO9660_FS is not set727727+# CONFIG_UDF_FS is not set728728+729729+#730730+# DOS/FAT/NT Filesystems731731+#732732+CONFIG_FAT_FS=y733733+CONFIG_MSDOS_FS=y734734+CONFIG_VFAT_FS=y735735+CONFIG_FAT_DEFAULT_CODEPAGE=437736736+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"737737+# CONFIG_NTFS_FS is not set738738+739739+#740740+# Pseudo filesystems741741+#742742+CONFIG_PROC_FS=y743743+CONFIG_SYSFS=y744744+CONFIG_TMPFS=y745745+# CONFIG_HUGETLBFS is not set746746+# CONFIG_HUGETLB_PAGE is not set747747+CONFIG_RAMFS=y748748+# CONFIG_RELAYFS_FS is not set749749+750750+#751751+# Miscellaneous filesystems752752+#753753+# CONFIG_ADFS_FS is not set754754+# CONFIG_AFFS_FS is not set755755+# CONFIG_HFS_FS is not set756756+# CONFIG_HFSPLUS_FS is not set757757+# CONFIG_BEFS_FS is not set758758+# CONFIG_BFS_FS is not set759759+# CONFIG_EFS_FS is not set760760+# CONFIG_JFFS_FS is not set761761+CONFIG_JFFS2_FS=y762762+CONFIG_JFFS2_FS_DEBUG=0763763+CONFIG_JFFS2_FS_WRITEBUFFER=y764764+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set765765+CONFIG_JFFS2_ZLIB=y766766+CONFIG_JFFS2_RTIME=y767767+# CONFIG_JFFS2_RUBIN is not set768768+CONFIG_CRAMFS=y769769+# CONFIG_VXFS_FS is not set770770+# CONFIG_HPFS_FS is not set771771+# CONFIG_QNX4FS_FS is not set772772+# CONFIG_SYSV_FS is not set773773+# CONFIG_UFS_FS is not set774774+775775+#776776+# Network File Systems777777+#778778+# CONFIG_NFS_FS is not set779779+# CONFIG_NFSD is not set780780+# CONFIG_SMB_FS is not set781781+# CONFIG_CIFS is not set782782+# CONFIG_NCP_FS is not set783783+# CONFIG_CODA_FS is not set784784+# CONFIG_AFS_FS is not set785785+# CONFIG_9P_FS is not set786786+787787+#788788+# Partition Types789789+#790790+# CONFIG_PARTITION_ADVANCED is not set791791+CONFIG_MSDOS_PARTITION=y792792+793793+#794794+# Native Language Support795795+#796796+CONFIG_NLS=y797797+CONFIG_NLS_DEFAULT="cp437"798798+CONFIG_NLS_CODEPAGE_437=m799799+# CONFIG_NLS_CODEPAGE_737 is not set800800+# CONFIG_NLS_CODEPAGE_775 is not set801801+# CONFIG_NLS_CODEPAGE_850 is not set802802+# CONFIG_NLS_CODEPAGE_852 is not set803803+# CONFIG_NLS_CODEPAGE_855 is not set804804+# CONFIG_NLS_CODEPAGE_857 is not set805805+# CONFIG_NLS_CODEPAGE_860 is not set806806+# CONFIG_NLS_CODEPAGE_861 is not set807807+# CONFIG_NLS_CODEPAGE_862 is not set808808+# CONFIG_NLS_CODEPAGE_863 is not set809809+# CONFIG_NLS_CODEPAGE_864 is not set810810+# CONFIG_NLS_CODEPAGE_865 is not set811811+# CONFIG_NLS_CODEPAGE_866 is not set812812+# CONFIG_NLS_CODEPAGE_869 is not set813813+# CONFIG_NLS_CODEPAGE_936 is not set814814+# CONFIG_NLS_CODEPAGE_950 is not set815815+# CONFIG_NLS_CODEPAGE_932 is not set816816+# CONFIG_NLS_CODEPAGE_949 is not set817817+# CONFIG_NLS_CODEPAGE_874 is not set818818+# CONFIG_NLS_ISO8859_8 is not set819819+# CONFIG_NLS_CODEPAGE_1250 is not set820820+# CONFIG_NLS_CODEPAGE_1251 is not set821821+# CONFIG_NLS_ASCII is not set822822+CONFIG_NLS_ISO8859_1=m823823+# CONFIG_NLS_ISO8859_2 is not set824824+# CONFIG_NLS_ISO8859_3 is not set825825+# CONFIG_NLS_ISO8859_4 is not set826826+# CONFIG_NLS_ISO8859_5 is not set827827+# CONFIG_NLS_ISO8859_6 is not set828828+# CONFIG_NLS_ISO8859_7 is not set829829+# CONFIG_NLS_ISO8859_9 is not set830830+# CONFIG_NLS_ISO8859_13 is not set831831+# CONFIG_NLS_ISO8859_14 is not set832832+# CONFIG_NLS_ISO8859_15 is not set833833+# CONFIG_NLS_KOI8_R is not set834834+# CONFIG_NLS_KOI8_U is not set835835+CONFIG_NLS_UTF8=m836836+837837+#838838+# Profiling support839839+#840840+# CONFIG_PROFILING is not set841841+842842+#843843+# Kernel hacking844844+#845845+# CONFIG_PRINTK_TIME is not set846846+CONFIG_DEBUG_KERNEL=y847847+CONFIG_MAGIC_SYSRQ=y848848+CONFIG_LOG_BUF_SHIFT=14849849+CONFIG_DETECT_SOFTLOCKUP=y850850+# CONFIG_SCHEDSTATS is not set851851+# CONFIG_DEBUG_SLAB is not set852852+CONFIG_DEBUG_PREEMPT=y853853+# CONFIG_DEBUG_SPINLOCK is not set854854+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set855855+# CONFIG_DEBUG_KOBJECT is not set856856+# CONFIG_DEBUG_BUGVERBOSE is not set857857+# CONFIG_DEBUG_INFO is not set858858+# CONFIG_DEBUG_FS is not set859859+CONFIG_FRAME_POINTER=y860860+# CONFIG_DEBUG_USER is not set861861+# CONFIG_DEBUG_WAITQ is not set862862+CONFIG_DEBUG_ERRORS=y863863+# CONFIG_DEBUG_LL is not set864864+865865+#866866+# Security options867867+#868868+# CONFIG_KEYS is not set869869+# CONFIG_SECURITY is not set870870+871871+#872872+# Cryptographic options873873+#874874+# CONFIG_CRYPTO is not set875875+876876+#877877+# Hardware crypto devices878878+#879879+880880+#881881+# Library routines882882+#883883+# CONFIG_CRC_CCITT is not set884884+# CONFIG_CRC16 is not set885885+CONFIG_CRC32=y886886+# CONFIG_LIBCRC32C is not set887887+CONFIG_ZLIB_INFLATE=y888888+CONFIG_ZLIB_DEFLATE=y
+1523
arch/arm/configs/corgi_defconfig
···11+#22+# Automatically generated make config: don't edit33+# Linux kernel version: 2.6.14-rc344+# Sun Oct 9 15:46:42 200555+#66+CONFIG_ARM=y77+CONFIG_MMU=y88+CONFIG_UID16=y99+CONFIG_RWSEM_GENERIC_SPINLOCK=y1010+CONFIG_GENERIC_CALIBRATE_DELAY=y1111+1212+#1313+# Code maturity level options1414+#1515+CONFIG_EXPERIMENTAL=y1616+CONFIG_CLEAN_COMPILE=y1717+CONFIG_BROKEN_ON_SMP=y1818+CONFIG_LOCK_KERNEL=y1919+CONFIG_INIT_ENV_ARG_LIMIT=322020+2121+#2222+# General setup2323+#2424+CONFIG_LOCALVERSION=""2525+CONFIG_LOCALVERSION_AUTO=y2626+CONFIG_SWAP=y2727+CONFIG_SYSVIPC=y2828+# CONFIG_POSIX_MQUEUE is not set2929+CONFIG_BSD_PROCESS_ACCT=y3030+# CONFIG_BSD_PROCESS_ACCT_V3 is not set3131+CONFIG_SYSCTL=y3232+# CONFIG_AUDIT is not set3333+CONFIG_HOTPLUG=y3434+CONFIG_KOBJECT_UEVENT=y3535+# CONFIG_IKCONFIG is not set3636+CONFIG_INITRAMFS_SOURCE=""3737+CONFIG_EMBEDDED=y3838+CONFIG_KALLSYMS=y3939+# CONFIG_KALLSYMS_ALL is not set4040+# CONFIG_KALLSYMS_EXTRA_PASS is not set4141+CONFIG_PRINTK=y4242+CONFIG_BUG=y4343+CONFIG_BASE_FULL=y4444+CONFIG_FUTEX=y4545+CONFIG_EPOLL=y4646+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set4747+CONFIG_SHMEM=y4848+CONFIG_CC_ALIGN_FUNCTIONS=04949+CONFIG_CC_ALIGN_LABELS=05050+CONFIG_CC_ALIGN_LOOPS=05151+CONFIG_CC_ALIGN_JUMPS=05252+# CONFIG_TINY_SHMEM is not set5353+CONFIG_BASE_SMALL=05454+5555+#5656+# Loadable module support5757+#5858+CONFIG_MODULES=y5959+CONFIG_MODULE_UNLOAD=y6060+CONFIG_MODULE_FORCE_UNLOAD=y6161+CONFIG_OBSOLETE_MODPARM=y6262+# CONFIG_MODVERSIONS is not set6363+# CONFIG_MODULE_SRCVERSION_ALL is not set6464+CONFIG_KMOD=y6565+6666+#6767+# System Type6868+#6969+# CONFIG_ARCH_CLPS7500 is not set7070+# CONFIG_ARCH_CLPS711X is not set7171+# CONFIG_ARCH_CO285 is not set7272+# CONFIG_ARCH_EBSA110 is not set7373+# CONFIG_ARCH_CAMELOT is not set7474+# CONFIG_ARCH_FOOTBRIDGE is not set7575+# CONFIG_ARCH_INTEGRATOR is not set7676+# CONFIG_ARCH_IOP3XX is not set7777+# CONFIG_ARCH_IXP4XX is not set7878+# CONFIG_ARCH_IXP2000 is not set7979+# CONFIG_ARCH_L7200 is not set8080+CONFIG_ARCH_PXA=y8181+# CONFIG_ARCH_RPC is not set8282+# CONFIG_ARCH_SA1100 is not set8383+# CONFIG_ARCH_S3C2410 is not set8484+# CONFIG_ARCH_SHARK is not set8585+# CONFIG_ARCH_LH7A40X is not set8686+# CONFIG_ARCH_OMAP is not set8787+# CONFIG_ARCH_VERSATILE is not set8888+# CONFIG_ARCH_IMX is not set8989+# CONFIG_ARCH_H720X is not set9090+# CONFIG_ARCH_AAEC2000 is not set9191+9292+#9393+# Intel PXA2xx Implementations9494+#9595+# CONFIG_ARCH_LUBBOCK is not set9696+# CONFIG_MACH_MAINSTONE is not set9797+# CONFIG_ARCH_PXA_IDP is not set9898+CONFIG_PXA_SHARPSL=y9999+CONFIG_PXA_SHARPSL_25x=y100100+# CONFIG_PXA_SHARPSL_27x is not set101101+# CONFIG_MACH_POODLE is not set102102+CONFIG_MACH_CORGI=y103103+CONFIG_MACH_SHEPHERD=y104104+CONFIG_MACH_HUSKY=y105105+CONFIG_PXA25x=y106106+CONFIG_PXA_SHARP_C7xx=y107107+108108+#109109+# Processor Type110110+#111111+CONFIG_CPU_32=y112112+CONFIG_CPU_XSCALE=y113113+CONFIG_CPU_32v5=y114114+CONFIG_CPU_ABRT_EV5T=y115115+CONFIG_CPU_CACHE_VIVT=y116116+CONFIG_CPU_TLB_V4WBI=y117117+118118+#119119+# Processor Features120120+#121121+CONFIG_ARM_THUMB=y122122+CONFIG_XSCALE_PMU=y123123+CONFIG_SHARP_PARAM=y124124+CONFIG_SHARP_SCOOP=y125125+126126+#127127+# Bus support128128+#129129+CONFIG_ISA_DMA_API=y130130+131131+#132132+# PCCARD (PCMCIA/CardBus) support133133+#134134+CONFIG_PCCARD=y135135+# CONFIG_PCMCIA_DEBUG is not set136136+CONFIG_PCMCIA=y137137+CONFIG_PCMCIA_LOAD_CIS=y138138+CONFIG_PCMCIA_IOCTL=y139139+140140+#141141+# PC-card bridges142142+#143143+CONFIG_PCMCIA_PXA2XX=y144144+145145+#146146+# Kernel Features147147+#148148+CONFIG_PREEMPT=y149149+# CONFIG_NO_IDLE_HZ is not set150150+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set151151+CONFIG_SELECT_MEMORY_MODEL=y152152+CONFIG_FLATMEM_MANUAL=y153153+# CONFIG_DISCONTIGMEM_MANUAL is not set154154+# CONFIG_SPARSEMEM_MANUAL is not set155155+CONFIG_FLATMEM=y156156+CONFIG_FLAT_NODE_MEM_MAP=y157157+# CONFIG_SPARSEMEM_STATIC is not set158158+CONFIG_ALIGNMENT_TRAP=y159159+160160+#161161+# Boot options162162+#163163+CONFIG_ZBOOT_ROM_TEXT=0x0164164+CONFIG_ZBOOT_ROM_BSS=0x0165165+CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug"166166+# CONFIG_XIP_KERNEL is not set167167+168168+#169169+# Floating point emulation170170+#171171+172172+#173173+# At least one emulation must be selected174174+#175175+CONFIG_FPE_NWFPE=y176176+# CONFIG_FPE_NWFPE_XP is not set177177+# CONFIG_FPE_FASTFPE is not set178178+179179+#180180+# Userspace binary formats181181+#182182+CONFIG_BINFMT_ELF=y183183+CONFIG_BINFMT_AOUT=m184184+CONFIG_BINFMT_MISC=m185185+# CONFIG_ARTHUR is not set186186+187187+#188188+# Power management options189189+#190190+CONFIG_PM=y191191+CONFIG_APM=y192192+193193+#194194+# Networking195195+#196196+CONFIG_NET=y197197+198198+#199199+# Networking options200200+#201201+CONFIG_PACKET=y202202+CONFIG_PACKET_MMAP=y203203+CONFIG_UNIX=y204204+CONFIG_XFRM=y205205+CONFIG_XFRM_USER=m206206+# CONFIG_NET_KEY is not set207207+CONFIG_INET=y208208+# CONFIG_IP_MULTICAST is not set209209+# CONFIG_IP_ADVANCED_ROUTER is not set210210+CONFIG_IP_FIB_HASH=y211211+# CONFIG_IP_PNP is not set212212+# CONFIG_NET_IPIP is not set213213+# CONFIG_NET_IPGRE is not set214214+# CONFIG_ARPD is not set215215+CONFIG_SYN_COOKIES=y216216+# CONFIG_INET_AH is not set217217+# CONFIG_INET_ESP is not set218218+# CONFIG_INET_IPCOMP is not set219219+# CONFIG_INET_TUNNEL is not set220220+CONFIG_INET_DIAG=y221221+CONFIG_INET_TCP_DIAG=y222222+# CONFIG_TCP_CONG_ADVANCED is not set223223+CONFIG_TCP_CONG_BIC=y224224+225225+#226226+# IP: Virtual Server Configuration227227+#228228+# CONFIG_IP_VS is not set229229+CONFIG_IPV6=m230230+# CONFIG_IPV6_PRIVACY is not set231231+CONFIG_INET6_AH=m232232+CONFIG_INET6_ESP=m233233+CONFIG_INET6_IPCOMP=m234234+CONFIG_INET6_TUNNEL=m235235+CONFIG_IPV6_TUNNEL=m236236+CONFIG_NETFILTER=y237237+# CONFIG_NETFILTER_DEBUG is not set238238+# CONFIG_NETFILTER_NETLINK is not set239239+240240+#241241+# IP: Netfilter Configuration242242+#243243+CONFIG_IP_NF_CONNTRACK=m244244+# CONFIG_IP_NF_CT_ACCT is not set245245+# CONFIG_IP_NF_CONNTRACK_MARK is not set246246+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set247247+CONFIG_IP_NF_CT_PROTO_SCTP=m248248+CONFIG_IP_NF_FTP=m249249+CONFIG_IP_NF_IRC=m250250+# CONFIG_IP_NF_NETBIOS_NS is not set251251+CONFIG_IP_NF_TFTP=m252252+CONFIG_IP_NF_AMANDA=m253253+# CONFIG_IP_NF_PPTP is not set254254+CONFIG_IP_NF_QUEUE=m255255+CONFIG_IP_NF_IPTABLES=m256256+CONFIG_IP_NF_MATCH_LIMIT=m257257+CONFIG_IP_NF_MATCH_IPRANGE=m258258+CONFIG_IP_NF_MATCH_MAC=m259259+CONFIG_IP_NF_MATCH_PKTTYPE=m260260+CONFIG_IP_NF_MATCH_MARK=m261261+CONFIG_IP_NF_MATCH_MULTIPORT=m262262+CONFIG_IP_NF_MATCH_TOS=m263263+CONFIG_IP_NF_MATCH_RECENT=m264264+CONFIG_IP_NF_MATCH_ECN=m265265+CONFIG_IP_NF_MATCH_DSCP=m266266+CONFIG_IP_NF_MATCH_AH_ESP=m267267+CONFIG_IP_NF_MATCH_LENGTH=m268268+CONFIG_IP_NF_MATCH_TTL=m269269+CONFIG_IP_NF_MATCH_TCPMSS=m270270+CONFIG_IP_NF_MATCH_HELPER=m271271+CONFIG_IP_NF_MATCH_STATE=m272272+CONFIG_IP_NF_MATCH_CONNTRACK=m273273+CONFIG_IP_NF_MATCH_OWNER=m274274+CONFIG_IP_NF_MATCH_ADDRTYPE=m275275+CONFIG_IP_NF_MATCH_REALM=m276276+CONFIG_IP_NF_MATCH_SCTP=m277277+# CONFIG_IP_NF_MATCH_DCCP is not set278278+CONFIG_IP_NF_MATCH_COMMENT=m279279+CONFIG_IP_NF_MATCH_HASHLIMIT=m280280+# CONFIG_IP_NF_MATCH_STRING is not set281281+CONFIG_IP_NF_FILTER=m282282+# CONFIG_IP_NF_TARGET_REJECT is not set283283+CONFIG_IP_NF_TARGET_LOG=m284284+CONFIG_IP_NF_TARGET_ULOG=m285285+CONFIG_IP_NF_TARGET_TCPMSS=m286286+# CONFIG_IP_NF_TARGET_NFQUEUE is not set287287+CONFIG_IP_NF_NAT=m288288+CONFIG_IP_NF_NAT_NEEDED=y289289+# CONFIG_IP_NF_TARGET_MASQUERADE is not set290290+# CONFIG_IP_NF_TARGET_REDIRECT is not set291291+# CONFIG_IP_NF_TARGET_NETMAP is not set292292+# CONFIG_IP_NF_TARGET_SAME is not set293293+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set294294+CONFIG_IP_NF_NAT_IRC=m295295+CONFIG_IP_NF_NAT_FTP=m296296+CONFIG_IP_NF_NAT_TFTP=m297297+CONFIG_IP_NF_NAT_AMANDA=m298298+CONFIG_IP_NF_MANGLE=m299299+# CONFIG_IP_NF_TARGET_TOS is not set300300+# CONFIG_IP_NF_TARGET_ECN is not set301301+# CONFIG_IP_NF_TARGET_DSCP is not set302302+# CONFIG_IP_NF_TARGET_MARK is not set303303+# CONFIG_IP_NF_TARGET_CLASSIFY is not set304304+# CONFIG_IP_NF_TARGET_TTL is not set305305+CONFIG_IP_NF_RAW=m306306+# CONFIG_IP_NF_TARGET_NOTRACK is not set307307+CONFIG_IP_NF_ARPTABLES=m308308+CONFIG_IP_NF_ARPFILTER=m309309+CONFIG_IP_NF_ARP_MANGLE=m310310+311311+#312312+# IPv6: Netfilter Configuration (EXPERIMENTAL)313313+#314314+CONFIG_IP6_NF_QUEUE=m315315+CONFIG_IP6_NF_IPTABLES=m316316+CONFIG_IP6_NF_MATCH_LIMIT=m317317+CONFIG_IP6_NF_MATCH_MAC=m318318+CONFIG_IP6_NF_MATCH_RT=m319319+CONFIG_IP6_NF_MATCH_OPTS=m320320+CONFIG_IP6_NF_MATCH_FRAG=m321321+CONFIG_IP6_NF_MATCH_HL=m322322+CONFIG_IP6_NF_MATCH_MULTIPORT=m323323+CONFIG_IP6_NF_MATCH_OWNER=m324324+CONFIG_IP6_NF_MATCH_MARK=m325325+CONFIG_IP6_NF_MATCH_IPV6HEADER=m326326+CONFIG_IP6_NF_MATCH_AHESP=m327327+CONFIG_IP6_NF_MATCH_LENGTH=m328328+CONFIG_IP6_NF_MATCH_EUI64=m329329+CONFIG_IP6_NF_FILTER=m330330+# CONFIG_IP6_NF_TARGET_LOG is not set331331+# CONFIG_IP6_NF_TARGET_REJECT is not set332332+# CONFIG_IP6_NF_TARGET_NFQUEUE is not set333333+CONFIG_IP6_NF_MANGLE=m334334+# CONFIG_IP6_NF_TARGET_MARK is not set335335+# CONFIG_IP6_NF_TARGET_HL is not set336336+CONFIG_IP6_NF_RAW=m337337+338338+#339339+# DCCP Configuration (EXPERIMENTAL)340340+#341341+# CONFIG_IP_DCCP is not set342342+343343+#344344+# SCTP Configuration (EXPERIMENTAL)345345+#346346+# CONFIG_IP_SCTP is not set347347+# CONFIG_ATM is not set348348+# CONFIG_BRIDGE is not set349349+# CONFIG_VLAN_8021Q is not set350350+# CONFIG_DECNET is not set351351+# CONFIG_LLC2 is not set352352+# CONFIG_IPX is not set353353+# CONFIG_ATALK is not set354354+# CONFIG_X25 is not set355355+# CONFIG_LAPB is not set356356+# CONFIG_NET_DIVERT is not set357357+# CONFIG_ECONET is not set358358+# CONFIG_WAN_ROUTER is not set359359+# CONFIG_NET_SCHED is not set360360+CONFIG_NET_CLS_ROUTE=y361361+362362+#363363+# Network testing364364+#365365+# CONFIG_NET_PKTGEN is not set366366+# CONFIG_HAMRADIO is not set367367+CONFIG_IRDA=m368368+369369+#370370+# IrDA protocols371371+#372372+CONFIG_IRLAN=m373373+CONFIG_IRNET=m374374+CONFIG_IRCOMM=m375375+# CONFIG_IRDA_ULTRA is not set376376+377377+#378378+# IrDA options379379+#380380+# CONFIG_IRDA_CACHE_LAST_LSAP is not set381381+# CONFIG_IRDA_FAST_RR is not set382382+# CONFIG_IRDA_DEBUG is not set383383+384384+#385385+# Infrared-port device drivers386386+#387387+388388+#389389+# SIR device drivers390390+#391391+# CONFIG_IRTTY_SIR is not set392392+393393+#394394+# Dongle support395395+#396396+397397+#398398+# Old SIR device drivers399399+#400400+# CONFIG_IRPORT_SIR is not set401401+402402+#403403+# Old Serial dongle support404404+#405405+406406+#407407+# FIR device drivers408408+#409409+# CONFIG_USB_IRDA is not set410410+# CONFIG_SIGMATEL_FIR is not set411411+# CONFIG_NSC_FIR is not set412412+# CONFIG_WINBOND_FIR is not set413413+# CONFIG_SMC_IRCC_FIR is not set414414+# CONFIG_ALI_FIR is not set415415+# CONFIG_VIA_FIR is not set416416+CONFIG_BT=m417417+CONFIG_BT_L2CAP=m418418+CONFIG_BT_SCO=m419419+CONFIG_BT_RFCOMM=m420420+CONFIG_BT_RFCOMM_TTY=y421421+CONFIG_BT_BNEP=m422422+CONFIG_BT_BNEP_MC_FILTER=y423423+CONFIG_BT_BNEP_PROTO_FILTER=y424424+CONFIG_BT_HIDP=m425425+426426+#427427+# Bluetooth device drivers428428+#429429+CONFIG_BT_HCIUSB=m430430+# CONFIG_BT_HCIUSB_SCO is not set431431+CONFIG_BT_HCIUART=m432432+CONFIG_BT_HCIUART_H4=y433433+CONFIG_BT_HCIUART_BCSP=y434434+CONFIG_BT_HCIUART_BCSP_TXCRC=y435435+CONFIG_BT_HCIBCM203X=m436436+CONFIG_BT_HCIBPA10X=m437437+CONFIG_BT_HCIBFUSB=m438438+CONFIG_BT_HCIDTL1=m439439+CONFIG_BT_HCIBT3C=m440440+CONFIG_BT_HCIBLUECARD=m441441+CONFIG_BT_HCIBTUART=m442442+CONFIG_BT_HCIVHCI=m443443+CONFIG_IEEE80211=m444444+# CONFIG_IEEE80211_DEBUG is not set445445+CONFIG_IEEE80211_CRYPT_WEP=m446446+# CONFIG_IEEE80211_CRYPT_CCMP is not set447447+# CONFIG_IEEE80211_CRYPT_TKIP is not set448448+449449+#450450+# Device Drivers451451+#452452+453453+#454454+# Generic Driver Options455455+#456456+CONFIG_STANDALONE=y457457+CONFIG_PREVENT_FIRMWARE_BUILD=y458458+CONFIG_FW_LOADER=y459459+# CONFIG_DEBUG_DRIVER is not set460460+461461+#462462+# Memory Technology Devices (MTD)463463+#464464+CONFIG_MTD=y465465+# CONFIG_MTD_DEBUG is not set466466+# CONFIG_MTD_CONCAT is not set467467+CONFIG_MTD_PARTITIONS=y468468+# CONFIG_MTD_REDBOOT_PARTS is not set469469+CONFIG_MTD_CMDLINE_PARTS=y470470+# CONFIG_MTD_AFS_PARTS is not set471471+472472+#473473+# User Modules And Translation Layers474474+#475475+CONFIG_MTD_CHAR=y476476+CONFIG_MTD_BLOCK=y477477+# CONFIG_FTL is not set478478+# CONFIG_NFTL is not set479479+# CONFIG_INFTL is not set480480+481481+#482482+# RAM/ROM/Flash chip drivers483483+#484484+# CONFIG_MTD_CFI is not set485485+# CONFIG_MTD_JEDECPROBE is not set486486+CONFIG_MTD_MAP_BANK_WIDTH_1=y487487+CONFIG_MTD_MAP_BANK_WIDTH_2=y488488+CONFIG_MTD_MAP_BANK_WIDTH_4=y489489+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set490490+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set491491+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set492492+CONFIG_MTD_CFI_I1=y493493+CONFIG_MTD_CFI_I2=y494494+# CONFIG_MTD_CFI_I4 is not set495495+# CONFIG_MTD_CFI_I8 is not set496496+# CONFIG_MTD_RAM is not set497497+CONFIG_MTD_ROM=y498498+# CONFIG_MTD_ABSENT is not set499499+500500+#501501+# Mapping drivers for chip access502502+#503503+CONFIG_MTD_COMPLEX_MAPPINGS=y504504+CONFIG_MTD_SHARP_SL=y505505+# CONFIG_MTD_PLATRAM is not set506506+507507+#508508+# Self-contained MTD device drivers509509+#510510+# CONFIG_MTD_SLRAM is not set511511+# CONFIG_MTD_PHRAM is not set512512+# CONFIG_MTD_MTDRAM is not set513513+# CONFIG_MTD_BLKMTD is not set514514+# CONFIG_MTD_BLOCK2MTD is not set515515+516516+#517517+# Disk-On-Chip Device Drivers518518+#519519+# CONFIG_MTD_DOC2000 is not set520520+# CONFIG_MTD_DOC2001 is not set521521+# CONFIG_MTD_DOC2001PLUS is not set522522+523523+#524524+# NAND Flash Device Drivers525525+#526526+CONFIG_MTD_NAND=y527527+CONFIG_MTD_NAND_VERIFY_WRITE=y528528+# CONFIG_MTD_NAND_H1900 is not set529529+CONFIG_MTD_NAND_IDS=y530530+# CONFIG_MTD_NAND_DISKONCHIP is not set531531+CONFIG_MTD_NAND_SHARPSL=y532532+# CONFIG_MTD_NAND_NANDSIM is not set533533+534534+#535535+# Parallel port support536536+#537537+# CONFIG_PARPORT is not set538538+539539+#540540+# Plug and Play support541541+#542542+543543+#544544+# Block devices545545+#546546+# CONFIG_BLK_DEV_COW_COMMON is not set547547+CONFIG_BLK_DEV_LOOP=y548548+# CONFIG_BLK_DEV_CRYPTOLOOP is not set549549+# CONFIG_BLK_DEV_NBD is not set550550+# CONFIG_BLK_DEV_UB is not set551551+# CONFIG_BLK_DEV_RAM is not set552552+CONFIG_BLK_DEV_RAM_COUNT=16553553+# CONFIG_CDROM_PKTCDVD is not set554554+555555+#556556+# IO Schedulers557557+#558558+CONFIG_IOSCHED_NOOP=y559559+CONFIG_IOSCHED_AS=y560560+CONFIG_IOSCHED_DEADLINE=y561561+CONFIG_IOSCHED_CFQ=y562562+# CONFIG_ATA_OVER_ETH is not set563563+564564+#565565+# ATA/ATAPI/MFM/RLL support566566+#567567+CONFIG_IDE=y568568+CONFIG_BLK_DEV_IDE=y569569+570570+#571571+# Please see Documentation/ide.txt for help/info on IDE drives572572+#573573+# CONFIG_BLK_DEV_IDE_SATA is not set574574+CONFIG_BLK_DEV_IDEDISK=y575575+# CONFIG_IDEDISK_MULTI_MODE is not set576576+CONFIG_BLK_DEV_IDECS=y577577+# CONFIG_BLK_DEV_IDECD is not set578578+# CONFIG_BLK_DEV_IDETAPE is not set579579+# CONFIG_BLK_DEV_IDEFLOPPY is not set580580+# CONFIG_BLK_DEV_IDESCSI is not set581581+# CONFIG_IDE_TASK_IOCTL is not set582582+583583+#584584+# IDE chipset support/bugfixes585585+#586586+CONFIG_IDE_GENERIC=y587587+# CONFIG_IDE_ARM is not set588588+# CONFIG_BLK_DEV_IDEDMA is not set589589+# CONFIG_IDEDMA_AUTO is not set590590+# CONFIG_BLK_DEV_HD is not set591591+592592+#593593+# SCSI device support594594+#595595+# CONFIG_RAID_ATTRS is not set596596+CONFIG_SCSI=m597597+CONFIG_SCSI_PROC_FS=y598598+599599+#600600+# SCSI support type (disk, tape, CD-ROM)601601+#602602+CONFIG_BLK_DEV_SD=m603603+CONFIG_CHR_DEV_ST=m604604+CONFIG_CHR_DEV_OSST=m605605+CONFIG_BLK_DEV_SR=m606606+# CONFIG_BLK_DEV_SR_VENDOR is not set607607+CONFIG_CHR_DEV_SG=m608608+# CONFIG_CHR_DEV_SCH is not set609609+610610+#611611+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs612612+#613613+CONFIG_SCSI_MULTI_LUN=y614614+# CONFIG_SCSI_CONSTANTS is not set615615+# CONFIG_SCSI_LOGGING is not set616616+617617+#618618+# SCSI Transport Attributes619619+#620620+# CONFIG_SCSI_SPI_ATTRS is not set621621+# CONFIG_SCSI_FC_ATTRS is not set622622+# CONFIG_SCSI_ISCSI_ATTRS is not set623623+# CONFIG_SCSI_SAS_ATTRS is not set624624+625625+#626626+# SCSI low-level drivers627627+#628628+# CONFIG_SCSI_SATA is not set629629+# CONFIG_SCSI_DEBUG is not set630630+631631+#632632+# PCMCIA SCSI adapter support633633+#634634+# CONFIG_PCMCIA_AHA152X is not set635635+# CONFIG_PCMCIA_FDOMAIN is not set636636+# CONFIG_PCMCIA_NINJA_SCSI is not set637637+# CONFIG_PCMCIA_QLOGIC is not set638638+# CONFIG_PCMCIA_SYM53C500 is not set639639+640640+#641641+# Multi-device support (RAID and LVM)642642+#643643+# CONFIG_MD is not set644644+645645+#646646+# Fusion MPT device support647647+#648648+# CONFIG_FUSION is not set649649+650650+#651651+# IEEE 1394 (FireWire) support652652+#653653+654654+#655655+# I2O device support656656+#657657+658658+#659659+# Network device support660660+#661661+CONFIG_NETDEVICES=y662662+# CONFIG_DUMMY is not set663663+# CONFIG_BONDING is not set664664+# CONFIG_EQUALIZER is not set665665+# CONFIG_TUN is not set666666+667667+#668668+# PHY device support669669+#670670+# CONFIG_PHYLIB is not set671671+672672+#673673+# Ethernet (10 or 100Mbit)674674+#675675+CONFIG_NET_ETHERNET=y676676+CONFIG_MII=m677677+# CONFIG_SMC91X is not set678678+# CONFIG_DM9000 is not set679679+680680+#681681+# Ethernet (1000 Mbit)682682+#683683+684684+#685685+# Ethernet (10000 Mbit)686686+#687687+688688+#689689+# Token Ring devices690690+#691691+692692+#693693+# Wireless LAN (non-hamradio)694694+#695695+CONFIG_NET_RADIO=y696696+697697+#698698+# Obsolete Wireless cards support (pre-802.11)699699+#700700+# CONFIG_STRIP is not set701701+# CONFIG_PCMCIA_WAVELAN is not set702702+# CONFIG_PCMCIA_NETWAVE is not set703703+704704+#705705+# Wireless 802.11 Frequency Hopping cards support706706+#707707+# CONFIG_PCMCIA_RAYCS is not set708708+709709+#710710+# Wireless 802.11b ISA/PCI cards support711711+#712712+CONFIG_HERMES=m713713+# CONFIG_ATMEL is not set714714+715715+#716716+# Wireless 802.11b Pcmcia/Cardbus cards support717717+#718718+CONFIG_PCMCIA_HERMES=m719719+CONFIG_PCMCIA_SPECTRUM=m720720+# CONFIG_AIRO_CS is not set721721+# CONFIG_PCMCIA_WL3501 is not set722722+CONFIG_HOSTAP=m723723+CONFIG_HOSTAP_FIRMWARE=y724724+CONFIG_HOSTAP_CS=m725725+CONFIG_NET_WIRELESS=y726726+727727+#728728+# PCMCIA network device support729729+#730730+CONFIG_NET_PCMCIA=y731731+# CONFIG_PCMCIA_3C589 is not set732732+# CONFIG_PCMCIA_3C574 is not set733733+# CONFIG_PCMCIA_FMVJ18X is not set734734+CONFIG_PCMCIA_PCNET=m735735+# CONFIG_PCMCIA_NMCLAN is not set736736+# CONFIG_PCMCIA_SMC91C92 is not set737737+# CONFIG_PCMCIA_XIRC2PS is not set738738+# CONFIG_PCMCIA_AXNET is not set739739+740740+#741741+# Wan interfaces742742+#743743+# CONFIG_WAN is not set744744+CONFIG_PPP=m745745+# CONFIG_PPP_MULTILINK is not set746746+# CONFIG_PPP_FILTER is not set747747+CONFIG_PPP_ASYNC=m748748+# CONFIG_PPP_SYNC_TTY is not set749749+# CONFIG_PPP_DEFLATE is not set750750+CONFIG_PPP_BSDCOMP=m751751+# CONFIG_PPPOE is not set752752+# CONFIG_SLIP is not set753753+# CONFIG_SHAPER is not set754754+# CONFIG_NETCONSOLE is not set755755+# CONFIG_NETPOLL is not set756756+# CONFIG_NET_POLL_CONTROLLER is not set757757+758758+#759759+# ISDN subsystem760760+#761761+# CONFIG_ISDN is not set762762+763763+#764764+# Input device support765765+#766766+CONFIG_INPUT=y767767+768768+#769769+# Userland interfaces770770+#771771+# CONFIG_INPUT_MOUSEDEV is not set772772+# CONFIG_INPUT_JOYDEV is not set773773+# CONFIG_INPUT_TSDEV is not set774774+CONFIG_INPUT_EVDEV=y775775+# CONFIG_INPUT_EVBUG is not set776776+777777+#778778+# Input Device Drivers779779+#780780+CONFIG_INPUT_KEYBOARD=y781781+# CONFIG_KEYBOARD_ATKBD is not set782782+# CONFIG_KEYBOARD_SUNKBD is not set783783+# CONFIG_KEYBOARD_LKKBD is not set784784+# CONFIG_KEYBOARD_XTKBD is not set785785+# CONFIG_KEYBOARD_NEWTON is not set786786+CONFIG_KEYBOARD_CORGI=y787787+CONFIG_KEYBOARD_SPITZ=y788788+# CONFIG_INPUT_MOUSE is not set789789+# CONFIG_INPUT_JOYSTICK is not set790790+CONFIG_INPUT_TOUCHSCREEN=y791791+CONFIG_TOUCHSCREEN_CORGI=y792792+# CONFIG_TOUCHSCREEN_GUNZE is not set793793+# CONFIG_TOUCHSCREEN_ELO is not set794794+# CONFIG_TOUCHSCREEN_MTOUCH is not set795795+# CONFIG_TOUCHSCREEN_MK712 is not set796796+CONFIG_INPUT_MISC=y797797+CONFIG_INPUT_UINPUT=m798798+799799+#800800+# Hardware I/O ports801801+#802802+# CONFIG_SERIO is not set803803+# CONFIG_GAMEPORT is not set804804+805805+#806806+# Character devices807807+#808808+CONFIG_VT=y809809+CONFIG_VT_CONSOLE=y810810+CONFIG_HW_CONSOLE=y811811+# CONFIG_SERIAL_NONSTANDARD is not set812812+813813+#814814+# Serial drivers815815+#816816+CONFIG_SERIAL_8250=m817817+CONFIG_SERIAL_8250_CS=m818818+CONFIG_SERIAL_8250_NR_UARTS=4819819+# CONFIG_SERIAL_8250_EXTENDED is not set820820+821821+#822822+# Non-8250 serial port support823823+#824824+CONFIG_SERIAL_PXA=y825825+CONFIG_SERIAL_PXA_CONSOLE=y826826+CONFIG_SERIAL_CORE=y827827+CONFIG_SERIAL_CORE_CONSOLE=y828828+CONFIG_UNIX98_PTYS=y829829+# CONFIG_LEGACY_PTYS is not set830830+831831+#832832+# IPMI833833+#834834+# CONFIG_IPMI_HANDLER is not set835835+836836+#837837+# Watchdog Cards838838+#839839+# CONFIG_WATCHDOG is not set840840+# CONFIG_NVRAM is not set841841+# CONFIG_RTC is not set842842+# CONFIG_DTLK is not set843843+# CONFIG_R3964 is not set844844+845845+#846846+# Ftape, the floppy tape device driver847847+#848848+849849+#850850+# PCMCIA character devices851851+#852852+# CONFIG_SYNCLINK_CS is not set853853+# CONFIG_RAW_DRIVER is not set854854+855855+#856856+# TPM devices857857+#858858+859859+#860860+# I2C support861861+#862862+CONFIG_I2C=y863863+# CONFIG_I2C_CHARDEV is not set864864+865865+#866866+# I2C Algorithms867867+#868868+CONFIG_I2C_ALGOBIT=y869869+# CONFIG_I2C_ALGOPCF is not set870870+# CONFIG_I2C_ALGOPCA is not set871871+872872+#873873+# I2C Hardware Bus support874874+#875875+CONFIG_I2C_PXA=y876876+# CONFIG_I2C_PXA_SLAVE is not set877877+# CONFIG_I2C_PARPORT_LIGHT is not set878878+# CONFIG_I2C_STUB is not set879879+# CONFIG_I2C_PCA_ISA is not set880880+881881+#882882+# Miscellaneous I2C Chip support883883+#884884+# CONFIG_SENSORS_DS1337 is not set885885+# CONFIG_SENSORS_DS1374 is not set886886+# CONFIG_SENSORS_EEPROM is not set887887+# CONFIG_SENSORS_PCF8574 is not set888888+# CONFIG_SENSORS_PCA9539 is not set889889+# CONFIG_SENSORS_PCF8591 is not set890890+# CONFIG_SENSORS_RTC8564 is not set891891+# CONFIG_SENSORS_MAX6875 is not set892892+# CONFIG_I2C_DEBUG_CORE is not set893893+# CONFIG_I2C_DEBUG_ALGO is not set894894+# CONFIG_I2C_DEBUG_BUS is not set895895+# CONFIG_I2C_DEBUG_CHIP is not set896896+897897+#898898+# Hardware Monitoring support899899+#900900+CONFIG_HWMON=y901901+# CONFIG_HWMON_VID is not set902902+# CONFIG_SENSORS_ADM1021 is not set903903+# CONFIG_SENSORS_ADM1025 is not set904904+# CONFIG_SENSORS_ADM1026 is not set905905+# CONFIG_SENSORS_ADM1031 is not set906906+# CONFIG_SENSORS_ADM9240 is not set907907+# CONFIG_SENSORS_ASB100 is not set908908+# CONFIG_SENSORS_ATXP1 is not set909909+# CONFIG_SENSORS_DS1621 is not set910910+# CONFIG_SENSORS_FSCHER is not set911911+# CONFIG_SENSORS_FSCPOS is not set912912+# CONFIG_SENSORS_GL518SM is not set913913+# CONFIG_SENSORS_GL520SM is not set914914+# CONFIG_SENSORS_IT87 is not set915915+# CONFIG_SENSORS_LM63 is not set916916+# CONFIG_SENSORS_LM75 is not set917917+# CONFIG_SENSORS_LM77 is not set918918+# CONFIG_SENSORS_LM78 is not set919919+# CONFIG_SENSORS_LM80 is not set920920+# CONFIG_SENSORS_LM83 is not set921921+# CONFIG_SENSORS_LM85 is not set922922+# CONFIG_SENSORS_LM87 is not set923923+# CONFIG_SENSORS_LM90 is not set924924+# CONFIG_SENSORS_LM92 is not set925925+# CONFIG_SENSORS_MAX1619 is not set926926+# CONFIG_SENSORS_PC87360 is not set927927+# CONFIG_SENSORS_SMSC47M1 is not set928928+# CONFIG_SENSORS_SMSC47B397 is not set929929+# CONFIG_SENSORS_W83781D is not set930930+# CONFIG_SENSORS_W83792D is not set931931+# CONFIG_SENSORS_W83L785TS is not set932932+# CONFIG_SENSORS_W83627HF is not set933933+# CONFIG_SENSORS_W83627EHF is not set934934+# CONFIG_HWMON_DEBUG_CHIP is not set935935+936936+#937937+# Misc devices938938+#939939+940940+#941941+# Multimedia Capabilities Port drivers942942+#943943+944944+#945945+# Multimedia devices946946+#947947+CONFIG_VIDEO_DEV=m948948+949949+#950950+# Video For Linux951951+#952952+953953+#954954+# Video Adapters955955+#956956+# CONFIG_VIDEO_CPIA is not set957957+# CONFIG_VIDEO_SAA5246A is not set958958+# CONFIG_VIDEO_SAA5249 is not set959959+# CONFIG_TUNER_3036 is not set960960+# CONFIG_VIDEO_OVCAMCHIP is not set961961+962962+#963963+# Radio Adapters964964+#965965+# CONFIG_RADIO_MAESTRO is not set966966+967967+#968968+# Digital Video Broadcasting Devices969969+#970970+# CONFIG_DVB is not set971971+972972+#973973+# Graphics support974974+#975975+CONFIG_FB=y976976+CONFIG_FB_CFB_FILLRECT=y977977+CONFIG_FB_CFB_COPYAREA=y978978+CONFIG_FB_CFB_IMAGEBLIT=y979979+CONFIG_FB_SOFT_CURSOR=y980980+# CONFIG_FB_MACMODES is not set981981+# CONFIG_FB_MODE_HELPERS is not set982982+# CONFIG_FB_TILEBLITTING is not set983983+# CONFIG_FB_PXA is not set984984+CONFIG_FB_W100=y985985+# CONFIG_FB_S1D13XXX is not set986986+# CONFIG_FB_VIRTUAL is not set987987+988988+#989989+# Console display driver support990990+#991991+# CONFIG_VGA_CONSOLE is not set992992+CONFIG_DUMMY_CONSOLE=y993993+CONFIG_FRAMEBUFFER_CONSOLE=y994994+CONFIG_FONTS=y995995+CONFIG_FONT_8x8=y996996+CONFIG_FONT_8x16=y997997+# CONFIG_FONT_6x11 is not set998998+# CONFIG_FONT_7x14 is not set999999+# CONFIG_FONT_PEARL_8x8 is not set10001000+# CONFIG_FONT_ACORN_8x8 is not set10011001+# CONFIG_FONT_MINI_4x6 is not set10021002+# CONFIG_FONT_SUN8x16 is not set10031003+# CONFIG_FONT_SUN12x22 is not set10041004+# CONFIG_FONT_10x18 is not set10051005+10061006+#10071007+# Logo configuration10081008+#10091009+# CONFIG_LOGO is not set10101010+CONFIG_BACKLIGHT_LCD_SUPPORT=y10111011+CONFIG_BACKLIGHT_CLASS_DEVICE=y10121012+CONFIG_BACKLIGHT_DEVICE=y10131013+# CONFIG_LCD_CLASS_DEVICE is not set10141014+CONFIG_BACKLIGHT_CORGI=y10151015+10161016+#10171017+# Sound10181018+#10191019+CONFIG_SOUND=y10201020+10211021+#10221022+# Advanced Linux Sound Architecture10231023+#10241024+# CONFIG_SND is not set10251025+10261026+#10271027+# Open Sound System10281028+#10291029+CONFIG_SOUND_PRIME=y10301030+# CONFIG_SOUND_MSNDCLAS is not set10311031+# CONFIG_SOUND_MSNDPIN is not set10321032+CONFIG_SOUND_OSS=y10331033+# CONFIG_SOUND_TRACEINIT is not set10341034+# CONFIG_SOUND_DMAP is not set10351035+# CONFIG_SOUND_AD1816 is not set10361036+# CONFIG_SOUND_SGALAXY is not set10371037+# CONFIG_SOUND_ADLIB is not set10381038+# CONFIG_SOUND_ACI_MIXER is not set10391039+# CONFIG_SOUND_CS4232 is not set10401040+# CONFIG_SOUND_SSCAPE is not set10411041+# CONFIG_SOUND_GUS is not set10421042+# CONFIG_SOUND_VMIDI is not set10431043+# CONFIG_SOUND_TRIX is not set10441044+# CONFIG_SOUND_MSS is not set10451045+# CONFIG_SOUND_MPU401 is not set10461046+# CONFIG_SOUND_NM256 is not set10471047+# CONFIG_SOUND_MAD16 is not set10481048+# CONFIG_SOUND_PAS is not set10491049+# CONFIG_SOUND_PSS is not set10501050+# CONFIG_SOUND_SB is not set10511051+# CONFIG_SOUND_AWE32_SYNTH is not set10521052+# CONFIG_SOUND_WAVEFRONT is not set10531053+# CONFIG_SOUND_MAUI is not set10541054+# CONFIG_SOUND_YM3812 is not set10551055+# CONFIG_SOUND_OPL3SA1 is not set10561056+# CONFIG_SOUND_OPL3SA2 is not set10571057+# CONFIG_SOUND_UART6850 is not set10581058+# CONFIG_SOUND_AEDSP16 is not set10591059+# CONFIG_SOUND_TVMIXER is not set10601060+# CONFIG_SOUND_AD1980 is not set10611061+10621062+#10631063+# USB support10641064+#10651065+CONFIG_USB_ARCH_HAS_HCD=y10661066+# CONFIG_USB_ARCH_HAS_OHCI is not set10671067+CONFIG_USB=m10681068+# CONFIG_USB_DEBUG is not set10691069+10701070+#10711071+# Miscellaneous USB options10721072+#10731073+CONFIG_USB_DEVICEFS=y10741074+# CONFIG_USB_BANDWIDTH is not set10751075+# CONFIG_USB_DYNAMIC_MINORS is not set10761076+# CONFIG_USB_SUSPEND is not set10771077+# CONFIG_USB_OTG is not set10781078+10791079+#10801080+# USB Host Controller Drivers10811081+#10821082+# CONFIG_USB_ISP116X_HCD is not set10831083+CONFIG_USB_SL811_HCD=m10841084+CONFIG_USB_SL811_CS=m10851085+10861086+#10871087+# USB Device Class drivers10881088+#10891089+# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set10901090+10911091+#10921092+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem10931093+#10941094+CONFIG_USB_ACM=m10951095+CONFIG_USB_PRINTER=m10961096+10971097+#10981098+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information10991099+#11001100+CONFIG_USB_STORAGE=m11011101+# CONFIG_USB_STORAGE_DEBUG is not set11021102+# CONFIG_USB_STORAGE_DATAFAB is not set11031103+# CONFIG_USB_STORAGE_FREECOM is not set11041104+# CONFIG_USB_STORAGE_ISD200 is not set11051105+# CONFIG_USB_STORAGE_DPCM is not set11061106+# CONFIG_USB_STORAGE_USBAT is not set11071107+# CONFIG_USB_STORAGE_SDDR09 is not set11081108+# CONFIG_USB_STORAGE_SDDR55 is not set11091109+# CONFIG_USB_STORAGE_JUMPSHOT is not set11101110+# CONFIG_USB_STORAGE_ONETOUCH is not set11111111+11121112+#11131113+# USB Input Devices11141114+#11151115+CONFIG_USB_HID=m11161116+CONFIG_USB_HIDINPUT=y11171117+# CONFIG_HID_FF is not set11181118+# CONFIG_USB_HIDDEV is not set11191119+11201120+#11211121+# USB HID Boot Protocol drivers11221122+#11231123+CONFIG_USB_KBD=m11241124+CONFIG_USB_MOUSE=m11251125+CONFIG_USB_AIPTEK=m11261126+CONFIG_USB_WACOM=m11271127+# CONFIG_USB_ACECAD is not set11281128+CONFIG_USB_KBTAB=m11291129+CONFIG_USB_POWERMATE=m11301130+CONFIG_USB_MTOUCH=m11311131+# CONFIG_USB_ITMTOUCH is not set11321132+CONFIG_USB_EGALAX=m11331133+# CONFIG_USB_YEALINK is not set11341134+CONFIG_USB_XPAD=m11351135+CONFIG_USB_ATI_REMOTE=m11361136+# CONFIG_USB_KEYSPAN_REMOTE is not set11371137+# CONFIG_USB_APPLETOUCH is not set11381138+11391139+#11401140+# USB Imaging devices11411141+#11421142+CONFIG_USB_MDC800=m11431143+CONFIG_USB_MICROTEK=m11441144+11451145+#11461146+# USB Multimedia devices11471147+#11481148+CONFIG_USB_DABUSB=m11491149+CONFIG_USB_VICAM=m11501150+CONFIG_USB_DSBR=m11511151+CONFIG_USB_IBMCAM=m11521152+CONFIG_USB_KONICAWC=m11531153+CONFIG_USB_OV511=m11541154+CONFIG_USB_SE401=m11551155+CONFIG_USB_SN9C102=m11561156+CONFIG_USB_STV680=m11571157+# CONFIG_USB_PWC is not set11581158+11591159+#11601160+# USB Network Adapters11611161+#11621162+CONFIG_USB_CATC=m11631163+CONFIG_USB_KAWETH=m11641164+CONFIG_USB_PEGASUS=m11651165+CONFIG_USB_RTL8150=m11661166+CONFIG_USB_USBNET=m11671167+CONFIG_USB_NET_AX8817X=m11681168+CONFIG_USB_NET_CDCETHER=m11691169+# CONFIG_USB_NET_GL620A is not set11701170+CONFIG_USB_NET_NET1080=m11711171+# CONFIG_USB_NET_PLUSB is not set11721172+# CONFIG_USB_NET_RNDIS_HOST is not set11731173+# CONFIG_USB_NET_CDC_SUBSET is not set11741174+CONFIG_USB_NET_ZAURUS=m11751175+# CONFIG_USB_ZD1201 is not set11761176+CONFIG_USB_MON=y11771177+11781178+#11791179+# USB port drivers11801180+#11811181+11821182+#11831183+# USB Serial Converter support11841184+#11851185+CONFIG_USB_SERIAL=m11861186+CONFIG_USB_SERIAL_GENERIC=y11871187+# CONFIG_USB_SERIAL_AIRPRIME is not set11881188+CONFIG_USB_SERIAL_BELKIN=m11891189+# CONFIG_USB_SERIAL_WHITEHEAT is not set11901190+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m11911191+# CONFIG_USB_SERIAL_CP2101 is not set11921192+CONFIG_USB_SERIAL_CYPRESS_M8=m11931193+CONFIG_USB_SERIAL_EMPEG=m11941194+CONFIG_USB_SERIAL_FTDI_SIO=m11951195+CONFIG_USB_SERIAL_VISOR=m11961196+CONFIG_USB_SERIAL_IPAQ=m11971197+CONFIG_USB_SERIAL_IR=m11981198+CONFIG_USB_SERIAL_EDGEPORT=m11991199+CONFIG_USB_SERIAL_EDGEPORT_TI=m12001200+CONFIG_USB_SERIAL_GARMIN=m12011201+CONFIG_USB_SERIAL_IPW=m12021202+CONFIG_USB_SERIAL_KEYSPAN_PDA=m12031203+CONFIG_USB_SERIAL_KEYSPAN=m12041204+# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set12051205+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set12061206+# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set12071207+# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set12081208+# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set12091209+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set12101210+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set12111211+# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set12121212+# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set12131213+# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set12141214+# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set12151215+# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set12161216+CONFIG_USB_SERIAL_KLSI=m12171217+CONFIG_USB_SERIAL_KOBIL_SCT=m12181218+CONFIG_USB_SERIAL_MCT_U232=m12191219+CONFIG_USB_SERIAL_PL2303=m12201220+# CONFIG_USB_SERIAL_HP4X is not set12211221+CONFIG_USB_SERIAL_SAFE=m12221222+# CONFIG_USB_SERIAL_SAFE_PADDED is not set12231223+CONFIG_USB_SERIAL_TI=m12241224+CONFIG_USB_SERIAL_CYBERJACK=m12251225+CONFIG_USB_SERIAL_XIRCOM=m12261226+CONFIG_USB_SERIAL_OMNINET=m12271227+CONFIG_USB_EZUSB=y12281228+12291229+#12301230+# USB Miscellaneous drivers12311231+#12321232+CONFIG_USB_EMI62=m12331233+CONFIG_USB_EMI26=m12341234+CONFIG_USB_AUERSWALD=m12351235+CONFIG_USB_RIO500=m12361236+CONFIG_USB_LEGOTOWER=m12371237+CONFIG_USB_LCD=m12381238+CONFIG_USB_LED=m12391239+CONFIG_USB_CYTHERM=m12401240+CONFIG_USB_PHIDGETKIT=m12411241+CONFIG_USB_PHIDGETSERVO=m12421242+CONFIG_USB_IDMOUSE=m12431243+# CONFIG_USB_LD is not set12441244+# CONFIG_USB_TEST is not set12451245+12461246+#12471247+# USB DSL modem support12481248+#12491249+12501250+#12511251+# USB Gadget Support12521252+#12531253+CONFIG_USB_GADGET=y12541254+# CONFIG_USB_GADGET_DEBUG_FILES is not set12551255+CONFIG_USB_GADGET_SELECTED=y12561256+# CONFIG_USB_GADGET_NET2280 is not set12571257+CONFIG_USB_GADGET_PXA2XX=y12581258+CONFIG_USB_PXA2XX=y12591259+# CONFIG_USB_PXA2XX_SMALL is not set12601260+# CONFIG_USB_GADGET_GOKU is not set12611261+# CONFIG_USB_GADGET_LH7A40X is not set12621262+# CONFIG_USB_GADGET_OMAP is not set12631263+# CONFIG_USB_GADGET_DUMMY_HCD is not set12641264+# CONFIG_USB_GADGET_DUALSPEED is not set12651265+CONFIG_USB_ZERO=m12661266+CONFIG_USB_ETH=m12671267+CONFIG_USB_ETH_RNDIS=y12681268+CONFIG_USB_GADGETFS=m12691269+CONFIG_USB_FILE_STORAGE=m12701270+# CONFIG_USB_FILE_STORAGE_TEST is not set12711271+CONFIG_USB_G_SERIAL=m12721272+12731273+#12741274+# MMC/SD Card support12751275+#12761276+CONFIG_MMC=y12771277+# CONFIG_MMC_DEBUG is not set12781278+CONFIG_MMC_BLOCK=y12791279+CONFIG_MMC_PXA=y12801280+# CONFIG_MMC_WBSD is not set12811281+12821282+#12831283+# File systems12841284+#12851285+CONFIG_EXT2_FS=y12861286+# CONFIG_EXT2_FS_XATTR is not set12871287+# CONFIG_EXT2_FS_XIP is not set12881288+# CONFIG_EXT3_FS is not set12891289+# CONFIG_JBD is not set12901290+# CONFIG_REISERFS_FS is not set12911291+# CONFIG_JFS_FS is not set12921292+# CONFIG_FS_POSIX_ACL is not set12931293+# CONFIG_XFS_FS is not set12941294+# CONFIG_MINIX_FS is not set12951295+# CONFIG_ROMFS_FS is not set12961296+CONFIG_INOTIFY=y12971297+# CONFIG_QUOTA is not set12981298+CONFIG_DNOTIFY=y12991299+# CONFIG_AUTOFS_FS is not set13001300+# CONFIG_AUTOFS4_FS is not set13011301+# CONFIG_FUSE_FS is not set13021302+13031303+#13041304+# CD-ROM/DVD Filesystems13051305+#13061306+# CONFIG_ISO9660_FS is not set13071307+# CONFIG_UDF_FS is not set13081308+13091309+#13101310+# DOS/FAT/NT Filesystems13111311+#13121312+CONFIG_FAT_FS=y13131313+CONFIG_MSDOS_FS=y13141314+CONFIG_VFAT_FS=y13151315+CONFIG_FAT_DEFAULT_CODEPAGE=43713161316+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"13171317+# CONFIG_NTFS_FS is not set13181318+13191319+#13201320+# Pseudo filesystems13211321+#13221322+CONFIG_PROC_FS=y13231323+CONFIG_SYSFS=y13241324+CONFIG_TMPFS=y13251325+# CONFIG_HUGETLB_PAGE is not set13261326+CONFIG_RAMFS=y13271327+# CONFIG_RELAYFS_FS is not set13281328+13291329+#13301330+# Miscellaneous filesystems13311331+#13321332+# CONFIG_ADFS_FS is not set13331333+# CONFIG_AFFS_FS is not set13341334+# CONFIG_HFS_FS is not set13351335+# CONFIG_HFSPLUS_FS is not set13361336+# CONFIG_BEFS_FS is not set13371337+# CONFIG_BFS_FS is not set13381338+# CONFIG_EFS_FS is not set13391339+# CONFIG_JFFS_FS is not set13401340+CONFIG_JFFS2_FS=y13411341+CONFIG_JFFS2_FS_DEBUG=013421342+CONFIG_JFFS2_FS_WRITEBUFFER=y13431343+CONFIG_JFFS2_COMPRESSION_OPTIONS=y13441344+CONFIG_JFFS2_ZLIB=y13451345+CONFIG_JFFS2_RTIME=y13461346+CONFIG_JFFS2_RUBIN=y13471347+# CONFIG_JFFS2_CMODE_NONE is not set13481348+CONFIG_JFFS2_CMODE_PRIORITY=y13491349+# CONFIG_JFFS2_CMODE_SIZE is not set13501350+CONFIG_CRAMFS=m13511351+# CONFIG_VXFS_FS is not set13521352+# CONFIG_HPFS_FS is not set13531353+# CONFIG_QNX4FS_FS is not set13541354+# CONFIG_SYSV_FS is not set13551355+# CONFIG_UFS_FS is not set13561356+13571357+#13581358+# Network File Systems13591359+#13601360+CONFIG_NFS_FS=m13611361+CONFIG_NFS_V3=y13621362+# CONFIG_NFS_V3_ACL is not set13631363+CONFIG_NFS_V4=y13641364+# CONFIG_NFS_DIRECTIO is not set13651365+# CONFIG_NFSD is not set13661366+CONFIG_LOCKD=m13671367+CONFIG_LOCKD_V4=y13681368+CONFIG_NFS_COMMON=y13691369+CONFIG_SUNRPC=m13701370+CONFIG_SUNRPC_GSS=m13711371+CONFIG_RPCSEC_GSS_KRB5=m13721372+# CONFIG_RPCSEC_GSS_SPKM3 is not set13731373+CONFIG_SMB_FS=m13741374+CONFIG_SMB_NLS_DEFAULT=y13751375+CONFIG_SMB_NLS_REMOTE="cp437"13761376+# CONFIG_CIFS is not set13771377+# CONFIG_NCP_FS is not set13781378+# CONFIG_CODA_FS is not set13791379+# CONFIG_AFS_FS is not set13801380+# CONFIG_9P_FS is not set13811381+13821382+#13831383+# Partition Types13841384+#13851385+CONFIG_PARTITION_ADVANCED=y13861386+# CONFIG_ACORN_PARTITION is not set13871387+# CONFIG_OSF_PARTITION is not set13881388+# CONFIG_AMIGA_PARTITION is not set13891389+# CONFIG_ATARI_PARTITION is not set13901390+# CONFIG_MAC_PARTITION is not set13911391+CONFIG_MSDOS_PARTITION=y13921392+# CONFIG_BSD_DISKLABEL is not set13931393+# CONFIG_MINIX_SUBPARTITION is not set13941394+# CONFIG_SOLARIS_X86_PARTITION is not set13951395+# CONFIG_UNIXWARE_DISKLABEL is not set13961396+# CONFIG_LDM_PARTITION is not set13971397+# CONFIG_SGI_PARTITION is not set13981398+# CONFIG_ULTRIX_PARTITION is not set13991399+# CONFIG_SUN_PARTITION is not set14001400+# CONFIG_EFI_PARTITION is not set14011401+14021402+#14031403+# Native Language Support14041404+#14051405+CONFIG_NLS=y14061406+CONFIG_NLS_DEFAULT="cp437"14071407+CONFIG_NLS_CODEPAGE_437=y14081408+# CONFIG_NLS_CODEPAGE_737 is not set14091409+# CONFIG_NLS_CODEPAGE_775 is not set14101410+# CONFIG_NLS_CODEPAGE_850 is not set14111411+# CONFIG_NLS_CODEPAGE_852 is not set14121412+# CONFIG_NLS_CODEPAGE_855 is not set14131413+# CONFIG_NLS_CODEPAGE_857 is not set14141414+# CONFIG_NLS_CODEPAGE_860 is not set14151415+# CONFIG_NLS_CODEPAGE_861 is not set14161416+# CONFIG_NLS_CODEPAGE_862 is not set14171417+# CONFIG_NLS_CODEPAGE_863 is not set14181418+# CONFIG_NLS_CODEPAGE_864 is not set14191419+# CONFIG_NLS_CODEPAGE_865 is not set14201420+# CONFIG_NLS_CODEPAGE_866 is not set14211421+# CONFIG_NLS_CODEPAGE_869 is not set14221422+# CONFIG_NLS_CODEPAGE_936 is not set14231423+# CONFIG_NLS_CODEPAGE_950 is not set14241424+# CONFIG_NLS_CODEPAGE_932 is not set14251425+# CONFIG_NLS_CODEPAGE_949 is not set14261426+# CONFIG_NLS_CODEPAGE_874 is not set14271427+# CONFIG_NLS_ISO8859_8 is not set14281428+# CONFIG_NLS_CODEPAGE_1250 is not set14291429+# CONFIG_NLS_CODEPAGE_1251 is not set14301430+# CONFIG_NLS_ASCII is not set14311431+CONFIG_NLS_ISO8859_1=y14321432+# CONFIG_NLS_ISO8859_2 is not set14331433+# CONFIG_NLS_ISO8859_3 is not set14341434+# CONFIG_NLS_ISO8859_4 is not set14351435+# CONFIG_NLS_ISO8859_5 is not set14361436+# CONFIG_NLS_ISO8859_6 is not set14371437+# CONFIG_NLS_ISO8859_7 is not set14381438+# CONFIG_NLS_ISO8859_9 is not set14391439+# CONFIG_NLS_ISO8859_13 is not set14401440+# CONFIG_NLS_ISO8859_14 is not set14411441+# CONFIG_NLS_ISO8859_15 is not set14421442+# CONFIG_NLS_KOI8_R is not set14431443+# CONFIG_NLS_KOI8_U is not set14441444+CONFIG_NLS_UTF8=y14451445+14461446+#14471447+# Profiling support14481448+#14491449+CONFIG_PROFILING=y14501450+CONFIG_OPROFILE=m14511451+14521452+#14531453+# Kernel hacking14541454+#14551455+# CONFIG_PRINTK_TIME is not set14561456+CONFIG_DEBUG_KERNEL=y14571457+CONFIG_MAGIC_SYSRQ=y14581458+CONFIG_LOG_BUF_SHIFT=1414591459+CONFIG_DETECT_SOFTLOCKUP=y14601460+# CONFIG_SCHEDSTATS is not set14611461+# CONFIG_DEBUG_SLAB is not set14621462+# CONFIG_DEBUG_PREEMPT is not set14631463+# CONFIG_DEBUG_SPINLOCK is not set14641464+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set14651465+# CONFIG_DEBUG_KOBJECT is not set14661466+CONFIG_DEBUG_BUGVERBOSE=y14671467+# CONFIG_DEBUG_INFO is not set14681468+# CONFIG_DEBUG_FS is not set14691469+CONFIG_FRAME_POINTER=y14701470+# CONFIG_DEBUG_USER is not set14711471+# CONFIG_DEBUG_WAITQ is not set14721472+CONFIG_DEBUG_ERRORS=y14731473+CONFIG_DEBUG_LL=y14741474+# CONFIG_DEBUG_ICEDCC is not set14751475+14761476+#14771477+# Security options14781478+#14791479+# CONFIG_KEYS is not set14801480+# CONFIG_SECURITY is not set14811481+14821482+#14831483+# Cryptographic options14841484+#14851485+CONFIG_CRYPTO=y14861486+CONFIG_CRYPTO_HMAC=y14871487+CONFIG_CRYPTO_NULL=m14881488+CONFIG_CRYPTO_MD4=m14891489+CONFIG_CRYPTO_MD5=m14901490+CONFIG_CRYPTO_SHA1=m14911491+CONFIG_CRYPTO_SHA256=m14921492+CONFIG_CRYPTO_SHA512=m14931493+CONFIG_CRYPTO_WP512=m14941494+# CONFIG_CRYPTO_TGR192 is not set14951495+CONFIG_CRYPTO_DES=m14961496+CONFIG_CRYPTO_BLOWFISH=m14971497+CONFIG_CRYPTO_TWOFISH=m14981498+CONFIG_CRYPTO_SERPENT=m14991499+CONFIG_CRYPTO_AES=m15001500+CONFIG_CRYPTO_CAST5=m15011501+CONFIG_CRYPTO_CAST6=m15021502+CONFIG_CRYPTO_TEA=m15031503+CONFIG_CRYPTO_ARC4=m15041504+CONFIG_CRYPTO_KHAZAD=m15051505+CONFIG_CRYPTO_ANUBIS=m15061506+CONFIG_CRYPTO_DEFLATE=m15071507+CONFIG_CRYPTO_MICHAEL_MIC=m15081508+CONFIG_CRYPTO_CRC32C=m15091509+CONFIG_CRYPTO_TEST=m15101510+15111511+#15121512+# Hardware crypto devices15131513+#15141514+15151515+#15161516+# Library routines15171517+#15181518+CONFIG_CRC_CCITT=y15191519+# CONFIG_CRC16 is not set15201520+CONFIG_CRC32=y15211521+CONFIG_LIBCRC32C=m15221522+CONFIG_ZLIB_INFLATE=y15231523+CONFIG_ZLIB_DEFLATE=y
+1015
arch/arm/configs/poodle_defconfig
···11+#22+# Automatically generated make config: don't edit33+# Linux kernel version: 2.6.14-rc344+# Sun Oct 9 17:04:29 200555+#66+CONFIG_ARM=y77+CONFIG_MMU=y88+CONFIG_UID16=y99+CONFIG_RWSEM_GENERIC_SPINLOCK=y1010+CONFIG_GENERIC_CALIBRATE_DELAY=y1111+1212+#1313+# Code maturity level options1414+#1515+CONFIG_EXPERIMENTAL=y1616+CONFIG_CLEAN_COMPILE=y1717+CONFIG_BROKEN_ON_SMP=y1818+CONFIG_LOCK_KERNEL=y1919+CONFIG_INIT_ENV_ARG_LIMIT=322020+2121+#2222+# General setup2323+#2424+CONFIG_LOCALVERSION=""2525+CONFIG_LOCALVERSION_AUTO=y2626+CONFIG_SWAP=y2727+CONFIG_SYSVIPC=y2828+# CONFIG_POSIX_MQUEUE is not set2929+CONFIG_BSD_PROCESS_ACCT=y3030+# CONFIG_BSD_PROCESS_ACCT_V3 is not set3131+CONFIG_SYSCTL=y3232+# CONFIG_AUDIT is not set3333+CONFIG_HOTPLUG=y3434+CONFIG_KOBJECT_UEVENT=y3535+# CONFIG_IKCONFIG is not set3636+CONFIG_INITRAMFS_SOURCE=""3737+CONFIG_EMBEDDED=y3838+CONFIG_KALLSYMS=y3939+# CONFIG_KALLSYMS_ALL is not set4040+# CONFIG_KALLSYMS_EXTRA_PASS is not set4141+CONFIG_PRINTK=y4242+CONFIG_BUG=y4343+CONFIG_BASE_FULL=y4444+CONFIG_FUTEX=y4545+CONFIG_EPOLL=y4646+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set4747+CONFIG_SHMEM=y4848+CONFIG_CC_ALIGN_FUNCTIONS=04949+CONFIG_CC_ALIGN_LABELS=05050+CONFIG_CC_ALIGN_LOOPS=05151+CONFIG_CC_ALIGN_JUMPS=05252+# CONFIG_TINY_SHMEM is not set5353+CONFIG_BASE_SMALL=05454+5555+#5656+# Loadable module support5757+#5858+CONFIG_MODULES=y5959+CONFIG_MODULE_UNLOAD=y6060+CONFIG_MODULE_FORCE_UNLOAD=y6161+CONFIG_OBSOLETE_MODPARM=y6262+CONFIG_MODVERSIONS=y6363+# CONFIG_MODULE_SRCVERSION_ALL is not set6464+CONFIG_KMOD=y6565+6666+#6767+# System Type6868+#6969+# CONFIG_ARCH_CLPS7500 is not set7070+# CONFIG_ARCH_CLPS711X is not set7171+# CONFIG_ARCH_CO285 is not set7272+# CONFIG_ARCH_EBSA110 is not set7373+# CONFIG_ARCH_CAMELOT is not set7474+# CONFIG_ARCH_FOOTBRIDGE is not set7575+# CONFIG_ARCH_INTEGRATOR is not set7676+# CONFIG_ARCH_IOP3XX is not set7777+# CONFIG_ARCH_IXP4XX is not set7878+# CONFIG_ARCH_IXP2000 is not set7979+# CONFIG_ARCH_L7200 is not set8080+CONFIG_ARCH_PXA=y8181+# CONFIG_ARCH_RPC is not set8282+# CONFIG_ARCH_SA1100 is not set8383+# CONFIG_ARCH_S3C2410 is not set8484+# CONFIG_ARCH_SHARK is not set8585+# CONFIG_ARCH_LH7A40X is not set8686+# CONFIG_ARCH_OMAP is not set8787+# CONFIG_ARCH_VERSATILE is not set8888+# CONFIG_ARCH_IMX is not set8989+# CONFIG_ARCH_H720X is not set9090+# CONFIG_ARCH_AAEC2000 is not set9191+9292+#9393+# Intel PXA2xx Implementations9494+#9595+# CONFIG_ARCH_LUBBOCK is not set9696+# CONFIG_MACH_MAINSTONE is not set9797+# CONFIG_ARCH_PXA_IDP is not set9898+CONFIG_PXA_SHARPSL=y9999+CONFIG_PXA_SHARPSL_25x=y100100+# CONFIG_PXA_SHARPSL_27x is not set101101+CONFIG_MACH_POODLE=y102102+# CONFIG_MACH_CORGI is not set103103+# CONFIG_MACH_SHEPHERD is not set104104+# CONFIG_MACH_HUSKY is not set105105+CONFIG_PXA25x=y106106+107107+#108108+# Processor Type109109+#110110+CONFIG_CPU_32=y111111+CONFIG_CPU_XSCALE=y112112+CONFIG_CPU_32v5=y113113+CONFIG_CPU_ABRT_EV5T=y114114+CONFIG_CPU_CACHE_VIVT=y115115+CONFIG_CPU_TLB_V4WBI=y116116+117117+#118118+# Processor Features119119+#120120+CONFIG_ARM_THUMB=y121121+CONFIG_XSCALE_PMU=y122122+CONFIG_SHARP_LOCOMO=y123123+CONFIG_SHARP_PARAM=y124124+CONFIG_SHARP_SCOOP=y125125+126126+#127127+# Bus support128128+#129129+CONFIG_ISA_DMA_API=y130130+131131+#132132+# PCCARD (PCMCIA/CardBus) support133133+#134134+CONFIG_PCCARD=y135135+# CONFIG_PCMCIA_DEBUG is not set136136+CONFIG_PCMCIA=y137137+CONFIG_PCMCIA_LOAD_CIS=y138138+CONFIG_PCMCIA_IOCTL=y139139+140140+#141141+# PC-card bridges142142+#143143+CONFIG_PCMCIA_PXA2XX=y144144+145145+#146146+# Kernel Features147147+#148148+CONFIG_PREEMPT=y149149+# CONFIG_NO_IDLE_HZ is not set150150+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set151151+CONFIG_SELECT_MEMORY_MODEL=y152152+CONFIG_FLATMEM_MANUAL=y153153+# CONFIG_DISCONTIGMEM_MANUAL is not set154154+# CONFIG_SPARSEMEM_MANUAL is not set155155+CONFIG_FLATMEM=y156156+CONFIG_FLAT_NODE_MEM_MAP=y157157+# CONFIG_SPARSEMEM_STATIC is not set158158+CONFIG_ALIGNMENT_TRAP=y159159+160160+#161161+# Boot options162162+#163163+CONFIG_ZBOOT_ROM_TEXT=0x0164164+CONFIG_ZBOOT_ROM_BSS=0x0165165+CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug"166166+# CONFIG_XIP_KERNEL is not set167167+168168+#169169+# Floating point emulation170170+#171171+172172+#173173+# At least one emulation must be selected174174+#175175+CONFIG_FPE_NWFPE=y176176+# CONFIG_FPE_NWFPE_XP is not set177177+# CONFIG_FPE_FASTFPE is not set178178+179179+#180180+# Userspace binary formats181181+#182182+CONFIG_BINFMT_ELF=y183183+CONFIG_BINFMT_AOUT=m184184+CONFIG_BINFMT_MISC=m185185+# CONFIG_ARTHUR is not set186186+187187+#188188+# Power management options189189+#190190+CONFIG_PM=y191191+CONFIG_APM=y192192+193193+#194194+# Networking195195+#196196+CONFIG_NET=y197197+198198+#199199+# Networking options200200+#201201+CONFIG_PACKET=y202202+CONFIG_PACKET_MMAP=y203203+CONFIG_UNIX=y204204+# CONFIG_NET_KEY is not set205205+CONFIG_INET=y206206+# CONFIG_IP_MULTICAST is not set207207+# CONFIG_IP_ADVANCED_ROUTER is not set208208+CONFIG_IP_FIB_HASH=y209209+# CONFIG_IP_PNP is not set210210+# CONFIG_NET_IPIP is not set211211+# CONFIG_NET_IPGRE is not set212212+# CONFIG_ARPD is not set213213+CONFIG_SYN_COOKIES=y214214+# CONFIG_INET_AH is not set215215+# CONFIG_INET_ESP is not set216216+# CONFIG_INET_IPCOMP is not set217217+# CONFIG_INET_TUNNEL is not set218218+CONFIG_INET_DIAG=y219219+CONFIG_INET_TCP_DIAG=y220220+# CONFIG_TCP_CONG_ADVANCED is not set221221+CONFIG_TCP_CONG_BIC=y222222+# CONFIG_IPV6 is not set223223+# CONFIG_NETFILTER is not set224224+225225+#226226+# DCCP Configuration (EXPERIMENTAL)227227+#228228+# CONFIG_IP_DCCP is not set229229+230230+#231231+# SCTP Configuration (EXPERIMENTAL)232232+#233233+# CONFIG_IP_SCTP is not set234234+# CONFIG_ATM is not set235235+# CONFIG_BRIDGE is not set236236+# CONFIG_VLAN_8021Q is not set237237+# CONFIG_DECNET is not set238238+# CONFIG_LLC2 is not set239239+# CONFIG_IPX is not set240240+# CONFIG_ATALK is not set241241+# CONFIG_X25 is not set242242+# CONFIG_LAPB is not set243243+# CONFIG_NET_DIVERT is not set244244+# CONFIG_ECONET is not set245245+# CONFIG_WAN_ROUTER is not set246246+# CONFIG_NET_SCHED is not set247247+# CONFIG_NET_CLS_ROUTE is not set248248+249249+#250250+# Network testing251251+#252252+# CONFIG_NET_PKTGEN is not set253253+# CONFIG_HAMRADIO is not set254254+# CONFIG_IRDA is not set255255+# CONFIG_BT is not set256256+# CONFIG_IEEE80211 is not set257257+258258+#259259+# Device Drivers260260+#261261+262262+#263263+# Generic Driver Options264264+#265265+CONFIG_STANDALONE=y266266+CONFIG_PREVENT_FIRMWARE_BUILD=y267267+CONFIG_FW_LOADER=y268268+# CONFIG_DEBUG_DRIVER is not set269269+270270+#271271+# Memory Technology Devices (MTD)272272+#273273+CONFIG_MTD=y274274+# CONFIG_MTD_DEBUG is not set275275+# CONFIG_MTD_CONCAT is not set276276+CONFIG_MTD_PARTITIONS=y277277+# CONFIG_MTD_REDBOOT_PARTS is not set278278+# CONFIG_MTD_CMDLINE_PARTS is not set279279+# CONFIG_MTD_AFS_PARTS is not set280280+281281+#282282+# User Modules And Translation Layers283283+#284284+CONFIG_MTD_CHAR=y285285+CONFIG_MTD_BLOCK=y286286+# CONFIG_FTL is not set287287+# CONFIG_NFTL is not set288288+# CONFIG_INFTL is not set289289+290290+#291291+# RAM/ROM/Flash chip drivers292292+#293293+# CONFIG_MTD_CFI is not set294294+# CONFIG_MTD_JEDECPROBE is not set295295+CONFIG_MTD_MAP_BANK_WIDTH_1=y296296+CONFIG_MTD_MAP_BANK_WIDTH_2=y297297+CONFIG_MTD_MAP_BANK_WIDTH_4=y298298+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set299299+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set300300+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set301301+CONFIG_MTD_CFI_I1=y302302+CONFIG_MTD_CFI_I2=y303303+# CONFIG_MTD_CFI_I4 is not set304304+# CONFIG_MTD_CFI_I8 is not set305305+# CONFIG_MTD_RAM is not set306306+# CONFIG_MTD_ROM is not set307307+# CONFIG_MTD_ABSENT is not set308308+309309+#310310+# Mapping drivers for chip access311311+#312312+CONFIG_MTD_COMPLEX_MAPPINGS=y313313+CONFIG_MTD_SHARP_SL=y314314+# CONFIG_MTD_PLATRAM is not set315315+316316+#317317+# Self-contained MTD device drivers318318+#319319+# CONFIG_MTD_SLRAM is not set320320+# CONFIG_MTD_PHRAM is not set321321+# CONFIG_MTD_MTDRAM is not set322322+# CONFIG_MTD_BLKMTD is not set323323+# CONFIG_MTD_BLOCK2MTD is not set324324+325325+#326326+# Disk-On-Chip Device Drivers327327+#328328+# CONFIG_MTD_DOC2000 is not set329329+# CONFIG_MTD_DOC2001 is not set330330+# CONFIG_MTD_DOC2001PLUS is not set331331+332332+#333333+# NAND Flash Device Drivers334334+#335335+CONFIG_MTD_NAND=y336336+CONFIG_MTD_NAND_VERIFY_WRITE=y337337+# CONFIG_MTD_NAND_H1900 is not set338338+CONFIG_MTD_NAND_IDS=y339339+# CONFIG_MTD_NAND_DISKONCHIP is not set340340+CONFIG_MTD_NAND_SHARPSL=y341341+# CONFIG_MTD_NAND_NANDSIM is not set342342+343343+#344344+# Parallel port support345345+#346346+# CONFIG_PARPORT is not set347347+348348+#349349+# Plug and Play support350350+#351351+352352+#353353+# Block devices354354+#355355+# CONFIG_BLK_DEV_COW_COMMON is not set356356+CONFIG_BLK_DEV_LOOP=y357357+# CONFIG_BLK_DEV_CRYPTOLOOP is not set358358+# CONFIG_BLK_DEV_NBD is not set359359+# CONFIG_BLK_DEV_RAM is not set360360+CONFIG_BLK_DEV_RAM_COUNT=16361361+# CONFIG_CDROM_PKTCDVD is not set362362+363363+#364364+# IO Schedulers365365+#366366+CONFIG_IOSCHED_NOOP=y367367+CONFIG_IOSCHED_AS=y368368+CONFIG_IOSCHED_DEADLINE=y369369+CONFIG_IOSCHED_CFQ=y370370+# CONFIG_ATA_OVER_ETH is not set371371+372372+#373373+# ATA/ATAPI/MFM/RLL support374374+#375375+CONFIG_IDE=y376376+CONFIG_BLK_DEV_IDE=y377377+378378+#379379+# Please see Documentation/ide.txt for help/info on IDE drives380380+#381381+# CONFIG_BLK_DEV_IDE_SATA is not set382382+CONFIG_BLK_DEV_IDEDISK=y383383+# CONFIG_IDEDISK_MULTI_MODE is not set384384+CONFIG_BLK_DEV_IDECS=y385385+# CONFIG_BLK_DEV_IDECD is not set386386+# CONFIG_BLK_DEV_IDETAPE is not set387387+# CONFIG_BLK_DEV_IDEFLOPPY is not set388388+# CONFIG_IDE_TASK_IOCTL is not set389389+390390+#391391+# IDE chipset support/bugfixes392392+#393393+CONFIG_IDE_GENERIC=y394394+# CONFIG_IDE_ARM is not set395395+# CONFIG_BLK_DEV_IDEDMA is not set396396+# CONFIG_IDEDMA_AUTO is not set397397+# CONFIG_BLK_DEV_HD is not set398398+399399+#400400+# SCSI device support401401+#402402+# CONFIG_RAID_ATTRS is not set403403+# CONFIG_SCSI is not set404404+405405+#406406+# Multi-device support (RAID and LVM)407407+#408408+# CONFIG_MD is not set409409+410410+#411411+# Fusion MPT device support412412+#413413+# CONFIG_FUSION is not set414414+415415+#416416+# IEEE 1394 (FireWire) support417417+#418418+419419+#420420+# I2O device support421421+#422422+423423+#424424+# Network device support425425+#426426+CONFIG_NETDEVICES=y427427+# CONFIG_DUMMY is not set428428+# CONFIG_BONDING is not set429429+# CONFIG_EQUALIZER is not set430430+# CONFIG_TUN is not set431431+432432+#433433+# PHY device support434434+#435435+# CONFIG_PHYLIB is not set436436+437437+#438438+# Ethernet (10 or 100Mbit)439439+#440440+CONFIG_NET_ETHERNET=y441441+# CONFIG_MII is not set442442+# CONFIG_SMC91X is not set443443+# CONFIG_DM9000 is not set444444+445445+#446446+# Ethernet (1000 Mbit)447447+#448448+449449+#450450+# Ethernet (10000 Mbit)451451+#452452+453453+#454454+# Token Ring devices455455+#456456+457457+#458458+# Wireless LAN (non-hamradio)459459+#460460+CONFIG_NET_RADIO=y461461+462462+#463463+# Obsolete Wireless cards support (pre-802.11)464464+#465465+# CONFIG_STRIP is not set466466+# CONFIG_PCMCIA_WAVELAN is not set467467+# CONFIG_PCMCIA_NETWAVE is not set468468+469469+#470470+# Wireless 802.11 Frequency Hopping cards support471471+#472472+# CONFIG_PCMCIA_RAYCS is not set473473+474474+#475475+# Wireless 802.11b ISA/PCI cards support476476+#477477+# CONFIG_HERMES is not set478478+# CONFIG_ATMEL is not set479479+480480+#481481+# Wireless 802.11b Pcmcia/Cardbus cards support482482+#483483+# CONFIG_AIRO_CS is not set484484+# CONFIG_PCMCIA_WL3501 is not set485485+# CONFIG_HOSTAP is not set486486+CONFIG_NET_WIRELESS=y487487+488488+#489489+# PCMCIA network device support490490+#491491+CONFIG_NET_PCMCIA=y492492+# CONFIG_PCMCIA_3C589 is not set493493+# CONFIG_PCMCIA_3C574 is not set494494+# CONFIG_PCMCIA_FMVJ18X is not set495495+CONFIG_PCMCIA_PCNET=y496496+# CONFIG_PCMCIA_NMCLAN is not set497497+# CONFIG_PCMCIA_SMC91C92 is not set498498+# CONFIG_PCMCIA_XIRC2PS is not set499499+# CONFIG_PCMCIA_AXNET is not set500500+501501+#502502+# Wan interfaces503503+#504504+# CONFIG_WAN is not set505505+CONFIG_PPP=m506506+# CONFIG_PPP_MULTILINK is not set507507+# CONFIG_PPP_FILTER is not set508508+CONFIG_PPP_ASYNC=m509509+# CONFIG_PPP_SYNC_TTY is not set510510+# CONFIG_PPP_DEFLATE is not set511511+CONFIG_PPP_BSDCOMP=m512512+# CONFIG_PPPOE is not set513513+# CONFIG_SLIP is not set514514+# CONFIG_SHAPER is not set515515+# CONFIG_NETCONSOLE is not set516516+# CONFIG_NETPOLL is not set517517+# CONFIG_NET_POLL_CONTROLLER is not set518518+519519+#520520+# ISDN subsystem521521+#522522+# CONFIG_ISDN is not set523523+524524+#525525+# Input device support526526+#527527+CONFIG_INPUT=y528528+529529+#530530+# Userland interfaces531531+#532532+# CONFIG_INPUT_MOUSEDEV is not set533533+# CONFIG_INPUT_JOYDEV is not set534534+CONFIG_INPUT_TSDEV=y535535+CONFIG_INPUT_TSDEV_SCREEN_X=240536536+CONFIG_INPUT_TSDEV_SCREEN_Y=320537537+CONFIG_INPUT_EVDEV=y538538+CONFIG_INPUT_EVBUG=y539539+540540+#541541+# Input Device Drivers542542+#543543+CONFIG_INPUT_KEYBOARD=y544544+# CONFIG_KEYBOARD_ATKBD is not set545545+# CONFIG_KEYBOARD_SUNKBD is not set546546+# CONFIG_KEYBOARD_LKKBD is not set547547+CONFIG_KEYBOARD_LOCOMO=y548548+# CONFIG_KEYBOARD_XTKBD is not set549549+# CONFIG_KEYBOARD_NEWTON is not set550550+# CONFIG_KEYBOARD_CORGI is not set551551+CONFIG_KEYBOARD_SPITZ=y552552+# CONFIG_INPUT_MOUSE is not set553553+# CONFIG_INPUT_JOYSTICK is not set554554+# CONFIG_INPUT_TOUCHSCREEN is not set555555+# CONFIG_INPUT_MISC is not set556556+557557+#558558+# Hardware I/O ports559559+#560560+# CONFIG_SERIO is not set561561+# CONFIG_GAMEPORT is not set562562+563563+#564564+# Character devices565565+#566566+CONFIG_VT=y567567+CONFIG_VT_CONSOLE=y568568+CONFIG_HW_CONSOLE=y569569+# CONFIG_SERIAL_NONSTANDARD is not set570570+571571+#572572+# Serial drivers573573+#574574+# CONFIG_SERIAL_8250 is not set575575+576576+#577577+# Non-8250 serial port support578578+#579579+CONFIG_SERIAL_PXA=y580580+CONFIG_SERIAL_PXA_CONSOLE=y581581+CONFIG_SERIAL_CORE=y582582+CONFIG_SERIAL_CORE_CONSOLE=y583583+CONFIG_UNIX98_PTYS=y584584+# CONFIG_LEGACY_PTYS is not set585585+586586+#587587+# IPMI588588+#589589+# CONFIG_IPMI_HANDLER is not set590590+591591+#592592+# Watchdog Cards593593+#594594+# CONFIG_WATCHDOG is not set595595+# CONFIG_NVRAM is not set596596+# CONFIG_RTC is not set597597+# CONFIG_DTLK is not set598598+# CONFIG_R3964 is not set599599+600600+#601601+# Ftape, the floppy tape device driver602602+#603603+604604+#605605+# PCMCIA character devices606606+#607607+# CONFIG_SYNCLINK_CS is not set608608+# CONFIG_RAW_DRIVER is not set609609+610610+#611611+# TPM devices612612+#613613+614614+#615615+# I2C support616616+#617617+CONFIG_I2C=y618618+# CONFIG_I2C_CHARDEV is not set619619+620620+#621621+# I2C Algorithms622622+#623623+CONFIG_I2C_ALGOBIT=y624624+# CONFIG_I2C_ALGOPCF is not set625625+# CONFIG_I2C_ALGOPCA is not set626626+627627+#628628+# I2C Hardware Bus support629629+#630630+# CONFIG_I2C_PXA is not set631631+# CONFIG_I2C_PARPORT_LIGHT is not set632632+# CONFIG_I2C_STUB is not set633633+# CONFIG_I2C_PCA_ISA is not set634634+635635+#636636+# Miscellaneous I2C Chip support637637+#638638+# CONFIG_SENSORS_DS1337 is not set639639+# CONFIG_SENSORS_DS1374 is not set640640+# CONFIG_SENSORS_EEPROM is not set641641+# CONFIG_SENSORS_PCF8574 is not set642642+# CONFIG_SENSORS_PCA9539 is not set643643+# CONFIG_SENSORS_PCF8591 is not set644644+# CONFIG_SENSORS_RTC8564 is not set645645+# CONFIG_SENSORS_MAX6875 is not set646646+CONFIG_I2C_DEBUG_CORE=y647647+CONFIG_I2C_DEBUG_ALGO=y648648+CONFIG_I2C_DEBUG_BUS=y649649+# CONFIG_I2C_DEBUG_CHIP is not set650650+651651+#652652+# Hardware Monitoring support653653+#654654+CONFIG_HWMON=y655655+# CONFIG_HWMON_VID is not set656656+# CONFIG_SENSORS_ADM1021 is not set657657+# CONFIG_SENSORS_ADM1025 is not set658658+# CONFIG_SENSORS_ADM1026 is not set659659+# CONFIG_SENSORS_ADM1031 is not set660660+# CONFIG_SENSORS_ADM9240 is not set661661+# CONFIG_SENSORS_ASB100 is not set662662+# CONFIG_SENSORS_ATXP1 is not set663663+# CONFIG_SENSORS_DS1621 is not set664664+# CONFIG_SENSORS_FSCHER is not set665665+# CONFIG_SENSORS_FSCPOS is not set666666+# CONFIG_SENSORS_GL518SM is not set667667+# CONFIG_SENSORS_GL520SM is not set668668+# CONFIG_SENSORS_IT87 is not set669669+# CONFIG_SENSORS_LM63 is not set670670+# CONFIG_SENSORS_LM75 is not set671671+# CONFIG_SENSORS_LM77 is not set672672+# CONFIG_SENSORS_LM78 is not set673673+# CONFIG_SENSORS_LM80 is not set674674+# CONFIG_SENSORS_LM83 is not set675675+# CONFIG_SENSORS_LM85 is not set676676+# CONFIG_SENSORS_LM87 is not set677677+# CONFIG_SENSORS_LM90 is not set678678+# CONFIG_SENSORS_LM92 is not set679679+# CONFIG_SENSORS_MAX1619 is not set680680+# CONFIG_SENSORS_PC87360 is not set681681+# CONFIG_SENSORS_SMSC47M1 is not set682682+# CONFIG_SENSORS_SMSC47B397 is not set683683+# CONFIG_SENSORS_W83781D is not set684684+# CONFIG_SENSORS_W83792D is not set685685+# CONFIG_SENSORS_W83L785TS is not set686686+# CONFIG_SENSORS_W83627HF is not set687687+# CONFIG_SENSORS_W83627EHF is not set688688+# CONFIG_HWMON_DEBUG_CHIP is not set689689+690690+#691691+# Misc devices692692+#693693+694694+#695695+# Multimedia Capabilities Port drivers696696+#697697+698698+#699699+# Multimedia devices700700+#701701+CONFIG_VIDEO_DEV=m702702+703703+#704704+# Video For Linux705705+#706706+707707+#708708+# Video Adapters709709+#710710+# CONFIG_VIDEO_CPIA is not set711711+# CONFIG_VIDEO_SAA5246A is not set712712+# CONFIG_VIDEO_SAA5249 is not set713713+# CONFIG_TUNER_3036 is not set714714+# CONFIG_VIDEO_OVCAMCHIP is not set715715+716716+#717717+# Radio Adapters718718+#719719+# CONFIG_RADIO_MAESTRO is not set720720+721721+#722722+# Digital Video Broadcasting Devices723723+#724724+# CONFIG_DVB is not set725725+726726+#727727+# Graphics support728728+#729729+CONFIG_FB=y730730+CONFIG_FB_CFB_FILLRECT=y731731+CONFIG_FB_CFB_COPYAREA=y732732+CONFIG_FB_CFB_IMAGEBLIT=y733733+CONFIG_FB_SOFT_CURSOR=y734734+# CONFIG_FB_MACMODES is not set735735+CONFIG_FB_MODE_HELPERS=y736736+# CONFIG_FB_TILEBLITTING is not set737737+CONFIG_FB_PXA=y738738+# CONFIG_FB_W100 is not set739739+# CONFIG_FB_PXA_PARAMETERS is not set740740+# CONFIG_FB_S1D13XXX is not set741741+# CONFIG_FB_VIRTUAL is not set742742+743743+#744744+# Console display driver support745745+#746746+# CONFIG_VGA_CONSOLE is not set747747+CONFIG_DUMMY_CONSOLE=y748748+CONFIG_FRAMEBUFFER_CONSOLE=y749749+CONFIG_FONTS=y750750+CONFIG_FONT_8x8=y751751+# CONFIG_FONT_8x16 is not set752752+# CONFIG_FONT_6x11 is not set753753+# CONFIG_FONT_7x14 is not set754754+# CONFIG_FONT_PEARL_8x8 is not set755755+# CONFIG_FONT_ACORN_8x8 is not set756756+# CONFIG_FONT_MINI_4x6 is not set757757+# CONFIG_FONT_SUN8x16 is not set758758+# CONFIG_FONT_SUN12x22 is not set759759+# CONFIG_FONT_10x18 is not set760760+761761+#762762+# Logo configuration763763+#764764+# CONFIG_LOGO is not set765765+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set766766+767767+#768768+# Sound769769+#770770+# CONFIG_SOUND is not set771771+772772+#773773+# USB support774774+#775775+CONFIG_USB_ARCH_HAS_HCD=y776776+# CONFIG_USB_ARCH_HAS_OHCI is not set777777+# CONFIG_USB is not set778778+779779+#780780+# USB Gadget Support781781+#782782+CONFIG_USB_GADGET=y783783+# CONFIG_USB_GADGET_DEBUG_FILES is not set784784+CONFIG_USB_GADGET_SELECTED=y785785+# CONFIG_USB_GADGET_NET2280 is not set786786+CONFIG_USB_GADGET_PXA2XX=y787787+CONFIG_USB_PXA2XX=y788788+# CONFIG_USB_PXA2XX_SMALL is not set789789+# CONFIG_USB_GADGET_GOKU is not set790790+# CONFIG_USB_GADGET_LH7A40X is not set791791+# CONFIG_USB_GADGET_OMAP is not set792792+# CONFIG_USB_GADGET_DUMMY_HCD is not set793793+# CONFIG_USB_GADGET_DUALSPEED is not set794794+# CONFIG_USB_ZERO is not set795795+CONFIG_USB_ETH=y796796+CONFIG_USB_ETH_RNDIS=y797797+# CONFIG_USB_GADGETFS is not set798798+# CONFIG_USB_FILE_STORAGE is not set799799+# CONFIG_USB_G_SERIAL is not set800800+801801+#802802+# MMC/SD Card support803803+#804804+CONFIG_MMC=y805805+CONFIG_MMC_DEBUG=y806806+CONFIG_MMC_BLOCK=y807807+CONFIG_MMC_PXA=y808808+# CONFIG_MMC_WBSD is not set809809+810810+#811811+# File systems812812+#813813+CONFIG_EXT2_FS=y814814+CONFIG_EXT2_FS_XATTR=y815815+CONFIG_EXT2_FS_POSIX_ACL=y816816+CONFIG_EXT2_FS_SECURITY=y817817+# CONFIG_EXT2_FS_XIP is not set818818+# CONFIG_EXT3_FS is not set819819+# CONFIG_JBD is not set820820+CONFIG_FS_MBCACHE=y821821+# CONFIG_REISERFS_FS is not set822822+# CONFIG_JFS_FS is not set823823+CONFIG_FS_POSIX_ACL=y824824+# CONFIG_XFS_FS is not set825825+# CONFIG_MINIX_FS is not set826826+# CONFIG_ROMFS_FS is not set827827+CONFIG_INOTIFY=y828828+# CONFIG_QUOTA is not set829829+CONFIG_DNOTIFY=y830830+# CONFIG_AUTOFS_FS is not set831831+# CONFIG_AUTOFS4_FS is not set832832+# CONFIG_FUSE_FS is not set833833+834834+#835835+# CD-ROM/DVD Filesystems836836+#837837+# CONFIG_ISO9660_FS is not set838838+# CONFIG_UDF_FS is not set839839+840840+#841841+# DOS/FAT/NT Filesystems842842+#843843+CONFIG_FAT_FS=y844844+CONFIG_MSDOS_FS=y845845+CONFIG_VFAT_FS=y846846+CONFIG_FAT_DEFAULT_CODEPAGE=437847847+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"848848+# CONFIG_NTFS_FS is not set849849+850850+#851851+# Pseudo filesystems852852+#853853+CONFIG_PROC_FS=y854854+CONFIG_SYSFS=y855855+CONFIG_TMPFS=y856856+# CONFIG_HUGETLB_PAGE is not set857857+CONFIG_RAMFS=y858858+# CONFIG_RELAYFS_FS is not set859859+860860+#861861+# Miscellaneous filesystems862862+#863863+# CONFIG_ADFS_FS is not set864864+# CONFIG_AFFS_FS is not set865865+# CONFIG_HFS_FS is not set866866+# CONFIG_HFSPLUS_FS is not set867867+# CONFIG_BEFS_FS is not set868868+# CONFIG_BFS_FS is not set869869+# CONFIG_EFS_FS is not set870870+# CONFIG_JFFS_FS is not set871871+CONFIG_JFFS2_FS=y872872+CONFIG_JFFS2_FS_DEBUG=0873873+CONFIG_JFFS2_FS_WRITEBUFFER=y874874+CONFIG_JFFS2_COMPRESSION_OPTIONS=y875875+CONFIG_JFFS2_ZLIB=y876876+CONFIG_JFFS2_RTIME=y877877+CONFIG_JFFS2_RUBIN=y878878+# CONFIG_JFFS2_CMODE_NONE is not set879879+CONFIG_JFFS2_CMODE_PRIORITY=y880880+# CONFIG_JFFS2_CMODE_SIZE is not set881881+CONFIG_CRAMFS=m882882+# CONFIG_VXFS_FS is not set883883+# CONFIG_HPFS_FS is not set884884+# CONFIG_QNX4FS_FS is not set885885+# CONFIG_SYSV_FS is not set886886+# CONFIG_UFS_FS is not set887887+888888+#889889+# Network File Systems890890+#891891+# CONFIG_NFS_FS is not set892892+# CONFIG_NFSD is not set893893+# CONFIG_SMB_FS is not set894894+# CONFIG_CIFS is not set895895+# CONFIG_NCP_FS is not set896896+# CONFIG_CODA_FS is not set897897+# CONFIG_AFS_FS is not set898898+# CONFIG_9P_FS is not set899899+900900+#901901+# Partition Types902902+#903903+CONFIG_PARTITION_ADVANCED=y904904+# CONFIG_ACORN_PARTITION is not set905905+# CONFIG_OSF_PARTITION is not set906906+# CONFIG_AMIGA_PARTITION is not set907907+# CONFIG_ATARI_PARTITION is not set908908+# CONFIG_MAC_PARTITION is not set909909+CONFIG_MSDOS_PARTITION=y910910+# CONFIG_BSD_DISKLABEL is not set911911+# CONFIG_MINIX_SUBPARTITION is not set912912+# CONFIG_SOLARIS_X86_PARTITION is not set913913+# CONFIG_UNIXWARE_DISKLABEL is not set914914+# CONFIG_LDM_PARTITION is not set915915+# CONFIG_SGI_PARTITION is not set916916+# CONFIG_ULTRIX_PARTITION is not set917917+# CONFIG_SUN_PARTITION is not set918918+# CONFIG_EFI_PARTITION is not set919919+920920+#921921+# Native Language Support922922+#923923+CONFIG_NLS=y924924+CONFIG_NLS_DEFAULT="cp437"925925+CONFIG_NLS_CODEPAGE_437=y926926+# CONFIG_NLS_CODEPAGE_737 is not set927927+# CONFIG_NLS_CODEPAGE_775 is not set928928+# CONFIG_NLS_CODEPAGE_850 is not set929929+# CONFIG_NLS_CODEPAGE_852 is not set930930+# CONFIG_NLS_CODEPAGE_855 is not set931931+# CONFIG_NLS_CODEPAGE_857 is not set932932+# CONFIG_NLS_CODEPAGE_860 is not set933933+# CONFIG_NLS_CODEPAGE_861 is not set934934+# CONFIG_NLS_CODEPAGE_862 is not set935935+# CONFIG_NLS_CODEPAGE_863 is not set936936+# CONFIG_NLS_CODEPAGE_864 is not set937937+# CONFIG_NLS_CODEPAGE_865 is not set938938+# CONFIG_NLS_CODEPAGE_866 is not set939939+# CONFIG_NLS_CODEPAGE_869 is not set940940+# CONFIG_NLS_CODEPAGE_936 is not set941941+# CONFIG_NLS_CODEPAGE_950 is not set942942+# CONFIG_NLS_CODEPAGE_932 is not set943943+# CONFIG_NLS_CODEPAGE_949 is not set944944+# CONFIG_NLS_CODEPAGE_874 is not set945945+# CONFIG_NLS_ISO8859_8 is not set946946+# CONFIG_NLS_CODEPAGE_1250 is not set947947+# CONFIG_NLS_CODEPAGE_1251 is not set948948+CONFIG_NLS_ASCII=y949949+CONFIG_NLS_ISO8859_1=y950950+# CONFIG_NLS_ISO8859_2 is not set951951+# CONFIG_NLS_ISO8859_3 is not set952952+# CONFIG_NLS_ISO8859_4 is not set953953+# CONFIG_NLS_ISO8859_5 is not set954954+# CONFIG_NLS_ISO8859_6 is not set955955+# CONFIG_NLS_ISO8859_7 is not set956956+# CONFIG_NLS_ISO8859_9 is not set957957+# CONFIG_NLS_ISO8859_13 is not set958958+# CONFIG_NLS_ISO8859_14 is not set959959+# CONFIG_NLS_ISO8859_15 is not set960960+# CONFIG_NLS_KOI8_R is not set961961+# CONFIG_NLS_KOI8_U is not set962962+CONFIG_NLS_UTF8=y963963+964964+#965965+# Profiling support966966+#967967+# CONFIG_PROFILING is not set968968+969969+#970970+# Kernel hacking971971+#972972+# CONFIG_PRINTK_TIME is not set973973+CONFIG_DEBUG_KERNEL=y974974+CONFIG_MAGIC_SYSRQ=y975975+CONFIG_LOG_BUF_SHIFT=14976976+CONFIG_DETECT_SOFTLOCKUP=y977977+# CONFIG_SCHEDSTATS is not set978978+# CONFIG_DEBUG_SLAB is not set979979+CONFIG_DEBUG_PREEMPT=y980980+# CONFIG_DEBUG_SPINLOCK is not set981981+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set982982+# CONFIG_DEBUG_KOBJECT is not set983983+# CONFIG_DEBUG_BUGVERBOSE is not set984984+# CONFIG_DEBUG_INFO is not set985985+# CONFIG_DEBUG_FS is not set986986+CONFIG_FRAME_POINTER=y987987+# CONFIG_DEBUG_USER is not set988988+# CONFIG_DEBUG_WAITQ is not set989989+CONFIG_DEBUG_ERRORS=y990990+# CONFIG_DEBUG_LL is not set991991+992992+#993993+# Security options994994+#995995+# CONFIG_KEYS is not set996996+# CONFIG_SECURITY is not set997997+998998+#999999+# Cryptographic options10001000+#10011001+# CONFIG_CRYPTO is not set10021002+10031003+#10041004+# Hardware crypto devices10051005+#10061006+10071007+#10081008+# Library routines10091009+#10101010+CONFIG_CRC_CCITT=y10111011+# CONFIG_CRC16 is not set10121012+CONFIG_CRC32=y10131013+# CONFIG_LIBCRC32C is not set10141014+CONFIG_ZLIB_INFLATE=y10151015+CONFIG_ZLIB_DEFLATE=y
+1401
arch/arm/configs/spitz_defconfig
···11+#22+# Automatically generated make config: don't edit33+# Linux kernel version: 2.6.14-rc344+# Sun Oct 9 17:11:19 200555+#66+CONFIG_ARM=y77+CONFIG_MMU=y88+CONFIG_UID16=y99+CONFIG_RWSEM_GENERIC_SPINLOCK=y1010+CONFIG_GENERIC_CALIBRATE_DELAY=y1111+1212+#1313+# Code maturity level options1414+#1515+CONFIG_EXPERIMENTAL=y1616+CONFIG_CLEAN_COMPILE=y1717+CONFIG_BROKEN_ON_SMP=y1818+CONFIG_LOCK_KERNEL=y1919+CONFIG_INIT_ENV_ARG_LIMIT=322020+2121+#2222+# General setup2323+#2424+CONFIG_LOCALVERSION=""2525+CONFIG_LOCALVERSION_AUTO=y2626+CONFIG_SWAP=y2727+CONFIG_SYSVIPC=y2828+# CONFIG_POSIX_MQUEUE is not set2929+CONFIG_BSD_PROCESS_ACCT=y3030+# CONFIG_BSD_PROCESS_ACCT_V3 is not set3131+CONFIG_SYSCTL=y3232+# CONFIG_AUDIT is not set3333+CONFIG_HOTPLUG=y3434+CONFIG_KOBJECT_UEVENT=y3535+# CONFIG_IKCONFIG is not set3636+CONFIG_INITRAMFS_SOURCE=""3737+CONFIG_EMBEDDED=y3838+CONFIG_KALLSYMS=y3939+# CONFIG_KALLSYMS_ALL is not set4040+# CONFIG_KALLSYMS_EXTRA_PASS is not set4141+CONFIG_PRINTK=y4242+CONFIG_BUG=y4343+CONFIG_BASE_FULL=y4444+CONFIG_FUTEX=y4545+CONFIG_EPOLL=y4646+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set4747+CONFIG_SHMEM=y4848+CONFIG_CC_ALIGN_FUNCTIONS=04949+CONFIG_CC_ALIGN_LABELS=05050+CONFIG_CC_ALIGN_LOOPS=05151+CONFIG_CC_ALIGN_JUMPS=05252+# CONFIG_TINY_SHMEM is not set5353+CONFIG_BASE_SMALL=05454+5555+#5656+# Loadable module support5757+#5858+CONFIG_MODULES=y5959+CONFIG_MODULE_UNLOAD=y6060+CONFIG_MODULE_FORCE_UNLOAD=y6161+CONFIG_OBSOLETE_MODPARM=y6262+# CONFIG_MODVERSIONS is not set6363+# CONFIG_MODULE_SRCVERSION_ALL is not set6464+CONFIG_KMOD=y6565+6666+#6767+# System Type6868+#6969+# CONFIG_ARCH_CLPS7500 is not set7070+# CONFIG_ARCH_CLPS711X is not set7171+# CONFIG_ARCH_CO285 is not set7272+# CONFIG_ARCH_EBSA110 is not set7373+# CONFIG_ARCH_CAMELOT is not set7474+# CONFIG_ARCH_FOOTBRIDGE is not set7575+# CONFIG_ARCH_INTEGRATOR is not set7676+# CONFIG_ARCH_IOP3XX is not set7777+# CONFIG_ARCH_IXP4XX is not set7878+# CONFIG_ARCH_IXP2000 is not set7979+# CONFIG_ARCH_L7200 is not set8080+CONFIG_ARCH_PXA=y8181+# CONFIG_ARCH_RPC is not set8282+# CONFIG_ARCH_SA1100 is not set8383+# CONFIG_ARCH_S3C2410 is not set8484+# CONFIG_ARCH_SHARK is not set8585+# CONFIG_ARCH_LH7A40X is not set8686+# CONFIG_ARCH_OMAP is not set8787+# CONFIG_ARCH_VERSATILE is not set8888+# CONFIG_ARCH_IMX is not set8989+# CONFIG_ARCH_H720X is not set9090+# CONFIG_ARCH_AAEC2000 is not set9191+9292+#9393+# Intel PXA2xx Implementations9494+#9595+# CONFIG_ARCH_LUBBOCK is not set9696+# CONFIG_MACH_MAINSTONE is not set9797+# CONFIG_ARCH_PXA_IDP is not set9898+CONFIG_PXA_SHARPSL=y9999+# CONFIG_PXA_SHARPSL_25x is not set100100+CONFIG_PXA_SHARPSL_27x=y101101+CONFIG_MACH_SPITZ=y102102+CONFIG_MACH_BORZOI=y103103+CONFIG_PXA27x=y104104+CONFIG_PXA_SHARP_Cxx00=y105105+106106+#107107+# Processor Type108108+#109109+CONFIG_CPU_32=y110110+CONFIG_CPU_XSCALE=y111111+CONFIG_CPU_32v5=y112112+CONFIG_CPU_ABRT_EV5T=y113113+CONFIG_CPU_CACHE_VIVT=y114114+CONFIG_CPU_TLB_V4WBI=y115115+116116+#117117+# Processor Features118118+#119119+CONFIG_ARM_THUMB=y120120+CONFIG_XSCALE_PMU=y121121+CONFIG_SHARP_PARAM=y122122+CONFIG_SHARP_SCOOP=y123123+124124+#125125+# Bus support126126+#127127+CONFIG_ISA_DMA_API=y128128+129129+#130130+# PCCARD (PCMCIA/CardBus) support131131+#132132+CONFIG_PCCARD=y133133+# CONFIG_PCMCIA_DEBUG is not set134134+CONFIG_PCMCIA=y135135+CONFIG_PCMCIA_LOAD_CIS=y136136+CONFIG_PCMCIA_IOCTL=y137137+138138+#139139+# PC-card bridges140140+#141141+CONFIG_PCMCIA_PXA2XX=y142142+143143+#144144+# Kernel Features145145+#146146+CONFIG_PREEMPT=y147147+# CONFIG_NO_IDLE_HZ is not set148148+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set149149+CONFIG_SELECT_MEMORY_MODEL=y150150+CONFIG_FLATMEM_MANUAL=y151151+# CONFIG_DISCONTIGMEM_MANUAL is not set152152+# CONFIG_SPARSEMEM_MANUAL is not set153153+CONFIG_FLATMEM=y154154+CONFIG_FLAT_NODE_MEM_MAP=y155155+# CONFIG_SPARSEMEM_STATIC is not set156156+CONFIG_ALIGNMENT_TRAP=y157157+158158+#159159+# Boot options160160+#161161+CONFIG_ZBOOT_ROM_TEXT=0x0162162+CONFIG_ZBOOT_ROM_BSS=0x0163163+CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug"164164+# CONFIG_XIP_KERNEL is not set165165+166166+#167167+# Floating point emulation168168+#169169+170170+#171171+# At least one emulation must be selected172172+#173173+CONFIG_FPE_NWFPE=y174174+# CONFIG_FPE_NWFPE_XP is not set175175+# CONFIG_FPE_FASTFPE is not set176176+177177+#178178+# Userspace binary formats179179+#180180+CONFIG_BINFMT_ELF=y181181+CONFIG_BINFMT_AOUT=m182182+CONFIG_BINFMT_MISC=m183183+# CONFIG_ARTHUR is not set184184+185185+#186186+# Power management options187187+#188188+CONFIG_PM=y189189+CONFIG_APM=y190190+191191+#192192+# Networking193193+#194194+CONFIG_NET=y195195+196196+#197197+# Networking options198198+#199199+CONFIG_PACKET=y200200+CONFIG_PACKET_MMAP=y201201+CONFIG_UNIX=y202202+CONFIG_XFRM=y203203+# CONFIG_XFRM_USER is not set204204+# CONFIG_NET_KEY is not set205205+CONFIG_INET=y206206+# CONFIG_IP_MULTICAST is not set207207+# CONFIG_IP_ADVANCED_ROUTER is not set208208+CONFIG_IP_FIB_HASH=y209209+# CONFIG_IP_PNP is not set210210+# CONFIG_NET_IPIP is not set211211+# CONFIG_NET_IPGRE is not set212212+# CONFIG_ARPD is not set213213+CONFIG_SYN_COOKIES=y214214+# CONFIG_INET_AH is not set215215+# CONFIG_INET_ESP is not set216216+# CONFIG_INET_IPCOMP is not set217217+# CONFIG_INET_TUNNEL is not set218218+CONFIG_INET_DIAG=y219219+CONFIG_INET_TCP_DIAG=y220220+# CONFIG_TCP_CONG_ADVANCED is not set221221+CONFIG_TCP_CONG_BIC=y222222+223223+#224224+# IP: Virtual Server Configuration225225+#226226+# CONFIG_IP_VS is not set227227+CONFIG_IPV6=m228228+# CONFIG_IPV6_PRIVACY is not set229229+CONFIG_INET6_AH=m230230+CONFIG_INET6_ESP=m231231+CONFIG_INET6_IPCOMP=m232232+CONFIG_INET6_TUNNEL=m233233+CONFIG_IPV6_TUNNEL=m234234+CONFIG_NETFILTER=y235235+# CONFIG_NETFILTER_DEBUG is not set236236+# CONFIG_NETFILTER_NETLINK is not set237237+238238+#239239+# IP: Netfilter Configuration240240+#241241+CONFIG_IP_NF_CONNTRACK=m242242+# CONFIG_IP_NF_CT_ACCT is not set243243+# CONFIG_IP_NF_CONNTRACK_MARK is not set244244+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set245245+CONFIG_IP_NF_CT_PROTO_SCTP=m246246+CONFIG_IP_NF_FTP=m247247+CONFIG_IP_NF_IRC=m248248+# CONFIG_IP_NF_NETBIOS_NS is not set249249+CONFIG_IP_NF_TFTP=m250250+CONFIG_IP_NF_AMANDA=m251251+# CONFIG_IP_NF_PPTP is not set252252+CONFIG_IP_NF_QUEUE=m253253+CONFIG_IP_NF_IPTABLES=m254254+CONFIG_IP_NF_MATCH_LIMIT=m255255+CONFIG_IP_NF_MATCH_IPRANGE=m256256+CONFIG_IP_NF_MATCH_MAC=m257257+CONFIG_IP_NF_MATCH_PKTTYPE=m258258+CONFIG_IP_NF_MATCH_MARK=m259259+CONFIG_IP_NF_MATCH_MULTIPORT=m260260+CONFIG_IP_NF_MATCH_TOS=m261261+CONFIG_IP_NF_MATCH_RECENT=m262262+CONFIG_IP_NF_MATCH_ECN=m263263+CONFIG_IP_NF_MATCH_DSCP=m264264+CONFIG_IP_NF_MATCH_AH_ESP=m265265+CONFIG_IP_NF_MATCH_LENGTH=m266266+CONFIG_IP_NF_MATCH_TTL=m267267+CONFIG_IP_NF_MATCH_TCPMSS=m268268+CONFIG_IP_NF_MATCH_HELPER=m269269+CONFIG_IP_NF_MATCH_STATE=m270270+CONFIG_IP_NF_MATCH_CONNTRACK=m271271+CONFIG_IP_NF_MATCH_OWNER=m272272+CONFIG_IP_NF_MATCH_ADDRTYPE=m273273+CONFIG_IP_NF_MATCH_REALM=m274274+CONFIG_IP_NF_MATCH_SCTP=m275275+# CONFIG_IP_NF_MATCH_DCCP is not set276276+CONFIG_IP_NF_MATCH_COMMENT=m277277+CONFIG_IP_NF_MATCH_HASHLIMIT=m278278+# CONFIG_IP_NF_MATCH_STRING is not set279279+CONFIG_IP_NF_FILTER=m280280+# CONFIG_IP_NF_TARGET_REJECT is not set281281+CONFIG_IP_NF_TARGET_LOG=m282282+CONFIG_IP_NF_TARGET_ULOG=m283283+CONFIG_IP_NF_TARGET_TCPMSS=m284284+# CONFIG_IP_NF_TARGET_NFQUEUE is not set285285+CONFIG_IP_NF_NAT=m286286+CONFIG_IP_NF_NAT_NEEDED=y287287+# CONFIG_IP_NF_TARGET_MASQUERADE is not set288288+# CONFIG_IP_NF_TARGET_REDIRECT is not set289289+# CONFIG_IP_NF_TARGET_NETMAP is not set290290+# CONFIG_IP_NF_TARGET_SAME is not set291291+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set292292+CONFIG_IP_NF_NAT_IRC=m293293+CONFIG_IP_NF_NAT_FTP=m294294+CONFIG_IP_NF_NAT_TFTP=m295295+CONFIG_IP_NF_NAT_AMANDA=m296296+CONFIG_IP_NF_MANGLE=m297297+# CONFIG_IP_NF_TARGET_TOS is not set298298+# CONFIG_IP_NF_TARGET_ECN is not set299299+# CONFIG_IP_NF_TARGET_DSCP is not set300300+# CONFIG_IP_NF_TARGET_MARK is not set301301+# CONFIG_IP_NF_TARGET_CLASSIFY is not set302302+# CONFIG_IP_NF_TARGET_TTL is not set303303+CONFIG_IP_NF_RAW=m304304+# CONFIG_IP_NF_TARGET_NOTRACK is not set305305+CONFIG_IP_NF_ARPTABLES=m306306+CONFIG_IP_NF_ARPFILTER=m307307+CONFIG_IP_NF_ARP_MANGLE=m308308+309309+#310310+# IPv6: Netfilter Configuration (EXPERIMENTAL)311311+#312312+CONFIG_IP6_NF_QUEUE=m313313+CONFIG_IP6_NF_IPTABLES=m314314+CONFIG_IP6_NF_MATCH_LIMIT=m315315+CONFIG_IP6_NF_MATCH_MAC=m316316+CONFIG_IP6_NF_MATCH_RT=m317317+CONFIG_IP6_NF_MATCH_OPTS=m318318+CONFIG_IP6_NF_MATCH_FRAG=m319319+CONFIG_IP6_NF_MATCH_HL=m320320+CONFIG_IP6_NF_MATCH_MULTIPORT=m321321+CONFIG_IP6_NF_MATCH_OWNER=m322322+CONFIG_IP6_NF_MATCH_MARK=m323323+CONFIG_IP6_NF_MATCH_IPV6HEADER=m324324+CONFIG_IP6_NF_MATCH_AHESP=m325325+CONFIG_IP6_NF_MATCH_LENGTH=m326326+CONFIG_IP6_NF_MATCH_EUI64=m327327+CONFIG_IP6_NF_FILTER=m328328+# CONFIG_IP6_NF_TARGET_LOG is not set329329+# CONFIG_IP6_NF_TARGET_REJECT is not set330330+# CONFIG_IP6_NF_TARGET_NFQUEUE is not set331331+CONFIG_IP6_NF_MANGLE=m332332+# CONFIG_IP6_NF_TARGET_MARK is not set333333+# CONFIG_IP6_NF_TARGET_HL is not set334334+CONFIG_IP6_NF_RAW=m335335+336336+#337337+# DCCP Configuration (EXPERIMENTAL)338338+#339339+# CONFIG_IP_DCCP is not set340340+341341+#342342+# SCTP Configuration (EXPERIMENTAL)343343+#344344+# CONFIG_IP_SCTP is not set345345+# CONFIG_ATM is not set346346+# CONFIG_BRIDGE is not set347347+# CONFIG_VLAN_8021Q is not set348348+# CONFIG_DECNET is not set349349+# CONFIG_LLC2 is not set350350+# CONFIG_IPX is not set351351+# CONFIG_ATALK is not set352352+# CONFIG_X25 is not set353353+# CONFIG_LAPB is not set354354+# CONFIG_NET_DIVERT is not set355355+# CONFIG_ECONET is not set356356+# CONFIG_WAN_ROUTER is not set357357+# CONFIG_NET_SCHED is not set358358+CONFIG_NET_CLS_ROUTE=y359359+360360+#361361+# Network testing362362+#363363+# CONFIG_NET_PKTGEN is not set364364+# CONFIG_HAMRADIO is not set365365+CONFIG_IRDA=m366366+367367+#368368+# IrDA protocols369369+#370370+CONFIG_IRLAN=m371371+CONFIG_IRNET=m372372+CONFIG_IRCOMM=m373373+# CONFIG_IRDA_ULTRA is not set374374+375375+#376376+# IrDA options377377+#378378+# CONFIG_IRDA_CACHE_LAST_LSAP is not set379379+# CONFIG_IRDA_FAST_RR is not set380380+# CONFIG_IRDA_DEBUG is not set381381+382382+#383383+# Infrared-port device drivers384384+#385385+386386+#387387+# SIR device drivers388388+#389389+# CONFIG_IRTTY_SIR is not set390390+391391+#392392+# Dongle support393393+#394394+395395+#396396+# Old SIR device drivers397397+#398398+# CONFIG_IRPORT_SIR is not set399399+400400+#401401+# Old Serial dongle support402402+#403403+404404+#405405+# FIR device drivers406406+#407407+# CONFIG_USB_IRDA is not set408408+# CONFIG_SIGMATEL_FIR is not set409409+# CONFIG_NSC_FIR is not set410410+# CONFIG_WINBOND_FIR is not set411411+# CONFIG_SMC_IRCC_FIR is not set412412+# CONFIG_ALI_FIR is not set413413+# CONFIG_VIA_FIR is not set414414+CONFIG_BT=m415415+CONFIG_BT_L2CAP=m416416+CONFIG_BT_SCO=m417417+CONFIG_BT_RFCOMM=m418418+CONFIG_BT_RFCOMM_TTY=y419419+CONFIG_BT_BNEP=m420420+CONFIG_BT_BNEP_MC_FILTER=y421421+CONFIG_BT_BNEP_PROTO_FILTER=y422422+CONFIG_BT_HIDP=m423423+424424+#425425+# Bluetooth device drivers426426+#427427+CONFIG_BT_HCIUSB=m428428+# CONFIG_BT_HCIUSB_SCO is not set429429+CONFIG_BT_HCIUART=m430430+CONFIG_BT_HCIUART_H4=y431431+CONFIG_BT_HCIUART_BCSP=y432432+CONFIG_BT_HCIUART_BCSP_TXCRC=y433433+CONFIG_BT_HCIBCM203X=m434434+CONFIG_BT_HCIBPA10X=m435435+CONFIG_BT_HCIBFUSB=m436436+CONFIG_BT_HCIDTL1=m437437+CONFIG_BT_HCIBT3C=m438438+CONFIG_BT_HCIBLUECARD=m439439+CONFIG_BT_HCIBTUART=m440440+CONFIG_BT_HCIVHCI=m441441+CONFIG_IEEE80211=m442442+# CONFIG_IEEE80211_DEBUG is not set443443+CONFIG_IEEE80211_CRYPT_WEP=m444444+# CONFIG_IEEE80211_CRYPT_CCMP is not set445445+# CONFIG_IEEE80211_CRYPT_TKIP is not set446446+447447+#448448+# Device Drivers449449+#450450+451451+#452452+# Generic Driver Options453453+#454454+CONFIG_STANDALONE=y455455+CONFIG_PREVENT_FIRMWARE_BUILD=y456456+CONFIG_FW_LOADER=y457457+# CONFIG_DEBUG_DRIVER is not set458458+459459+#460460+# Memory Technology Devices (MTD)461461+#462462+CONFIG_MTD=y463463+# CONFIG_MTD_DEBUG is not set464464+# CONFIG_MTD_CONCAT is not set465465+CONFIG_MTD_PARTITIONS=y466466+# CONFIG_MTD_REDBOOT_PARTS is not set467467+CONFIG_MTD_CMDLINE_PARTS=y468468+# CONFIG_MTD_AFS_PARTS is not set469469+470470+#471471+# User Modules And Translation Layers472472+#473473+CONFIG_MTD_CHAR=y474474+CONFIG_MTD_BLOCK=y475475+# CONFIG_FTL is not set476476+# CONFIG_NFTL is not set477477+# CONFIG_INFTL is not set478478+479479+#480480+# RAM/ROM/Flash chip drivers481481+#482482+# CONFIG_MTD_CFI is not set483483+# CONFIG_MTD_JEDECPROBE is not set484484+CONFIG_MTD_MAP_BANK_WIDTH_1=y485485+CONFIG_MTD_MAP_BANK_WIDTH_2=y486486+CONFIG_MTD_MAP_BANK_WIDTH_4=y487487+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set488488+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set489489+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set490490+CONFIG_MTD_CFI_I1=y491491+CONFIG_MTD_CFI_I2=y492492+# CONFIG_MTD_CFI_I4 is not set493493+# CONFIG_MTD_CFI_I8 is not set494494+# CONFIG_MTD_RAM is not set495495+CONFIG_MTD_ROM=y496496+# CONFIG_MTD_ABSENT is not set497497+498498+#499499+# Mapping drivers for chip access500500+#501501+CONFIG_MTD_COMPLEX_MAPPINGS=y502502+CONFIG_MTD_SHARP_SL=y503503+# CONFIG_MTD_PLATRAM is not set504504+505505+#506506+# Self-contained MTD device drivers507507+#508508+# CONFIG_MTD_SLRAM is not set509509+# CONFIG_MTD_PHRAM is not set510510+# CONFIG_MTD_MTDRAM is not set511511+# CONFIG_MTD_BLKMTD is not set512512+# CONFIG_MTD_BLOCK2MTD is not set513513+514514+#515515+# Disk-On-Chip Device Drivers516516+#517517+# CONFIG_MTD_DOC2000 is not set518518+# CONFIG_MTD_DOC2001 is not set519519+# CONFIG_MTD_DOC2001PLUS is not set520520+521521+#522522+# NAND Flash Device Drivers523523+#524524+CONFIG_MTD_NAND=y525525+CONFIG_MTD_NAND_VERIFY_WRITE=y526526+# CONFIG_MTD_NAND_H1900 is not set527527+CONFIG_MTD_NAND_IDS=y528528+# CONFIG_MTD_NAND_DISKONCHIP is not set529529+CONFIG_MTD_NAND_SHARPSL=y530530+# CONFIG_MTD_NAND_NANDSIM is not set531531+532532+#533533+# Parallel port support534534+#535535+# CONFIG_PARPORT is not set536536+537537+#538538+# Plug and Play support539539+#540540+541541+#542542+# Block devices543543+#544544+# CONFIG_BLK_DEV_COW_COMMON is not set545545+CONFIG_BLK_DEV_LOOP=y546546+# CONFIG_BLK_DEV_CRYPTOLOOP is not set547547+# CONFIG_BLK_DEV_NBD is not set548548+# CONFIG_BLK_DEV_UB is not set549549+# CONFIG_BLK_DEV_RAM is not set550550+CONFIG_BLK_DEV_RAM_COUNT=16551551+# CONFIG_CDROM_PKTCDVD is not set552552+553553+#554554+# IO Schedulers555555+#556556+CONFIG_IOSCHED_NOOP=y557557+CONFIG_IOSCHED_AS=y558558+CONFIG_IOSCHED_DEADLINE=y559559+CONFIG_IOSCHED_CFQ=y560560+# CONFIG_ATA_OVER_ETH is not set561561+562562+#563563+# ATA/ATAPI/MFM/RLL support564564+#565565+CONFIG_IDE=y566566+CONFIG_BLK_DEV_IDE=y567567+568568+#569569+# Please see Documentation/ide.txt for help/info on IDE drives570570+#571571+# CONFIG_BLK_DEV_IDE_SATA is not set572572+CONFIG_BLK_DEV_IDEDISK=y573573+# CONFIG_IDEDISK_MULTI_MODE is not set574574+CONFIG_BLK_DEV_IDECS=y575575+# CONFIG_BLK_DEV_IDECD is not set576576+# CONFIG_BLK_DEV_IDETAPE is not set577577+# CONFIG_BLK_DEV_IDEFLOPPY is not set578578+# CONFIG_BLK_DEV_IDESCSI is not set579579+# CONFIG_IDE_TASK_IOCTL is not set580580+581581+#582582+# IDE chipset support/bugfixes583583+#584584+CONFIG_IDE_GENERIC=y585585+# CONFIG_IDE_ARM is not set586586+# CONFIG_BLK_DEV_IDEDMA is not set587587+# CONFIG_IDEDMA_AUTO is not set588588+# CONFIG_BLK_DEV_HD is not set589589+590590+#591591+# SCSI device support592592+#593593+# CONFIG_RAID_ATTRS is not set594594+CONFIG_SCSI=m595595+CONFIG_SCSI_PROC_FS=y596596+597597+#598598+# SCSI support type (disk, tape, CD-ROM)599599+#600600+CONFIG_BLK_DEV_SD=m601601+CONFIG_CHR_DEV_ST=m602602+CONFIG_CHR_DEV_OSST=m603603+CONFIG_BLK_DEV_SR=m604604+# CONFIG_BLK_DEV_SR_VENDOR is not set605605+CONFIG_CHR_DEV_SG=m606606+# CONFIG_CHR_DEV_SCH is not set607607+608608+#609609+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs610610+#611611+CONFIG_SCSI_MULTI_LUN=y612612+# CONFIG_SCSI_CONSTANTS is not set613613+# CONFIG_SCSI_LOGGING is not set614614+615615+#616616+# SCSI Transport Attributes617617+#618618+# CONFIG_SCSI_SPI_ATTRS is not set619619+# CONFIG_SCSI_FC_ATTRS is not set620620+# CONFIG_SCSI_ISCSI_ATTRS is not set621621+# CONFIG_SCSI_SAS_ATTRS is not set622622+623623+#624624+# SCSI low-level drivers625625+#626626+# CONFIG_SCSI_SATA is not set627627+# CONFIG_SCSI_DEBUG is not set628628+629629+#630630+# PCMCIA SCSI adapter support631631+#632632+# CONFIG_PCMCIA_AHA152X is not set633633+# CONFIG_PCMCIA_FDOMAIN is not set634634+# CONFIG_PCMCIA_NINJA_SCSI is not set635635+# CONFIG_PCMCIA_QLOGIC is not set636636+# CONFIG_PCMCIA_SYM53C500 is not set637637+638638+#639639+# Multi-device support (RAID and LVM)640640+#641641+# CONFIG_MD is not set642642+643643+#644644+# Fusion MPT device support645645+#646646+# CONFIG_FUSION is not set647647+648648+#649649+# IEEE 1394 (FireWire) support650650+#651651+652652+#653653+# I2O device support654654+#655655+656656+#657657+# Network device support658658+#659659+CONFIG_NETDEVICES=y660660+# CONFIG_DUMMY is not set661661+# CONFIG_BONDING is not set662662+# CONFIG_EQUALIZER is not set663663+# CONFIG_TUN is not set664664+665665+#666666+# PHY device support667667+#668668+# CONFIG_PHYLIB is not set669669+670670+#671671+# Ethernet (10 or 100Mbit)672672+#673673+CONFIG_NET_ETHERNET=y674674+CONFIG_MII=m675675+# CONFIG_SMC91X is not set676676+# CONFIG_DM9000 is not set677677+678678+#679679+# Ethernet (1000 Mbit)680680+#681681+682682+#683683+# Ethernet (10000 Mbit)684684+#685685+686686+#687687+# Token Ring devices688688+#689689+690690+#691691+# Wireless LAN (non-hamradio)692692+#693693+CONFIG_NET_RADIO=y694694+695695+#696696+# Obsolete Wireless cards support (pre-802.11)697697+#698698+# CONFIG_STRIP is not set699699+# CONFIG_PCMCIA_WAVELAN is not set700700+# CONFIG_PCMCIA_NETWAVE is not set701701+702702+#703703+# Wireless 802.11 Frequency Hopping cards support704704+#705705+# CONFIG_PCMCIA_RAYCS is not set706706+707707+#708708+# Wireless 802.11b ISA/PCI cards support709709+#710710+CONFIG_HERMES=m711711+# CONFIG_ATMEL is not set712712+713713+#714714+# Wireless 802.11b Pcmcia/Cardbus cards support715715+#716716+CONFIG_PCMCIA_HERMES=m717717+CONFIG_PCMCIA_SPECTRUM=m718718+# CONFIG_AIRO_CS is not set719719+# CONFIG_PCMCIA_WL3501 is not set720720+CONFIG_HOSTAP=m721721+CONFIG_HOSTAP_FIRMWARE=y722722+CONFIG_HOSTAP_CS=m723723+CONFIG_NET_WIRELESS=y724724+725725+#726726+# PCMCIA network device support727727+#728728+CONFIG_NET_PCMCIA=y729729+# CONFIG_PCMCIA_3C589 is not set730730+# CONFIG_PCMCIA_3C574 is not set731731+# CONFIG_PCMCIA_FMVJ18X is not set732732+CONFIG_PCMCIA_PCNET=m733733+# CONFIG_PCMCIA_NMCLAN is not set734734+# CONFIG_PCMCIA_SMC91C92 is not set735735+# CONFIG_PCMCIA_XIRC2PS is not set736736+# CONFIG_PCMCIA_AXNET is not set737737+738738+#739739+# Wan interfaces740740+#741741+# CONFIG_WAN is not set742742+CONFIG_PPP=m743743+# CONFIG_PPP_MULTILINK is not set744744+# CONFIG_PPP_FILTER is not set745745+CONFIG_PPP_ASYNC=m746746+# CONFIG_PPP_SYNC_TTY is not set747747+# CONFIG_PPP_DEFLATE is not set748748+CONFIG_PPP_BSDCOMP=m749749+# CONFIG_PPPOE is not set750750+# CONFIG_SLIP is not set751751+# CONFIG_SHAPER is not set752752+# CONFIG_NETCONSOLE is not set753753+# CONFIG_NETPOLL is not set754754+# CONFIG_NET_POLL_CONTROLLER is not set755755+756756+#757757+# ISDN subsystem758758+#759759+# CONFIG_ISDN is not set760760+761761+#762762+# Input device support763763+#764764+CONFIG_INPUT=y765765+766766+#767767+# Userland interfaces768768+#769769+# CONFIG_INPUT_MOUSEDEV is not set770770+# CONFIG_INPUT_JOYDEV is not set771771+# CONFIG_INPUT_TSDEV is not set772772+CONFIG_INPUT_EVDEV=y773773+# CONFIG_INPUT_EVBUG is not set774774+775775+#776776+# Input Device Drivers777777+#778778+CONFIG_INPUT_KEYBOARD=y779779+# CONFIG_KEYBOARD_ATKBD is not set780780+# CONFIG_KEYBOARD_SUNKBD is not set781781+# CONFIG_KEYBOARD_LKKBD is not set782782+# CONFIG_KEYBOARD_XTKBD is not set783783+# CONFIG_KEYBOARD_NEWTON is not set784784+# CONFIG_KEYBOARD_CORGI is not set785785+CONFIG_KEYBOARD_SPITZ=y786786+# CONFIG_INPUT_MOUSE is not set787787+# CONFIG_INPUT_JOYSTICK is not set788788+CONFIG_INPUT_TOUCHSCREEN=y789789+CONFIG_TOUCHSCREEN_CORGI=y790790+# CONFIG_TOUCHSCREEN_GUNZE is not set791791+# CONFIG_TOUCHSCREEN_ELO is not set792792+# CONFIG_TOUCHSCREEN_MTOUCH is not set793793+# CONFIG_TOUCHSCREEN_MK712 is not set794794+CONFIG_INPUT_MISC=y795795+CONFIG_INPUT_UINPUT=m796796+797797+#798798+# Hardware I/O ports799799+#800800+# CONFIG_SERIO is not set801801+# CONFIG_GAMEPORT is not set802802+803803+#804804+# Character devices805805+#806806+CONFIG_VT=y807807+CONFIG_VT_CONSOLE=y808808+CONFIG_HW_CONSOLE=y809809+# CONFIG_SERIAL_NONSTANDARD is not set810810+811811+#812812+# Serial drivers813813+#814814+CONFIG_SERIAL_8250=m815815+CONFIG_SERIAL_8250_CS=m816816+CONFIG_SERIAL_8250_NR_UARTS=4817817+# CONFIG_SERIAL_8250_EXTENDED is not set818818+819819+#820820+# Non-8250 serial port support821821+#822822+CONFIG_SERIAL_PXA=y823823+CONFIG_SERIAL_PXA_CONSOLE=y824824+CONFIG_SERIAL_CORE=y825825+CONFIG_SERIAL_CORE_CONSOLE=y826826+CONFIG_UNIX98_PTYS=y827827+# CONFIG_LEGACY_PTYS is not set828828+829829+#830830+# IPMI831831+#832832+# CONFIG_IPMI_HANDLER is not set833833+834834+#835835+# Watchdog Cards836836+#837837+# CONFIG_WATCHDOG is not set838838+# CONFIG_NVRAM is not set839839+# CONFIG_RTC is not set840840+# CONFIG_DTLK is not set841841+# CONFIG_R3964 is not set842842+843843+#844844+# Ftape, the floppy tape device driver845845+#846846+847847+#848848+# PCMCIA character devices849849+#850850+# CONFIG_SYNCLINK_CS is not set851851+# CONFIG_RAW_DRIVER is not set852852+853853+#854854+# TPM devices855855+#856856+857857+#858858+# I2C support859859+#860860+# CONFIG_I2C is not set861861+862862+#863863+# Hardware Monitoring support864864+#865865+CONFIG_HWMON=y866866+# CONFIG_HWMON_VID is not set867867+# CONFIG_HWMON_DEBUG_CHIP is not set868868+869869+#870870+# Misc devices871871+#872872+873873+#874874+# Multimedia Capabilities Port drivers875875+#876876+877877+#878878+# Multimedia devices879879+#880880+# CONFIG_VIDEO_DEV is not set881881+882882+#883883+# Digital Video Broadcasting Devices884884+#885885+# CONFIG_DVB is not set886886+887887+#888888+# Graphics support889889+#890890+CONFIG_FB=y891891+CONFIG_FB_CFB_FILLRECT=y892892+CONFIG_FB_CFB_COPYAREA=y893893+CONFIG_FB_CFB_IMAGEBLIT=y894894+CONFIG_FB_SOFT_CURSOR=y895895+# CONFIG_FB_MACMODES is not set896896+# CONFIG_FB_MODE_HELPERS is not set897897+# CONFIG_FB_TILEBLITTING is not set898898+CONFIG_FB_PXA=y899899+# CONFIG_FB_W100 is not set900900+# CONFIG_FB_PXA_PARAMETERS is not set901901+# CONFIG_FB_S1D13XXX is not set902902+# CONFIG_FB_VIRTUAL is not set903903+904904+#905905+# Console display driver support906906+#907907+# CONFIG_VGA_CONSOLE is not set908908+CONFIG_DUMMY_CONSOLE=y909909+CONFIG_FRAMEBUFFER_CONSOLE=y910910+CONFIG_FONTS=y911911+CONFIG_FONT_8x8=y912912+CONFIG_FONT_8x16=y913913+# CONFIG_FONT_6x11 is not set914914+# CONFIG_FONT_7x14 is not set915915+# CONFIG_FONT_PEARL_8x8 is not set916916+# CONFIG_FONT_ACORN_8x8 is not set917917+# CONFIG_FONT_MINI_4x6 is not set918918+# CONFIG_FONT_SUN8x16 is not set919919+# CONFIG_FONT_SUN12x22 is not set920920+# CONFIG_FONT_10x18 is not set921921+922922+#923923+# Logo configuration924924+#925925+# CONFIG_LOGO is not set926926+CONFIG_BACKLIGHT_LCD_SUPPORT=y927927+CONFIG_BACKLIGHT_CLASS_DEVICE=y928928+CONFIG_BACKLIGHT_DEVICE=y929929+CONFIG_LCD_CLASS_DEVICE=y930930+CONFIG_LCD_DEVICE=y931931+CONFIG_BACKLIGHT_CORGI=y932932+933933+#934934+# Sound935935+#936936+# CONFIG_SOUND is not set937937+938938+#939939+# USB support940940+#941941+CONFIG_USB_ARCH_HAS_HCD=y942942+CONFIG_USB_ARCH_HAS_OHCI=y943943+CONFIG_USB=m944944+# CONFIG_USB_DEBUG is not set945945+946946+#947947+# Miscellaneous USB options948948+#949949+CONFIG_USB_DEVICEFS=y950950+# CONFIG_USB_BANDWIDTH is not set951951+# CONFIG_USB_DYNAMIC_MINORS is not set952952+# CONFIG_USB_SUSPEND is not set953953+# CONFIG_USB_OTG is not set954954+955955+#956956+# USB Host Controller Drivers957957+#958958+# CONFIG_USB_ISP116X_HCD is not set959959+CONFIG_USB_OHCI_HCD=m960960+# CONFIG_USB_OHCI_BIG_ENDIAN is not set961961+CONFIG_USB_OHCI_LITTLE_ENDIAN=y962962+CONFIG_USB_SL811_HCD=m963963+CONFIG_USB_SL811_CS=m964964+965965+#966966+# USB Device Class drivers967967+#968968+969969+#970970+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem971971+#972972+CONFIG_USB_ACM=m973973+CONFIG_USB_PRINTER=m974974+975975+#976976+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information977977+#978978+CONFIG_USB_STORAGE=m979979+# CONFIG_USB_STORAGE_DEBUG is not set980980+# CONFIG_USB_STORAGE_DATAFAB is not set981981+# CONFIG_USB_STORAGE_FREECOM is not set982982+# CONFIG_USB_STORAGE_ISD200 is not set983983+# CONFIG_USB_STORAGE_DPCM is not set984984+# CONFIG_USB_STORAGE_USBAT is not set985985+# CONFIG_USB_STORAGE_SDDR09 is not set986986+# CONFIG_USB_STORAGE_SDDR55 is not set987987+# CONFIG_USB_STORAGE_JUMPSHOT is not set988988+# CONFIG_USB_STORAGE_ONETOUCH is not set989989+990990+#991991+# USB Input Devices992992+#993993+CONFIG_USB_HID=m994994+CONFIG_USB_HIDINPUT=y995995+# CONFIG_HID_FF is not set996996+# CONFIG_USB_HIDDEV is not set997997+998998+#999999+# USB HID Boot Protocol drivers10001000+#10011001+CONFIG_USB_KBD=m10021002+CONFIG_USB_MOUSE=m10031003+CONFIG_USB_AIPTEK=m10041004+CONFIG_USB_WACOM=m10051005+# CONFIG_USB_ACECAD is not set10061006+CONFIG_USB_KBTAB=m10071007+CONFIG_USB_POWERMATE=m10081008+CONFIG_USB_MTOUCH=m10091009+# CONFIG_USB_ITMTOUCH is not set10101010+CONFIG_USB_EGALAX=m10111011+# CONFIG_USB_YEALINK is not set10121012+CONFIG_USB_XPAD=m10131013+CONFIG_USB_ATI_REMOTE=m10141014+# CONFIG_USB_KEYSPAN_REMOTE is not set10151015+# CONFIG_USB_APPLETOUCH is not set10161016+10171017+#10181018+# USB Imaging devices10191019+#10201020+CONFIG_USB_MDC800=m10211021+CONFIG_USB_MICROTEK=m10221022+10231023+#10241024+# USB Multimedia devices10251025+#10261026+CONFIG_USB_DABUSB=m10271027+10281028+#10291029+# Video4Linux support is needed for USB Multimedia device support10301030+#10311031+10321032+#10331033+# USB Network Adapters10341034+#10351035+CONFIG_USB_CATC=m10361036+CONFIG_USB_KAWETH=m10371037+CONFIG_USB_PEGASUS=m10381038+CONFIG_USB_RTL8150=m10391039+CONFIG_USB_USBNET=m10401040+CONFIG_USB_NET_AX8817X=m10411041+CONFIG_USB_NET_CDCETHER=m10421042+# CONFIG_USB_NET_GL620A is not set10431043+CONFIG_USB_NET_NET1080=m10441044+# CONFIG_USB_NET_PLUSB is not set10451045+# CONFIG_USB_NET_RNDIS_HOST is not set10461046+# CONFIG_USB_NET_CDC_SUBSET is not set10471047+CONFIG_USB_NET_ZAURUS=m10481048+# CONFIG_USB_ZD1201 is not set10491049+CONFIG_USB_MON=y10501050+10511051+#10521052+# USB port drivers10531053+#10541054+10551055+#10561056+# USB Serial Converter support10571057+#10581058+CONFIG_USB_SERIAL=m10591059+CONFIG_USB_SERIAL_GENERIC=y10601060+# CONFIG_USB_SERIAL_AIRPRIME is not set10611061+CONFIG_USB_SERIAL_BELKIN=m10621062+# CONFIG_USB_SERIAL_WHITEHEAT is not set10631063+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m10641064+# CONFIG_USB_SERIAL_CP2101 is not set10651065+CONFIG_USB_SERIAL_CYPRESS_M8=m10661066+CONFIG_USB_SERIAL_EMPEG=m10671067+CONFIG_USB_SERIAL_FTDI_SIO=m10681068+CONFIG_USB_SERIAL_VISOR=m10691069+CONFIG_USB_SERIAL_IPAQ=m10701070+CONFIG_USB_SERIAL_IR=m10711071+CONFIG_USB_SERIAL_EDGEPORT=m10721072+CONFIG_USB_SERIAL_EDGEPORT_TI=m10731073+CONFIG_USB_SERIAL_GARMIN=m10741074+CONFIG_USB_SERIAL_IPW=m10751075+CONFIG_USB_SERIAL_KEYSPAN_PDA=m10761076+CONFIG_USB_SERIAL_KEYSPAN=m10771077+# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set10781078+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set10791079+# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set10801080+# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set10811081+# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set10821082+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set10831083+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set10841084+# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set10851085+# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set10861086+# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set10871087+# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set10881088+# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set10891089+CONFIG_USB_SERIAL_KLSI=m10901090+CONFIG_USB_SERIAL_KOBIL_SCT=m10911091+CONFIG_USB_SERIAL_MCT_U232=m10921092+CONFIG_USB_SERIAL_PL2303=m10931093+# CONFIG_USB_SERIAL_HP4X is not set10941094+CONFIG_USB_SERIAL_SAFE=m10951095+# CONFIG_USB_SERIAL_SAFE_PADDED is not set10961096+CONFIG_USB_SERIAL_TI=m10971097+CONFIG_USB_SERIAL_CYBERJACK=m10981098+CONFIG_USB_SERIAL_XIRCOM=m10991099+# CONFIG_USB_SERIAL_OPTION is not set11001100+CONFIG_USB_SERIAL_OMNINET=m11011101+CONFIG_USB_EZUSB=y11021102+11031103+#11041104+# USB Miscellaneous drivers11051105+#11061106+CONFIG_USB_EMI62=m11071107+CONFIG_USB_EMI26=m11081108+CONFIG_USB_AUERSWALD=m11091109+CONFIG_USB_RIO500=m11101110+CONFIG_USB_LEGOTOWER=m11111111+CONFIG_USB_LCD=m11121112+CONFIG_USB_LED=m11131113+CONFIG_USB_CYTHERM=m11141114+CONFIG_USB_PHIDGETKIT=m11151115+CONFIG_USB_PHIDGETSERVO=m11161116+CONFIG_USB_IDMOUSE=m11171117+# CONFIG_USB_LD is not set11181118+# CONFIG_USB_TEST is not set11191119+11201120+#11211121+# USB DSL modem support11221122+#11231123+11241124+#11251125+# USB Gadget Support11261126+#11271127+CONFIG_USB_GADGET=m11281128+# CONFIG_USB_GADGET_DEBUG_FILES is not set11291129+CONFIG_USB_GADGET_SELECTED=y11301130+# CONFIG_USB_GADGET_NET2280 is not set11311131+# CONFIG_USB_GADGET_PXA2XX is not set11321132+# CONFIG_USB_GADGET_GOKU is not set11331133+# CONFIG_USB_GADGET_LH7A40X is not set11341134+# CONFIG_USB_GADGET_OMAP is not set11351135+CONFIG_USB_GADGET_DUMMY_HCD=y11361136+CONFIG_USB_DUMMY_HCD=m11371137+CONFIG_USB_GADGET_DUALSPEED=y11381138+CONFIG_USB_ZERO=m11391139+CONFIG_USB_ETH=m11401140+CONFIG_USB_ETH_RNDIS=y11411141+CONFIG_USB_GADGETFS=m11421142+CONFIG_USB_FILE_STORAGE=m11431143+# CONFIG_USB_FILE_STORAGE_TEST is not set11441144+CONFIG_USB_G_SERIAL=m11451145+11461146+#11471147+# MMC/SD Card support11481148+#11491149+CONFIG_MMC=y11501150+# CONFIG_MMC_DEBUG is not set11511151+CONFIG_MMC_BLOCK=y11521152+CONFIG_MMC_PXA=y11531153+# CONFIG_MMC_WBSD is not set11541154+11551155+#11561156+# File systems11571157+#11581158+CONFIG_EXT2_FS=y11591159+CONFIG_EXT2_FS_XATTR=y11601160+CONFIG_EXT2_FS_POSIX_ACL=y11611161+CONFIG_EXT2_FS_SECURITY=y11621162+# CONFIG_EXT2_FS_XIP is not set11631163+CONFIG_EXT3_FS=y11641164+# CONFIG_EXT3_FS_XATTR is not set11651165+CONFIG_JBD=y11661166+# CONFIG_JBD_DEBUG is not set11671167+CONFIG_FS_MBCACHE=y11681168+# CONFIG_REISERFS_FS is not set11691169+# CONFIG_JFS_FS is not set11701170+CONFIG_FS_POSIX_ACL=y11711171+# CONFIG_XFS_FS is not set11721172+# CONFIG_MINIX_FS is not set11731173+# CONFIG_ROMFS_FS is not set11741174+CONFIG_INOTIFY=y11751175+# CONFIG_QUOTA is not set11761176+CONFIG_DNOTIFY=y11771177+# CONFIG_AUTOFS_FS is not set11781178+# CONFIG_AUTOFS4_FS is not set11791179+# CONFIG_FUSE_FS is not set11801180+11811181+#11821182+# CD-ROM/DVD Filesystems11831183+#11841184+# CONFIG_ISO9660_FS is not set11851185+# CONFIG_UDF_FS is not set11861186+11871187+#11881188+# DOS/FAT/NT Filesystems11891189+#11901190+CONFIG_FAT_FS=y11911191+CONFIG_MSDOS_FS=y11921192+CONFIG_VFAT_FS=y11931193+CONFIG_FAT_DEFAULT_CODEPAGE=43711941194+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"11951195+# CONFIG_NTFS_FS is not set11961196+11971197+#11981198+# Pseudo filesystems11991199+#12001200+CONFIG_PROC_FS=y12011201+CONFIG_SYSFS=y12021202+CONFIG_TMPFS=y12031203+# CONFIG_HUGETLB_PAGE is not set12041204+CONFIG_RAMFS=y12051205+# CONFIG_RELAYFS_FS is not set12061206+12071207+#12081208+# Miscellaneous filesystems12091209+#12101210+# CONFIG_ADFS_FS is not set12111211+# CONFIG_AFFS_FS is not set12121212+# CONFIG_HFS_FS is not set12131213+# CONFIG_HFSPLUS_FS is not set12141214+# CONFIG_BEFS_FS is not set12151215+# CONFIG_BFS_FS is not set12161216+# CONFIG_EFS_FS is not set12171217+# CONFIG_JFFS_FS is not set12181218+CONFIG_JFFS2_FS=y12191219+CONFIG_JFFS2_FS_DEBUG=012201220+CONFIG_JFFS2_FS_WRITEBUFFER=y12211221+CONFIG_JFFS2_COMPRESSION_OPTIONS=y12221222+CONFIG_JFFS2_ZLIB=y12231223+CONFIG_JFFS2_RTIME=y12241224+CONFIG_JFFS2_RUBIN=y12251225+# CONFIG_JFFS2_CMODE_NONE is not set12261226+CONFIG_JFFS2_CMODE_PRIORITY=y12271227+# CONFIG_JFFS2_CMODE_SIZE is not set12281228+CONFIG_CRAMFS=m12291229+# CONFIG_VXFS_FS is not set12301230+# CONFIG_HPFS_FS is not set12311231+# CONFIG_QNX4FS_FS is not set12321232+# CONFIG_SYSV_FS is not set12331233+# CONFIG_UFS_FS is not set12341234+12351235+#12361236+# Network File Systems12371237+#12381238+CONFIG_NFS_FS=m12391239+CONFIG_NFS_V3=y12401240+# CONFIG_NFS_V3_ACL is not set12411241+CONFIG_NFS_V4=y12421242+# CONFIG_NFS_DIRECTIO is not set12431243+# CONFIG_NFSD is not set12441244+CONFIG_LOCKD=m12451245+CONFIG_LOCKD_V4=y12461246+CONFIG_NFS_COMMON=y12471247+CONFIG_SUNRPC=m12481248+CONFIG_SUNRPC_GSS=m12491249+CONFIG_RPCSEC_GSS_KRB5=m12501250+# CONFIG_RPCSEC_GSS_SPKM3 is not set12511251+CONFIG_SMB_FS=m12521252+CONFIG_SMB_NLS_DEFAULT=y12531253+CONFIG_SMB_NLS_REMOTE="cp437"12541254+# CONFIG_CIFS is not set12551255+# CONFIG_NCP_FS is not set12561256+# CONFIG_CODA_FS is not set12571257+# CONFIG_AFS_FS is not set12581258+# CONFIG_9P_FS is not set12591259+12601260+#12611261+# Partition Types12621262+#12631263+CONFIG_PARTITION_ADVANCED=y12641264+# CONFIG_ACORN_PARTITION is not set12651265+# CONFIG_OSF_PARTITION is not set12661266+# CONFIG_AMIGA_PARTITION is not set12671267+# CONFIG_ATARI_PARTITION is not set12681268+# CONFIG_MAC_PARTITION is not set12691269+CONFIG_MSDOS_PARTITION=y12701270+# CONFIG_BSD_DISKLABEL is not set12711271+# CONFIG_MINIX_SUBPARTITION is not set12721272+# CONFIG_SOLARIS_X86_PARTITION is not set12731273+# CONFIG_UNIXWARE_DISKLABEL is not set12741274+# CONFIG_LDM_PARTITION is not set12751275+# CONFIG_SGI_PARTITION is not set12761276+# CONFIG_ULTRIX_PARTITION is not set12771277+# CONFIG_SUN_PARTITION is not set12781278+# CONFIG_EFI_PARTITION is not set12791279+12801280+#12811281+# Native Language Support12821282+#12831283+CONFIG_NLS=y12841284+CONFIG_NLS_DEFAULT="cp437"12851285+CONFIG_NLS_CODEPAGE_437=y12861286+# CONFIG_NLS_CODEPAGE_737 is not set12871287+# CONFIG_NLS_CODEPAGE_775 is not set12881288+# CONFIG_NLS_CODEPAGE_850 is not set12891289+# CONFIG_NLS_CODEPAGE_852 is not set12901290+# CONFIG_NLS_CODEPAGE_855 is not set12911291+# CONFIG_NLS_CODEPAGE_857 is not set12921292+# CONFIG_NLS_CODEPAGE_860 is not set12931293+# CONFIG_NLS_CODEPAGE_861 is not set12941294+# CONFIG_NLS_CODEPAGE_862 is not set12951295+# CONFIG_NLS_CODEPAGE_863 is not set12961296+# CONFIG_NLS_CODEPAGE_864 is not set12971297+# CONFIG_NLS_CODEPAGE_865 is not set12981298+# CONFIG_NLS_CODEPAGE_866 is not set12991299+# CONFIG_NLS_CODEPAGE_869 is not set13001300+# CONFIG_NLS_CODEPAGE_936 is not set13011301+# CONFIG_NLS_CODEPAGE_950 is not set13021302+# CONFIG_NLS_CODEPAGE_932 is not set13031303+# CONFIG_NLS_CODEPAGE_949 is not set13041304+# CONFIG_NLS_CODEPAGE_874 is not set13051305+# CONFIG_NLS_ISO8859_8 is not set13061306+# CONFIG_NLS_CODEPAGE_1250 is not set13071307+# CONFIG_NLS_CODEPAGE_1251 is not set13081308+# CONFIG_NLS_ASCII is not set13091309+CONFIG_NLS_ISO8859_1=y13101310+# CONFIG_NLS_ISO8859_2 is not set13111311+# CONFIG_NLS_ISO8859_3 is not set13121312+# CONFIG_NLS_ISO8859_4 is not set13131313+# CONFIG_NLS_ISO8859_5 is not set13141314+# CONFIG_NLS_ISO8859_6 is not set13151315+# CONFIG_NLS_ISO8859_7 is not set13161316+# CONFIG_NLS_ISO8859_9 is not set13171317+# CONFIG_NLS_ISO8859_13 is not set13181318+# CONFIG_NLS_ISO8859_14 is not set13191319+# CONFIG_NLS_ISO8859_15 is not set13201320+# CONFIG_NLS_KOI8_R is not set13211321+# CONFIG_NLS_KOI8_U is not set13221322+CONFIG_NLS_UTF8=y13231323+13241324+#13251325+# Profiling support13261326+#13271327+CONFIG_PROFILING=y13281328+CONFIG_OPROFILE=m13291329+13301330+#13311331+# Kernel hacking13321332+#13331333+# CONFIG_PRINTK_TIME is not set13341334+CONFIG_DEBUG_KERNEL=y13351335+CONFIG_MAGIC_SYSRQ=y13361336+CONFIG_LOG_BUF_SHIFT=1413371337+CONFIG_DETECT_SOFTLOCKUP=y13381338+# CONFIG_SCHEDSTATS is not set13391339+# CONFIG_DEBUG_SLAB is not set13401340+# CONFIG_DEBUG_PREEMPT is not set13411341+# CONFIG_DEBUG_SPINLOCK is not set13421342+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set13431343+# CONFIG_DEBUG_KOBJECT is not set13441344+CONFIG_DEBUG_BUGVERBOSE=y13451345+# CONFIG_DEBUG_INFO is not set13461346+# CONFIG_DEBUG_FS is not set13471347+CONFIG_FRAME_POINTER=y13481348+# CONFIG_DEBUG_USER is not set13491349+# CONFIG_DEBUG_WAITQ is not set13501350+CONFIG_DEBUG_ERRORS=y13511351+CONFIG_DEBUG_LL=y13521352+# CONFIG_DEBUG_ICEDCC is not set13531353+13541354+#13551355+# Security options13561356+#13571357+# CONFIG_KEYS is not set13581358+# CONFIG_SECURITY is not set13591359+13601360+#13611361+# Cryptographic options13621362+#13631363+CONFIG_CRYPTO=y13641364+CONFIG_CRYPTO_HMAC=y13651365+CONFIG_CRYPTO_NULL=m13661366+CONFIG_CRYPTO_MD4=m13671367+CONFIG_CRYPTO_MD5=m13681368+CONFIG_CRYPTO_SHA1=m13691369+CONFIG_CRYPTO_SHA256=m13701370+CONFIG_CRYPTO_SHA512=m13711371+CONFIG_CRYPTO_WP512=m13721372+# CONFIG_CRYPTO_TGR192 is not set13731373+CONFIG_CRYPTO_DES=m13741374+CONFIG_CRYPTO_BLOWFISH=m13751375+CONFIG_CRYPTO_TWOFISH=m13761376+CONFIG_CRYPTO_SERPENT=m13771377+CONFIG_CRYPTO_AES=m13781378+CONFIG_CRYPTO_CAST5=m13791379+CONFIG_CRYPTO_CAST6=m13801380+CONFIG_CRYPTO_TEA=m13811381+CONFIG_CRYPTO_ARC4=m13821382+CONFIG_CRYPTO_KHAZAD=m13831383+CONFIG_CRYPTO_ANUBIS=m13841384+CONFIG_CRYPTO_DEFLATE=m13851385+CONFIG_CRYPTO_MICHAEL_MIC=m13861386+CONFIG_CRYPTO_CRC32C=m13871387+CONFIG_CRYPTO_TEST=m13881388+13891389+#13901390+# Hardware crypto devices13911391+#13921392+13931393+#13941394+# Library routines13951395+#13961396+CONFIG_CRC_CCITT=y13971397+# CONFIG_CRC16 is not set13981398+CONFIG_CRC32=y13991399+CONFIG_LIBCRC32C=m14001400+CONFIG_ZLIB_INFLATE=y14011401+CONFIG_ZLIB_DEFLATE=y
···230230static int chip1_map[] = { 2 };231231static int chip2_map[] = { 3 };232232233233-struct mtd_partition bast_default_nand_part[] = {233233+static struct mtd_partition bast_default_nand_part[] = {234234 [0] = {235235 .name = "Boot Agent",236236 .size = SZ_16K,···340340 * better IO routines can be written and tested341341*/342342343343-struct dm9000_plat_data bast_dm9k_platdata = {343343+static struct dm9000_plat_data bast_dm9k_platdata = {344344 .flags = DM9000_PLATF_16BITONLY345345};346346
+1-1
arch/arm/mach-s3c2410/mach-vr1000.c
···288288 * better IO routines can be written and tested289289*/290290291291-struct dm9000_plat_data vr1000_dm9k_platdata = {291291+static struct dm9000_plat_data vr1000_dm9k_platdata = {292292 .flags = DM9000_PLATF_16BITONLY,293293};294294
-3
arch/arm/mach-s3c2410/s3c2410.c
···125125 &s3c_uart2126126};127127128128-/* store our uart devices for the serial driver console */129129-struct platform_device *s3c2410_uart_devices[3];130130-131128static int s3c2410_uart_count = 0;132129133130/* uart registration process */
+2-2
arch/arm/mach-s3c2410/s3c2440.c
···151151152152#ifdef CONFIG_PM153153154154-struct sleep_save s3c2440_sleep[] = {154154+static struct sleep_save s3c2440_sleep[] = {155155 SAVE_ITEM(S3C2440_DSC0),156156 SAVE_ITEM(S3C2440_DSC1),157157 SAVE_ITEM(S3C2440_GPJDAT),···260260 * as a driver which may support both 2410 and 2440 may try and use it.261261*/262262263263-int __init s3c2440_core_init(void)263263+static int __init s3c2440_core_init(void)264264{265265 return sysdev_class_register(&s3c2440_sysclass);266266}
+1
arch/arm/mach-s3c2410/time.c
···3838#include <asm/hardware/clock.h>39394040#include "clock.h"4141+#include "cpu.h"41424243static unsigned long timer_startval;4344static unsigned long timer_usec_ticks;
···370370371371config CPU_ICACHE_DISABLE372372 bool "Disable I-Cache"373373- depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020373373+ depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6374374 help375375 Say Y here to disable the processor instruction cache. Unless376376 you have a reason not to or are unsure, say N.377377378378config CPU_DCACHE_DISABLE379379 bool "Disable D-Cache"380380- depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020380380+ depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6381381 help382382 Say Y here to disable the processor data cache. Unless383383 you have a reason not to or are unsure, say N.384384385385config CPU_DCACHE_WRITETHROUGH386386 bool "Force write through D-cache"387387- depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE387387+ depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE388388 default y if CPU_ARM925T389389 help390390 Say Y here to use the data cache in writethrough mode. Unless you···399399400400config CPU_BPREDICT_DISABLE401401 bool "Disable branch prediction"402402- depends on CPU_ARM1020402402+ depends on CPU_ARM1020 || CPU_V6403403 help404404 Say Y here to disable branch prediction. If unsure, say N.405405
+32-23
arch/arm/mm/alignment.c
···111111}112112113113static int proc_alignment_write(struct file *file, const char __user *buffer,114114- unsigned long count, void *data)114114+ unsigned long count, void *data)115115{116116 char mode;117117···119119 if (get_user(mode, buffer))120120 return -EFAULT;121121 if (mode >= '0' && mode <= '5')122122- ai_usermode = mode - '0';122122+ ai_usermode = mode - '0';123123 }124124 return count;125125}···262262 goto fault; \263263 } while (0)264264265265-#define put32_unaligned_check(val,addr) \265265+#define put32_unaligned_check(val,addr) \266266 __put32_unaligned_check("strb", val, addr)267267268268#define put32t_unaligned_check(val,addr) \···306306 return TYPE_LDST;307307308308 user:309309- if (LDST_L_BIT(instr)) {310310- unsigned long val;311311- get16t_unaligned_check(val, addr);309309+ if (LDST_L_BIT(instr)) {310310+ unsigned long val;311311+ get16t_unaligned_check(val, addr);312312313313- /* signed half-word? */314314- if (instr & 0x40)315315- val = (signed long)((signed short) val);313313+ /* signed half-word? */314314+ if (instr & 0x40)315315+ val = (signed long)((signed short) val);316316317317- regs->uregs[rd] = val;318318- } else319319- put16t_unaligned_check(regs->uregs[rd], addr);317317+ regs->uregs[rd] = val;318318+ } else319319+ put16t_unaligned_check(regs->uregs[rd], addr);320320321321- return TYPE_LDST;321321+ return TYPE_LDST;322322323323 fault:324324 return TYPE_FAULT;···330330{331331 unsigned int rd = RD_BITS(instr);332332333333+ if (((rd & 1) == 1) || (rd == 14))334334+ goto bad;335335+333336 ai_dword += 1;334337335338 if (user_mode(regs))···342339 unsigned long val;343340 get32_unaligned_check(val, addr);344341 regs->uregs[rd] = val;345345- get32_unaligned_check(val, addr+4);346346- regs->uregs[rd+1] = val;342342+ get32_unaligned_check(val, addr + 4);343343+ regs->uregs[rd + 1] = val;347344 } else {348345 put32_unaligned_check(regs->uregs[rd], addr);349349- put32_unaligned_check(regs->uregs[rd+1], addr+4);346346+ put32_unaligned_check(regs->uregs[rd + 1], addr + 4);350347 }351348352349 return TYPE_LDST;···356353 unsigned long val;357354 get32t_unaligned_check(val, addr);358355 regs->uregs[rd] = val;359359- get32t_unaligned_check(val, addr+4);360360- regs->uregs[rd+1] = val;356356+ get32t_unaligned_check(val, addr + 4);357357+ regs->uregs[rd + 1] = val;361358 } else {362359 put32t_unaligned_check(regs->uregs[rd], addr);363363- put32t_unaligned_check(regs->uregs[rd+1], addr+4);360360+ put32t_unaligned_check(regs->uregs[rd + 1], addr + 4);364361 }365362366363 return TYPE_LDST;367367-364364+ bad:365365+ return TYPE_ERROR;368366 fault:369367 return TYPE_FAULT;370368}···443439 if (LDST_P_EQ_U(instr)) /* U = P */444440 eaddr += 4;445441446446- /* 442442+ /*447443 * For alignment faults on the ARM922T/ARM920T the MMU makes448444 * the FSR (and hence addr) equal to the updated base address449445 * of the multiple access rather than the restored value.···570566 /* 6.5.1 Format 3: */571567 case 0x4800 >> 11: /* 7.1.28 LDR(3) */572568 /* NOTE: This case is not technically possible. We're573573- * loading 32-bit memory data via PC relative569569+ * loading 32-bit memory data via PC relative574570 * addressing mode. So we can and should eliminate575571 * this case. But I'll leave it here for now.576572 */···642638643639 if (fault) {644640 type = TYPE_FAULT;645645- goto bad_or_fault;641641+ goto bad_or_fault;646642 }647643648644 if (user_mode(regs))···667663 else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */668664 (instr & 0x001000f0) == 0x000000f0) /* STRD */669665 handler = do_alignment_ldrdstrd;666666+ else if ((instr & 0x01f00ff0) == 0x01000090) /* SWP */667667+ goto swp;670668 else671669 goto bad;672670 break;···738732 */739733 do_bad_area(current, current->mm, addr, fsr, regs);740734 return 0;735735+736736+ swp:737737+ printk(KERN_ERR "Alignment trap: not handling swp instruction\n");741738742739 bad:743740 /*
-5
arch/arm/nwfpe/fpa11.c
···3131#include <linux/string.h>3232#include <asm/system.h>33333434-/* forward declarations */3535-unsigned int EmulateCPDO(const unsigned int);3636-unsigned int EmulateCPDT(const unsigned int);3737-unsigned int EmulateCPRT(const unsigned int);3838-3934/* Reset the FPA11 chip. Called to initialize and reset the emulator. */4035static void resetFPA11(void)4136{
+20
arch/arm/nwfpe/fpa11.h
···9595extern int8 SetRoundingPrecision(const unsigned int);9696extern void nwfpe_init_fpa(union fp_state *fp);97979898+extern unsigned int EmulateAll(unsigned int opcode);9999+100100+extern unsigned int EmulateCPDT(const unsigned int opcode);101101+extern unsigned int EmulateCPDO(const unsigned int opcode);102102+extern unsigned int EmulateCPRT(const unsigned int opcode);103103+104104+/* fpa11_cpdt.c */105105+extern unsigned int PerformLDF(const unsigned int opcode);106106+extern unsigned int PerformSTF(const unsigned int opcode);107107+extern unsigned int PerformLFM(const unsigned int opcode);108108+extern unsigned int PerformSFM(const unsigned int opcode);109109+110110+/* single_cpdo.c */111111+112112+extern unsigned int SingleCPDO(struct roundingData *roundData,113113+ const unsigned int opcode, FPREG * rFd);114114+/* double_cpdo.c */115115+extern unsigned int DoubleCPDO(struct roundingData *roundData,116116+ const unsigned int opcode, FPREG * rFd);117117+98118#endif
+1-2
arch/arm/nwfpe/fpa11_cprt.c
···2626#include "fpa11.inl"2727#include "fpmodule.h"2828#include "fpmodule.inl"2929+#include "softfloat.h"29303031#ifdef CONFIG_FPE_NWFPE_XP3132extern flag floatx80_is_nan(floatx80);3233#endif3333-extern flag float64_is_nan(float64);3434-extern flag float32_is_nan(float32);35343635unsigned int PerformFLT(const unsigned int opcode);3736unsigned int PerformFIX(const unsigned int opcode);
+6
arch/arm/nwfpe/fpopcode.h
···476476 return (nRc);477477}478478479479+extern unsigned int checkCondition(const unsigned int opcode,480480+ const unsigned int ccodes);481481+482482+extern const float64 float64Constant[];483483+extern const float32 float32Constant[];484484+479485#endif
+3
arch/arm/nwfpe/softfloat.h
···265265 return (a != b) && (aSign ^ (a < b));266266}267267268268+extern flag float32_is_nan( float32 a );269269+extern flag float64_is_nan( float64 a );270270+268271#endif
···1515#include <linux/kernel.h>1616#include <linux/cpumask.h>1717#include <linux/interrupt.h>1818+#include <linux/module.h>18191920#define IPI_SCHEDULE 12021#define IPI_CALL 2···2928/* CPU masks */3029cpumask_t cpu_online_map = CPU_MASK_NONE;3130cpumask_t phys_cpu_present_map = CPU_MASK_NONE;3131+EXPORT_SYMBOL(phys_cpu_present_map);32323333/* Variables used during SMP boot */3434volatile int cpu_now_booting = 0;
+1-1
arch/i386/kernel/cpu/amd.c
···2929 int r;30303131#ifdef CONFIG_SMP3232- unsigned long value;3232+ unsigned long long value;33333434 /* Disable TLB flush filter by setting HWCR.FFDIS on K83535 * bit 6 of msr C001_0015
···338338 esp = (unsigned long) ka->sa.sa_restorer;339339 }340340341341- return (void __user *)((esp - frame_size) & -8ul);341341+ esp -= frame_size;342342+ /* Align the stack pointer according to the i386 ABI,343343+ * i.e. so that on function entry ((sp + 4) & 15) == 0. */344344+ esp = ((esp + 4) & -16ul) - 4;345345+ return (void __user *) esp;342346}343347344348/* These symbols are defined with the addresses in the vsyscall page.
+5
arch/ia64/kernel/mca.c
···1016101610171017 cmc_polling_enabled = 1;10181018 spin_unlock(&cmc_history_lock);10191019+ /* If we're being hit with CMC interrupts, we won't10201020+ * ever execute the schedule_work() below. Need to10211021+ * disable CMC interrupts on this processor now.10221022+ */10231023+ ia64_mca_cmc_vector_disable(NULL);10191024 schedule_work(&cmc_disable_work);1020102510211026 /*
···25252626menu "General machine setup"27272828-config VT2929- bool3030- select INPUT3131- default y3232- ---help---3333- If you say Y here, you will get support for terminal devices with3434- display and keyboard devices. These are called "virtual" because you3535- can run several virtual terminals (also called virtual consoles) on3636- one physical terminal. This is rather useful, for example one3737- virtual terminal can collect system messages and warnings, another3838- one can be used for a text-mode user session, and a third could run3939- an X session, all in parallel. Switching between virtual terminals4040- is done with certain key combinations, usually Alt-<function key>.4141-4242- The setterm command ("man setterm") can be used to change the4343- properties (such as colors or beeping) of a virtual terminal. The4444- man page console_codes(4) ("man console_codes") contains the special4545- character sequences that can be used to change those properties4646- directly. The fonts used on virtual terminals can be changed with4747- the setfont ("man setfont") command and the key bindings are defined4848- with the loadkeys ("man loadkeys") command.4949-5050- You need at least one virtual terminal device in order to make use5151- of your keyboard and monitor. Therefore, only people configuring an5252- embedded system would want to say N here in order to save some5353- memory; the only way to log into such a system is then via a serial5454- or network connection.5555-5656- If unsure, say Y, or else you won't be able to do much with your new5757- shiny Linux system :-)5858-5959-config VT_CONSOLE6060- bool6161- default y6262- ---help---6363- The system console is the device which receives all kernel messages6464- and warnings and which allows logins in single user mode. If you6565- answer Y here, a virtual terminal (the device used to interact with6666- a physical terminal) can be used as system console. This is the most6767- common mode of operations, so you should say Y here unless you want6868- the kernel messages be output only to a serial port (in which case6969- you should say Y to "Console on serial port", below).7070-7171- If you do say Y here, by default the currently visible virtual7272- terminal (/dev/tty0) will be used as system console. You can change7373- that with a kernel command line option such as "console=tty3" which7474- would use the third virtual terminal as system console. (Try "man7575- bootparam" or see the documentation of your boot loader (lilo or7676- loadlin) about how to pass options to the kernel at boot time.)7777-7878- If unsure, say Y.7979-8080-config HW_CONSOLE8181- bool8282- default y8383-8428config SMP8529 bool "Symmetric multi-processing support (does not work on sun4/sun4c)"8630 depends on BROKEN
···2828#include <asm/mmu.h>29293030/* This section from from _start to sparc64_boot_end should fit into3131- * 0x0000.0000.0040.4000 to 0x0000.0000.0040.8000 and will be sharing space3232- * with bootup_user_stack, which is from 0x0000.0000.0040.4000 to3333- * 0x0000.0000.0040.6000 and empty_bad_page, which is from3434- * 0x0000.0000.0040.6000 to 0x0000.0000.0040.8000. 3131+ * 0x0000000000404000 to 0x0000000000408000.3532 */3636-3733 .text3834 .globl start, _start, stext, _stext3935_start:4036start:4137_stext:4238stext:4343-bootup_user_stack:4439! 0x00000000004040004540 b sparc64_boot4641 flushw /* Flush register file. */···186191 stx %l3, [%sp + 2047 + 128 + 0x10] ! num_rets, 5187192 stx %l2, [%sp + 2047 + 128 + 0x18] ! arg1: "translate"188193 stx %l5, [%sp + 2047 + 128 + 0x20] ! arg2: prom_mmu_ihandle_cache189189- srlx %l0, 22, %l3190190- sllx %l3, 22, %l3194194+ /* PAGE align */195195+ srlx %l0, 13, %l3196196+ sllx %l3, 13, %l3191197 stx %l3, [%sp + 2047 + 128 + 0x28] ! arg3: vaddr, our PC192198 stx %g0, [%sp + 2047 + 128 + 0x30] ! res1193199 stx %g0, [%sp + 2047 + 128 + 0x38] ! res2···207211 ldx [%sp + 2047 + 128 + 0x48], %l2 ! physaddr high208212 stx %l2, [%l4 + 0x0]209213 ldx [%sp + 2047 + 128 + 0x50], %l3 ! physaddr low214214+ /* 4MB align */215215+ srlx %l3, 22, %l3216216+ sllx %l3, 22, %l3210217 stx %l3, [%l4 + 0x8]211218212219 /* Leave service as-is, "call-method" */···3243251: sethi %hi(tlb_type), %g1325326 stw %g2, [%g1 + %lo(tlb_type)]326327327327- BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,1f)328328- ba,pt %xcc, 2f329329- nop330330-331331-1: /* Patch context register writes to support nucleus page332332- * size correctly.333333- */334334- call cheetah_plus_patch_etrap335335- nop336336- call cheetah_plus_patch_rtrap337337- nop338338- call cheetah_plus_patch_fpdis339339- nop340340- call cheetah_plus_patch_winfixup341341- nop342342-343343-2: /* Patch copy/page operations to cheetah optimized versions. */328328+ /* Patch copy/page operations to cheetah optimized versions. */344329 call cheetah_patch_copyops345330 nop346331 call cheetah_patch_copy_page···381398 nop382399 /* Not reached... */383400384384-/* IMPORTANT NOTE: Whenever making changes here, check385385- * trampoline.S as well. -jj */386386- .globl setup_tba387387-setup_tba: /* i0 = is_starfire */388388- save %sp, -160, %sp401401+ /* This is meant to allow the sharing of this code between402402+ * boot processor invocation (via setup_tba() below) and403403+ * secondary processor startup (via trampoline.S). The404404+ * former does use this code, the latter does not yet due405405+ * to some complexities. That should be fixed up at some406406+ * point.407407+ *408408+ * There used to be enormous complexity wrt. transferring409409+ * over from the firwmare's trap table to the Linux kernel's.410410+ * For example, there was a chicken & egg problem wrt. building411411+ * the OBP page tables, yet needing to be on the Linux kernel412412+ * trap table (to translate PAGE_OFFSET addresses) in order to413413+ * do that.414414+ *415415+ * We now handle OBP tlb misses differently, via linear lookups416416+ * into the prom_trans[] array. So that specific problem no417417+ * longer exists. Yet, unfortunately there are still some issues418418+ * preventing trampoline.S from using this code... ho hum.419419+ */420420+ .globl setup_trap_table421421+setup_trap_table:422422+ save %sp, -192, %sp389423390390- rdpr %tba, %g7391391- sethi %hi(prom_tba), %o1392392- or %o1, %lo(prom_tba), %o1393393- stx %g7, [%o1]424424+ /* Force interrupts to be disabled. */425425+ rdpr %pstate, %o1426426+ andn %o1, PSTATE_IE, %o1427427+ wrpr %o1, 0x0, %pstate428428+ wrpr %g0, 15, %pil394429395395- /* Setup "Linux" globals 8-) */430430+ /* Make the firmware call to jump over to the Linux trap table. */431431+ call prom_set_trap_table432432+ sethi %hi(sparc64_ttable_tl0), %o0433433+434434+ /* Start using proper page size encodings in ctx register. */435435+ sethi %hi(sparc64_kern_pri_context), %g3436436+ ldx [%g3 + %lo(sparc64_kern_pri_context)], %g2437437+ mov PRIMARY_CONTEXT, %g1438438+ stxa %g2, [%g1] ASI_DMMU439439+ membar #Sync440440+441441+ /* The Linux trap handlers expect various trap global registers442442+ * to be setup with some fixed values. So here we set these443443+ * up very carefully. These globals are:444444+ *445445+ * Alternate Globals (PSTATE_AG):446446+ *447447+ * %g6 --> current_thread_info()448448+ *449449+ * MMU Globals (PSTATE_MG):450450+ *451451+ * %g1 --> TLB_SFSR452452+ * %g2 --> ((_PAGE_VALID | _PAGE_SZ4MB |453453+ * _PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W)454454+ * ^ 0xfffff80000000000)455455+ * (this %g2 value is used for computing the PAGE_OFFSET kernel456456+ * TLB entries quickly, the virtual address of the fault XOR'd457457+ * with this %g2 value is the PTE to load into the TLB)458458+ * %g3 --> VPTE_BASE_CHEETAH or VPTE_BASE_SPITFIRE459459+ *460460+ * Interrupt Globals (PSTATE_IG, setup by init_irqwork_curcpu()):461461+ *462462+ * %g6 --> __irq_work[smp_processor_id()]463463+ */464464+396465 rdpr %pstate, %o1397466 mov %g6, %o2398398- wrpr %o1, (PSTATE_AG|PSTATE_IE), %pstate399399- sethi %hi(sparc64_ttable_tl0), %g1400400- wrpr %g1, %tba467467+ wrpr %o1, PSTATE_AG, %pstate401468 mov %o2, %g6402469403403- /* Set up MMU globals */404404- wrpr %o1, (PSTATE_MG|PSTATE_IE), %pstate405405-406406- /* Set fixed globals used by dTLB miss handler. */407470#define KERN_HIGHBITS ((_PAGE_VALID|_PAGE_SZ4MB)^0xfffff80000000000)408471#define KERN_LOWBITS (_PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W)409409-472472+ wrpr %o1, PSTATE_MG, %pstate410473 mov TSB_REG, %g1411474 stxa %g0, [%g1] ASI_DMMU412475 membar #Sync···464435 sllx %g2, 32, %g2465436 or %g2, KERN_LOWBITS, %g2466437467467- BRANCH_IF_ANY_CHEETAH(g3,g7,cheetah_vpte_base)468468- ba,pt %xcc, spitfire_vpte_base438438+ BRANCH_IF_ANY_CHEETAH(g3,g7,8f)439439+ ba,pt %xcc, 9f469440 nop470441471471-cheetah_vpte_base:442442+8:472443 sethi %uhi(VPTE_BASE_CHEETAH), %g3473444 or %g3, %ulo(VPTE_BASE_CHEETAH), %g3474445 ba,pt %xcc, 2f475446 sllx %g3, 32, %g3476447477477-spitfire_vpte_base:448448+9:478449 sethi %uhi(VPTE_BASE_SPITFIRE), %g3479450 or %g3, %ulo(VPTE_BASE_SPITFIRE), %g3480451 sllx %g3, 32, %g3···500471 sllx %o2, 32, %o2501472 wr %o2, %asr25502473503503- /* Ok, we're done setting up all the state our trap mechanims needs,504504- * now get back into normal globals and let the PROM know what is up.505505- */5064742:507475 wrpr %g0, %g0, %wstate508508- wrpr %o1, PSTATE_IE, %pstate476476+ wrpr %o1, 0x0, %pstate509477510478 call init_irqwork_curcpu511479 nop512480513513- call prom_set_trap_table514514- sethi %hi(sparc64_ttable_tl0), %o0515515-516516- BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g2,g3,1f)517517- ba,pt %xcc, 2f518518- nop519519-520520-1: /* Start using proper page size encodings in ctx register. */521521- sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3522522- mov PRIMARY_CONTEXT, %g1523523- sllx %g3, 32, %g3524524- sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2525525- or %g3, %g2, %g3526526- stxa %g3, [%g1] ASI_DMMU527527- membar #Sync528528-529529-2:481481+ /* Now we can turn interrupts back on. */530482 rdpr %pstate, %o1531483 or %o1, PSTATE_IE, %o1532484 wrpr %o1, 0, %pstate485485+ wrpr %g0, 0x0, %pil533486534487 ret535488 restore536489490490+ .globl setup_tba491491+setup_tba: /* i0 = is_starfire */492492+ save %sp, -192, %sp493493+494494+ /* The boot processor is the only cpu which invokes this495495+ * routine, the other cpus set things up via trampoline.S.496496+ * So save the OBP trap table address here.497497+ */498498+ rdpr %tba, %g7499499+ sethi %hi(prom_tba), %o1500500+ or %o1, %lo(prom_tba), %o1501501+ stx %g7, [%o1]502502+503503+ call setup_trap_table504504+ nop505505+506506+ ret507507+ restore508508+sparc64_boot_end:509509+510510+#include "systbls.S"511511+#include "ktlb.S"512512+#include "etrap.S"513513+#include "rtrap.S"514514+#include "winfixup.S"515515+#include "entry.S"516516+537517/*538538- * The following skips make sure the trap table in ttable.S is aligned518518+ * The following skip makes sure the trap table in ttable.S is aligned539519 * on a 32K boundary as required by the v9 specs for TBA register.540520 */541541-sparc64_boot_end:542542- .skip 0x2000 + _start - sparc64_boot_end543543-bootup_user_stack_end:544544- .skip 0x2000521521+1:522522+ .skip 0x4000 + _start - 1b545523546524#ifdef CONFIG_SBUS547525/* This is just a hack to fool make depend config.h discovering···560524! 0x0000000000408000561525562526#include "ttable.S"563563-#include "systbls.S"564564-#include "ktlb.S"565565-#include "etrap.S"566566-#include "rtrap.S"567567-#include "winfixup.S"568568-#include "entry.S"569569-570570- /* This is just anal retentiveness on my part... */571571- .align 16384572527573528 .data574529 .align 8
···105105 regs[i].phys_addr = base;106106 regs[i].reg_size = size;107107 }108108- sort(regs, ents, sizeof(struct linux_prom64_registers),108108+ sort(regs, ents, sizeof(struct linux_prom64_registers),109109 cmp_p64, NULL);110110}111111···132132extern unsigned int sparc_ramdisk_size;133133134134struct page *mem_map_zero __read_mostly;135135+136136+unsigned int sparc64_highest_unlocked_tlb_ent __read_mostly;137137+138138+unsigned long sparc64_kern_pri_context __read_mostly;139139+unsigned long sparc64_kern_pri_nuc_bits __read_mostly;140140+unsigned long sparc64_kern_sec_context __read_mostly;135141136142int bigkernel = 0;137143···367361 unsigned long size;368362 unsigned long data;369363};370370-static struct linux_prom_translation prom_trans[512] __initdata;364364+365365+/* Exported for kernel TLB miss handling in ktlb.S */366366+struct linux_prom_translation prom_trans[512] __read_mostly;367367+unsigned int prom_trans_ents __read_mostly;368368+unsigned int swapper_pgd_zero __read_mostly;371369372370extern unsigned long prom_boot_page;373371extern void prom_remap(unsigned long physpage, unsigned long virtpage, int mmu_ihandle);···381371/* Exported for SMP bootup purposes. */382372unsigned long kern_locked_tte_data;383373384384-/* Exported for kernel TLB miss handling in ktlb.S */385385-unsigned long prom_pmd_phys __read_mostly;386386-unsigned int swapper_pgd_zero __read_mostly;387387-388388-/* Allocate power-of-2 aligned chunks from the end of the389389- * kernel image. Return physical address.390390- */391391-static inline unsigned long early_alloc_phys(unsigned long size)392392-{393393- unsigned long base;394394-395395- BUILD_BUG_ON(size & (size - 1));396396-397397- kern_size = (kern_size + (size - 1)) & ~(size - 1);398398- base = kern_base + kern_size;399399- kern_size += size;400400-401401- return base;402402-}403403-404404-static inline unsigned long load_phys32(unsigned long pa)405405-{406406- unsigned long val;407407-408408- __asm__ __volatile__("lduwa [%1] %2, %0"409409- : "=&r" (val)410410- : "r" (pa), "i" (ASI_PHYS_USE_EC));411411-412412- return val;413413-}414414-415415-static inline unsigned long load_phys64(unsigned long pa)416416-{417417- unsigned long val;418418-419419- __asm__ __volatile__("ldxa [%1] %2, %0"420420- : "=&r" (val)421421- : "r" (pa), "i" (ASI_PHYS_USE_EC));422422-423423- return val;424424-}425425-426426-static inline void store_phys32(unsigned long pa, unsigned long val)427427-{428428- __asm__ __volatile__("stwa %0, [%1] %2"429429- : /* no outputs */430430- : "r" (val), "r" (pa), "i" (ASI_PHYS_USE_EC));431431-}432432-433433-static inline void store_phys64(unsigned long pa, unsigned long val)434434-{435435- __asm__ __volatile__("stxa %0, [%1] %2"436436- : /* no outputs */437437- : "r" (val), "r" (pa), "i" (ASI_PHYS_USE_EC));438438-}439439-440440-#define BASE_PAGE_SIZE 8192441441-442374/*443375 * Translate PROM's mapping we capture at boot time into physical address.444376 * The second parameter is only set from prom_callback() invocations.445377 */446378unsigned long prom_virt_to_phys(unsigned long promva, int *error)447379{448448- unsigned long pmd_phys = (prom_pmd_phys +449449- ((promva >> 23) & 0x7ff) * sizeof(pmd_t));450450- unsigned long pte_phys;451451- pmd_t pmd_ent;452452- pte_t pte_ent;453453- unsigned long base;380380+ int i;454381455455- pmd_val(pmd_ent) = load_phys32(pmd_phys);456456- if (pmd_none(pmd_ent)) {457457- if (error)458458- *error = 1;459459- return 0;460460- }382382+ for (i = 0; i < prom_trans_ents; i++) {383383+ struct linux_prom_translation *p = &prom_trans[i];461384462462- pte_phys = (unsigned long)pmd_val(pmd_ent) << 11UL;463463- pte_phys += ((promva >> 13) & 0x3ff) * sizeof(pte_t);464464- pte_val(pte_ent) = load_phys64(pte_phys);465465- if (!pte_present(pte_ent)) {466466- if (error)467467- *error = 1;468468- return 0;385385+ if (promva >= p->virt &&386386+ promva < (p->virt + p->size)) {387387+ unsigned long base = p->data & _PAGE_PADDR;388388+389389+ if (error)390390+ *error = 0;391391+ return base + (promva & (8192 - 1));392392+ }469393 }470470- if (error) {471471- *error = 0;472472- return pte_val(pte_ent);473473- }474474- base = pte_val(pte_ent) & _PAGE_PADDR;475475- return (base + (promva & (BASE_PAGE_SIZE - 1)));394394+ if (error)395395+ *error = 1;396396+ return 0UL;476397}477398478399/* The obp translations are saved based on 8k pagesize, since obp can479400 * use a mixture of pagesizes. Misses to the LOW_OBP_ADDRESS ->480480- * HI_OBP_ADDRESS range are handled in entry.S and do not use the vpte401401+ * HI_OBP_ADDRESS range are handled in ktlb.S and do not use the vpte481402 * scheme (also, see rant in inherit_locked_prom_mappings()).482403 */483483-static void __init build_obp_range(unsigned long start, unsigned long end, unsigned long data)484484-{485485- unsigned long vaddr;486486-487487- for (vaddr = start; vaddr < end; vaddr += BASE_PAGE_SIZE) {488488- unsigned long val, pte_phys, pmd_phys;489489- pmd_t pmd_ent;490490- int i;491491-492492- pmd_phys = (prom_pmd_phys +493493- (((vaddr >> 23) & 0x7ff) * sizeof(pmd_t)));494494- pmd_val(pmd_ent) = load_phys32(pmd_phys);495495- if (pmd_none(pmd_ent)) {496496- pte_phys = early_alloc_phys(BASE_PAGE_SIZE);497497-498498- for (i = 0; i < BASE_PAGE_SIZE / sizeof(pte_t); i++)499499- store_phys64(pte_phys+i*sizeof(pte_t),0);500500-501501- pmd_val(pmd_ent) = pte_phys >> 11UL;502502- store_phys32(pmd_phys, pmd_val(pmd_ent));503503- }504504-505505- pte_phys = (unsigned long)pmd_val(pmd_ent) << 11UL;506506- pte_phys += (((vaddr >> 13) & 0x3ff) * sizeof(pte_t));507507-508508- val = data;509509-510510- /* Clear diag TTE bits. */511511- if (tlb_type == spitfire)512512- val &= ~0x0003fe0000000000UL;513513-514514- store_phys64(pte_phys, val | _PAGE_MODIFIED);515515-516516- data += BASE_PAGE_SIZE;517517- }518518-}519519-520404static inline int in_obp_range(unsigned long vaddr)521405{522406 return (vaddr >= LOW_OBP_ADDRESS &&523407 vaddr < HI_OBP_ADDRESS);524408}525409526526-#define OBP_PMD_SIZE 2048527527-static void __init build_obp_pgtable(int prom_trans_ents)410410+static int cmp_ptrans(const void *a, const void *b)528411{529529- unsigned long i;412412+ const struct linux_prom_translation *x = a, *y = b;530413531531- prom_pmd_phys = early_alloc_phys(OBP_PMD_SIZE);532532- for (i = 0; i < OBP_PMD_SIZE; i += 4)533533- store_phys32(prom_pmd_phys + i, 0);534534-535535- for (i = 0; i < prom_trans_ents; i++) {536536- unsigned long start, end;537537-538538- if (!in_obp_range(prom_trans[i].virt))539539- continue;540540-541541- start = prom_trans[i].virt;542542- end = start + prom_trans[i].size;543543- if (end > HI_OBP_ADDRESS)544544- end = HI_OBP_ADDRESS;545545-546546- build_obp_range(start, end, prom_trans[i].data);547547- }414414+ if (x->virt > y->virt)415415+ return 1;416416+ if (x->virt < y->virt)417417+ return -1;418418+ return 0;548419}549420550550-/* Read OBP translations property into 'prom_trans[]'.551551- * Return the number of entries.552552- */553553-static int __init read_obp_translations(void)421421+/* Read OBP translations property into 'prom_trans[]'. */422422+static void __init read_obp_translations(void)554423{555555- int n, node;424424+ int n, node, ents, first, last, i;556425557426 node = prom_finddevice("/virtual-memory");558427 n = prom_getproplen(node, "translations");···450561 prom_printf("prom_mappings: Couldn't get property.\n");451562 prom_halt();452563 }564564+453565 n = n / sizeof(struct linux_prom_translation);454454- return n;566566+567567+ ents = n;568568+569569+ sort(prom_trans, ents, sizeof(struct linux_prom_translation),570570+ cmp_ptrans, NULL);571571+572572+ /* Now kick out all the non-OBP entries. */573573+ for (i = 0; i < ents; i++) {574574+ if (in_obp_range(prom_trans[i].virt))575575+ break;576576+ }577577+ first = i;578578+ for (; i < ents; i++) {579579+ if (!in_obp_range(prom_trans[i].virt))580580+ break;581581+ }582582+ last = i;583583+584584+ for (i = 0; i < (last - first); i++) {585585+ struct linux_prom_translation *src = &prom_trans[i + first];586586+ struct linux_prom_translation *dest = &prom_trans[i];587587+588588+ *dest = *src;589589+ }590590+ for (; i < ents; i++) {591591+ struct linux_prom_translation *dest = &prom_trans[i];592592+ dest->virt = dest->size = dest->data = 0x0UL;593593+ }594594+595595+ prom_trans_ents = last - first;596596+597597+ if (tlb_type == spitfire) {598598+ /* Clear diag TTE bits. */599599+ for (i = 0; i < prom_trans_ents; i++)600600+ prom_trans[i].data &= ~0x0003fe0000000000UL;601601+ }455602}456603457604static void __init remap_kernel(void)···507582 prom_dtlb_load(tlb_ent, tte_data, tte_vaddr);508583 prom_itlb_load(tlb_ent, tte_data, tte_vaddr);509584 if (bigkernel) {510510- prom_dtlb_load(tlb_ent - 1,585585+ tlb_ent -= 1;586586+ prom_dtlb_load(tlb_ent,511587 tte_data + 0x400000, 512588 tte_vaddr + 0x400000);513513- prom_itlb_load(tlb_ent - 1,589589+ prom_itlb_load(tlb_ent,514590 tte_data + 0x400000, 515591 tte_vaddr + 0x400000);516592 }593593+ sparc64_highest_unlocked_tlb_ent = tlb_ent - 1;594594+ if (tlb_type == cheetah_plus) {595595+ sparc64_kern_pri_context = (CTX_CHEETAH_PLUS_CTX0 |596596+ CTX_CHEETAH_PLUS_NUC);597597+ sparc64_kern_pri_nuc_bits = CTX_CHEETAH_PLUS_NUC;598598+ sparc64_kern_sec_context = CTX_CHEETAH_PLUS_CTX0;599599+ }517600}601601+518602519603static void __init inherit_prom_mappings(void)520604{521521- int n;522522-523523- n = read_obp_translations();524524- build_obp_pgtable(n);605605+ read_obp_translations();525606526607 /* Now fixup OBP's idea about where we really are mapped. */527608 prom_printf("Remapping the kernel... ");528609 remap_kernel();529529-530610 prom_printf("done.\n");531611612612+ prom_printf("Registering callbacks... ");532613 register_prom_callbacks();614614+ prom_printf("done.\n");533615}534616535617/* The OBP specifications for sun4u mark 0xfffffffc00000000 and···720788 }721789 }722790 if (tlb_type == spitfire) {723723- int high = SPITFIRE_HIGHEST_LOCKED_TLBENT - bigkernel;724724- for (i = 0; i < high; i++) {791791+ int high = sparc64_highest_unlocked_tlb_ent;792792+ for (i = 0; i <= high; i++) {725793 unsigned long data;726794727795 /* Spitfire Errata #32 workaround */···809877 }810878 }811879 } else if (tlb_type == cheetah || tlb_type == cheetah_plus) {812812- int high = CHEETAH_HIGHEST_LOCKED_TLBENT - bigkernel;880880+ int high = sparc64_highest_unlocked_tlb_ent;813881814814- for (i = 0; i < high; i++) {882882+ for (i = 0; i <= high; i++) {815883 unsigned long data;816884817885 data = cheetah_get_ldtlb_data(i);···1488155614891557 swapper_pgd_zero = pgd_val(swapper_pg_dir[0]);1490155814911491- /* Inherit non-locked OBP mappings. */14921559 inherit_prom_mappings();1493156014941561 /* Ok, we can use our TLB miss and window trap handlers safely.
···3535#include "linux/blkpg.h"3636#include "linux/genhd.h"3737#include "linux/spinlock.h"3838-#include "asm/atomic.h"3938#include "asm/segment.h"4039#include "asm/uaccess.h"4140#include "asm/irq.h"···5354#include "mem.h"5455#include "mem_kern.h"5556#include "cow.h"5656-#include "aio.h"57575858enum ubd_req { UBD_READ, UBD_WRITE };59596060struct io_thread_req {6161- enum aio_type op;6161+ enum ubd_req op;6262 int fds[2];6363 unsigned long offsets[2];6464 unsigned long long offset;6565 unsigned long length;6666 char *buffer;6767 int sectorsize;6868- int bitmap_offset;6969- long bitmap_start;7070- long bitmap_end;6868+ unsigned long sector_mask;6969+ unsigned long long cow_offset;7070+ unsigned long bitmap_words[2];7171 int error;7272};7373···8082 unsigned long *bitmap_len_out,8183 int *data_offset_out);8284extern int read_cow_bitmap(int fd, void *buf, int offset, int len);8383-extern void do_io(struct io_thread_req *req, struct request *r,8484- unsigned long *bitmap);8585+extern void do_io(struct io_thread_req *req);85868686-static inline int ubd_test_bit(__u64 bit, void *data)8787+static inline int ubd_test_bit(__u64 bit, unsigned char *data)8788{8888- unsigned char *buffer = data;8989 __u64 n;9090 int bits, off;91919292- bits = sizeof(buffer[0]) * 8;9292+ bits = sizeof(data[0]) * 8;9393 n = bit / bits;9494 off = bit % bits;9595- return((buffer[n] & (1 << off)) != 0);9595+ return((data[n] & (1 << off)) != 0);9696}97979898-static inline void ubd_set_bit(__u64 bit, void *data)9898+static inline void ubd_set_bit(__u64 bit, unsigned char *data)9999{100100- unsigned char *buffer = data;101100 __u64 n;102101 int bits, off;103102104104- bits = sizeof(buffer[0]) * 8;103103+ bits = sizeof(data[0]) * 8;105104 n = bit / bits;106105 off = bit % bits;107107- buffer[n] |= (1 << off);106106+ data[n] |= (1 << off);108107}109108/*End stuff from ubd_user.h*/110109···109114110115static DEFINE_SPINLOCK(ubd_io_lock);111116static DEFINE_SPINLOCK(ubd_lock);117117+118118+static void (*do_ubd)(void);112119113120static int ubd_open(struct inode * inode, struct file * filp);114121static int ubd_release(struct inode * inode, struct file * file);···158161 int data_offset;159162};160163161161-#define MAX_SG 64162162-163164struct ubd {164165 char *file;165166 int count;···168173 int no_cow;169174 struct cow cow;170175 struct platform_device pdev;171171- struct scatterlist sg[MAX_SG];172176};173177174178#define DEFAULT_COW { \···460466);461467462468static void do_ubd_request(request_queue_t * q);463463-static int in_ubd;469469+470470+/* Only changed by ubd_init, which is an initcall. */471471+int thread_fd = -1;464472465473/* Changed by ubd_handler, which is serialized because interrupts only466474 * happen on CPU 0.467475 */468476int intr_count = 0;469477470470-static void ubd_end_request(struct request *req, int bytes, int uptodate)471471-{472472- if (!end_that_request_first(req, uptodate, bytes >> 9)) {473473- add_disk_randomness(req->rq_disk);474474- end_that_request_last(req);475475- }476476-}477477-478478/* call ubd_finish if you need to serialize */479479-static void __ubd_finish(struct request *req, int bytes)479479+static void __ubd_finish(struct request *req, int error)480480{481481- if(bytes < 0){482482- ubd_end_request(req, 0, 0);483483- return;484484- }481481+ int nsect;485482486486- ubd_end_request(req, bytes, 1);483483+ if(error){484484+ end_request(req, 0);485485+ return;486486+ }487487+ nsect = req->current_nr_sectors;488488+ req->sector += nsect;489489+ req->buffer += nsect << 9;490490+ req->errors = 0;491491+ req->nr_sectors -= nsect;492492+ req->current_nr_sectors = 0;493493+ end_request(req, 1);487494}488495489489-static inline void ubd_finish(struct request *req, int bytes)496496+static inline void ubd_finish(struct request *req, int error)490497{491491- spin_lock(&ubd_io_lock);492492- __ubd_finish(req, bytes);493493- spin_unlock(&ubd_io_lock);498498+ spin_lock(&ubd_io_lock);499499+ __ubd_finish(req, error);500500+ spin_unlock(&ubd_io_lock);494501}495502496496-struct bitmap_io {497497- atomic_t count;498498- struct aio_context aio;499499-};503503+/* Called without ubd_io_lock held */504504+static void ubd_handler(void)505505+{506506+ struct io_thread_req req;507507+ struct request *rq = elv_next_request(ubd_queue);508508+ int n;500509501501-struct ubd_aio {502502- struct aio_context aio;503503- struct request *req;504504- int len;505505- struct bitmap_io *bitmap;506506- void *bitmap_buf;507507-};508508-509509-static int ubd_reply_fd = -1;510510+ do_ubd = NULL;511511+ intr_count++;512512+ n = os_read_file(thread_fd, &req, sizeof(req));513513+ if(n != sizeof(req)){514514+ printk(KERN_ERR "Pid %d - spurious interrupt in ubd_handler, "515515+ "err = %d\n", os_getpid(), -n);516516+ spin_lock(&ubd_io_lock);517517+ end_request(rq, 0);518518+ spin_unlock(&ubd_io_lock);519519+ return;520520+ }521521+522522+ ubd_finish(rq, req.error);523523+ reactivate_fd(thread_fd, UBD_IRQ); 524524+ do_ubd_request(ubd_queue);525525+}510526511527static irqreturn_t ubd_intr(int irq, void *dev, struct pt_regs *unused)512528{513513- struct aio_thread_reply reply;514514- struct ubd_aio *aio;515515- struct request *req;516516- int err, n, fd = (int) (long) dev;517517-518518- while(1){519519- err = os_read_file(fd, &reply, sizeof(reply));520520- if(err == -EAGAIN)521521- break;522522- if(err < 0){523523- printk("ubd_aio_handler - read returned err %d\n",524524- -err);525525- break;526526- }527527-528528- aio = container_of(reply.data, struct ubd_aio, aio);529529- n = reply.err;530530-531531- if(n == 0){532532- req = aio->req;533533- req->nr_sectors -= aio->len >> 9;534534-535535- if((aio->bitmap != NULL) &&536536- (atomic_dec_and_test(&aio->bitmap->count))){537537- aio->aio = aio->bitmap->aio;538538- aio->len = 0;539539- kfree(aio->bitmap);540540- aio->bitmap = NULL;541541- submit_aio(&aio->aio);542542- }543543- else {544544- if((req->nr_sectors == 0) &&545545- (aio->bitmap == NULL)){546546- int len = req->hard_nr_sectors << 9;547547- ubd_finish(req, len);548548- }549549-550550- if(aio->bitmap_buf != NULL)551551- kfree(aio->bitmap_buf);552552- kfree(aio);553553- }554554- }555555- else if(n < 0){556556- ubd_finish(aio->req, n);557557- if(aio->bitmap != NULL)558558- kfree(aio->bitmap);559559- if(aio->bitmap_buf != NULL)560560- kfree(aio->bitmap_buf);561561- kfree(aio);562562- }563563- }564564- reactivate_fd(fd, UBD_IRQ);565565-566566- do_ubd_request(ubd_queue);567567-529529+ ubd_handler();568530 return(IRQ_HANDLED);569531}532532+533533+/* Only changed by ubd_init, which is an initcall. */534534+static int io_pid = -1;535535+536536+void kill_io_thread(void)537537+{538538+ if(io_pid != -1) 539539+ os_kill_process(io_pid, 1);540540+}541541+542542+__uml_exitcall(kill_io_thread);570543571544static int ubd_file_size(struct ubd *dev, __u64 *size_out)572545{···569608 &dev->cow.data_offset, create_ptr);570609571610 if((dev->fd == -ENOENT) && create_cow){572572- dev->fd = create_cow_file(dev->file, dev->cow.file,611611+ dev->fd = create_cow_file(dev->file, dev->cow.file, 573612 dev->openflags, 1 << 9, PAGE_SIZE,574613 &dev->cow.bitmap_offset, 575614 &dev->cow.bitmap_len,···831870{832871 int i;833872834834- ubd_reply_fd = init_aio_irq(UBD_IRQ, "ubd", ubd_intr);835835- if(ubd_reply_fd < 0)836836- printk("Setting up ubd AIO failed, err = %d\n", ubd_reply_fd);837837-838873 devfs_mk_dir("ubd");839874 if (register_blkdev(MAJOR_NR, "ubd"))840875 return -1;···841884 return -1;842885 }843886844844- blk_queue_max_hw_segments(ubd_queue, MAX_SG);845887 if (fake_major != MAJOR_NR) {846888 char name[sizeof("ubd_nnn\0")];847889···852896 driver_register(&ubd_driver);853897 for (i = 0; i < MAX_DEV; i++) 854898 ubd_add(i);855855-856899 return 0;857900}858901859902late_initcall(ubd_init);903903+904904+int ubd_driver_init(void){905905+ unsigned long stack;906906+ int err;907907+908908+ /* Set by CONFIG_BLK_DEV_UBD_SYNC or ubd=sync.*/909909+ if(global_openflags.s){910910+ printk(KERN_INFO "ubd: Synchronous mode\n");911911+ /* Letting ubd=sync be like using ubd#s= instead of ubd#= is912912+ * enough. So use anyway the io thread. */913913+ }914914+ stack = alloc_stack(0, 0);915915+ io_pid = start_io_thread(stack + PAGE_SIZE - sizeof(void *), 916916+ &thread_fd);917917+ if(io_pid < 0){918918+ printk(KERN_ERR 919919+ "ubd : Failed to start I/O thread (errno = %d) - "920920+ "falling back to synchronous I/O\n", -io_pid);921921+ io_pid = -1;922922+ return(0);923923+ }924924+ err = um_request_irq(UBD_IRQ, thread_fd, IRQ_READ, ubd_intr, 925925+ SA_INTERRUPT, "ubd", ubd_dev);926926+ if(err != 0)927927+ printk(KERN_ERR "um_request_irq failed - errno = %d\n", -err);928928+ return(err);929929+}930930+931931+device_initcall(ubd_driver_init);860932861933static int ubd_open(struct inode *inode, struct file *filp)862934{···923939 return(0);924940}925941926926-static void cowify_bitmap(struct io_thread_req *req, unsigned long *bitmap)942942+static void cowify_bitmap(__u64 io_offset, int length, unsigned long *cow_mask,943943+ __u64 *cow_offset, unsigned long *bitmap,944944+ __u64 bitmap_offset, unsigned long *bitmap_words,945945+ __u64 bitmap_len)927946{928928- __u64 sector = req->offset / req->sectorsize;929929- int i;947947+ __u64 sector = io_offset >> 9;948948+ int i, update_bitmap = 0;930949931931- for(i = 0; i < req->length / req->sectorsize; i++){932932- if(ubd_test_bit(sector + i, bitmap))933933- continue;950950+ for(i = 0; i < length >> 9; i++){951951+ if(cow_mask != NULL)952952+ ubd_set_bit(i, (unsigned char *) cow_mask);953953+ if(ubd_test_bit(sector + i, (unsigned char *) bitmap))954954+ continue;934955935935- if(req->bitmap_start == -1)936936- req->bitmap_start = sector + i;937937- req->bitmap_end = sector + i + 1;956956+ update_bitmap = 1;957957+ ubd_set_bit(sector + i, (unsigned char *) bitmap);958958+ }938959939939- ubd_set_bit(sector + i, bitmap);940940- }960960+ if(!update_bitmap)961961+ return;962962+963963+ *cow_offset = sector / (sizeof(unsigned long) * 8);964964+965965+ /* This takes care of the case where we're exactly at the end of the966966+ * device, and *cow_offset + 1 is off the end. So, just back it up967967+ * by one word. Thanks to Lynn Kerby for the fix and James McMechan968968+ * for the original diagnosis.969969+ */970970+ if(*cow_offset == ((bitmap_len + sizeof(unsigned long) - 1) /971971+ sizeof(unsigned long) - 1))972972+ (*cow_offset)--;973973+974974+ bitmap_words[0] = bitmap[*cow_offset];975975+ bitmap_words[1] = bitmap[*cow_offset + 1];976976+977977+ *cow_offset *= sizeof(unsigned long);978978+ *cow_offset += bitmap_offset;979979+}980980+981981+static void cowify_req(struct io_thread_req *req, unsigned long *bitmap,982982+ __u64 bitmap_offset, __u64 bitmap_len)983983+{984984+ __u64 sector = req->offset >> 9;985985+ int i;986986+987987+ if(req->length > (sizeof(req->sector_mask) * 8) << 9)988988+ panic("Operation too long");989989+990990+ if(req->op == UBD_READ) {991991+ for(i = 0; i < req->length >> 9; i++){992992+ if(ubd_test_bit(sector + i, (unsigned char *) bitmap))993993+ ubd_set_bit(i, (unsigned char *) 994994+ &req->sector_mask);995995+ }996996+ }997997+ else cowify_bitmap(req->offset, req->length, &req->sector_mask,998998+ &req->cow_offset, bitmap, bitmap_offset,999999+ req->bitmap_words, bitmap_len);9411000}94210019431002/* Called with ubd_io_lock held */944944-static int prepare_request(struct request *req, struct io_thread_req *io_req,945945- unsigned long long offset, int page_offset,946946- int len, struct page *page)10031003+static int prepare_request(struct request *req, struct io_thread_req *io_req)9471004{9481005 struct gendisk *disk = req->rq_disk;9491006 struct ubd *dev = disk->private_data;10071007+ __u64 offset;10081008+ int len;10091009+10101010+ if(req->rq_status == RQ_INACTIVE) return(1);95010119511012 /* This should be impossible now */9521013 if((rq_data_dir(req) == WRITE) && !dev->openflags.w){9531014 printk("Write attempted on readonly ubd device %s\n", 9541015 disk->disk_name);955955- ubd_end_request(req, 0, 0);10161016+ end_request(req, 0);9561017 return(1);9571018 }958101910201020+ offset = ((__u64) req->sector) << 9;10211021+ len = req->current_nr_sectors << 9;10221022+9591023 io_req->fds[0] = (dev->cow.file != NULL) ? dev->cow.fd : dev->fd;9601024 io_req->fds[1] = dev->fd;10251025+ io_req->cow_offset = -1;9611026 io_req->offset = offset;9621027 io_req->length = len;9631028 io_req->error = 0;964964- io_req->op = (rq_data_dir(req) == READ) ? AIO_READ : AIO_WRITE;10291029+ io_req->sector_mask = 0;10301030+10311031+ io_req->op = (rq_data_dir(req) == READ) ? UBD_READ : UBD_WRITE;9651032 io_req->offsets[0] = 0;9661033 io_req->offsets[1] = dev->cow.data_offset;967967- io_req->buffer = page_address(page) + page_offset;10341034+ io_req->buffer = req->buffer;9681035 io_req->sectorsize = 1 << 9;969969- io_req->bitmap_offset = dev->cow.bitmap_offset;970970- io_req->bitmap_start = -1;971971- io_req->bitmap_end = -1;9721036973973- if((dev->cow.file != NULL) && (io_req->op == UBD_WRITE))974974- cowify_bitmap(io_req, dev->cow.bitmap);10371037+ if(dev->cow.file != NULL)10381038+ cowify_req(io_req, dev->cow.bitmap, dev->cow.bitmap_offset,10391039+ dev->cow.bitmap_len);10401040+9751041 return(0);9761042}9771043···1030996{1031997 struct io_thread_req io_req;1032998 struct request *req;10331033- __u64 sector;10341034- int err;999999+ int err, n;1035100010361036- if(in_ubd)10371037- return;10381038- in_ubd = 1;10391039- while((req = elv_next_request(q)) != NULL){10401040- struct gendisk *disk = req->rq_disk;10411041- struct ubd *dev = disk->private_data;10421042- int n, i;10431043-10441044- blkdev_dequeue_request(req);10451045-10461046- sector = req->sector;10471047- n = blk_rq_map_sg(q, req, dev->sg);10481048-10491049- for(i = 0; i < n; i++){10501050- struct scatterlist *sg = &dev->sg[i];10511051-10521052- err = prepare_request(req, &io_req, sector << 9,10531053- sg->offset, sg->length,10541054- sg->page);10551055- if(err)10561056- continue;10571057-10581058- sector += sg->length >> 9;10591059- do_io(&io_req, req, dev->cow.bitmap);10011001+ if(thread_fd == -1){10021002+ while((req = elv_next_request(q)) != NULL){10031003+ err = prepare_request(req, &io_req);10041004+ if(!err){10051005+ do_io(&io_req);10061006+ __ubd_finish(req, io_req.error);10071007+ }10601008 }10611009 }10621062- in_ubd = 0;10101010+ else {10111011+ if(do_ubd || (req = elv_next_request(q)) == NULL)10121012+ return;10131013+ err = prepare_request(req, &io_req);10141014+ if(!err){10151015+ do_ubd = ubd_handler;10161016+ n = os_write_file(thread_fd, (char *) &io_req,10171017+ sizeof(io_req));10181018+ if(n != sizeof(io_req))10191019+ printk("write to io thread failed, "10201020+ "errno = %d\n", -n);10211021+ }10221022+ }10631023}1064102410651025static int ubd_ioctl(struct inode * inode, struct file * file,···12691241 return(err);12701242}1271124312721272-void do_io(struct io_thread_req *req, struct request *r, unsigned long *bitmap)12441244+static int update_bitmap(struct io_thread_req *req)12731245{12741274- struct ubd_aio *aio;12751275- struct bitmap_io *bitmap_io = NULL;12761276- char *buf;12771277- void *bitmap_buf = NULL;12781278- unsigned long len, sector;12791279- int nsectors, start, end, bit, err;12801280- __u64 off;12461246+ int n;1281124712821282- if(req->bitmap_start != -1){12831283- /* Round up to the nearest word */12841284- int round = sizeof(unsigned long);12851285- len = (req->bitmap_end - req->bitmap_start +12861286- round * 8 - 1) / (round * 8);12871287- len *= round;12481248+ if(req->cow_offset == -1)12491249+ return(0);1288125012891289- off = req->bitmap_start / (8 * round);12901290- off *= round;12511251+ n = os_seek_file(req->fds[1], req->cow_offset);12521252+ if(n < 0){12531253+ printk("do_io - bitmap lseek failed : err = %d\n", -n);12541254+ return(1);12551255+ }1291125612921292- bitmap_io = kmalloc(sizeof(*bitmap_io), GFP_KERNEL);12931293- if(bitmap_io == NULL){12941294- printk("Failed to kmalloc bitmap IO\n");12951295- req->error = 1;12961296- return;12971297- }12571257+ n = os_write_file(req->fds[1], &req->bitmap_words,12581258+ sizeof(req->bitmap_words));12591259+ if(n != sizeof(req->bitmap_words)){12601260+ printk("do_io - bitmap update failed, err = %d fd = %d\n", -n,12611261+ req->fds[1]);12621262+ return(1);12631263+ }1298126412991299- bitmap_buf = kmalloc(len, GFP_KERNEL);13001300- if(bitmap_buf == NULL){13011301- printk("do_io : kmalloc of bitmap chunk "13021302- "failed\n");13031303- kfree(bitmap_io);13041304- req->error = 1;13051305- return;13061306- }13071307- memcpy(bitmap_buf, &bitmap[off / sizeof(bitmap[0])], len);13081308-13091309- *bitmap_io = ((struct bitmap_io)13101310- { .count = ATOMIC_INIT(0),13111311- .aio = INIT_AIO(AIO_WRITE, req->fds[1],13121312- bitmap_buf, len,13131313- req->bitmap_offset + off,13141314- ubd_reply_fd) } );13151315- }13161316-13171317- nsectors = req->length / req->sectorsize;13181318- start = 0;13191319- end = nsectors;13201320- bit = 0;13211321- do {13221322- if(bitmap != NULL){13231323- sector = req->offset / req->sectorsize;13241324- bit = ubd_test_bit(sector + start, bitmap);13251325- end = start;13261326- while((end < nsectors) &&13271327- (ubd_test_bit(sector + end, bitmap) == bit))13281328- end++;13291329- }13301330-13311331- off = req->offsets[bit] + req->offset +13321332- start * req->sectorsize;13331333- len = (end - start) * req->sectorsize;13341334- buf = &req->buffer[start * req->sectorsize];13351335-13361336- aio = kmalloc(sizeof(*aio), GFP_KERNEL);13371337- if(aio == NULL){13381338- req->error = 1;13391339- return;13401340- }13411341-13421342- *aio = ((struct ubd_aio)13431343- { .aio = INIT_AIO(req->op, req->fds[bit], buf,13441344- len, off, ubd_reply_fd),13451345- .len = len,13461346- .req = r,13471347- .bitmap = bitmap_io,13481348- .bitmap_buf = bitmap_buf });13491349-13501350- if(aio->bitmap != NULL)13511351- atomic_inc(&aio->bitmap->count);13521352-13531353- err = submit_aio(&aio->aio);13541354- if(err){13551355- printk("do_io - submit_aio failed, "13561356- "err = %d\n", err);13571357- req->error = 1;13581358- return;13591359- }13601360-13611361- start = end;13621362- } while(start < nsectors);12651265+ return(0);13631266}12671267+12681268+void do_io(struct io_thread_req *req)12691269+{12701270+ char *buf;12711271+ unsigned long len;12721272+ int n, nsectors, start, end, bit;12731273+ int err;12741274+ __u64 off;12751275+12761276+ nsectors = req->length / req->sectorsize;12771277+ start = 0;12781278+ do {12791279+ bit = ubd_test_bit(start, (unsigned char *) &req->sector_mask);12801280+ end = start;12811281+ while((end < nsectors) &&12821282+ (ubd_test_bit(end, (unsigned char *)12831283+ &req->sector_mask) == bit))12841284+ end++;12851285+12861286+ off = req->offset + req->offsets[bit] +12871287+ start * req->sectorsize;12881288+ len = (end - start) * req->sectorsize;12891289+ buf = &req->buffer[start * req->sectorsize];12901290+12911291+ err = os_seek_file(req->fds[bit], off);12921292+ if(err < 0){12931293+ printk("do_io - lseek failed : err = %d\n", -err);12941294+ req->error = 1;12951295+ return;12961296+ }12971297+ if(req->op == UBD_READ){12981298+ n = 0;12991299+ do {13001300+ buf = &buf[n];13011301+ len -= n;13021302+ n = os_read_file(req->fds[bit], buf, len);13031303+ if (n < 0) {13041304+ printk("do_io - read failed, err = %d "13051305+ "fd = %d\n", -n, req->fds[bit]);13061306+ req->error = 1;13071307+ return;13081308+ }13091309+ } while((n < len) && (n != 0));13101310+ if (n < len) memset(&buf[n], 0, len - n);13111311+ } else {13121312+ n = os_write_file(req->fds[bit], buf, len);13131313+ if(n != len){13141314+ printk("do_io - write failed err = %d "13151315+ "fd = %d\n", -n, req->fds[bit]);13161316+ req->error = 1;13171317+ return;13181318+ }13191319+ }13201320+13211321+ start = end;13221322+ } while(start < nsectors);13231323+13241324+ req->error = update_bitmap(req);13251325+}13261326+13271327+/* Changed in start_io_thread, which is serialized by being called only13281328+ * from ubd_init, which is an initcall.13291329+ */13301330+int kernel_fd = -1;13311331+13321332+/* Only changed by the io thread */13331333+int io_count = 0;13341334+13351335+int io_thread(void *arg)13361336+{13371337+ struct io_thread_req req;13381338+ int n;13391339+13401340+ ignore_sigwinch_sig();13411341+ while(1){13421342+ n = os_read_file(kernel_fd, &req, sizeof(req));13431343+ if(n != sizeof(req)){13441344+ if(n < 0)13451345+ printk("io_thread - read failed, fd = %d, "13461346+ "err = %d\n", kernel_fd, -n);13471347+ else {13481348+ printk("io_thread - short read, fd = %d, "13491349+ "length = %d\n", kernel_fd, n);13501350+ }13511351+ continue;13521352+ }13531353+ io_count++;13541354+ do_io(&req);13551355+ n = os_write_file(kernel_fd, &req, sizeof(req));13561356+ if(n != sizeof(req))13571357+ printk("io_thread - write failed, fd = %d, err = %d\n",13581358+ kernel_fd, -n);13591359+ }13601360+}13611361+13621362+/*13631363+ * Overrides for Emacs so that we follow Linus's tabbing style.13641364+ * Emacs will notice this stuff at the end of the file and automatically13651365+ * adjust the settings for this buffer only. This must remain at the end13661366+ * of the file.13671367+ * ---------------------------------------------------------------------------13681368+ * Local variables:13691369+ * c-file-style: "linux"13701370+ * End:13711371+ */
+75
arch/um/drivers/ubd_user.c
···11+/* 22+ * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)33+ * Copyright (C) 2001 Ridgerun,Inc (glonnon@ridgerun.com)44+ * Licensed under the GPL55+ */66+77+#include <stddef.h>88+#include <unistd.h>99+#include <errno.h>1010+#include <sched.h>1111+#include <signal.h>1212+#include <string.h>1313+#include <netinet/in.h>1414+#include <sys/time.h>1515+#include <sys/socket.h>1616+#include <sys/mman.h>1717+#include <sys/param.h>1818+#include "asm/types.h"1919+#include "user_util.h"2020+#include "kern_util.h"2121+#include "user.h"2222+#include "ubd_user.h"2323+#include "os.h"2424+#include "cow.h"2525+2626+#include <endian.h>2727+#include <byteswap.h>2828+2929+void ignore_sigwinch_sig(void)3030+{3131+ signal(SIGWINCH, SIG_IGN);3232+}3333+3434+int start_io_thread(unsigned long sp, int *fd_out)3535+{3636+ int pid, fds[2], err;3737+3838+ err = os_pipe(fds, 1, 1);3939+ if(err < 0){4040+ printk("start_io_thread - os_pipe failed, err = %d\n", -err);4141+ goto out;4242+ }4343+4444+ kernel_fd = fds[0];4545+ *fd_out = fds[1];4646+4747+ pid = clone(io_thread, (void *) sp, CLONE_FILES | CLONE_VM | SIGCHLD,4848+ NULL);4949+ if(pid < 0){5050+ printk("start_io_thread - clone failed : errno = %d\n", errno);5151+ err = -errno;5252+ goto out_close;5353+ }5454+5555+ return(pid);5656+5757+ out_close:5858+ os_close_file(fds[0]);5959+ os_close_file(fds[1]);6060+ kernel_fd = -1;6161+ *fd_out = -1;6262+ out:6363+ return(err);6464+}6565+6666+/*6767+ * Overrides for Emacs so that we follow Linus's tabbing style.6868+ * Emacs will notice this stuff at the end of the file and automatically6969+ * adjust the settings for this buffer only. This must remain at the end7070+ * of the file.7171+ * ---------------------------------------------------------------------------7272+ * Local variables:7373+ * c-file-style: "linux"7474+ * End:7575+ */
+3-15
arch/um/include/aio.h
···1414};15151616struct aio_context {1717- enum aio_type type;1818- int fd;1919- void *data;2020- int len;2121- unsigned long long offset;2217 int reply_fd;2318 struct aio_context *next;2419};25202626-#define INIT_AIO(aio_type, aio_fd, aio_data, aio_len, aio_offset, \2727- aio_reply_fd) \2828- { .type = aio_type, \2929- .fd = aio_fd, \3030- .data = aio_data, \3131- .len = aio_len, \3232- .offset = aio_offset, \3333- .reply_fd = aio_reply_fd }3434-3521#define INIT_AIO_CONTEXT { .reply_fd = -1, \3622 .next = NULL }37233838-extern int submit_aio(struct aio_context *aio);2424+extern int submit_aio(enum aio_type type, int fd, char *buf, int len,2525+ unsigned long long offset, int reply_fd,2626+ struct aio_context *aio);39274028#endif
+5
arch/um/include/os.h
···66#ifndef __OS_H__77#define __OS_H__8899+#include "uml-config.h"910#include "asm/types.h"1011#include "../os/include/file.h"1112···160159161160/* Make sure they are clear when running in TT mode. Required by162161 * SEGV_MAYBE_FIXABLE */162162+#ifdef UML_CONFIG_MODE_SKAS163163#define clear_can_do_skas() do { ptrace_faultinfo = proc_mm = 0; } while (0)164164+#else165165+#define clear_can_do_skas() do {} while (0)166166+#endif164167165168/* mem.c */166169extern int create_mem_file(unsigned long len);
+95-112
arch/um/os-Linux/aio.c
···66#include <stdlib.h>77#include <unistd.h>88#include <signal.h>99-#include <string.h>109#include <errno.h>1110#include <sched.h>1211#include <sys/syscall.h>···1617#include "user.h"1718#include "mode.h"18192020+struct aio_thread_req {2121+ enum aio_type type;2222+ int io_fd;2323+ unsigned long long offset;2424+ char *buf;2525+ int len;2626+ struct aio_context *aio;2727+};2828+1929static int aio_req_fd_r = -1;2030static int aio_req_fd_w = -1;2121-2222-static int update_aio(struct aio_context *aio, int res)2323-{2424- if(res < 0)2525- aio->len = res;2626- else if((res == 0) && (aio->type == AIO_READ)){2727- /* This is the EOF case - we have hit the end of the file2828- * and it ends in a partial block, so we fill the end of2929- * the block with zeros and claim success.3030- */3131- memset(aio->data, 0, aio->len);3232- aio->len = 0;3333- }3434- else if(res > 0){3535- aio->len -= res;3636- aio->data += res;3737- aio->offset += res;3838- return aio->len;3939- }4040-4141- return 0;4242-}43314432#if defined(HAVE_AIO_ABI)4533#include <linux/aio_abi.h>···6680 * that it now backs the mmapped area.6781 */68826969-static int do_aio(aio_context_t ctx, struct aio_context *aio)8383+static int do_aio(aio_context_t ctx, enum aio_type type, int fd, char *buf,8484+ int len, unsigned long long offset, struct aio_context *aio)7085{7186 struct iocb iocb, *iocbp = &iocb;7287 char c;···75887689 iocb = ((struct iocb) { .aio_data = (unsigned long) aio,7790 .aio_reqprio = 0,7878- .aio_fildes = aio->fd,7979- .aio_buf = (unsigned long) aio->data,8080- .aio_nbytes = aio->len,8181- .aio_offset = aio->offset,9191+ .aio_fildes = fd,9292+ .aio_buf = (unsigned long) buf,9393+ .aio_nbytes = len,9494+ .aio_offset = offset,8295 .aio_reserved1 = 0,8396 .aio_reserved2 = 0,8497 .aio_reserved3 = 0 });85988686- switch(aio->type){9999+ switch(type){87100 case AIO_READ:88101 iocb.aio_lio_opcode = IOCB_CMD_PREAD;102102+ err = io_submit(ctx, 1, &iocbp);89103 break;90104 case AIO_WRITE:91105 iocb.aio_lio_opcode = IOCB_CMD_PWRITE;106106+ err = io_submit(ctx, 1, &iocbp);92107 break;93108 case AIO_MMAP:94109 iocb.aio_lio_opcode = IOCB_CMD_PREAD;95110 iocb.aio_buf = (unsigned long) &c;96111 iocb.aio_nbytes = sizeof(c);112112+ err = io_submit(ctx, 1, &iocbp);97113 break;98114 default:9999- printk("Bogus op in do_aio - %d\n", aio->type);115115+ printk("Bogus op in do_aio - %d\n", type);100116 err = -EINVAL;101101- goto out;117117+ break;102118 }103119104104- err = io_submit(ctx, 1, &iocbp);105120 if(err > 0)106121 err = 0;107122 else108123 err = -errno;109124110110- out:111125 return err;112126}113127···117129static int aio_thread(void *arg)118130{119131 struct aio_thread_reply reply;120120- struct aio_context *aio;121132 struct io_event event;122122- int err, n;133133+ int err, n, reply_fd;123134124135 signal(SIGWINCH, SIG_IGN);125136···131144 "errno = %d\n", errno);132145 }133146 else {134134- /* This is safe as we've just a pointer here. */135135- aio = (struct aio_context *) (long) event.data;136136- if(update_aio(aio, event.res)){137137- do_aio(ctx, aio);138138- continue;139139- }140140-141147 reply = ((struct aio_thread_reply)142142- { .data = aio,143143- .err = aio->len });144144- err = os_write_file(aio->reply_fd, &reply,145145- sizeof(reply));148148+ { .data = (void *) (long) event.data,149149+ .err = event.res });150150+ reply_fd = ((struct aio_context *) reply.data)->reply_fd;151151+ err = os_write_file(reply_fd, &reply, sizeof(reply));146152 if(err != sizeof(reply))147147- printk("aio_thread - write failed, "148148- "fd = %d, err = %d\n", aio->reply_fd,149149- -err);153153+ printk("aio_thread - write failed, fd = %d, "154154+ "err = %d\n", aio_req_fd_r, -err);150155 }151156 }152157 return 0;···146167147168#endif148169149149-static int do_not_aio(struct aio_context *aio)170170+static int do_not_aio(struct aio_thread_req *req)150171{151172 char c;152173 int err;153174154154- switch(aio->type){175175+ switch(req->type){155176 case AIO_READ:156156- err = os_seek_file(aio->fd, aio->offset);177177+ err = os_seek_file(req->io_fd, req->offset);157178 if(err)158179 goto out;159180160160- err = os_read_file(aio->fd, aio->data, aio->len);181181+ err = os_read_file(req->io_fd, req->buf, req->len);161182 break;162183 case AIO_WRITE:163163- err = os_seek_file(aio->fd, aio->offset);184184+ err = os_seek_file(req->io_fd, req->offset);164185 if(err)165186 goto out;166187167167- err = os_write_file(aio->fd, aio->data, aio->len);188188+ err = os_write_file(req->io_fd, req->buf, req->len);168189 break;169190 case AIO_MMAP:170170- err = os_seek_file(aio->fd, aio->offset);191191+ err = os_seek_file(req->io_fd, req->offset);171192 if(err)172193 goto out;173194174174- err = os_read_file(aio->fd, &c, sizeof(c));195195+ err = os_read_file(req->io_fd, &c, sizeof(c));175196 break;176197 default:177177- printk("do_not_aio - bad request type : %d\n", aio->type);198198+ printk("do_not_aio - bad request type : %d\n", req->type);178199 err = -EINVAL;179200 break;180201 }···185206186207static int not_aio_thread(void *arg)187208{188188- struct aio_context *aio;209209+ struct aio_thread_req req;189210 struct aio_thread_reply reply;190211 int err;191212192213 signal(SIGWINCH, SIG_IGN);193214 while(1){194194- err = os_read_file(aio_req_fd_r, &aio, sizeof(aio));195195- if(err != sizeof(aio)){215215+ err = os_read_file(aio_req_fd_r, &req, sizeof(req));216216+ if(err != sizeof(req)){196217 if(err < 0)197218 printk("not_aio_thread - read failed, "198219 "fd = %d, err = %d\n", aio_req_fd_r,···203224 }204225 continue;205226 }206206- again:207207- err = do_not_aio(aio);208208-209209- if(update_aio(aio, err))210210- goto again;211211-212212- reply = ((struct aio_thread_reply) { .data = aio,213213- .err = aio->len });214214- err = os_write_file(aio->reply_fd, &reply, sizeof(reply));227227+ err = do_not_aio(&req);228228+ reply = ((struct aio_thread_reply) { .data = req.aio,229229+ .err = err });230230+ err = os_write_file(req.aio->reply_fd, &reply, sizeof(reply));215231 if(err != sizeof(reply))216232 printk("not_aio_thread - write failed, fd = %d, "217233 "err = %d\n", aio_req_fd_r, -err);218234 }219235}220236221221-static int submit_aio_24(struct aio_context *aio)222222-{223223- int err;224224-225225- err = os_write_file(aio_req_fd_w, &aio, sizeof(aio));226226- if(err == sizeof(aio))227227- err = 0;228228-229229- return err;230230-}231231-232237static int aio_pid = -1;233233-static int (*submit_proc)(struct aio_context *aio);234238235239static int init_aio_24(void)236240{···245283#endif246284 printk("2.6 host AIO support not used - falling back to I/O "247285 "thread\n");248248-249249- submit_proc = submit_aio_24;250250-251286 return 0;252287}253288254289#ifdef HAVE_AIO_ABI255290#define DEFAULT_24_AIO 0256256-static int submit_aio_26(struct aio_context *aio)257257-{258258- struct aio_thread_reply reply;259259- int err;260260-261261- err = do_aio(ctx, aio);262262- if(err){263263- reply = ((struct aio_thread_reply) { .data = aio,264264- .err = err });265265- err = os_write_file(aio->reply_fd, &reply, sizeof(reply));266266- if(err != sizeof(reply))267267- printk("submit_aio_26 - write failed, "268268- "fd = %d, err = %d\n", aio->reply_fd, -err);269269- else err = 0;270270- }271271-272272- return err;273273-}274274-275291static int init_aio_26(void)276292{277293 unsigned long stack;···270330 aio_pid = err;271331272332 printk("Using 2.6 host AIO\n");273273-274274- submit_proc = submit_aio_26;275275-276333 return 0;334334+}335335+336336+static int submit_aio_26(enum aio_type type, int io_fd, char *buf, int len,337337+ unsigned long long offset, struct aio_context *aio)338338+{339339+ struct aio_thread_reply reply;340340+ int err;341341+342342+ err = do_aio(ctx, type, io_fd, buf, len, offset, aio);343343+ if(err){344344+ reply = ((struct aio_thread_reply) { .data = aio,345345+ .err = err });346346+ err = os_write_file(aio->reply_fd, &reply, sizeof(reply));347347+ if(err != sizeof(reply))348348+ printk("submit_aio_26 - write failed, "349349+ "fd = %d, err = %d\n", aio->reply_fd, -err);350350+ else err = 0;351351+ }352352+353353+ return err;277354}278355279356#else280357#define DEFAULT_24_AIO 1281281-static int submit_aio_26(struct aio_context *aio)358358+static int init_aio_26(void)282359{283360 return -ENOSYS;284361}285362286286-static int init_aio_26(void)363363+static int submit_aio_26(enum aio_type type, int io_fd, char *buf, int len,364364+ unsigned long long offset, struct aio_context *aio)287365{288288- submit_proc = submit_aio_26;289366 return -ENOSYS;290367}291368#endif···369412370413__uml_exitcall(exit_aio);371414372372-int submit_aio(struct aio_context *aio)415415+static int submit_aio_24(enum aio_type type, int io_fd, char *buf, int len,416416+ unsigned long long offset, struct aio_context *aio)373417{374374- return (*submit_proc)(aio);418418+ struct aio_thread_req req = { .type = type,419419+ .io_fd = io_fd,420420+ .offset = offset,421421+ .buf = buf,422422+ .len = len,423423+ .aio = aio,424424+ };425425+ int err;426426+427427+ err = os_write_file(aio_req_fd_w, &req, sizeof(req));428428+ if(err == sizeof(req))429429+ err = 0;430430+431431+ return err;432432+}433433+434434+int submit_aio(enum aio_type type, int io_fd, char *buf, int len,435435+ unsigned long long offset, int reply_fd,436436+ struct aio_context *aio)437437+{438438+ aio->reply_fd = reply_fd;439439+ if(aio_24)440440+ return submit_aio_24(type, io_fd, buf, len, offset, aio);441441+ else {442442+ return submit_aio_26(type, io_fd, buf, len, offset, aio);443443+ }375444}
+11
arch/um/os-Linux/start_up.c
···143143 return 0;144144}145145146146+/* The two __uml_setup would conflict, without this stupid alias. */147147+148148+static int __init mode_skas0_cmd_param(char *str, int* add)149149+ __attribute__((alias("skas0_cmd_param")));150150+146151__uml_setup("skas0", skas0_cmd_param,147152 "skas0\n"148153 " Disables SKAS3 usage, so that SKAS0 is used, unless \n"149154 " you specify mode=tt.\n\n");155155+156156+__uml_setup("mode=skas0", mode_skas0_cmd_param,157157+ "mode=skas0\n"158158+ " Disables SKAS3 usage, so that SKAS0 is used, unless you \n"159159+ " specify mode=tt. Note that this was recently added - on \n"160160+ " older kernels you must use simply \"skas0\".\n\n");150161151162static int force_sysemu_disabled = 0;152163
···1010#include "uml-config.h"1111#include "sysdep/sigcontext.h"1212#include "sysdep/faultinfo.h"1313+#include <stddef.h>1414+1515+/* Copied from sys-x86_64/signal.c - Can't find an equivalent definition1616+ * in the libc headers anywhere.1717+ */1818+struct rt_sigframe1919+{2020+ char *pretcode;2121+ struct ucontext uc;2222+ struct siginfo info;2323+};2424+2525+/* Copied here from <linux/kernel.h> - we're userspace. */2626+#define container_of(ptr, type, member) ({ \2727+ const typeof( ((type *)0)->member ) *__mptr = (ptr); \2828+ (type *)( (char *)__mptr - offsetof(type,member) );})13291430void __attribute__ ((__section__ (".__syscall_stub")))1531stub_segv_handler(int sig)···3317 struct ucontext *uc;34183519 __asm__("movq %%rdx, %0" : "=g" (uc) :);3636- GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA),3737- &uc->uc_mcontext);2020+ GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA),2121+ &uc->uc_mcontext);38223939- __asm__("movq %0, %%rax ; syscall": : "g" (__NR_getpid));2323+ __asm__("movq %0, %%rax ; syscall": : "g" (__NR_getpid)); 4024 __asm__("movq %%rax, %%rdi ; movq %0, %%rax ; movq %1, %%rsi ;"4141- "syscall": : "g" (__NR_kill), "g" (SIGUSR1));4242- /* Two popqs to restore the stack to the state just before entering4343- * the handler, one pops the return address, the other pops the frame4444- * pointer.2525+ "syscall": : "g" (__NR_kill), "g" (SIGUSR1) : 2626+ "%rdi", "%rax", "%rsi");2727+ /* sys_sigreturn expects that the stack pointer will be 8 bytes into2828+ * the signal frame. So, we use the ucontext pointer, which we know2929+ * already, to get the signal frame pointer, and add 8 to that.4530 */4646- __asm__("popq %%rax ; popq %%rax ; movq %0, %%rax ; syscall" : : "g"4747- (__NR_rt_sigreturn));3131+ __asm__("movq %0, %%rsp": : 3232+ "g" ((unsigned long) container_of(uc, struct rt_sigframe, 3333+ uc) + 8));3434+ __asm__("movq %0, %%rax ; syscall" : : "g" (__NR_rt_sigreturn));4835}
+5-1
arch/x86_64/ia32/ia32_signal.c
···425425 rsp = (unsigned long) ka->sa.sa_restorer;426426 }427427428428- return (void __user *)((rsp - frame_size) & -8UL);428428+ rsp -= frame_size;429429+ /* Align the stack pointer according to the i386 ABI,430430+ * i.e. so that on function entry ((sp + 4) & 15) == 0. */431431+ rsp = ((rsp + 4) & -16ul) - 4;432432+ return (void __user *) rsp;429433}430434431435int ia32_setup_frame(int sig, struct k_sigaction *ka,
+4
arch/x86_64/kernel/setup64.c
···8787 int i;8888 unsigned long size;89899090+#ifdef CONFIG_HOTPLUG_CPU9191+ prefill_possible_map();9292+#endif9393+9094 /* Copy section for each CPU (we discard the original) */9195 size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES);9296#ifdef CONFIG_MODULES
+1-5
arch/x86_64/kernel/smpboot.c
···892892 * those NR_CPUS, hence cpu_possible_map represents entire NR_CPUS range.893893 * - Ashok Raj894894 */895895-static void prefill_possible_map(void)895895+__init void prefill_possible_map(void)896896{897897 int i;898898 for (i = 0; i < NR_CPUS; i++)···966966 nmi_watchdog_default();967967 current_cpu_data = boot_cpu_data;968968 current_thread_info()->cpu = 0; /* needed? */969969-970970-#ifdef CONFIG_HOTPLUG_CPU971971- prefill_possible_map();972972-#endif973969974970 if (smp_sanity_check(max_cpus) < 0) {975971 printk(KERN_INFO "SMP disabled\n");
+127
arch/x86_64/kernel/suspend.c
···1111#include <linux/smp.h>1212#include <linux/suspend.h>1313#include <asm/proto.h>1414+#include <asm/page.h>1515+#include <asm/pgtable.h>14161517struct saved_context saved_context;1618···142140143141}144142143143+#ifdef CONFIG_SOFTWARE_SUSPEND144144+/* Defined in arch/x86_64/kernel/suspend_asm.S */145145+extern int restore_image(void);145146147147+pgd_t *temp_level4_pgt;148148+149149+static void **pages;150150+151151+static inline void *__add_page(void)152152+{153153+ void **c;154154+155155+ c = (void **)get_usable_page(GFP_ATOMIC);156156+ if (c) {157157+ *c = pages;158158+ pages = c;159159+ }160160+ return c;161161+}162162+163163+static inline void *__next_page(void)164164+{165165+ void **c;166166+167167+ c = pages;168168+ if (c) {169169+ pages = *c;170170+ *c = NULL;171171+ }172172+ return c;173173+}174174+175175+/*176176+ * Try to allocate as many usable pages as needed and daisy chain them.177177+ * If one allocation fails, free the pages allocated so far178178+ */179179+static int alloc_usable_pages(unsigned long n)180180+{181181+ void *p;182182+183183+ pages = NULL;184184+ do185185+ if (!__add_page())186186+ break;187187+ while (--n);188188+ if (n) {189189+ p = __next_page();190190+ while (p) {191191+ free_page((unsigned long)p);192192+ p = __next_page();193193+ }194194+ return -ENOMEM;195195+ }196196+ return 0;197197+}198198+199199+static void res_phys_pud_init(pud_t *pud, unsigned long address, unsigned long end)200200+{201201+ long i, j;202202+203203+ i = pud_index(address);204204+ pud = pud + i;205205+ for (; i < PTRS_PER_PUD; pud++, i++) {206206+ unsigned long paddr;207207+ pmd_t *pmd;208208+209209+ paddr = address + i*PUD_SIZE;210210+ if (paddr >= end)211211+ break;212212+213213+ pmd = (pmd_t *)__next_page();214214+ set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));215215+ for (j = 0; j < PTRS_PER_PMD; pmd++, j++, paddr += PMD_SIZE) {216216+ unsigned long pe;217217+218218+ if (paddr >= end)219219+ break;220220+ pe = _PAGE_NX | _PAGE_PSE | _KERNPG_TABLE | paddr;221221+ pe &= __supported_pte_mask;222222+ set_pmd(pmd, __pmd(pe));223223+ }224224+ }225225+}226226+227227+static void set_up_temporary_mappings(void)228228+{229229+ unsigned long start, end, next;230230+231231+ temp_level4_pgt = (pgd_t *)__next_page();232232+233233+ /* It is safe to reuse the original kernel mapping */234234+ set_pgd(temp_level4_pgt + pgd_index(__START_KERNEL_map),235235+ init_level4_pgt[pgd_index(__START_KERNEL_map)]);236236+237237+ /* Set up the direct mapping from scratch */238238+ start = (unsigned long)pfn_to_kaddr(0);239239+ end = (unsigned long)pfn_to_kaddr(end_pfn);240240+241241+ for (; start < end; start = next) {242242+ pud_t *pud = (pud_t *)__next_page();243243+ next = start + PGDIR_SIZE;244244+ if (next > end)245245+ next = end;246246+ res_phys_pud_init(pud, __pa(start), __pa(next));247247+ set_pgd(temp_level4_pgt + pgd_index(start),248248+ mk_kernel_pgd(__pa(pud)));249249+ }250250+}251251+252252+int swsusp_arch_resume(void)253253+{254254+ unsigned long n;255255+256256+ n = ((end_pfn << PAGE_SHIFT) + PUD_SIZE - 1) >> PUD_SHIFT;257257+ n += (n + PTRS_PER_PUD - 1) / PTRS_PER_PUD + 1;258258+ pr_debug("swsusp_arch_resume(): pages needed = %lu\n", n);259259+ if (alloc_usable_pages(n)) {260260+ free_eaten_memory();261261+ return -ENOMEM;262262+ }263263+ /* We have got enough memory and from now on we cannot recover */264264+ set_up_temporary_mappings();265265+ restore_image();266266+ return 0;267267+}268268+#endif /* CONFIG_SOFTWARE_SUSPEND */
+11-6
arch/x86_64/kernel/suspend_asm.S
···3939 call swsusp_save4040 ret41414242-ENTRY(swsusp_arch_resume)4343- /* set up cr3 */ 4444- leaq init_level4_pgt(%rip),%rax4545- subq $__START_KERNEL_map,%rax4646- movq %rax,%cr34747-4242+ENTRY(restore_image)4343+ /* switch to temporary page tables */4444+ movq $__PAGE_OFFSET, %rdx4545+ movq temp_level4_pgt(%rip), %rax4646+ subq %rdx, %rax4747+ movq %rax, %cr34848+ /* Flush TLB */4849 movq mmu_cr4_features(%rip), %rax4950 movq %rax, %rdx5051 andq $~(1<<7), %rdx # PGE···7069 movq pbe_next(%rdx), %rdx7170 jmp loop7271done:7272+ /* go back to the original page tables */7373+ leaq init_level4_pgt(%rip), %rax7474+ subq $__START_KERNEL_map, %rax7575+ movq %rax, %cr37376 /* Flush TLB, including "global" things (vmalloc) */7477 movq mmu_cr4_features(%rip), %rax7578 movq %rax, %rdx
···201201 return 0;202202 }203203204204+ /* And root can do any command.. */205205+ if (capable(CAP_SYS_RAWIO))206206+ return 0;207207+204208 if (!type) {205209 cmd_type[cmd[0]] = CMD_WARNED;206210 printk(KERN_WARNING "scsi: unknown opcode 0x%02x\n", cmd[0]);207211 }208208-209209- /* And root can do any command.. */210210- if (capable(CAP_SYS_RAWIO))211211- return 0;212212213213 /* Otherwise fail it with an "Operation not permitted" */214214 return -EPERM;
···5050#include <asm/io.h> /* For inb/outb/... */51515252/* Module and version information */5353-#define WATCHDOG_VERSION "1.01"5454-#define WATCHDOG_DATE "02 Sep 2005"5353+#define WATCHDOG_VERSION "1.02"5454+#define WATCHDOG_DATE "03 Sep 2005"5555#define WATCHDOG_DRIVER_NAME "PCI-PC Watchdog"5656#define WATCHDOG_NAME "pcwd_pci"5757#define PFX WATCHDOG_NAME ": "···7070 * These are the defines that describe the control status bits for the7171 * PCI-PC Watchdog card.7272 */7373-#define WD_PCI_WTRP 0x01 /* Watchdog Trip status */7474-#define WD_PCI_HRBT 0x02 /* Watchdog Heartbeat */7575-#define WD_PCI_TTRP 0x04 /* Temperature Trip status */7373+/* Port 1 : Control Status #1 */7474+#define WD_PCI_WTRP 0x01 /* Watchdog Trip status */7575+#define WD_PCI_HRBT 0x02 /* Watchdog Heartbeat */7676+#define WD_PCI_TTRP 0x04 /* Temperature Trip status */7777+#define WD_PCI_RL2A 0x08 /* Relay 2 Active */7878+#define WD_PCI_RL1A 0x10 /* Relay 1 Active */7979+#define WD_PCI_R2DS 0x40 /* Relay 2 Disable Temperature-trip/reset */8080+#define WD_PCI_RLY2 0x80 /* Activate Relay 2 on the board */8181+/* Port 2 : Control Status #2 */8282+#define WD_PCI_WDIS 0x10 /* Watchdog Disable */8383+#define WD_PCI_ENTP 0x20 /* Enable Temperature Trip Reset */8484+#define WD_PCI_WRSP 0x40 /* Watchdog wrote response */8585+#define WD_PCI_PCMD 0x80 /* PC has sent command */76867787/* according to documentation max. time to process a command for the pci7888 * watchdog card is 100 ms, so we give it 150 ms to do it's job */7989#define PCI_COMMAND_TIMEOUT 15080908191/* Watchdog's internal commands */8282-#define CMD_GET_STATUS 0x048383-#define CMD_GET_FIRMWARE_VERSION 0x088484-#define CMD_READ_WATCHDOG_TIMEOUT 0x188585-#define CMD_WRITE_WATCHDOG_TIMEOUT 0x199292+#define CMD_GET_STATUS 0x049393+#define CMD_GET_FIRMWARE_VERSION 0x089494+#define CMD_READ_WATCHDOG_TIMEOUT 0x189595+#define CMD_WRITE_WATCHDOG_TIMEOUT 0x199696+#define CMD_GET_CLEAR_RESET_COUNT 0x8486978798/* We can only use 1 card due to the /dev/watchdog restriction */8899static int cards_found;···10291static int temp_panic;10392static unsigned long is_active;10493static char expect_release;105105-static struct {106106- int supports_temp; /* Wether or not the card has a temperature device */107107- int boot_status; /* The card's boot status */108108- unsigned long io_addr; /* The cards I/O address */109109- spinlock_t io_lock;110110- struct pci_dev *pdev;9494+static struct { /* this is private data for each PCI-PC watchdog card */9595+ int supports_temp; /* Wether or not the card has a temperature device */9696+ int boot_status; /* The card's boot status */9797+ unsigned long io_addr; /* The cards I/O address */9898+ spinlock_t io_lock; /* the lock for io operations */9999+ struct pci_dev *pdev; /* the PCI-device */111100} pcipcwd_private;112101113102/* module parameters */103103+#define QUIET 0 /* Default */104104+#define VERBOSE 1 /* Verbose */105105+#define DEBUG 2 /* print fancy stuff too */106106+static int debug = QUIET;107107+module_param(debug, int, 0);108108+MODULE_PARM_DESC(debug, "Debug level: 0=Quiet, 1=Verbose, 2=Debug (default=0)");109109+114110#define WATCHDOG_HEARTBEAT 2 /* 2 sec default heartbeat */115111static int heartbeat = WATCHDOG_HEARTBEAT;116112module_param(heartbeat, int, 0);···135117{136118 int got_response, count;137119120120+ if (debug >= DEBUG)121121+ printk(KERN_DEBUG PFX "sending following data cmd=0x%02x msb=0x%02x lsb=0x%02x\n",122122+ cmd, *msb, *lsb);123123+138124 spin_lock(&pcipcwd_private.io_lock);139125 /* If a command requires data it should be written first.140126 * Data for commands with 8 bits of data should be written to port 4.···153131 /* wait till the pci card processed the command, signaled by154132 * the WRSP bit in port 2 and give it a max. timeout of155133 * PCI_COMMAND_TIMEOUT to process */156156- got_response = inb_p(pcipcwd_private.io_addr + 2) & 0x40;134134+ got_response = inb_p(pcipcwd_private.io_addr + 2) & WD_PCI_WRSP;157135 for (count = 0; (count < PCI_COMMAND_TIMEOUT) && (!got_response); count++) {158136 mdelay(1);159159- got_response = inb_p(pcipcwd_private.io_addr + 2) & 0x40;137137+ got_response = inb_p(pcipcwd_private.io_addr + 2) & WD_PCI_WRSP;138138+ }139139+140140+ if (debug >= DEBUG) {141141+ if (got_response) {142142+ printk(KERN_DEBUG PFX "time to process command was: %d ms\n",143143+ count);144144+ } else {145145+ printk(KERN_DEBUG PFX "card did not respond on command!\n");146146+ }160147 }161148162149 if (got_response) {···175144176145 /* clear WRSP bit */177146 inb_p(pcipcwd_private.io_addr + 6);147147+148148+ if (debug >= DEBUG)149149+ printk(KERN_DEBUG PFX "received following data for cmd=0x%02x: msb=0x%02x lsb=0x%02x\n",150150+ cmd, *msb, *lsb);178151 }152152+179153 spin_unlock(&pcipcwd_private.io_lock);180154181155 return got_response;156156+}157157+158158+static inline void pcipcwd_check_temperature_support(void)159159+{160160+ if (inb_p(pcipcwd_private.io_addr) != 0xF0)161161+ pcipcwd_private.supports_temp = 1;162162+}163163+164164+static int pcipcwd_get_option_switches(void)165165+{166166+ int option_switches;167167+168168+ option_switches = inb_p(pcipcwd_private.io_addr + 3);169169+ return option_switches;170170+}171171+172172+static void pcipcwd_show_card_info(void)173173+{174174+ int got_fw_rev, fw_rev_major, fw_rev_minor;175175+ char fw_ver_str[20]; /* The cards firmware version */176176+ int option_switches;177177+178178+ got_fw_rev = send_command(CMD_GET_FIRMWARE_VERSION, &fw_rev_major, &fw_rev_minor);179179+ if (got_fw_rev) {180180+ sprintf(fw_ver_str, "%u.%02u", fw_rev_major, fw_rev_minor);181181+ } else {182182+ sprintf(fw_ver_str, "<card no answer>");183183+ }184184+185185+ /* Get switch settings */186186+ option_switches = pcipcwd_get_option_switches();187187+188188+ printk(KERN_INFO PFX "Found card at port 0x%04x (Firmware: %s) %s temp option\n",189189+ (int) pcipcwd_private.io_addr, fw_ver_str,190190+ (pcipcwd_private.supports_temp ? "with" : "without"));191191+192192+ printk(KERN_INFO PFX "Option switches (0x%02x): Temperature Reset Enable=%s, Power On Delay=%s\n",193193+ option_switches,194194+ ((option_switches & 0x10) ? "ON" : "OFF"),195195+ ((option_switches & 0x08) ? "ON" : "OFF"));196196+197197+ if (pcipcwd_private.boot_status & WDIOF_CARDRESET)198198+ printk(KERN_INFO PFX "Previous reset was caused by the Watchdog card\n");199199+200200+ if (pcipcwd_private.boot_status & WDIOF_OVERHEAT)201201+ printk(KERN_INFO PFX "Card sensed a CPU Overheat\n");202202+203203+ if (pcipcwd_private.boot_status == 0)204204+ printk(KERN_INFO PFX "No previous trip detected - Cold boot or reset\n");182205}183206184207static int pcipcwd_start(void)···246161 stat_reg = inb_p(pcipcwd_private.io_addr + 2);247162 spin_unlock(&pcipcwd_private.io_lock);248163249249- if (stat_reg & 0x10) {164164+ if (stat_reg & WD_PCI_WDIS) {250165 printk(KERN_ERR PFX "Card timer not enabled\n");251166 return -1;252167 }168168+169169+ if (debug >= VERBOSE)170170+ printk(KERN_DEBUG PFX "Watchdog started\n");253171254172 return 0;255173}···271183 stat_reg = inb_p(pcipcwd_private.io_addr + 2);272184 spin_unlock(&pcipcwd_private.io_lock);273185274274- if (!(stat_reg & 0x10)) {186186+ if (!(stat_reg & WD_PCI_WDIS)) {275187 printk(KERN_ERR PFX "Card did not acknowledge disable attempt\n");276188 return -1;277189 }190190+191191+ if (debug >= VERBOSE)192192+ printk(KERN_DEBUG PFX "Watchdog stopped\n");278193279194 return 0;280195}···285194static int pcipcwd_keepalive(void)286195{287196 /* Re-trigger watchdog by writing to port 0 */288288- outb_p(0x42, pcipcwd_private.io_addr);197197+ outb_p(0x42, pcipcwd_private.io_addr); /* send out any data */198198+199199+ if (debug >= DEBUG)200200+ printk(KERN_DEBUG PFX "Watchdog keepalive signal send\n");201201+289202 return 0;290203}291204···305210 send_command(CMD_WRITE_WATCHDOG_TIMEOUT, &t_msb, &t_lsb);306211307212 heartbeat = t;213213+ if (debug >= VERBOSE)214214+ printk(KERN_DEBUG PFX "New heartbeat: %d\n",215215+ heartbeat);216216+308217 return 0;309218}310219311220static int pcipcwd_get_status(int *status)312221{313313- int new_status;222222+ int control_status;314223315224 *status=0;316316- new_status = inb_p(pcipcwd_private.io_addr + 1);317317- if (new_status & WD_PCI_WTRP)225225+ control_status = inb_p(pcipcwd_private.io_addr + 1);226226+ if (control_status & WD_PCI_WTRP)318227 *status |= WDIOF_CARDRESET;319319- if (new_status & WD_PCI_TTRP) {228228+ if (control_status & WD_PCI_TTRP) {320229 *status |= WDIOF_OVERHEAT;321230 if (temp_panic)322231 panic(PFX "Temperature overheat trip!\n");323232 }233233+234234+ if (debug >= DEBUG)235235+ printk(KERN_DEBUG PFX "Control Status #1: 0x%02x\n",236236+ control_status);324237325238 return 0;326239}327240328241static int pcipcwd_clear_status(void)329242{330330- outb_p(0x01, pcipcwd_private.io_addr + 1);243243+ int control_status;244244+ int msb;245245+ int reset_counter;246246+247247+ if (debug >= VERBOSE)248248+ printk(KERN_INFO PFX "clearing watchdog trip status & LED\n");249249+250250+ control_status = inb_p(pcipcwd_private.io_addr + 1);251251+252252+ if (debug >= DEBUG) {253253+ printk(KERN_DEBUG PFX "status was: 0x%02x\n", control_status);254254+ printk(KERN_DEBUG PFX "sending: 0x%02x\n",255255+ (control_status & WD_PCI_R2DS) | WD_PCI_WTRP);256256+ }257257+258258+ /* clear trip status & LED and keep mode of relay 2 */259259+ outb_p((control_status & WD_PCI_R2DS) | WD_PCI_WTRP, pcipcwd_private.io_addr + 1);260260+261261+ /* clear reset counter */262262+ msb=0;263263+ reset_counter=0xff;264264+ send_command(CMD_GET_CLEAR_RESET_COUNT, &msb, &reset_counter);265265+266266+ if (debug >= DEBUG) {267267+ printk(KERN_DEBUG PFX "reset count was: 0x%02x\n",268268+ reset_counter);269269+ }270270+331271 return 0;332272}333273···372242 if (!pcipcwd_private.supports_temp)373243 return -ENODEV;374244245245+ *temperature = inb_p(pcipcwd_private.io_addr);246246+375247 /*376248 * Convert celsius to fahrenheit, since this was377249 * the decided 'standard' for this return value.378250 */379379- *temperature = ((inb_p(pcipcwd_private.io_addr)) * 9 / 5) + 32;251251+ *temperature = (*temperature * 9 / 5) + 32;252252+253253+ if (debug >= DEBUG) {254254+ printk(KERN_DEBUG PFX "temperature is: %d F\n",255255+ *temperature);256256+ }380257381258 return 0;382259}···393256 */394257395258static ssize_t pcipcwd_write(struct file *file, const char __user *data,396396- size_t len, loff_t *ppos)259259+ size_t len, loff_t *ppos)397260{398261 /* See if we got the magic character 'V' and reload the timer */399262 if (len) {···518381static int pcipcwd_open(struct inode *inode, struct file *file)519382{520383 /* /dev/watchdog can only be opened once */521521- if (test_and_set_bit(0, &is_active))384384+ if (test_and_set_bit(0, &is_active)) {385385+ if (debug >= VERBOSE)386386+ printk(KERN_ERR PFX "Attempt to open already opened device.\n");522387 return -EBUSY;388388+ }523389524390 /* Activate */525391 pcipcwd_start();···632492 * Init & exit routines633493 */634494635635-static inline void check_temperature_support(void)636636-{637637- if (inb_p(pcipcwd_private.io_addr) != 0xF0)638638- pcipcwd_private.supports_temp = 1;639639-}640640-641495static int __devinit pcipcwd_card_init(struct pci_dev *pdev,642496 const struct pci_device_id *ent)643497{644498 int ret = -EIO;645645- int got_fw_rev, fw_rev_major, fw_rev_minor;646646- char fw_ver_str[20];647647- char option_switches;648499649500 cards_found++;650501 if (cards_found == 1)···677546 pcipcwd_stop();678547679548 /* Check whether or not the card supports the temperature device */680680- check_temperature_support();549549+ pcipcwd_check_temperature_support();681550682682- /* Get the Firmware Version */683683- got_fw_rev = send_command(CMD_GET_FIRMWARE_VERSION, &fw_rev_major, &fw_rev_minor);684684- if (got_fw_rev) {685685- sprintf(fw_ver_str, "%u.%02u", fw_rev_major, fw_rev_minor);686686- } else {687687- sprintf(fw_ver_str, "<card no answer>");688688- }689689-690690- /* Get switch settings */691691- option_switches = inb_p(pcipcwd_private.io_addr + 3);692692-693693- printk(KERN_INFO PFX "Found card at port 0x%04x (Firmware: %s) %s temp option\n",694694- (int) pcipcwd_private.io_addr, fw_ver_str,695695- (pcipcwd_private.supports_temp ? "with" : "without"));696696-697697- printk(KERN_INFO PFX "Option switches (0x%02x): Temperature Reset Enable=%s, Power On Delay=%s\n",698698- option_switches,699699- ((option_switches & 0x10) ? "ON" : "OFF"),700700- ((option_switches & 0x08) ? "ON" : "OFF"));701701-702702- if (pcipcwd_private.boot_status & WDIOF_CARDRESET)703703- printk(KERN_INFO PFX "Previous reset was caused by the Watchdog card\n");704704-705705- if (pcipcwd_private.boot_status & WDIOF_OVERHEAT)706706- printk(KERN_INFO PFX "Card sensed a CPU Overheat\n");707707-708708- if (pcipcwd_private.boot_status == 0)709709- printk(KERN_INFO PFX "No previous trip detected - Cold boot or reset\n");551551+ /* Show info about the card itself */552552+ pcipcwd_show_card_info();710553711554 /* Check that the heartbeat value is within it's range ; if not reset to the default */712555 if (pcipcwd_set_heartbeat(heartbeat)) {···761656762657static int __init pcipcwd_init_module(void)763658{764764- spin_lock_init (&pcipcwd_private.io_lock);659659+ spin_lock_init(&pcipcwd_private.io_lock);765660766661 return pci_register_driver(&pcipcwd_driver);767662}
+1-1
drivers/connector/connector.c
···6969 * a new message.7070 *7171 */7272-int cn_netlink_send(struct cn_msg *msg, u32 __group, int gfp_mask)7272+int cn_netlink_send(struct cn_msg *msg, u32 __group, gfp_t gfp_mask)7373{7474 struct cn_callback_entry *__cbq;7575 unsigned int size;
+95-83
drivers/firmware/dell_rbu.c
···5050MODULE_AUTHOR("Abhay Salunke <abhay_salunke@dell.com>");5151MODULE_DESCRIPTION("Driver for updating BIOS image on DELL systems");5252MODULE_LICENSE("GPL");5353-MODULE_VERSION("2.0");5353+MODULE_VERSION("3.0");54545555#define BIOS_SCAN_LIMIT 0xffffffff5656#define MAX_IMAGE_LENGTH 16···6262 int dma_alloc;6363 spinlock_t lock;6464 unsigned long packet_read_count;6565- unsigned long packet_write_count;6665 unsigned long num_packets;6766 unsigned long packetsize;6767+ unsigned long imagesize;6868 int entry_created;6969} rbu_data;70707171static char image_type[MAX_IMAGE_LENGTH + 1] = "mono";7272module_param_string(image_type, image_type, sizeof (image_type), 0);7373-MODULE_PARM_DESC(image_type, "BIOS image type. choose- mono or packet");7373+MODULE_PARM_DESC(image_type,7474+ "BIOS image type. choose- mono or packet or init");74757576struct packet_data {7677 struct list_head list;···8988static void init_packet_head(void)9089{9190 INIT_LIST_HEAD(&packet_data_head.list);9292- rbu_data.packet_write_count = 0;9391 rbu_data.packet_read_count = 0;9492 rbu_data.num_packets = 0;9593 rbu_data.packetsize = 0;9494+ rbu_data.imagesize = 0;9695}97969898-static int fill_last_packet(void *data, size_t length)9999-{100100- struct list_head *ptemp_list;101101- struct packet_data *packet = NULL;102102- int packet_count = 0;103103-104104- pr_debug("fill_last_packet: entry \n");105105-106106- if (!rbu_data.num_packets) {107107- pr_debug("fill_last_packet: num_packets=0\n");108108- return -ENOMEM;109109- }110110-111111- packet_count = rbu_data.num_packets;112112-113113- ptemp_list = (&packet_data_head.list)->prev;114114-115115- packet = list_entry(ptemp_list, struct packet_data, list);116116-117117- if ((rbu_data.packet_write_count + length) > rbu_data.packetsize) {118118- pr_debug("dell_rbu:%s: packet size data "119119- "overrun\n", __FUNCTION__);120120- return -EINVAL;121121- }122122-123123- pr_debug("fill_last_packet : buffer = %p\n", packet->data);124124-125125- memcpy((packet->data + rbu_data.packet_write_count), data, length);126126-127127- if ((rbu_data.packet_write_count + length) == rbu_data.packetsize) {128128- /*129129- * this was the last data chunk in the packet130130- * so reinitialize the packet data counter to zero131131- */132132- rbu_data.packet_write_count = 0;133133- } else134134- rbu_data.packet_write_count += length;135135-136136- pr_debug("fill_last_packet: exit \n");137137- return 0;138138-}139139-140140-static int create_packet(size_t length)9797+static int create_packet(void *data, size_t length)14198{14299 struct packet_data *newpacket;143100 int ordernum = 0;···145186 INIT_LIST_HEAD(&newpacket->list);146187 list_add_tail(&newpacket->list, &packet_data_head.list);147188 /*148148- * packets have fixed size189189+ * packets may not have fixed size149190 */150150- newpacket->length = rbu_data.packetsize;191191+ newpacket->length = length;192192+193193+ memcpy(newpacket->data, data, length);151194152195 pr_debug("create_packet: exit \n");153196···159198static int packetize_data(void *data, size_t length)160199{161200 int rc = 0;162162-163163- if (!rbu_data.packet_write_count) {164164- if ((rc = create_packet(length)))165165- return rc;201201+ int done = 0;202202+ int packet_length;203203+ u8 *temp;204204+ u8 *end = (u8 *) data + length;205205+ pr_debug("packetize_data: data length %d\n", length);206206+ if (!rbu_data.packetsize) {207207+ printk(KERN_WARNING208208+ "dell_rbu: packetsize not specified\n");209209+ return -EIO;166210 }167167- if ((rc = fill_last_packet(data, length)))168168- return rc;211211+212212+ temp = (u8 *) data;213213+214214+ /* packetize the hunk */215215+ while (!done) {216216+ if ((temp + rbu_data.packetsize) < end)217217+ packet_length = rbu_data.packetsize;218218+ else {219219+ /* this is the last packet */220220+ packet_length = end - temp;221221+ done = 1;222222+ }223223+224224+ if ((rc = create_packet(temp, packet_length)))225225+ return rc;226226+227227+ pr_debug("%lu:%lu\n", temp, (end - temp));228228+ temp += packet_length;229229+ }230230+231231+ rbu_data.imagesize = length;169232170233 return rc;171234}···228243 return bytes_copied;229244}230245231231-static int packet_read_list(char *data, size_t *pread_length)246246+static int packet_read_list(char *data, size_t * pread_length)232247{233248 struct list_head *ptemp_list;234249 int temp_count = 0;···288303 newpacket->ordernum);289304 kfree(newpacket);290305 }291291- rbu_data.packet_write_count = 0;292306 rbu_data.packet_read_count = 0;293307 rbu_data.num_packets = 0;294294- rbu_data.packetsize = 0;308308+ rbu_data.imagesize = 0;295309}296310297311/*···409425 size_t bytes_left;410426 size_t data_length;411427 char *ptempBuf = buffer;412412- unsigned long imagesize;413428414429 /* check to see if we have something to return */415430 if (rbu_data.num_packets == 0) {···417434 goto read_rbu_data_exit;418435 }419436420420- imagesize = rbu_data.num_packets * rbu_data.packetsize;421421-422422- if (pos > imagesize) {437437+ if (pos > rbu_data.imagesize) {423438 retval = 0;424439 printk(KERN_WARNING "dell_rbu:read_packet_data: "425440 "data underrun\n");426441 goto read_rbu_data_exit;427442 }428443429429- bytes_left = imagesize - pos;444444+ bytes_left = rbu_data.imagesize - pos;430445 data_length = min(bytes_left, count);431446432447 if ((retval = packet_read_list(ptempBuf, &data_length)) < 0)433448 goto read_rbu_data_exit;434449435435- if ((pos + count) > imagesize) {450450+ if ((pos + count) > rbu_data.imagesize) {436451 rbu_data.packet_read_count = 0;437452 /* this was the last copy */438453 retval = bytes_left;···480499}481500482501static ssize_t read_rbu_data(struct kobject *kobj, char *buffer,483483- loff_t pos, size_t count)502502+ loff_t pos, size_t count)484503{485504 ssize_t ret_count = 0;486505···512531 memcpy(rbu_data.image_update_buffer,513532 fw->data, fw->size);514533 } else if (!strcmp(image_type, "packet")) {515515- if (!rbu_data.packetsize)516516- rbu_data.packetsize = fw->size;517517- else if (rbu_data.packetsize != fw->size) {534534+ /*535535+ * we need to free previous packets if a536536+ * new hunk of packets needs to be downloaded537537+ */538538+ packet_empty_list();539539+ if (packetize_data(fw->data, fw->size))540540+ /* Incase something goes wrong when we are541541+ * in middle of packetizing the data, we542542+ * need to free up whatever packets might543543+ * have been created before we quit.544544+ */518545 packet_empty_list();519519- rbu_data.packetsize = fw->size;520520- }521521- packetize_data(fw->data, fw->size);522546 } else523547 pr_debug("invalid image type specified.\n");524548 spin_unlock(&rbu_data.lock);···539553}540554541555static ssize_t read_rbu_image_type(struct kobject *kobj, char *buffer,542542- loff_t pos, size_t count)556556+ loff_t pos, size_t count)543557{544558 int size = 0;545559 if (!pos)···548562}549563550564static ssize_t write_rbu_image_type(struct kobject *kobj, char *buffer,551551- loff_t pos, size_t count)565565+ loff_t pos, size_t count)552566{553567 int rc = count;554568 int req_firm_rc = 0;···607621 return rc;608622}609623624624+static ssize_t read_rbu_packet_size(struct kobject *kobj, char *buffer,625625+ loff_t pos, size_t count)626626+{627627+ int size = 0;628628+ if (!pos) {629629+ spin_lock(&rbu_data.lock);630630+ size = sprintf(buffer, "%lu\n", rbu_data.packetsize);631631+ spin_unlock(&rbu_data.lock);632632+ }633633+ return size;634634+}635635+636636+static ssize_t write_rbu_packet_size(struct kobject *kobj, char *buffer,637637+ loff_t pos, size_t count)638638+{639639+ unsigned long temp;640640+ spin_lock(&rbu_data.lock);641641+ packet_empty_list();642642+ sscanf(buffer, "%lu", &temp);643643+ if (temp < 0xffffffff)644644+ rbu_data.packetsize = temp;645645+646646+ spin_unlock(&rbu_data.lock);647647+ return count;648648+}649649+610650static struct bin_attribute rbu_data_attr = {611611- .attr = {612612- .name = "data",613613- .owner = THIS_MODULE,614614- .mode = 0444,615615- },651651+ .attr = {.name = "data",.owner = THIS_MODULE,.mode = 0444},616652 .read = read_rbu_data,617653};618654619655static struct bin_attribute rbu_image_type_attr = {620620- .attr = {621621- .name = "image_type",622622- .owner = THIS_MODULE,623623- .mode = 0644,624624- },656656+ .attr = {.name = "image_type",.owner = THIS_MODULE,.mode = 0644},625657 .read = read_rbu_image_type,626658 .write = write_rbu_image_type,659659+};660660+661661+static struct bin_attribute rbu_packet_size_attr = {662662+ .attr = {.name = "packet_size",.owner = THIS_MODULE,.mode = 0644},663663+ .read = read_rbu_packet_size,664664+ .write = write_rbu_packet_size,627665};628666629667static int __init dcdrbu_init(void)···667657668658 sysfs_create_bin_file(&rbu_device->dev.kobj, &rbu_data_attr);669659 sysfs_create_bin_file(&rbu_device->dev.kobj, &rbu_image_type_attr);660660+ sysfs_create_bin_file(&rbu_device->dev.kobj,661661+ &rbu_packet_size_attr);670662671663 rc = request_firmware_nowait(THIS_MODULE, FW_ACTION_NOHOTPLUG,672664 "dell_rbu", &rbu_device->dev, &context, callbackfn_rbu);
+8
drivers/ide/ide-io.c
···11011101 ide_hwif_t *hwif;11021102 struct request *rq;11031103 ide_startstop_t startstop;11041104+ int loops = 0;1104110511051106 /* for atari only: POSSIBLY BROKEN HERE(?) */11061107 ide_get_lock(ide_intr, hwgroup);···11541153 /* no more work for this hwgroup (for now) */11551154 return;11561155 }11561156+ again:11571157 hwif = HWIF(drive);11581158 if (hwgroup->hwif->sharing_irq &&11591159 hwif != hwgroup->hwif &&···11941192 * though. I hope that doesn't happen too much, hopefully not11951193 * unless the subdriver triggers such a thing in its own PM11961194 * state machine.11951195+ *11961196+ * We count how many times we loop here to make sure we service11971197+ * all drives in the hwgroup without looping for ever11971198 */11981199 if (drive->blocked && !blk_pm_request(rq) && !(rq->flags & REQ_PREEMPT)) {12001200+ drive = drive->next ? drive->next : hwgroup->drive;12011201+ if (loops++ < 4 && !blk_queue_plugged(drive->queue))12021202+ goto again;11991203 /* We clear busy, there should be no pending ATA command at this point. */12001204 hwgroup->busy = 0;12011205 break;
···689689 schedule();690690 try_to_freeze();691691 }692692+ /* make sure we are running before we exit */693693+ set_current_state(TASK_RUNNING);694694+692695 remove_wait_queue(&skt->thread_wait, &wait);693696694697 /* remove from the device core */
+4-1
drivers/pcmcia/ti113x.h
···873873 * Some fixup code to make everybody happy (TM).874874 */875875876876+#ifdef CONFIG_CARDBUS876877/**877878 * set/clear various test bits:878879 * Defaults to clear the bit.···928927 config_writeb(socket, ENE_TEST_C9, test_c9);929928}930929931931-932930static int ene_override(struct yenta_socket *socket)933931{934932 /* install tune_bridge() function */···935935936936 return ti1250_override(socket);937937}938938+#else939939+# define ene_override ti1250_override940940+#endif938941939942#endif /* _LINUX_TI113X_H */940943
+1-1
drivers/s390/cio/device.c
···544544 .sibling = sibling,545545 };546546547547- dev = bus_find_device(&css_bus_type, NULL, &data, match_devno);547547+ dev = bus_find_device(&ccw_bus_type, NULL, &data, match_devno);548548549549 return dev ? to_ccwdev(dev) : NULL;550550}
···175175}176176177177/**178178- * v9fs_read - read from a file (internal)178178+ * v9fs_file_read - read from a file179179 * @filep: file pointer to read180180 * @data: data buffer to read data into181181 * @count: size of buffer182182 * @offset: offset at which to read data183183 *184184 */185185-186185static ssize_t187187-v9fs_read(struct file *filp, char *buffer, size_t count, loff_t * offset)186186+v9fs_file_read(struct file *filp, char __user * data, size_t count,187187+ loff_t * offset)188188{189189 struct inode *inode = filp->f_dentry->d_inode;190190 struct v9fs_session_info *v9ses = v9fs_inode2v9ses(inode);···194194 int rsize = 0;195195 int result = 0;196196 int total = 0;197197+ int n;197198198199 dprintk(DEBUG_VFS, "\n");199200···217216 } else218217 *offset += result;219218220220- /* XXX - extra copy */221221- memcpy(buffer, fcall->params.rread.data, result);219219+ n = copy_to_user(data, fcall->params.rread.data, result);220220+ if (n) {221221+ dprintk(DEBUG_ERROR, "Problem copying to user %d\n", n);222222+ kfree(fcall);223223+ return -EFAULT;224224+ }225225+222226 count -= result;223223- buffer += result;227227+ data += result;224228 total += result;225229226230 kfree(fcall);227231228232 if (result < rsize)229233 break;230230- } while (count);231231-232232- return total;233233-}234234-235235-/**236236- * v9fs_file_read - read from a file237237- * @filep: file pointer to read238238- * @data: data buffer to read data into239239- * @count: size of buffer240240- * @offset: offset at which to read data241241- *242242- */243243-244244-static ssize_t245245-v9fs_file_read(struct file *filp, char __user * data, size_t count,246246- loff_t * offset)247247-{248248- int retval = -1;249249- int ret = 0;250250- char *buffer;251251-252252- buffer = kmalloc(count, GFP_KERNEL);253253- if (!buffer)254254- return -ENOMEM;255255-256256- retval = v9fs_read(filp, buffer, count, offset);257257- if (retval > 0) {258258- if ((ret = copy_to_user(data, buffer, retval)) != 0) {259259- dprintk(DEBUG_ERROR, "Problem copying to user %d\n",260260- ret);261261- retval = ret;262262- }263263- }264264-265265- kfree(buffer);266266-267267- return retval;268268-}269269-270270-/**271271- * v9fs_write - write to a file272272- * @filep: file pointer to write273273- * @data: data buffer to write data from274274- * @count: size of buffer275275- * @offset: offset at which to write data276276- *277277- */278278-279279-static ssize_t280280-v9fs_write(struct file *filp, char *buffer, size_t count, loff_t * offset)281281-{282282- struct inode *inode = filp->f_dentry->d_inode;283283- struct v9fs_session_info *v9ses = v9fs_inode2v9ses(inode);284284- struct v9fs_fid *v9fid = filp->private_data;285285- struct v9fs_fcall *fcall;286286- int fid = v9fid->fid;287287- int result = -EIO;288288- int rsize = 0;289289- int total = 0;290290-291291- dprintk(DEBUG_VFS, "data %p count %d offset %x\n", buffer, (int)count,292292- (int)*offset);293293- rsize = v9ses->maxdata - V9FS_IOHDRSZ;294294- if (v9fid->iounit != 0 && rsize > v9fid->iounit)295295- rsize = v9fid->iounit;296296-297297- dump_data(buffer, count);298298-299299- do {300300- if (count < rsize)301301- rsize = count;302302-303303- result =304304- v9fs_t_write(v9ses, fid, *offset, rsize, buffer, &fcall);305305- if (result < 0) {306306- eprintk(KERN_ERR, "error while writing: %s(%d)\n",307307- FCALL_ERROR(fcall), result);308308- kfree(fcall);309309- return result;310310- } else311311- *offset += result;312312-313313- kfree(fcall);314314-315315- if (result != rsize) {316316- eprintk(KERN_ERR,317317- "short write: v9fs_t_write returned %d\n",318318- result);319319- break;320320- }321321-322322- count -= result;323323- buffer += result;324324- total += result;325234 } while (count);326235327236 return total;···250339v9fs_file_write(struct file *filp, const char __user * data,251340 size_t count, loff_t * offset)252341{253253- int ret = -1;254254- char *buffer;342342+ struct inode *inode = filp->f_dentry->d_inode;343343+ struct v9fs_session_info *v9ses = v9fs_inode2v9ses(inode);344344+ struct v9fs_fid *v9fid = filp->private_data;345345+ struct v9fs_fcall *fcall;346346+ int fid = v9fid->fid;347347+ int result = -EIO;348348+ int rsize = 0;349349+ int total = 0;350350+ char *buf;255351256256- buffer = kmalloc(count, GFP_KERNEL);257257- if (buffer == NULL)352352+ dprintk(DEBUG_VFS, "data %p count %d offset %x\n", data, (int)count,353353+ (int)*offset);354354+ rsize = v9ses->maxdata - V9FS_IOHDRSZ;355355+ if (v9fid->iounit != 0 && rsize > v9fid->iounit)356356+ rsize = v9fid->iounit;357357+358358+ buf = kmalloc(v9ses->maxdata - V9FS_IOHDRSZ, GFP_KERNEL);359359+ if (!buf)258360 return -ENOMEM;259361260260- ret = copy_from_user(buffer, data, count);261261- if (ret) {262262- dprintk(DEBUG_ERROR, "Problem copying from user\n");263263- ret = -EFAULT;264264- } else {265265- ret = v9fs_write(filp, buffer, count, offset);266266- }362362+ do {363363+ if (count < rsize)364364+ rsize = count;267365268268- kfree(buffer);366366+ result = copy_from_user(buf, data, rsize);367367+ if (result) {368368+ dprintk(DEBUG_ERROR, "Problem copying from user\n");369369+ kfree(buf);370370+ return -EFAULT;371371+ }269372270270- return ret;373373+ dump_data(buf, rsize);374374+ result = v9fs_t_write(v9ses, fid, *offset, rsize, buf, &fcall);375375+ if (result < 0) {376376+ eprintk(KERN_ERR, "error while writing: %s(%d)\n",377377+ FCALL_ERROR(fcall), result);378378+ kfree(fcall);379379+ kfree(buf);380380+ return result;381381+ } else382382+ *offset += result;383383+384384+ kfree(fcall);385385+ fcall = NULL;386386+387387+ if (result != rsize) {388388+ eprintk(KERN_ERR,389389+ "short write: v9fs_t_write returned %d\n",390390+ result);391391+ break;392392+ }393393+394394+ count -= result;395395+ data += result;396396+ total += result;397397+ } while (count);398398+399399+ kfree(buf);400400+ return total;271401}272402273403struct file_operations v9fs_file_operations = {
+1-1
fs/binfmt_elf.c
···905905 send_sig(SIGKILL, current, 0);906906 goto out_free_dentry;907907 }908908- if (padzero(elf_bss)) {908908+ if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {909909 send_sig(SIGSEGV, current, 0);910910 retval = -EFAULT; /* Nobody gets to see this, but.. */911911 goto out_free_dentry;
+5-5
fs/bio.c
···7575 */7676static struct bio_set *fs_bio_set;77777878-static inline struct bio_vec *bvec_alloc_bs(unsigned int __nocast gfp_mask, int nr, unsigned long *idx, struct bio_set *bs)7878+static inline struct bio_vec *bvec_alloc_bs(gfp_t gfp_mask, int nr, unsigned long *idx, struct bio_set *bs)7979{8080 struct bio_vec *bvl;8181 struct biovec_slab *bp;···155155 * allocate bio and iovecs from the memory pools specified by the156156 * bio_set structure.157157 **/158158-struct bio *bio_alloc_bioset(unsigned int __nocast gfp_mask, int nr_iovecs, struct bio_set *bs)158158+struct bio *bio_alloc_bioset(gfp_t gfp_mask, int nr_iovecs, struct bio_set *bs)159159{160160 struct bio *bio = mempool_alloc(bs->bio_pool, gfp_mask);161161···181181 return bio;182182}183183184184-struct bio *bio_alloc(unsigned int __nocast gfp_mask, int nr_iovecs)184184+struct bio *bio_alloc(gfp_t gfp_mask, int nr_iovecs)185185{186186 struct bio *bio = bio_alloc_bioset(gfp_mask, nr_iovecs, fs_bio_set);187187···277277 *278278 * Like __bio_clone, only also allocates the returned bio279279 */280280-struct bio *bio_clone(struct bio *bio, unsigned int __nocast gfp_mask)280280+struct bio *bio_clone(struct bio *bio, gfp_t gfp_mask)281281{282282 struct bio *b = bio_alloc_bioset(gfp_mask, bio->bi_max_vecs, fs_bio_set);283283···10781078 return bp;10791079}1080108010811081-static void *bio_pair_alloc(unsigned int __nocast gfp_flags, void *data)10811081+static void *bio_pair_alloc(gfp_t gfp_flags, void *data)10821082{10831083 return kmalloc(sizeof(struct bio_pair), gfp_flags);10841084}
···102102static struct bio *103103mpage_alloc(struct block_device *bdev,104104 sector_t first_sector, int nr_vecs,105105- unsigned int __nocast gfp_flags)105105+ gfp_t gfp_flags)106106{107107 struct bio *bio;108108
···4848 (struct nfsacl_encode_desc *) desc;4949 u32 *p = (u32 *) elem;50505151- if (nfsacl_desc->count < nfsacl_desc->acl->a_count) {5252- struct posix_acl_entry *entry =5353- &nfsacl_desc->acl->a_entries[nfsacl_desc->count++];5151+ struct posix_acl_entry *entry =5252+ &nfsacl_desc->acl->a_entries[nfsacl_desc->count++];54535555- *p++ = htonl(entry->e_tag | nfsacl_desc->typeflag);5656- switch(entry->e_tag) {5757- case ACL_USER_OBJ:5858- *p++ = htonl(nfsacl_desc->uid);5959- break;6060- case ACL_GROUP_OBJ:6161- *p++ = htonl(nfsacl_desc->gid);6262- break;6363- case ACL_USER:6464- case ACL_GROUP:6565- *p++ = htonl(entry->e_id);6666- break;6767- default: /* Solaris depends on that! */6868- *p++ = 0;6969- break;7070- }7171- *p++ = htonl(entry->e_perm & S_IRWXO);7272- } else {7373- const struct posix_acl_entry *pa, *pe;7474- int group_obj_perm = ACL_READ|ACL_WRITE|ACL_EXECUTE;7575-7676- FOREACH_ACL_ENTRY(pa, nfsacl_desc->acl, pe) {7777- if (pa->e_tag == ACL_GROUP_OBJ) {7878- group_obj_perm = pa->e_perm & S_IRWXO;7979- break;8080- }8181- }8282- /* fake up ACL_MASK entry */8383- *p++ = htonl(ACL_MASK | nfsacl_desc->typeflag);8484- *p++ = htonl(0);8585- *p++ = htonl(group_obj_perm);5454+ *p++ = htonl(entry->e_tag | nfsacl_desc->typeflag);5555+ switch(entry->e_tag) {5656+ case ACL_USER_OBJ:5757+ *p++ = htonl(nfsacl_desc->uid);5858+ break;5959+ case ACL_GROUP_OBJ:6060+ *p++ = htonl(nfsacl_desc->gid);6161+ break;6262+ case ACL_USER:6363+ case ACL_GROUP:6464+ *p++ = htonl(entry->e_id);6565+ break;6666+ default: /* Solaris depends on that! */6767+ *p++ = 0;6868+ break;8669 }8787-7070+ *p++ = htonl(entry->e_perm & S_IRWXO);8871 return 0;8972}9073···88105 .gid = inode->i_gid,89106 };90107 int err;108108+ struct posix_acl *acl2 = NULL;9110992110 if (entries > NFS_ACL_MAX_ENTRIES ||93111 xdr_encode_word(buf, base, entries))94112 return -EINVAL;113113+ if (encode_entries && acl && acl->a_count == 3) {114114+ /* Fake up an ACL_MASK entry. */115115+ acl2 = posix_acl_alloc(4, GFP_KERNEL);116116+ if (!acl2)117117+ return -ENOMEM;118118+ /* Insert entries in canonical order: other orders seem119119+ to confuse Solaris VxFS. */120120+ acl2->a_entries[0] = acl->a_entries[0]; /* ACL_USER_OBJ */121121+ acl2->a_entries[1] = acl->a_entries[1]; /* ACL_GROUP_OBJ */122122+ acl2->a_entries[2] = acl->a_entries[1]; /* ACL_MASK */123123+ acl2->a_entries[2].e_tag = ACL_MASK;124124+ acl2->a_entries[3] = acl->a_entries[2]; /* ACL_OTHER */125125+ nfsacl_desc.acl = acl2;126126+ }95127 err = xdr_encode_array2(buf, base + 4, &nfsacl_desc.desc);128128+ if (acl2)129129+ posix_acl_release(acl2);96130 if (!err)97131 err = 8 + nfsacl_desc.desc.elem_size *98132 nfsacl_desc.desc.array_len;
+1-1
fs/ntfs/malloc.h
···4040 * Depending on @gfp_mask the allocation may be guaranteed to succeed.4141 */4242static inline void *__ntfs_malloc(unsigned long size,4343- unsigned int __nocast gfp_mask)4343+ gfp_t gfp_mask)4444{4545 if (likely(size <= PAGE_SIZE)) {4646 BUG_ON(!size);
+3-3
fs/posix_acl.c
···3535 * Allocate a new ACL with the specified number of entries.3636 */3737struct posix_acl *3838-posix_acl_alloc(int count, unsigned int __nocast flags)3838+posix_acl_alloc(int count, gfp_t flags)3939{4040 const size_t size = sizeof(struct posix_acl) +4141 count * sizeof(struct posix_acl_entry);···5151 * Clone an ACL.5252 */5353struct posix_acl *5454-posix_acl_clone(const struct posix_acl *acl, unsigned int __nocast flags)5454+posix_acl_clone(const struct posix_acl *acl, gfp_t flags)5555{5656 struct posix_acl *clone = NULL;5757···185185 * Create an ACL representing the file mode permission bits of an inode.186186 */187187struct posix_acl *188188-posix_acl_from_mode(mode_t mode, unsigned int __nocast flags)188188+posix_acl_from_mode(mode_t mode, gfp_t flags)189189{190190 struct posix_acl *acl = posix_acl_alloc(3, flags);191191 if (!acl)
+1-1
fs/relayfs/buffers.c
···109109 if (unlikely(!buf->page_array[i]))110110 goto depopulate;111111 }112112- mem = vmap(buf->page_array, n_pages, GFP_KERNEL, PAGE_KERNEL);112112+ mem = vmap(buf->page_array, n_pages, VM_MAP, PAGE_KERNEL);113113 if (!mem)114114 goto depopulate;115115
+5-5
fs/xfs/linux-2.6/kmem.c
···454546464747void *4848-kmem_alloc(size_t size, unsigned int __nocast flags)4848+kmem_alloc(size_t size, gfp_t flags)4949{5050 int retries = 0;5151 unsigned int lflags = kmem_flags_convert(flags);···6767}68686969void *7070-kmem_zalloc(size_t size, unsigned int __nocast flags)7070+kmem_zalloc(size_t size, gfp_t flags)7171{7272 void *ptr;7373···90909191void *9292kmem_realloc(void *ptr, size_t newsize, size_t oldsize,9393- unsigned int __nocast flags)9393+ gfp_t flags)9494{9595 void *new;9696···105105}106106107107void *108108-kmem_zone_alloc(kmem_zone_t *zone, unsigned int __nocast flags)108108+kmem_zone_alloc(kmem_zone_t *zone, gfp_t flags)109109{110110 int retries = 0;111111 unsigned int lflags = kmem_flags_convert(flags);···124124}125125126126void *127127-kmem_zone_zalloc(kmem_zone_t *zone, unsigned int __nocast flags)127127+kmem_zone_zalloc(kmem_zone_t *zone, gfp_t flags)128128{129129 void *ptr;130130
+6-7
fs/xfs/linux-2.6/kmem.h
···8181 *(NSTATEP) = *(OSTATEP); \8282} while (0)83838484-static __inline unsigned int kmem_flags_convert(unsigned int __nocast flags)8484+static __inline unsigned int kmem_flags_convert(gfp_t flags)8585{8686 unsigned int lflags = __GFP_NOWARN; /* we'll report problems, if need be */8787···125125 BUG();126126}127127128128-extern void *kmem_zone_zalloc(kmem_zone_t *, unsigned int __nocast);129129-extern void *kmem_zone_alloc(kmem_zone_t *, unsigned int __nocast);128128+extern void *kmem_zone_zalloc(kmem_zone_t *, gfp_t);129129+extern void *kmem_zone_alloc(kmem_zone_t *, gfp_t);130130131131-extern void *kmem_alloc(size_t, unsigned int __nocast);132132-extern void *kmem_realloc(void *, size_t, size_t,133133- unsigned int __nocast);134134-extern void *kmem_zalloc(size_t, unsigned int __nocast);131131+extern void *kmem_alloc(size_t, gfp_t);132132+extern void *kmem_realloc(void *, size_t, size_t, gfp_t);133133+extern void *kmem_zalloc(size_t, gfp_t);135134extern void kmem_free(void *, size_t);136135137136typedef struct shrinker *kmem_shaker_t;
···126126#define DRCMR12 __REG(0x40000130) /* Request to Channel Map Register for AC97 audio transmit Request */127127#define DRCMR13 __REG(0x40000134) /* Request to Channel Map Register for SSP receive Request */128128#define DRCMR14 __REG(0x40000138) /* Request to Channel Map Register for SSP transmit Request */129129-#define DRCMR15 __REG(0x4000013c) /* Reserved */130130-#define DRCMR16 __REG(0x40000140) /* Reserved */129129+#define DRCMR15 __REG(0x4000013c) /* Request to Channel Map Register for SSP2 receive Request */130130+#define DRCMR16 __REG(0x40000140) /* Request to Channel Map Register for SSP2 transmit Request */131131#define DRCMR17 __REG(0x40000144) /* Request to Channel Map Register for ICP receive Request */132132#define DRCMR18 __REG(0x40000148) /* Request to Channel Map Register for ICP transmit Request */133133#define DRCMR19 __REG(0x4000014c) /* Request to Channel Map Register for STUART receive Request */···151151#define DRCMR37 __REG(0x40000194) /* Request to Channel Map Register for USB endpoint 13 Request */152152#define DRCMR38 __REG(0x40000198) /* Request to Channel Map Register for USB endpoint 14 Request */153153#define DRCMR39 __REG(0x4000019C) /* Reserved */154154-154154+#define DRCMR66 __REG(0x40001108) /* Request to Channel Map Register for SSP3 receive Request */155155+#define DRCMR67 __REG(0x4000110C) /* Request to Channel Map Register for SSP3 transmit Request */155156#define DRCMR68 __REG(0x40001110) /* Request to Channel Map Register for Camera FIFO 0 Request */156157#define DRCMR69 __REG(0x40001114) /* Request to Channel Map Register for Camera FIFO 1 Request */157158#define DRCMR70 __REG(0x40001118) /* Request to Channel Map Register for Camera FIFO 2 Request */
+7
include/asm-arm/arch-s3c2410/hardware.h
···92929393extern unsigned int s3c2410_modify_misccr(unsigned int clr, unsigned int chg);94949595+#ifdef CONFIG_CPU_S3C24409696+9797+extern int s3c2440_set_dsc(unsigned int pin, unsigned int value);9898+9999+#endif /* CONFIG_CPU_S3C2440 */100100+101101+95102#endif /* __ASSEMBLY__ */9610397104#include <asm/sizes.h>
+2
include/asm-arm/hardware/scoop.h
···3838struct scoop_config {3939 unsigned short io_out;4040 unsigned short io_dir;4141+ unsigned short suspend_clr;4242+ unsigned short suspend_set;4143};42444345/* Structure for linking scoop devices to PCMCIA sockets */
···8181extern int safe_smp_processor_id(void);8282extern int __cpu_disable(void);8383extern void __cpu_die(unsigned int cpu);8484+extern void prefill_possible_map(void);84858586#endif /* !ASSEMBLY */8687
+11-1
include/linux/atmdev.h
···7676 /* set interface ESI */7777#define ATM_SETESIF _IOW('a',ATMIOC_ITF+13,struct atmif_sioc)7878 /* force interface ESI */7979+#define ATM_ADDLECSADDR _IOW('a', ATMIOC_ITF+14, struct atmif_sioc)8080+ /* register a LECS address */8181+#define ATM_DELLECSADDR _IOW('a', ATMIOC_ITF+15, struct atmif_sioc)8282+ /* unregister a LECS address */8383+#define ATM_GETLECSADDR _IOW('a', ATMIOC_ITF+16, struct atmif_sioc)8484+ /* retrieve LECS address(es) */8585+7986#define ATM_GETSTAT _IOW('a',ATMIOC_SARCOM+0,struct atmif_sioc)8087 /* get AAL layer statistics */8188#define ATM_GETSTATZ _IOW('a',ATMIOC_SARCOM+1,struct atmif_sioc)···335328 struct list_head entry; /* next address */336329};337330331331+enum atm_addr_type_t { ATM_ADDR_LOCAL, ATM_ADDR_LECS };332332+338333struct atm_dev {339334 const struct atmdev_ops *ops; /* device operations; NULL if unused */340335 const struct atmphy_ops *phy; /* PHY operations, may be undefined */···347338 void *phy_data; /* private PHY date */348339 unsigned long flags; /* device flags (ATM_DF_*) */349340 struct list_head local; /* local ATM addresses */341341+ struct list_head lecs; /* LECS ATM addresses learned via ILMI */350342 unsigned char esi[ESI_LEN]; /* ESI ("MAC" addr) */351343 struct atm_cirange ci_range; /* VPI/VCI range */352344 struct k_atm_dev_stats stats; /* statistics */···467457468458int atm_charge(struct atm_vcc *vcc,int truesize);469459struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,470470- int gfp_flags);460460+ gfp_t gfp_flags);471461int atm_pcr_goal(struct atm_trafprm *tp);472462473463void vcc_release_async(struct atm_vcc *vcc, int reply);
+3-3
include/linux/bio.h
···276276extern struct bio_set *bioset_create(int, int, int);277277extern void bioset_free(struct bio_set *);278278279279-extern struct bio *bio_alloc(unsigned int __nocast, int);280280-extern struct bio *bio_alloc_bioset(unsigned int __nocast, int, struct bio_set *);279279+extern struct bio *bio_alloc(gfp_t, int);280280+extern struct bio *bio_alloc_bioset(gfp_t, int, struct bio_set *);281281extern void bio_put(struct bio *);282282extern void bio_free(struct bio *, struct bio_set *);283283···287287extern int bio_hw_segments(struct request_queue *, struct bio *);288288289289extern void __bio_clone(struct bio *, struct bio *);290290-extern struct bio *bio_clone(struct bio *, unsigned int __nocast);290290+extern struct bio *bio_clone(struct bio *, gfp_t);291291292292extern void bio_init(struct bio *);293293
···392392#define for_each_online_cpu(cpu) for_each_cpu_mask((cpu), cpu_online_map)393393#define for_each_present_cpu(cpu) for_each_cpu_mask((cpu), cpu_present_map)394394395395+/* Find the highest possible smp_processor_id() */396396+static inline unsigned int highest_possible_processor_id(void)397397+{398398+ unsigned int cpu, highest = 0;399399+400400+ for_each_cpu_mask(cpu, cpu_possible_map)401401+ highest = cpu;402402+403403+ return highest;404404+}405405+406406+395407#endif /* __LINUX_CPUMASK_H */
+2-3
include/linux/cpuset.h
···2323void cpuset_update_current_mems_allowed(void);2424void cpuset_restrict_to_mems_allowed(unsigned long *nodes);2525int cpuset_zonelist_valid_mems_allowed(struct zonelist *zl);2626-extern int cpuset_zone_allowed(struct zone *z, unsigned int __nocast gfp_mask);2626+extern int cpuset_zone_allowed(struct zone *z, gfp_t gfp_mask);2727extern int cpuset_excl_nodes_overlap(const struct task_struct *p);2828extern struct file_operations proc_cpuset_operations;2929extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer);···4949 return 1;5050}51515252-static inline int cpuset_zone_allowed(struct zone *z,5353- unsigned int __nocast gfp_mask)5252+static inline int cpuset_zone_allowed(struct zone *z, gfp_t gfp_mask)5453{5554 return 1;5655}
···5252 int (*to_nfattr)(struct sk_buff *skb, struct nfattr *nfa,5353 const struct ip_conntrack *ct);54545555+ /* convert nfnetlink attributes to protoinfo */5656+ int (*from_nfattr)(struct nfattr *tb[], struct ip_conntrack *ct);5757+5558 int (*tuple_to_nfattr)(struct sk_buff *skb,5659 const struct ip_conntrack_tuple *t);5760 int (*nfattr_to_tuple)(struct nfattr *tb[],
+2
include/linux/netfilter_ipv4/ip_conntrack_tuple.h
···11#ifndef _IP_CONNTRACK_TUPLE_H22#define _IP_CONNTRACK_TUPLE_H3344+#include <linux/types.h>55+46/* A `tuple' is a structure containing the information to uniquely57 identify a connection. ie. if two packets have the same tuple, they68 are in the same connection; if not, they are not.
···26342634 return security_ops->socket_getpeersec(sock, optval, optlen, len);26352635}2636263626372637-static inline int security_sk_alloc(struct sock *sk, int family,26382638- unsigned int __nocast priority)26372637+static inline int security_sk_alloc(struct sock *sk, int family, gfp_t priority)26392638{26402639 return security_ops->sk_alloc_security(sk, family, priority);26412640}···27512752 return -ENOPROTOOPT;27522753}2753275427542754-static inline int security_sk_alloc(struct sock *sk, int family,27552755- unsigned int __nocast priority)27552755+static inline int security_sk_alloc(struct sock *sk, int family, gfp_t priority)27562756{27572757 return 0;27582758}
+14-14
include/linux/skbuff.h
···302302303303extern void __kfree_skb(struct sk_buff *skb);304304extern struct sk_buff *__alloc_skb(unsigned int size,305305- unsigned int __nocast priority, int fclone);305305+ gfp_t priority, int fclone);306306static inline struct sk_buff *alloc_skb(unsigned int size,307307- unsigned int __nocast priority)307307+ gfp_t priority)308308{309309 return __alloc_skb(size, priority, 0);310310}311311312312static inline struct sk_buff *alloc_skb_fclone(unsigned int size,313313- unsigned int __nocast priority)313313+ gfp_t priority)314314{315315 return __alloc_skb(size, priority, 1);316316}317317318318extern struct sk_buff *alloc_skb_from_cache(kmem_cache_t *cp,319319 unsigned int size,320320- unsigned int __nocast priority);320320+ gfp_t priority);321321extern void kfree_skbmem(struct sk_buff *skb);322322extern struct sk_buff *skb_clone(struct sk_buff *skb,323323- unsigned int __nocast priority);323323+ gfp_t priority);324324extern struct sk_buff *skb_copy(const struct sk_buff *skb,325325- unsigned int __nocast priority);325325+ gfp_t priority);326326extern struct sk_buff *pskb_copy(struct sk_buff *skb,327327- unsigned int __nocast gfp_mask);327327+ gfp_t gfp_mask);328328extern int pskb_expand_head(struct sk_buff *skb,329329 int nhead, int ntail,330330- unsigned int __nocast gfp_mask);330330+ gfp_t gfp_mask);331331extern struct sk_buff *skb_realloc_headroom(struct sk_buff *skb,332332 unsigned int headroom);333333extern struct sk_buff *skb_copy_expand(const struct sk_buff *skb,334334 int newheadroom, int newtailroom,335335- unsigned int __nocast priority);335335+ gfp_t priority);336336extern struct sk_buff * skb_pad(struct sk_buff *skb, int pad);337337#define dev_kfree_skb(a) kfree_skb(a)338338extern void skb_over_panic(struct sk_buff *skb, int len,···484484 * NULL is returned on a memory allocation failure.485485 */486486static inline struct sk_buff *skb_share_check(struct sk_buff *skb,487487- unsigned int __nocast pri)487487+ gfp_t pri)488488{489489 might_sleep_if(pri & __GFP_WAIT);490490 if (skb_shared(skb)) {···516516 * %NULL is returned on a memory allocation failure.517517 */518518static inline struct sk_buff *skb_unshare(struct sk_buff *skb,519519- unsigned int __nocast pri)519519+ gfp_t pri)520520{521521 might_sleep_if(pri & __GFP_WAIT);522522 if (skb_cloned(skb)) {···10171017 * %NULL is returned in there is no free memory.10181018 */10191019static inline struct sk_buff *__dev_alloc_skb(unsigned int length,10201020- unsigned int __nocast gfp_mask)10201020+ gfp_t gfp_mask)10211021{10221022 struct sk_buff *skb = alloc_skb(length + 16, gfp_mask);10231023 if (likely(skb))···11301130 * If there is no free memory -ENOMEM is returned, otherwise zero11311131 * is returned and the old skb data released.11321132 */11331133-extern int __skb_linearize(struct sk_buff *skb, unsigned int __nocast gfp);11341134-static inline int skb_linearize(struct sk_buff *skb, unsigned int __nocast gfp)11331133+extern int __skb_linearize(struct sk_buff *skb, gfp_t gfp);11341134+static inline int skb_linearize(struct sk_buff *skb, gfp_t gfp)11351135{11361136 return __skb_linearize(skb, gfp);11371137}
+9-10
include/linux/slab.h
···6161 void (*)(void *, kmem_cache_t *, unsigned long));6262extern int kmem_cache_destroy(kmem_cache_t *);6363extern int kmem_cache_shrink(kmem_cache_t *);6464-extern void *kmem_cache_alloc(kmem_cache_t *, unsigned int __nocast);6464+extern void *kmem_cache_alloc(kmem_cache_t *, gfp_t);6565extern void kmem_cache_free(kmem_cache_t *, void *);6666extern unsigned int kmem_cache_size(kmem_cache_t *);6767extern const char *kmem_cache_name(kmem_cache_t *);6868-extern kmem_cache_t *kmem_find_general_cachep(size_t size, unsigned int __nocast gfpflags);6868+extern kmem_cache_t *kmem_find_general_cachep(size_t size, gfp_t gfpflags);69697070/* Size description struct for general caches. */7171struct cache_sizes {···7474 kmem_cache_t *cs_dmacachep;7575};7676extern struct cache_sizes malloc_sizes[];7777-extern void *__kmalloc(size_t, unsigned int __nocast);7777+extern void *__kmalloc(size_t, gfp_t);78787979-static inline void *kmalloc(size_t size, unsigned int __nocast flags)7979+static inline void *kmalloc(size_t size, gfp_t flags)8080{8181 if (__builtin_constant_p(size)) {8282 int i = 0;···9999 return __kmalloc(size, flags);100100}101101102102-extern void *kzalloc(size_t, unsigned int __nocast);102102+extern void *kzalloc(size_t, gfp_t);103103104104/**105105 * kcalloc - allocate memory for an array. The memory is set to zero.···107107 * @size: element size.108108 * @flags: the type of memory to allocate.109109 */110110-static inline void *kcalloc(size_t n, size_t size, unsigned int __nocast flags)110110+static inline void *kcalloc(size_t n, size_t size, gfp_t flags)111111{112112 if (n != 0 && size > INT_MAX / n)113113 return NULL;···118118extern unsigned int ksize(const void *);119119120120#ifdef CONFIG_NUMA121121-extern void *kmem_cache_alloc_node(kmem_cache_t *,122122- unsigned int __nocast flags, int node);123123-extern void *kmalloc_node(size_t size, unsigned int __nocast flags, int node);121121+extern void *kmem_cache_alloc_node(kmem_cache_t *, gfp_t flags, int node);122122+extern void *kmalloc_node(size_t size, gfp_t flags, int node);124123#else125124static inline void *kmem_cache_alloc_node(kmem_cache_t *cachep, int flags, int node)126125{127126 return kmem_cache_alloc(cachep, flags);128127}129129-static inline void *kmalloc_node(size_t size, unsigned int __nocast flags, int node)128128+static inline void *kmalloc_node(size_t size, gfp_t flags, int node)130129{131130 return kmalloc(size, flags);132131}
···1919extern void dn_nsp_send_oth_ack(struct sock *sk);2020extern void dn_nsp_delayed_ack(struct sock *sk);2121extern void dn_send_conn_ack(struct sock *sk);2222-extern void dn_send_conn_conf(struct sock *sk, int gfp);2222+extern void dn_send_conn_conf(struct sock *sk, gfp_t gfp);2323extern void dn_nsp_send_disc(struct sock *sk, unsigned char type, 2424- unsigned short reason, int gfp);2424+ unsigned short reason, gfp_t gfp);2525extern void dn_nsp_return_disc(struct sk_buff *skb, unsigned char type,2626 unsigned short reason);2727extern void dn_nsp_send_link(struct sock *sk, unsigned char lsflags, char fcval);···29293030extern void dn_nsp_output(struct sock *sk);3131extern int dn_nsp_check_xmit_queue(struct sock *sk, struct sk_buff *skb, struct sk_buff_head *q, unsigned short acknum);3232-extern void dn_nsp_queue_xmit(struct sock *sk, struct sk_buff *skb, int gfp, int oob);3232+extern void dn_nsp_queue_xmit(struct sock *sk, struct sk_buff *skb, gfp_t gfp, int oob);3333extern unsigned long dn_nsp_persist(struct sock *sk);3434extern int dn_nsp_xmit_timeout(struct sock *sk);35353636extern int dn_nsp_rx(struct sk_buff *);3737extern int dn_nsp_backlog_rcv(struct sock *sk, struct sk_buff *skb);38383939-extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, int pri);3939+extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, gfp_t pri);4040extern struct sk_buff *dn_alloc_send_skb(struct sock *sk, size_t *size, int noblock, long timeo, int *err);41414242#define NSP_REASON_OK 0 /* No error */
+1-1
include/net/dn_route.h
···1515 GNU General Public License for more details.1616*******************************************************************************/17171818-extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, int pri);1818+extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, gfp_t pri);1919extern int dn_route_output_sock(struct dst_entry **pprt, struct flowi *, struct sock *sk, int flags);2020extern int dn_cache_dump(struct sk_buff *skb, struct netlink_callback *cb);2121extern int dn_cache_getroute(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg);
···4040struct inet_ehash_bucket {4141 rwlock_t lock;4242 struct hlist_head chain;4343-} __attribute__((__aligned__(8)));4343+};44444545/* There are a few simple rules, which allow for local port reuse by4646 * an application. In essence:
···832832833833extern int ip_vs_app_pkt_out(struct ip_vs_conn *, struct sk_buff **pskb);834834extern int ip_vs_app_pkt_in(struct ip_vs_conn *, struct sk_buff **pskb);835835-extern int ip_vs_skb_replace(struct sk_buff *skb, int pri,835835+extern int ip_vs_skb_replace(struct sk_buff *skb, gfp_t pri,836836 char *o_buf, int o_len, char *n_buf, int n_len);837837extern int ip_vs_app_init(void);838838extern void ip_vs_app_cleanup(void);
···596596 u32 remote_qpn, u16 pkey_index,597597 struct ib_ah *ah, int rmpp_active,598598 int hdr_len, int data_len,599599- unsigned int __nocast gfp_mask);599599+ gfp_t gfp_mask);600600601601/**602602 * ib_free_send_mad - Returns data buffers used to send a MAD.
+5-5
include/rdma/ib_sa.h
···285285int ib_sa_path_rec_get(struct ib_device *device, u8 port_num,286286 struct ib_sa_path_rec *rec,287287 ib_sa_comp_mask comp_mask,288288- int timeout_ms, unsigned int __nocast gfp_mask,288288+ int timeout_ms, gfp_t gfp_mask,289289 void (*callback)(int status,290290 struct ib_sa_path_rec *resp,291291 void *context),···296296 u8 method,297297 struct ib_sa_mcmember_rec *rec,298298 ib_sa_comp_mask comp_mask,299299- int timeout_ms, unsigned int __nocast gfp_mask,299299+ int timeout_ms, gfp_t gfp_mask,300300 void (*callback)(int status,301301 struct ib_sa_mcmember_rec *resp,302302 void *context),···307307 u8 method,308308 struct ib_sa_service_rec *rec,309309 ib_sa_comp_mask comp_mask,310310- int timeout_ms, unsigned int __nocast gfp_mask,310310+ int timeout_ms, gfp_t gfp_mask,311311 void (*callback)(int status,312312 struct ib_sa_service_rec *resp,313313 void *context),···342342ib_sa_mcmember_rec_set(struct ib_device *device, u8 port_num,343343 struct ib_sa_mcmember_rec *rec,344344 ib_sa_comp_mask comp_mask,345345- int timeout_ms, unsigned int __nocast gfp_mask,345345+ int timeout_ms, gfp_t gfp_mask,346346 void (*callback)(int status,347347 struct ib_sa_mcmember_rec *resp,348348 void *context),···384384ib_sa_mcmember_rec_delete(struct ib_device *device, u8 port_num,385385 struct ib_sa_mcmember_rec *rec,386386 ib_sa_comp_mask comp_mask,387387- int timeout_ms, unsigned int __nocast gfp_mask,387387+ int timeout_ms, gfp_t gfp_mask,388388 void (*callback)(int status,389389 struct ib_sa_mcmember_rec *resp,390390 void *context),
+1-1
include/rxrpc/call.h
···203203 size_t sioc,204204 struct kvec *siov,205205 uint8_t rxhdr_flags,206206- int alloc_flags,206206+ gfp_t alloc_flags,207207 int dup_data,208208 size_t *size_sent);209209
+1-1
include/rxrpc/message.h
···6363 uint8_t type,6464 int count,6565 struct kvec *diov,6666- int alloc_flags,6666+ gfp_t alloc_flags,6767 struct rxrpc_message **_msg);68686969extern int rxrpc_conn_sendmsg(struct rxrpc_connection *conn, struct rxrpc_message *msg);
···10591059 unsigned char spk71; /* Has 7.1 speakers */10601060 unsigned char sblive51; /* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */10611061 unsigned char spdif_bug; /* Has Spdif phasing bug */10621062- unsigned char ac97_chip; /* Has an AC97 chip */10621062+ unsigned char ac97_chip; /* Has an AC97 chip: 1 = mandatory, 2 = optional */10631063 unsigned char ecard; /* APS EEPROM */10641064 const char *driver;10651065 const char *name;
+1-1
kernel/audit.c
···560560}561561562562static struct audit_buffer * audit_buffer_alloc(struct audit_context *ctx,563563- unsigned int __nocast gfp_mask, int type)563563+ gfp_t gfp_mask, int type)564564{565565 unsigned long flags;566566 struct audit_buffer *ab = NULL;
+1-1
kernel/cpuset.c
···16701670 * GFP_USER - only nodes in current tasks mems allowed ok.16711671 **/1672167216731673-int cpuset_zone_allowed(struct zone *z, unsigned int __nocast gfp_mask)16731673+int cpuset_zone_allowed(struct zone *z, gfp_t gfp_mask)16741674{16751675 int node; /* node that zone z is on */16761676 const struct cpuset *cs; /* current cpuset ancestors */
+2-2
kernel/kfifo.c
···3636 * struct kfifo with kfree().3737 */3838struct kfifo *kfifo_init(unsigned char *buffer, unsigned int size,3939- unsigned int __nocast gfp_mask, spinlock_t *lock)3939+ gfp_t gfp_mask, spinlock_t *lock)4040{4141 struct kfifo *fifo;4242···6464 *6565 * The size will be rounded-up to a power of 2.6666 */6767-struct kfifo *kfifo_alloc(unsigned int size, unsigned int __nocast gfp_mask, spinlock_t *lock)6767+struct kfifo *kfifo_alloc(unsigned int size, gfp_t gfp_mask, spinlock_t *lock)6868{6969 unsigned char *buffer;7070 struct kfifo *ret;
···8383{8484 struct file *file = vma->vm_file;85858686+ if (!file)8787+ return -EBADF;8888+8689 if (file->f_mapping->a_ops->get_xip_page) {8790 /* no bad return value, but ignore advice */8891 return 0;···144141madvise_vma(struct vm_area_struct *vma, struct vm_area_struct **prev,145142 unsigned long start, unsigned long end, int behavior)146143{147147- struct file *filp = vma->vm_file;148148- long error = -EBADF;149149-150150- if (!filp)151151- goto out;144144+ long error;152145153146 switch (behavior) {154147 case MADV_NORMAL:···165166 error = -EINVAL;166167 break;167168 }168168-169169-out:170169 return error;171170}172171
+4-4
mm/mempolicy.c
···687687}688688689689/* Return a zonelist representing a mempolicy */690690-static struct zonelist *zonelist_policy(unsigned int __nocast gfp, struct mempolicy *policy)690690+static struct zonelist *zonelist_policy(gfp_t gfp, struct mempolicy *policy)691691{692692 int nd;693693···751751752752/* Allocate a page in interleaved policy.753753 Own path because it needs to do special accounting. */754754-static struct page *alloc_page_interleave(unsigned int __nocast gfp, unsigned order, unsigned nid)754754+static struct page *alloc_page_interleave(gfp_t gfp, unsigned order, unsigned nid)755755{756756 struct zonelist *zl;757757 struct page *page;···789789 * Should be called with the mm_sem of the vma hold.790790 */791791struct page *792792-alloc_page_vma(unsigned int __nocast gfp, struct vm_area_struct *vma, unsigned long addr)792792+alloc_page_vma(gfp_t gfp, struct vm_area_struct *vma, unsigned long addr)793793{794794 struct mempolicy *pol = get_vma_policy(current, vma, addr);795795···832832 * 1) it's ok to take cpuset_sem (can WAIT), and833833 * 2) allocating for current task (not interrupt).834834 */835835-struct page *alloc_pages_current(unsigned int __nocast gfp, unsigned order)835835+struct page *alloc_pages_current(gfp_t gfp, unsigned order)836836{837837 struct mempolicy *pol = current->mempolicy;838838
+3-3
mm/mempool.c
···112112 * while this function is running. mempool_alloc() & mempool_free()113113 * might be called (eg. from IRQ contexts) while this function executes.114114 */115115-int mempool_resize(mempool_t *pool, int new_min_nr, unsigned int __nocast gfp_mask)115115+int mempool_resize(mempool_t *pool, int new_min_nr, gfp_t gfp_mask)116116{117117 void *element;118118 void **new_elements;···200200 * *never* fails when called from process contexts. (it might201201 * fail if called from an IRQ context.)202202 */203203-void * mempool_alloc(mempool_t *pool, unsigned int __nocast gfp_mask)203203+void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask)204204{205205 void *element;206206 unsigned long flags;···276276/*277277 * A commonly used alloc and free fn.278278 */279279-void *mempool_alloc_slab(unsigned int __nocast gfp_mask, void *pool_data)279279+void *mempool_alloc_slab(gfp_t gfp_mask, void *pool_data)280280{281281 kmem_cache_t *mem = (kmem_cache_t *) pool_data;282282 return kmem_cache_alloc(mem, gfp_mask);
+1-2
mm/nommu.c
···157157 kfree(addr);158158}159159160160-void *__vmalloc(unsigned long size, unsigned int __nocast gfp_mask,161161- pgprot_t prot)160160+void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot)162161{163162 /*164163 * kmalloc doesn't like __GFP_HIGHMEM for some reason
+1-1
mm/oom_kill.c
···263263 * OR try to be smart about which process to kill. Note that we264264 * don't have to be perfect here, we just have to be good.265265 */266266-void out_of_memory(unsigned int __nocast gfp_mask, int order)266266+void out_of_memory(gfp_t gfp_mask, int order)267267{268268 struct mm_struct *mm = NULL;269269 task_t * p;
+6-6
mm/page_alloc.c
···671671 free_hot_cold_page(page, 1);672672}673673674674-static inline void prep_zero_page(struct page *page, int order, unsigned int __nocast gfp_flags)674674+static inline void prep_zero_page(struct page *page, int order, gfp_t gfp_flags)675675{676676 int i;677677···686686 * or two.687687 */688688static struct page *689689-buffered_rmqueue(struct zone *zone, int order, unsigned int __nocast gfp_flags)689689+buffered_rmqueue(struct zone *zone, int order, gfp_t gfp_flags)690690{691691 unsigned long flags;692692 struct page *page = NULL;···761761}762762763763static inline int764764-should_reclaim_zone(struct zone *z, unsigned int gfp_mask)764764+should_reclaim_zone(struct zone *z, gfp_t gfp_mask)765765{766766 if (!z->reclaim_pages)767767 return 0;···774774 * This is the 'heart' of the zoned buddy allocator.775775 */776776struct page * fastcall777777-__alloc_pages(unsigned int __nocast gfp_mask, unsigned int order,777777+__alloc_pages(gfp_t gfp_mask, unsigned int order,778778 struct zonelist *zonelist)779779{780780 const int wait = gfp_mask & __GFP_WAIT;···977977/*978978 * Common helper functions.979979 */980980-fastcall unsigned long __get_free_pages(unsigned int __nocast gfp_mask, unsigned int order)980980+fastcall unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order)981981{982982 struct page * page;983983 page = alloc_pages(gfp_mask, order);···988988989989EXPORT_SYMBOL(__get_free_pages);990990991991-fastcall unsigned long get_zeroed_page(unsigned int __nocast gfp_mask)991991+fastcall unsigned long get_zeroed_page(gfp_t gfp_mask)992992{993993 struct page * page;994994
+1-1
mm/page_io.c
···1919#include <linux/writeback.h>2020#include <asm/pgtable.h>21212222-static struct bio *get_swap_bio(unsigned int __nocast gfp_flags, pgoff_t index,2222+static struct bio *get_swap_bio(gfp_t gfp_flags, pgoff_t index,2323 struct page *page, bio_end_io_t end_io)2424{2525 struct bio *bio;
+1-2
mm/shmem.c
···921921}922922923923static inline struct page *924924-shmem_alloc_page(unsigned int __nocast gfp,struct shmem_inode_info *info,925925- unsigned long idx)924924+shmem_alloc_page(gfp_t gfp,struct shmem_inode_info *info, unsigned long idx)926925{927926 return alloc_page(gfp | __GFP_ZERO);928927}
+16-18
mm/slab.c
···650650 return cachep->array[smp_processor_id()];651651}652652653653-static inline kmem_cache_t *__find_general_cachep(size_t size,654654- unsigned int __nocast gfpflags)653653+static inline kmem_cache_t *__find_general_cachep(size_t size, gfp_t gfpflags)655654{656655 struct cache_sizes *csizep = malloc_sizes;657656···674675 return csizep->cs_cachep;675676}676677677677-kmem_cache_t *kmem_find_general_cachep(size_t size,678678- unsigned int __nocast gfpflags)678678+kmem_cache_t *kmem_find_general_cachep(size_t size, gfp_t gfpflags)679679{680680 return __find_general_cachep(size, gfpflags);681681}···11831185 * did not request dmaable memory, we might get it, but that11841186 * would be relatively rare and ignorable.11851187 */11861186-static void *kmem_getpages(kmem_cache_t *cachep, unsigned int __nocast flags, int nodeid)11881188+static void *kmem_getpages(kmem_cache_t *cachep, gfp_t flags, int nodeid)11871189{11881190 struct page *page;11891191 void *addr;···2046204820472049/* Get the memory for a slab management obj. */20482050static struct slab* alloc_slabmgmt(kmem_cache_t *cachep, void *objp,20492049- int colour_off, unsigned int __nocast local_flags)20512051+ int colour_off, gfp_t local_flags)20502052{20512053 struct slab *slabp;20522054···21472149 * Grow (by 1) the number of slabs within a cache. This is called by21482150 * kmem_cache_alloc() when there are no active objs left in a cache.21492151 */21502150-static int cache_grow(kmem_cache_t *cachep, unsigned int __nocast flags, int nodeid)21522152+static int cache_grow(kmem_cache_t *cachep, gfp_t flags, int nodeid)21512153{21522154 struct slab *slabp;21532155 void *objp;···23542356#define check_slabp(x,y) do { } while(0)23552357#endif2356235823572357-static void *cache_alloc_refill(kmem_cache_t *cachep, unsigned int __nocast flags)23592359+static void *cache_alloc_refill(kmem_cache_t *cachep, gfp_t flags)23582360{23592361 int batchcount;23602362 struct kmem_list3 *l3;···24542456}2455245724562458static inline void24572457-cache_alloc_debugcheck_before(kmem_cache_t *cachep, unsigned int __nocast flags)24592459+cache_alloc_debugcheck_before(kmem_cache_t *cachep, gfp_t flags)24582460{24592461 might_sleep_if(flags & __GFP_WAIT);24602462#if DEBUG···24652467#if DEBUG24662468static void *24672469cache_alloc_debugcheck_after(kmem_cache_t *cachep,24682468- unsigned int __nocast flags, void *objp, void *caller)24702470+ gfp_t flags, void *objp, void *caller)24692471{24702472 if (!objp) 24712473 return objp;···25082510#define cache_alloc_debugcheck_after(a,b,objp,d) (objp)25092511#endif2510251225112511-static inline void *____cache_alloc(kmem_cache_t *cachep, unsigned int __nocast flags)25132513+static inline void *____cache_alloc(kmem_cache_t *cachep, gfp_t flags)25122514{25132515 void* objp;25142516 struct array_cache *ac;···25262528 return objp;25272529}2528253025292529-static inline void *__cache_alloc(kmem_cache_t *cachep, unsigned int __nocast flags)25312531+static inline void *__cache_alloc(kmem_cache_t *cachep, gfp_t flags)25302532{25312533 unsigned long save_flags;25322534 void* objp;···27852787 * Allocate an object from this cache. The flags are only relevant27862788 * if the cache has no available objects.27872789 */27882788-void *kmem_cache_alloc(kmem_cache_t *cachep, unsigned int __nocast flags)27902790+void *kmem_cache_alloc(kmem_cache_t *cachep, gfp_t flags)27892791{27902792 return __cache_alloc(cachep, flags);27912793}···28462848 * New and improved: it will now make sure that the object gets28472849 * put on the correct node list so that there is no false sharing.28482850 */28492849-void *kmem_cache_alloc_node(kmem_cache_t *cachep, unsigned int __nocast flags, int nodeid)28512851+void *kmem_cache_alloc_node(kmem_cache_t *cachep, gfp_t flags, int nodeid)28502852{28512853 unsigned long save_flags;28522854 void *ptr;···28732875}28742876EXPORT_SYMBOL(kmem_cache_alloc_node);2875287728762876-void *kmalloc_node(size_t size, unsigned int __nocast flags, int node)28782878+void *kmalloc_node(size_t size, gfp_t flags, int node)28772879{28782880 kmem_cache_t *cachep;28792881···29062908 * platforms. For example, on i386, it means that the memory must come29072909 * from the first 16MB.29082910 */29092909-void *__kmalloc(size_t size, unsigned int __nocast flags)29112911+void *__kmalloc(size_t size, gfp_t flags)29102912{29112913 kmem_cache_t *cachep;29122914···29952997 * @size: how many bytes of memory are required.29962998 * @flags: the type of memory to allocate.29972999 */29982998-void *kzalloc(size_t size, unsigned int __nocast flags)30003000+void *kzalloc(size_t size, gfp_t flags)29993001{30003002 void *ret = kmalloc(size, flags);30013003 if (ret)···36013603 * @s: the string to duplicate36023604 * @gfp: the GFP mask used in the kmalloc() call when allocating memory36033605 */36043604-char *kstrdup(const char *s, unsigned int __nocast gfp)36063606+char *kstrdup(const char *s, gfp_t gfp)36053607{36063608 size_t len;36073609 char *buf;
+1-1
mm/swap_state.c
···6868 * but sets SwapCache flag and private instead of mapping and index.6969 */7070static int __add_to_swap_cache(struct page *page, swp_entry_t entry,7171- unsigned int __nocast gfp_mask)7171+ gfp_t gfp_mask)7272{7373 int error;7474
+2-2
mm/vmalloc.c
···395395396396EXPORT_SYMBOL(vmap);397397398398-void *__vmalloc_area(struct vm_struct *area, unsigned int __nocast gfp_mask, pgprot_t prot)398398+void *__vmalloc_area(struct vm_struct *area, gfp_t gfp_mask, pgprot_t prot)399399{400400 struct page **pages;401401 unsigned int nr_pages, array_size, i;···446446 * allocator with @gfp_mask flags. Map them into contiguous447447 * kernel virtual space, using a pagetable protection of @prot.448448 */449449-void *__vmalloc(unsigned long size, unsigned int __nocast gfp_mask, pgprot_t prot)449449+void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot)450450{451451 struct vm_struct *area;452452
···2626#include <linux/spinlock.h>2727#include <asm/uaccess.h>2828#include <linux/smp.h>2929+#include <linux/cpumask.h>2930#include <net/sock.h>3031/* needed for logical [in,out]-dev filtering */3132#include "../br_private.h"···824823 /* this will get free'd in do_replace()/ebt_register_table()825824 if an error occurs */826825 newinfo->chainstack = (struct ebt_chainstack **)827827- vmalloc(num_possible_cpus() * sizeof(struct ebt_chainstack));826826+ vmalloc((highest_possible_processor_id()+1) 827827+ * sizeof(struct ebt_chainstack));828828 if (!newinfo->chainstack)829829 return -ENOMEM;830830- for (i = 0; i < num_possible_cpus(); i++) {830830+ for_each_cpu(i) {831831 newinfo->chainstack[i] =832832 vmalloc(udc_cnt * sizeof(struct ebt_chainstack));833833 if (!newinfo->chainstack[i]) {···897895898896 /* counters of cpu 0 */899897 memcpy(counters, oldcounters,900900- sizeof(struct ebt_counter) * nentries);898898+ sizeof(struct ebt_counter) * nentries);899899+901900 /* add other counters to those of cpu 0 */902902- for (cpu = 1; cpu < num_possible_cpus(); cpu++) {901901+ for_each_cpu(cpu) {902902+ if (cpu == 0)903903+ continue;903904 counter_base = COUNTER_BASE(oldcounters, nentries, cpu);904905 for (i = 0; i < nentries; i++) {905906 counters[i].pcnt += counter_base[i].pcnt;···934929 BUGPRINT("Entries_size never zero\n");935930 return -EINVAL;936931 }937937- countersize = COUNTER_OFFSET(tmp.nentries) * num_possible_cpus();932932+ countersize = COUNTER_OFFSET(tmp.nentries) * 933933+ (highest_possible_processor_id()+1);938934 newinfo = (struct ebt_table_info *)939935 vmalloc(sizeof(struct ebt_table_info) + countersize);940936 if (!newinfo)···1028102210291023 vfree(table->entries);10301024 if (table->chainstack) {10311031- for (i = 0; i < num_possible_cpus(); i++)10251025+ for_each_cpu(i)10321026 vfree(table->chainstack[i]);10331027 vfree(table->chainstack);10341028 }···10461040 vfree(counterstmp);10471041 /* can be initialized in translate_table() */10481042 if (newinfo->chainstack) {10491049- for (i = 0; i < num_possible_cpus(); i++)10431043+ for_each_cpu(i)10501044 vfree(newinfo->chainstack[i]);10511045 vfree(newinfo->chainstack);10521046 }···11381132 return -EINVAL;11391133 }1140113411411141- countersize = COUNTER_OFFSET(table->table->nentries) * num_possible_cpus();11351135+ countersize = COUNTER_OFFSET(table->table->nentries) *11361136+ (highest_possible_processor_id()+1);11421137 newinfo = (struct ebt_table_info *)11431138 vmalloc(sizeof(struct ebt_table_info) + countersize);11441139 ret = -ENOMEM;···11931186 up(&ebt_mutex);11941187free_chainstack:11951188 if (newinfo->chainstack) {11961196- for (i = 0; i < num_possible_cpus(); i++)11891189+ for_each_cpu(i)11971190 vfree(newinfo->chainstack[i]);11981191 vfree(newinfo->chainstack);11991192 }···12161209 up(&ebt_mutex);12171210 vfree(table->private->entries);12181211 if (table->private->chainstack) {12191219- for (i = 0; i < num_possible_cpus(); i++)12121212+ for_each_cpu(i)12201213 vfree(table->private->chainstack[i]);12211214 vfree(table->private->chainstack);12221215 }
+1-1
net/core/dev.c
···11321132#endif1133113311341134/* Keep head the same: replace data */11351135-int __skb_linearize(struct sk_buff *skb, unsigned int __nocast gfp_mask)11351135+int __skb_linearize(struct sk_buff *skb, gfp_t gfp_mask)11361136{11371137 unsigned int size;11381138 u8 *data;
+7-7
net/core/skbuff.c
···130130 * Buffers may only be allocated from interrupts using a @gfp_mask of131131 * %GFP_ATOMIC.132132 */133133-struct sk_buff *__alloc_skb(unsigned int size, unsigned int __nocast gfp_mask,133133+struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,134134 int fclone)135135{136136 struct sk_buff *skb;···198198 */199199struct sk_buff *alloc_skb_from_cache(kmem_cache_t *cp,200200 unsigned int size,201201- unsigned int __nocast gfp_mask)201201+ gfp_t gfp_mask)202202{203203 struct sk_buff *skb;204204 u8 *data;···361361 * %GFP_ATOMIC.362362 */363363364364-struct sk_buff *skb_clone(struct sk_buff *skb, unsigned int __nocast gfp_mask)364364+struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)365365{366366 struct sk_buff *n;367367···500500 * header is going to be modified. Use pskb_copy() instead.501501 */502502503503-struct sk_buff *skb_copy(const struct sk_buff *skb, unsigned int __nocast gfp_mask)503503+struct sk_buff *skb_copy(const struct sk_buff *skb, gfp_t gfp_mask)504504{505505 int headerlen = skb->data - skb->head;506506 /*···539539 * The returned buffer has a reference count of 1.540540 */541541542542-struct sk_buff *pskb_copy(struct sk_buff *skb, unsigned int __nocast gfp_mask)542542+struct sk_buff *pskb_copy(struct sk_buff *skb, gfp_t gfp_mask)543543{544544 /*545545 * Allocate the copy buffer···598598 */599599600600int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,601601- unsigned int __nocast gfp_mask)601601+ gfp_t gfp_mask)602602{603603 int i;604604 u8 *data;···689689 */690690struct sk_buff *skb_copy_expand(const struct sk_buff *skb,691691 int newheadroom, int newtailroom,692692- unsigned int __nocast gfp_mask)692692+ gfp_t gfp_mask)693693{694694 /*695695 * Allocate the copy buffer
+5-5
net/core/sock.c
···637637 * @prot: struct proto associated with this new sock instance638638 * @zero_it: if we should zero the newly allocated sock639639 */640640-struct sock *sk_alloc(int family, unsigned int __nocast priority,640640+struct sock *sk_alloc(int family, gfp_t priority,641641 struct proto *prot, int zero_it)642642{643643 struct sock *sk = NULL;···704704 module_put(owner);705705}706706707707-struct sock *sk_clone(const struct sock *sk, const unsigned int __nocast priority)707707+struct sock *sk_clone(const struct sock *sk, const gfp_t priority)708708{709709 struct sock *newsk = sk_alloc(sk->sk_family, priority, sk->sk_prot, 0);710710···845845 * Allocate a skb from the socket's send buffer.846846 */847847struct sk_buff *sock_wmalloc(struct sock *sk, unsigned long size, int force,848848- unsigned int __nocast priority)848848+ gfp_t priority)849849{850850 if (force || atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) {851851 struct sk_buff * skb = alloc_skb(size, priority);···861861 * Allocate a skb from the socket's receive buffer.862862 */ 863863struct sk_buff *sock_rmalloc(struct sock *sk, unsigned long size, int force,864864- unsigned int __nocast priority)864864+ gfp_t priority)865865{866866 if (force || atomic_read(&sk->sk_rmem_alloc) < sk->sk_rcvbuf) {867867 struct sk_buff *skb = alloc_skb(size, priority);···876876/* 877877 * Allocate a memory block from the socket's option memory buffer.878878 */ 879879-void *sock_kmalloc(struct sock *sk, int size, unsigned int __nocast priority)879879+void *sock_kmalloc(struct sock *sk, int size, gfp_t priority)880880{881881 if ((unsigned)size <= sysctl_optmem_max &&882882 atomic_read(&sk->sk_omem_alloc) + size < sysctl_optmem_max) {
···604604/*605605 * Replace a segment of data with a new segment606606 */607607-int ip_vs_skb_replace(struct sk_buff *skb, int pri,607607+int ip_vs_skb_replace(struct sk_buff *skb, gfp_t pri,608608 char *o_buf, int o_len, char *n_buf, int n_len)609609{610610 struct iphdr *iph;
+8-2
net/ipv4/netfilter/Kconfig
···139139140140config IP_NF_PPTP141141 tristate 'PPTP protocol support'142142+ depends on IP_NF_CONNTRACK142143 help143144 This module adds support for PPTP (Point to Point Tunnelling144144- Protocol, RFC2637) conncection tracking and NAT. 145145+ Protocol, RFC2637) connection tracking and NAT. 145146146147 If you are running PPTP sessions over a stateful firewall or NAT147148 box, you may want to enable this feature. ···499498 To compile it as a module, choose M here. If unsure, say N.500499501500config IP_NF_TARGET_ULOG502502- tristate "ULOG target support"501501+ tristate "ULOG target support (OBSOLETE)"503502 depends on IP_NF_IPTABLES504503 ---help---504504+505505+ This option enables the old IPv4-only "ipt_ULOG" implementation506506+ which has been obsoleted by the new "nfnetlink_log" code (see507507+ CONFIG_NETFILTER_NETLINK_LOG).508508+505509 This option adds a `ULOG' target, which allows you to create rules in506510 any iptables table. The packet is passed to a userspace logging507511 daemon using netlink multicast sockets; unlike the LOG target
+9-5
net/ipv4/netfilter/arp_tables.c
···716716 }717717718718 /* And one copy for every other CPU */719719- for (i = 1; i < num_possible_cpus(); i++) {720720- memcpy(newinfo->entries + SMP_ALIGN(newinfo->size)*i,719719+ for_each_cpu(i) {720720+ if (i == 0)721721+ continue;722722+ memcpy(newinfo->entries + SMP_ALIGN(newinfo->size) * i,721723 newinfo->entries,722724 SMP_ALIGN(newinfo->size));723725 }···769767 unsigned int cpu;770768 unsigned int i;771769772772- for (cpu = 0; cpu < num_possible_cpus(); cpu++) {770770+ for_each_cpu(cpu) {773771 i = 0;774772 ARPT_ENTRY_ITERATE(t->entries + TABLE_OFFSET(t, cpu),775773 t->size,···887885 return -ENOMEM;888886889887 newinfo = vmalloc(sizeof(struct arpt_table_info)890890- + SMP_ALIGN(tmp.size) * num_possible_cpus());888888+ + SMP_ALIGN(tmp.size) *889889+ (highest_possible_processor_id()+1));891890 if (!newinfo)892891 return -ENOMEM;893892···11611158 = { 0, 0, 0, { 0 }, { 0 }, { } };1162115911631160 newinfo = vmalloc(sizeof(struct arpt_table_info)11641164- + SMP_ALIGN(repl->size) * num_possible_cpus());11611161+ + SMP_ALIGN(repl->size) *11621162+ (highest_possible_processor_id()+1));11651163 if (!newinfo) {11661164 ret = -ENOMEM;11671165 return ret;
+8-5
net/ipv4/netfilter/ip_conntrack_core.c
···11191119 unsigned long extra_jiffies,11201120 int do_acct)11211121{11221122- int do_event = 0;11221122+ int event = 0;1123112311241124 IP_NF_ASSERT(ct->timeout.data == (unsigned long)ct);11251125 IP_NF_ASSERT(skb);···11291129 /* If not in hash table, timer will not be active yet */11301130 if (!is_confirmed(ct)) {11311131 ct->timeout.expires = extra_jiffies;11321132- do_event = 1;11321132+ event = IPCT_REFRESH;11331133 } else {11341134 /* Need del_timer for race avoidance (may already be dying). */11351135 if (del_timer(&ct->timeout)) {11361136 ct->timeout.expires = jiffies + extra_jiffies;11371137 add_timer(&ct->timeout);11381138- do_event = 1;11381138+ event = IPCT_REFRESH;11391139 }11401140 }11411141···11441144 ct->counters[CTINFO2DIR(ctinfo)].packets++;11451145 ct->counters[CTINFO2DIR(ctinfo)].bytes += 11461146 ntohs(skb->nh.iph->tot_len);11471147+ if ((ct->counters[CTINFO2DIR(ctinfo)].packets & 0x80000000)11481148+ || (ct->counters[CTINFO2DIR(ctinfo)].bytes & 0x80000000))11491149+ event |= IPCT_COUNTER_FILLING;11471150 }11481151#endif1149115211501153 write_unlock_bh(&ip_conntrack_lock);1151115411521155 /* must be unlocked when calling event cache */11531153- if (do_event)11541154- ip_conntrack_event_cache(IPCT_REFRESH, skb);11561156+ if (event)11571157+ ip_conntrack_event_cache(event, skb);11551158}1156115911571160#if defined(CONFIG_IP_NF_CONNTRACK_NETLINK) || \
···2828#include <asm/uaccess.h>2929#include <asm/semaphore.h>3030#include <linux/proc_fs.h>3131+#include <linux/cpumask.h>31323233#include <linux/netfilter_ipv6/ip6_tables.h>3334···951950 }952951953952 /* And one copy for every other CPU */954954- for (i = 1; i < num_possible_cpus(); i++) {955955- memcpy(newinfo->entries + SMP_ALIGN(newinfo->size)*i,953953+ for_each_cpu(i) {954954+ if (i == 0)955955+ continue;956956+ memcpy(newinfo->entries + SMP_ALIGN(newinfo->size) * i,956957 newinfo->entries,957958 SMP_ALIGN(newinfo->size));958959 }···976973 unsigned int i;977974978975 for (i = 0; i < num_possible_cpus(); i++) {976976+ for_each_cpu(i) {979977 table_base =980978 (void *)newinfo->entries981979 + TABLE_OFFSET(newinfo, i);···10231019 unsigned int cpu;10241020 unsigned int i;1025102110261026- for (cpu = 0; cpu < num_possible_cpus(); cpu++) {10221022+ for_each_cpu(cpu) {10271023 i = 0;10281024 IP6T_ENTRY_ITERATE(t->entries + TABLE_OFFSET(t, cpu),10291025 t->size,···11571153 return -ENOMEM;1158115411591155 newinfo = vmalloc(sizeof(struct ip6t_table_info)11601160- + SMP_ALIGN(tmp.size) * num_possible_cpus());11561156+ + SMP_ALIGN(tmp.size) *11571157+ (highest_possible_processor_id()+1));11611158 if (!newinfo)11621159 return -ENOMEM;11631160···14721467 = { 0, 0, 0, { 0 }, { 0 }, { } };1473146814741469 newinfo = vmalloc(sizeof(struct ip6t_table_info)14751475- + SMP_ALIGN(repl->size) * num_possible_cpus());14701470+ + SMP_ALIGN(repl->size) *14711471+ (highest_possible_processor_id()+1));14761472 if (!newinfo)14771473 return -ENOMEM;14781474
+12-6
net/key/af_key.c
···185185}186186187187static int pfkey_broadcast_one(struct sk_buff *skb, struct sk_buff **skb2,188188- int allocation, struct sock *sk)188188+ gfp_t allocation, struct sock *sk)189189{190190 int err = -ENOBUFS;191191···217217#define BROADCAST_ONE 1218218#define BROADCAST_REGISTERED 2219219#define BROADCAST_PROMISC_ONLY 4220220-static int pfkey_broadcast(struct sk_buff *skb, int allocation,220220+static int pfkey_broadcast(struct sk_buff *skb, gfp_t allocation,221221 int broadcast_flags, struct sock *one_sk)222222{223223 struct sock *sk;···14161416 return 0;14171417}1418141814191419-static struct sk_buff *compose_sadb_supported(struct sadb_msg *orig, int allocation)14191419+static struct sk_buff *compose_sadb_supported(struct sadb_msg *orig,14201420+ gfp_t allocation)14201421{14211422 struct sk_buff *skb;14221423 struct sadb_msg *hdr;···2154215321552154static int pfkey_spdget(struct sock *sk, struct sk_buff *skb, struct sadb_msg *hdr, void **ext_hdrs)21562155{21562156+ unsigned int dir;21572157 int err;21582158 struct sadb_x_policy *pol;21592159 struct xfrm_policy *xp;···21632161 if ((pol = ext_hdrs[SADB_X_EXT_POLICY-1]) == NULL)21642162 return -EINVAL;2165216321662166- xp = xfrm_policy_byid(0, pol->sadb_x_policy_id,21642164+ dir = xfrm_policy_id2dir(pol->sadb_x_policy_id);21652165+ if (dir >= XFRM_POLICY_MAX)21662166+ return -EINVAL;21672167+21682168+ xp = xfrm_policy_byid(dir, pol->sadb_x_policy_id,21672169 hdr->sadb_msg_type == SADB_X_SPDDELETE2);21682170 if (xp == NULL)21692171 return -ENOENT;···21792173 if (hdr->sadb_msg_type == SADB_X_SPDDELETE2) {21802174 c.data.byid = 1;21812175 c.event = XFRM_MSG_DELPOLICY;21822182- km_policy_notify(xp, pol->sadb_x_policy_dir-1, &c);21762176+ km_policy_notify(xp, dir, &c);21832177 } else {21842184- err = key_pol_get_resp(sk, xp, hdr, pol->sadb_x_policy_dir-1);21782178+ err = key_pol_get_resp(sk, xp, hdr, dir);21852179 }2186218021872181 xfrm_pol_put(xp);
+1-2
net/llc/llc_conn.c
···867867 * Allocates a LLC sock and initializes it. Returns the new LLC sock868868 * or %NULL if there's no memory available for one869869 */870870-struct sock *llc_sk_alloc(int family, unsigned int __nocast priority,871871- struct proto *prot)870870+struct sock *llc_sk_alloc(int family, gfp_t priority, struct proto *prot)872871{873872 struct sock *sk = sk_alloc(family, priority, prot, 1);874873
···522522 uint8_t type,523523 int dcount,524524 struct kvec diov[],525525- int alloc_flags,525525+ gfp_t alloc_flags,526526 struct rxrpc_message **_msg)527527{528528 struct rxrpc_message *msg;
+3-1
net/sched/Kconfig
···7272 Choose this if you need a high resolution clock source but can't use7373 the CPU's cycle counter.74747575+# don't allow on SMP x86 because they can have unsynchronized TSCs.7676+# gettimeofday is a good alternative7577config NET_SCH_CLK_CPU7678 bool "CPU cycle counter"7777- depends on X86_TSC || X86_64 || ALPHA || SPARC64 || PPC64 || IA647979+ depends on ((X86_TSC || X86_64) && !SMP) || ALPHA || SPARC64 || PPC64 || IA647880 help7981 Say Y here if you want to use the CPU's cycle counter as clock source.8082 This is a cheap and high resolution clock source, but on some
+5-5
net/sctp/associola.c
···7171 const struct sctp_endpoint *ep,7272 const struct sock *sk,7373 sctp_scope_t scope,7474- unsigned int __nocast gfp)7474+ gfp_t gfp)7575{7676 struct sctp_sock *sp;7777 int i;···273273struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep,274274 const struct sock *sk,275275 sctp_scope_t scope,276276- unsigned int __nocast gfp)276276+ gfp_t gfp)277277{278278 struct sctp_association *asoc;279279···479479/* Add a transport address to an association. */480480struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,481481 const union sctp_addr *addr,482482- const unsigned int __nocast gfp,482482+ const gfp_t gfp,483483 const int peer_state)484484{485485 struct sctp_transport *peer;···12311231 * local endpoint and the remote peer.12321232 */12331233int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc,12341234- unsigned int __nocast gfp)12341234+ gfp_t gfp)12351235{12361236 sctp_scope_t scope;12371237 int flags;···12541254/* Build the association's bind address list from the cookie. */12551255int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc,12561256 struct sctp_cookie *cookie,12571257- unsigned int __nocast gfp)12571257+ gfp_t gfp)12581258{12591259 int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length);12601260 int var_size3 = cookie->raw_addr_list_len;
+6-6
net/sctp/bind_addr.c
···53535454/* Forward declarations for internal helpers. */5555static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *,5656- sctp_scope_t scope, unsigned int __nocast gfp,5656+ sctp_scope_t scope, gfp_t gfp,5757 int flags);5858static void sctp_bind_addr_clean(struct sctp_bind_addr *);5959···6464 */6565int sctp_bind_addr_copy(struct sctp_bind_addr *dest, 6666 const struct sctp_bind_addr *src,6767- sctp_scope_t scope, unsigned int __nocast gfp,6767+ sctp_scope_t scope, gfp_t gfp,6868 int flags)6969{7070 struct sctp_sockaddr_entry *addr;···146146147147/* Add an address to the bind address list in the SCTP_bind_addr structure. */148148int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,149149- unsigned int __nocast gfp)149149+ gfp_t gfp)150150{151151 struct sctp_sockaddr_entry *addr;152152···200200 */201201union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,202202 int *addrs_len,203203- unsigned int __nocast gfp)203203+ gfp_t gfp)204204{205205 union sctp_params addrparms;206206 union sctp_params retval;···252252 * address parameters).253253 */254254int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,255255- int addrs_len, __u16 port, unsigned int __nocast gfp)255255+ int addrs_len, __u16 port, gfp_t gfp)256256{257257 union sctp_addr_param *rawaddr;258258 struct sctp_paramhdr *param;···350350/* Copy out addresses from the global local address list. */351351static int sctp_copy_one_addr(struct sctp_bind_addr *dest, 352352 union sctp_addr *addr,353353- sctp_scope_t scope, unsigned int __nocast gfp,353353+ sctp_scope_t scope, gfp_t gfp,354354 int flags)355355{356356 int error = 0;
···6868 */6969static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,7070 struct sock *sk,7171- unsigned int __nocast gfp)7171+ gfp_t gfp)7272{7373 struct sctp_sock *sp = sctp_sk(sk);7474 memset(ep, 0, sizeof(struct sctp_endpoint));···138138/* Create a sctp_endpoint with all that boring stuff initialized.139139 * Returns NULL if there isn't enough memory.140140 */141141-struct sctp_endpoint *sctp_endpoint_new(struct sock *sk,142142- unsigned int __nocast gfp)141141+struct sctp_endpoint *sctp_endpoint_new(struct sock *sk, gfp_t gfp)143142{144143 struct sctp_endpoint *ep;145144
+1-1
net/sctp/protocol.c
···219219220220/* Copy the local addresses which are valid for 'scope' into 'bp'. */221221int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope,222222- unsigned int __nocast gfp, int copy_flags)222222+ gfp_t gfp, int copy_flags)223223{224224 struct sctp_sockaddr_entry *addr;225225 int error = 0;
+7-7
net/sctp/sm_make_chunk.c
···7878static int sctp_process_param(struct sctp_association *asoc,7979 union sctp_params param,8080 const union sctp_addr *peer_addr,8181- unsigned int __nocast gfp);8181+ gfp_t gfp);82828383/* What was the inbound interface for this chunk? */8484int sctp_chunk_iif(const struct sctp_chunk *chunk)···174174 */175175struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,176176 const struct sctp_bind_addr *bp,177177- unsigned int __nocast gfp, int vparam_len)177177+ gfp_t gfp, int vparam_len)178178{179179 sctp_inithdr_t init;180180 union sctp_params addrs;···261261262262struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,263263 const struct sctp_chunk *chunk,264264- unsigned int __nocast gfp, int unkparam_len)264264+ gfp_t gfp, int unkparam_len)265265{266266 sctp_inithdr_t initack;267267 struct sctp_chunk *retval;···12341234/* Create a CLOSED association to use with an incoming packet. */12351235struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep,12361236 struct sctp_chunk *chunk,12371237- unsigned int __nocast gfp)12371237+ gfp_t gfp)12381238{12391239 struct sctp_association *asoc;12401240 struct sk_buff *skb;···13491349struct sctp_association *sctp_unpack_cookie(13501350 const struct sctp_endpoint *ep,13511351 const struct sctp_association *asoc,13521352- struct sctp_chunk *chunk, unsigned int __nocast gfp,13521352+ struct sctp_chunk *chunk, gfp_t gfp,13531353 int *error, struct sctp_chunk **errp)13541354{13551355 struct sctp_association *retval = NULL;···18141814 */18151815int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,18161816 const union sctp_addr *peer_addr,18171817- sctp_init_chunk_t *peer_init, unsigned int __nocast gfp)18171817+ sctp_init_chunk_t *peer_init, gfp_t gfp)18181818{18191819 union sctp_params param;18201820 struct sctp_transport *transport;···19851985static int sctp_process_param(struct sctp_association *asoc,19861986 union sctp_params param,19871987 const union sctp_addr *peer_addr,19881988- unsigned int __nocast gfp)19881988+ gfp_t gfp)19891989{19901990 union sctp_addr addr;19911991 int i;
+6-6
net/sctp/sm_sideeffect.c
···6363 void *event_arg,6464 sctp_disposition_t status,6565 sctp_cmd_seq_t *commands,6666- unsigned int __nocast gfp);6666+ gfp_t gfp);6767static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,6868 sctp_state_t state,6969 struct sctp_endpoint *ep,···7171 void *event_arg,7272 sctp_disposition_t status,7373 sctp_cmd_seq_t *commands,7474- unsigned int __nocast gfp);7474+ gfp_t gfp);75757676/********************************************************************7777 * Helper functions···498498 struct sctp_association *asoc,499499 struct sctp_chunk *chunk,500500 sctp_init_chunk_t *peer_init,501501- unsigned int __nocast gfp)501501+ gfp_t gfp)502502{503503 int error;504504···853853 struct sctp_endpoint *ep,854854 struct sctp_association *asoc,855855 void *event_arg,856856- unsigned int __nocast gfp)856856+ gfp_t gfp)857857{858858 sctp_cmd_seq_t commands;859859 const sctp_sm_table_entry_t *state_fn;···898898 void *event_arg,899899 sctp_disposition_t status,900900 sctp_cmd_seq_t *commands,901901- unsigned int __nocast gfp)901901+ gfp_t gfp)902902{903903 int error;904904···986986 void *event_arg,987987 sctp_disposition_t status,988988 sctp_cmd_seq_t *commands,989989- unsigned int __nocast gfp)989989+ gfp_t gfp)990990{991991 int error = 0;992992 int force;
+227-25
net/sctp/socket.c
···31593159 return 0;31603160}3161316131623162-static int sctp_getsockopt_peer_addrs_num(struct sock *sk, int len,31633163- char __user *optval, int __user *optlen)31623162+static int sctp_getsockopt_peer_addrs_num_old(struct sock *sk, int len,31633163+ char __user *optval,31643164+ int __user *optlen)31643165{31653166 sctp_assoc_t id;31663167 struct sctp_association *asoc;···31863185 return cnt;31873186}3188318731893189-static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,31903190- char __user *optval, int __user *optlen)31883188+/* 31893189+ * Old API for getting list of peer addresses. Does not work for 32-bit31903190+ * programs running on a 64-bit kernel31913191+ */31923192+static int sctp_getsockopt_peer_addrs_old(struct sock *sk, int len,31933193+ char __user *optval,31943194+ int __user *optlen)31913195{31923196 struct sctp_association *asoc;31933197 struct list_head *pos;31943198 int cnt = 0;31953195- struct sctp_getaddrs getaddrs;31993199+ struct sctp_getaddrs_old getaddrs;31963200 struct sctp_transport *from;31973201 void __user *to;31983202 union sctp_addr temp;31993203 struct sctp_sock *sp = sctp_sk(sk);32003204 int addrlen;3201320532023202- if (len != sizeof(struct sctp_getaddrs))32063206+ if (len != sizeof(struct sctp_getaddrs_old))32033207 return -EINVAL;3204320832053205- if (copy_from_user(&getaddrs, optval, sizeof(struct sctp_getaddrs)))32093209+ if (copy_from_user(&getaddrs, optval, sizeof(struct sctp_getaddrs_old)))32063210 return -EFAULT;3207321132083212 if (getaddrs.addr_num <= 0) return -EINVAL;···32313225 if (cnt >= getaddrs.addr_num) break;32323226 }32333227 getaddrs.addr_num = cnt;32343234- if (copy_to_user(optval, &getaddrs, sizeof(struct sctp_getaddrs)))32283228+ if (copy_to_user(optval, &getaddrs, sizeof(struct sctp_getaddrs_old)))32353229 return -EFAULT;3236323032373231 return 0;32383232}3239323332403240-static int sctp_getsockopt_local_addrs_num(struct sock *sk, int len,32413241- char __user *optval,32423242- int __user *optlen)32343234+static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,32353235+ char __user *optval, int __user *optlen)32363236+{32373237+ struct sctp_association *asoc;32383238+ struct list_head *pos;32393239+ int cnt = 0;32403240+ struct sctp_getaddrs getaddrs;32413241+ struct sctp_transport *from;32423242+ void __user *to;32433243+ union sctp_addr temp;32443244+ struct sctp_sock *sp = sctp_sk(sk);32453245+ int addrlen;32463246+ size_t space_left;32473247+ int bytes_copied;32483248+32493249+ if (len < sizeof(struct sctp_getaddrs))32503250+ return -EINVAL;32513251+32523252+ if (copy_from_user(&getaddrs, optval, sizeof(struct sctp_getaddrs)))32533253+ return -EFAULT;32543254+32553255+ /* For UDP-style sockets, id specifies the association to query. */32563256+ asoc = sctp_id2assoc(sk, getaddrs.assoc_id);32573257+ if (!asoc)32583258+ return -EINVAL;32593259+32603260+ to = optval + offsetof(struct sctp_getaddrs,addrs);32613261+ space_left = len - sizeof(struct sctp_getaddrs) - 32623262+ offsetof(struct sctp_getaddrs,addrs);32633263+32643264+ list_for_each(pos, &asoc->peer.transport_addr_list) {32653265+ from = list_entry(pos, struct sctp_transport, transports);32663266+ memcpy(&temp, &from->ipaddr, sizeof(temp));32673267+ sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp);32683268+ addrlen = sctp_get_af_specific(sk->sk_family)->sockaddr_len;32693269+ if(space_left < addrlen)32703270+ return -ENOMEM;32713271+ temp.v4.sin_port = htons(temp.v4.sin_port);32723272+ if (copy_to_user(to, &temp, addrlen))32733273+ return -EFAULT;32743274+ to += addrlen;32753275+ cnt++;32763276+ space_left -= addrlen;32773277+ }32783278+32793279+ if (put_user(cnt, &((struct sctp_getaddrs __user *)optval)->addr_num))32803280+ return -EFAULT;32813281+ bytes_copied = ((char __user *)to) - optval;32823282+ if (put_user(bytes_copied, optlen))32833283+ return -EFAULT;32843284+32853285+ return 0;32863286+}32873287+32883288+static int sctp_getsockopt_local_addrs_num_old(struct sock *sk, int len,32893289+ char __user *optval,32903290+ int __user *optlen)32433291{32443292 sctp_assoc_t id;32453293 struct sctp_bind_addr *bp;···33663306/* Helper function that copies local addresses to user and returns the number33673307 * of addresses copied.33683308 */33693369-static int sctp_copy_laddrs_to_user(struct sock *sk, __u16 port, int max_addrs,33703370- void __user *to)33093309+static int sctp_copy_laddrs_to_user_old(struct sock *sk, __u16 port, int max_addrs,33103310+ void __user *to)33713311{33723312 struct list_head *pos;33733313 struct sctp_sockaddr_entry *addr;···34013341 return cnt;34023342}3403334334043404-static int sctp_getsockopt_local_addrs(struct sock *sk, int len,34053405- char __user *optval, int __user *optlen)33443344+static int sctp_copy_laddrs_to_user(struct sock *sk, __u16 port,33453345+ void * __user *to, size_t space_left)33463346+{33473347+ struct list_head *pos;33483348+ struct sctp_sockaddr_entry *addr;33493349+ unsigned long flags;33503350+ union sctp_addr temp;33513351+ int cnt = 0;33523352+ int addrlen;33533353+33543354+ sctp_spin_lock_irqsave(&sctp_local_addr_lock, flags);33553355+ list_for_each(pos, &sctp_local_addr_list) {33563356+ addr = list_entry(pos, struct sctp_sockaddr_entry, list);33573357+ if ((PF_INET == sk->sk_family) && 33583358+ (AF_INET6 == addr->a.sa.sa_family))33593359+ continue;33603360+ memcpy(&temp, &addr->a, sizeof(temp));33613361+ sctp_get_pf_specific(sk->sk_family)->addr_v4map(sctp_sk(sk),33623362+ &temp);33633363+ addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;33643364+ if(space_left<addrlen)33653365+ return -ENOMEM;33663366+ temp.v4.sin_port = htons(port);33673367+ if (copy_to_user(*to, &temp, addrlen)) {33683368+ sctp_spin_unlock_irqrestore(&sctp_local_addr_lock,33693369+ flags);33703370+ return -EFAULT;33713371+ }33723372+ *to += addrlen;33733373+ cnt ++;33743374+ space_left -= addrlen;33753375+ }33763376+ sctp_spin_unlock_irqrestore(&sctp_local_addr_lock, flags);33773377+33783378+ return cnt;33793379+}33803380+33813381+/* Old API for getting list of local addresses. Does not work for 32-bit33823382+ * programs running on a 64-bit kernel33833383+ */33843384+static int sctp_getsockopt_local_addrs_old(struct sock *sk, int len,33853385+ char __user *optval, int __user *optlen)34063386{34073387 struct sctp_bind_addr *bp;34083388 struct sctp_association *asoc;34093389 struct list_head *pos;34103390 int cnt = 0;34113411- struct sctp_getaddrs getaddrs;33913391+ struct sctp_getaddrs_old getaddrs;34123392 struct sctp_sockaddr_entry *addr;34133393 void __user *to;34143394 union sctp_addr temp;···34573357 rwlock_t *addr_lock;34583358 int err = 0;3459335934603460- if (len != sizeof(struct sctp_getaddrs))33603360+ if (len != sizeof(struct sctp_getaddrs_old))34613361 return -EINVAL;3462336234633463- if (copy_from_user(&getaddrs, optval, sizeof(struct sctp_getaddrs)))33633363+ if (copy_from_user(&getaddrs, optval, sizeof(struct sctp_getaddrs_old)))34643364 return -EFAULT;3465336534663366 if (getaddrs.addr_num <= 0) return -EINVAL;···34923392 addr = list_entry(bp->address_list.next,34933393 struct sctp_sockaddr_entry, list);34943394 if (sctp_is_any(&addr->a)) {34953495- cnt = sctp_copy_laddrs_to_user(sk, bp->port,34963496- getaddrs.addr_num, to);33953395+ cnt = sctp_copy_laddrs_to_user_old(sk, bp->port,33963396+ getaddrs.addr_num,33973397+ to);34973398 if (cnt < 0) {34983399 err = cnt;34993400 goto unlock;···3520341935213420copy_getaddrs:35223421 getaddrs.addr_num = cnt;35233523- if (copy_to_user(optval, &getaddrs, sizeof(struct sctp_getaddrs)))34223422+ if (copy_to_user(optval, &getaddrs, sizeof(struct sctp_getaddrs_old)))35243423 err = -EFAULT;34243424+34253425+unlock:34263426+ sctp_read_unlock(addr_lock);34273427+ return err;34283428+}34293429+34303430+static int sctp_getsockopt_local_addrs(struct sock *sk, int len,34313431+ char __user *optval, int __user *optlen)34323432+{34333433+ struct sctp_bind_addr *bp;34343434+ struct sctp_association *asoc;34353435+ struct list_head *pos;34363436+ int cnt = 0;34373437+ struct sctp_getaddrs getaddrs;34383438+ struct sctp_sockaddr_entry *addr;34393439+ void __user *to;34403440+ union sctp_addr temp;34413441+ struct sctp_sock *sp = sctp_sk(sk);34423442+ int addrlen;34433443+ rwlock_t *addr_lock;34443444+ int err = 0;34453445+ size_t space_left;34463446+ int bytes_copied;34473447+34483448+ if (len <= sizeof(struct sctp_getaddrs))34493449+ return -EINVAL;34503450+34513451+ if (copy_from_user(&getaddrs, optval, sizeof(struct sctp_getaddrs)))34523452+ return -EFAULT;34533453+34543454+ /*34553455+ * For UDP-style sockets, id specifies the association to query.34563456+ * If the id field is set to the value '0' then the locally bound34573457+ * addresses are returned without regard to any particular34583458+ * association.34593459+ */34603460+ if (0 == getaddrs.assoc_id) {34613461+ bp = &sctp_sk(sk)->ep->base.bind_addr;34623462+ addr_lock = &sctp_sk(sk)->ep->base.addr_lock;34633463+ } else {34643464+ asoc = sctp_id2assoc(sk, getaddrs.assoc_id);34653465+ if (!asoc)34663466+ return -EINVAL;34673467+ bp = &asoc->base.bind_addr;34683468+ addr_lock = &asoc->base.addr_lock;34693469+ }34703470+34713471+ to = optval + offsetof(struct sctp_getaddrs,addrs);34723472+ space_left = len - sizeof(struct sctp_getaddrs) -34733473+ offsetof(struct sctp_getaddrs,addrs);34743474+34753475+ sctp_read_lock(addr_lock);34763476+34773477+ /* If the endpoint is bound to 0.0.0.0 or ::0, get the valid34783478+ * addresses from the global local address list.34793479+ */34803480+ if (sctp_list_single_entry(&bp->address_list)) {34813481+ addr = list_entry(bp->address_list.next,34823482+ struct sctp_sockaddr_entry, list);34833483+ if (sctp_is_any(&addr->a)) {34843484+ cnt = sctp_copy_laddrs_to_user(sk, bp->port,34853485+ &to, space_left);34863486+ if (cnt < 0) {34873487+ err = cnt;34883488+ goto unlock;34893489+ }34903490+ goto copy_getaddrs; 34913491+ }34923492+ }34933493+34943494+ list_for_each(pos, &bp->address_list) {34953495+ addr = list_entry(pos, struct sctp_sockaddr_entry, list);34963496+ memcpy(&temp, &addr->a, sizeof(temp));34973497+ sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp);34983498+ addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;34993499+ if(space_left < addrlen)35003500+ return -ENOMEM; /*fixme: right error?*/35013501+ temp.v4.sin_port = htons(temp.v4.sin_port);35023502+ if (copy_to_user(to, &temp, addrlen)) {35033503+ err = -EFAULT;35043504+ goto unlock;35053505+ }35063506+ to += addrlen;35073507+ cnt ++;35083508+ space_left -= addrlen;35093509+ }35103510+35113511+copy_getaddrs:35123512+ if (put_user(cnt, &((struct sctp_getaddrs __user *)optval)->addr_num))35133513+ return -EFAULT;35143514+ bytes_copied = ((char __user *)to) - optval;35153515+ if (put_user(bytes_copied, optlen))35163516+ return -EFAULT;3525351735263518unlock:35273519 sctp_read_unlock(addr_lock);···40013807 case SCTP_INITMSG:40023808 retval = sctp_getsockopt_initmsg(sk, len, optval, optlen);40033809 break;40044004- case SCTP_GET_PEER_ADDRS_NUM:40054005- retval = sctp_getsockopt_peer_addrs_num(sk, len, optval,38103810+ case SCTP_GET_PEER_ADDRS_NUM_OLD:38113811+ retval = sctp_getsockopt_peer_addrs_num_old(sk, len, optval,38123812+ optlen);38133813+ break;38143814+ case SCTP_GET_LOCAL_ADDRS_NUM_OLD:38153815+ retval = sctp_getsockopt_local_addrs_num_old(sk, len, optval,38163816+ optlen);38173817+ break;38183818+ case SCTP_GET_PEER_ADDRS_OLD:38193819+ retval = sctp_getsockopt_peer_addrs_old(sk, len, optval,40063820 optlen);40073821 break;40084008- case SCTP_GET_LOCAL_ADDRS_NUM:40094009- retval = sctp_getsockopt_local_addrs_num(sk, len, optval,38223822+ case SCTP_GET_LOCAL_ADDRS_OLD:38233823+ retval = sctp_getsockopt_local_addrs_old(sk, len, optval,40103824 optlen);40113825 break;40123826 case SCTP_GET_PEER_ADDRS:
+1-1
net/sctp/ssnmap.c
···5858 * Allocate room to store at least 'len' contiguous TSNs.5959 */6060struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,6161- unsigned int __nocast gfp)6161+ gfp_t gfp)6262{6363 struct sctp_ssnmap *retval;6464 int size;
+2-2
net/sctp/transport.c
···5757/* Initialize a new transport from provided memory. */5858static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,5959 const union sctp_addr *addr,6060- unsigned int __nocast gfp)6060+ gfp_t gfp)6161{6262 /* Copy in the address. */6363 peer->ipaddr = *addr;···122122123123/* Allocate and initialize a new transport. */124124struct sctp_transport *sctp_transport_new(const union sctp_addr *addr,125125- unsigned int __nocast gfp)125125+ gfp_t gfp)126126{127127 struct sctp_transport *transport;128128
···100100101101/* Process an incoming DATA chunk. */102102int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,103103- unsigned int __nocast gfp)103103+ gfp_t gfp)104104{105105 struct sk_buff_head temp;106106 sctp_data_chunk_t *hdr;···792792/* Partial deliver the first message as there is pressure on rwnd. */793793void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq,794794 struct sctp_chunk *chunk,795795- unsigned int __nocast gfp)795795+ gfp_t gfp)796796{797797 struct sctp_ulpevent *event;798798 struct sctp_association *asoc;···816816817817/* Renege some packets to make room for an incoming chunk. */818818void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,819819- unsigned int __nocast gfp)819819+ gfp_t gfp)820820{821821 struct sctp_association *asoc;822822 __u16 needed, freed;···855855/* Notify the application if an association is aborted and in856856 * partial delivery mode. Send up any pending received messages.857857 */858858-void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, unsigned int __nocast gfp)858858+void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, gfp_t gfp)859859{860860 struct sctp_ulpevent *ev = NULL;861861 struct sock *sk;
+1-1
net/sunrpc/sched.c
···719719void *720720rpc_malloc(struct rpc_task *task, size_t size)721721{722722- int gfp;722722+ gfp_t gfp;723723724724 if (task->tk_flags & RPC_TASK_SWAPPER)725725 gfp = GFP_ATOMIC;
+3-3
net/xfrm/xfrm_policy.c
···163163 if (xp->dead)164164 goto out;165165166166- dir = xp->index & 7;166166+ dir = xfrm_policy_id2dir(xp->index);167167168168 if (xp->lft.hard_add_expires_seconds) {169169 long tmo = xp->lft.hard_add_expires_seconds +···225225 * SPD calls.226226 */227227228228-struct xfrm_policy *xfrm_policy_alloc(int gfp)228228+struct xfrm_policy *xfrm_policy_alloc(gfp_t gfp)229229{230230 struct xfrm_policy *policy;231231···417417 struct xfrm_policy *pol, **p;418418419419 write_lock_bh(&xfrm_policy_lock);420420- for (p = &xfrm_policy_list[id & 7]; (pol=*p)!=NULL; p = &pol->next) {420420+ for (p = &xfrm_policy_list[dir]; (pol=*p)!=NULL; p = &pol->next) {421421 if (pol->index == id) {422422 xfrm_pol_hold(pol);423423 if (delete)
···11+/* permission.c: key permission determination22+ *33+ * Copyright (C) 2005 Red Hat, Inc. All Rights Reserved.44+ * Written by David Howells (dhowells@redhat.com)55+ *66+ * This program is free software; you can redistribute it and/or77+ * modify it under the terms of the GNU General Public License88+ * as published by the Free Software Foundation; either version99+ * 2 of the License, or (at your option) any later version.1010+ */1111+1212+#include <linux/module.h>1313+#include "internal.h"1414+1515+/*****************************************************************************/1616+/*1717+ * check to see whether permission is granted to use a key in the desired way,1818+ * but permit the security modules to override1919+ */2020+int key_task_permission(const key_ref_t key_ref,2121+ struct task_struct *context,2222+ key_perm_t perm)2323+{2424+ struct key *key;2525+ key_perm_t kperm;2626+ int ret;2727+2828+ key = key_ref_to_ptr(key_ref);2929+3030+ /* use the second 8-bits of permissions for keys the caller owns */3131+ if (key->uid == context->fsuid) {3232+ kperm = key->perm >> 16;3333+ goto use_these_perms;3434+ }3535+3636+ /* use the third 8-bits of permissions for keys the caller has a group3737+ * membership in common with */3838+ if (key->gid != -1 && key->perm & KEY_GRP_ALL) {3939+ if (key->gid == context->fsgid) {4040+ kperm = key->perm >> 8;4141+ goto use_these_perms;4242+ }4343+4444+ task_lock(context);4545+ ret = groups_search(context->group_info, key->gid);4646+ task_unlock(context);4747+4848+ if (ret) {4949+ kperm = key->perm >> 8;5050+ goto use_these_perms;5151+ }5252+ }5353+5454+ /* otherwise use the least-significant 8-bits */5555+ kperm = key->perm;5656+5757+use_these_perms:5858+ /* use the top 8-bits of permissions for keys the caller possesses5959+ * - possessor permissions are additive with other permissions6060+ */6161+ if (is_key_possessed(key_ref))6262+ kperm |= key->perm >> 24;6363+6464+ kperm = kperm & perm & KEY_ALL;6565+6666+ return kperm == perm;6767+6868+} /* end key_task_permission() */6969+7070+EXPORT_SYMBOL(key_task_permission);
+2
security/keys/request_key.c
···77 * modify it under the terms of the GNU General Public License88 * as published by the Free Software Foundation; either version99 * 2 of the License, or (at your option) any later version.1010+ *1111+ * See Documentation/keys-request-key.txt1012 */11131214#include <linux/module.h>
+3
security/keys/request_key_auth.c
···77 * modify it under the terms of the GNU General Public License88 * as published by the Free Software Foundation; either version99 * 2 of the License, or (at your option) any later version.1010+ *1111+ * See Documentation/keys-request-key.txt1012 */11131214#include <linux/module.h>···9896 kenter("{%d}", key->serial);999710098 key_put(rka->target_key);9999+ kfree(rka);101100102101} /* end request_key_auth_destroy() */103102
+1-1
sound/arm/pxa2xx-ac97.c
···245245246246#ifdef CONFIG_PM247247248248-static int pxa2xx_ac97_do_suspend(snd_card_t *card, unsigned int state)248248+static int pxa2xx_ac97_do_suspend(snd_card_t *card, pm_message_t state)249249{250250 if (card->power_state != SNDRV_CTL_POWER_D3cold) {251251 pxa2xx_audio_ops_t *platform_ops = card->dev->platform_data;
···1717#include <linux/string.h>18181919/*2020- * Codec families have names seperated by commas, so we search for an2121- * individual codec name within the family string. 2020+ * Let drivers decide whether they want to support given codec from their2121+ * probe method. Drivers have direct access to the ac97_t structure and may2222+ * decide based on the id field amongst other things.2223 */2324static int ac97_bus_match(struct device *dev, struct device_driver *drv)2425{2525- return (strstr(dev->bus_id, drv->name) != NULL);2626+ return 1;2627}27282829static int ac97_bus_suspend(struct device *dev, pm_message_t state)2930{3031 int ret = 0;31323232- if (dev->driver && dev->driver->suspend) {3333- ret = dev->driver->suspend(dev, state, SUSPEND_DISABLE);3434- if (ret == 0)3535- ret = dev->driver->suspend(dev, state, SUSPEND_SAVE_STATE);3636- if (ret == 0)3737- ret = dev->driver->suspend(dev, state, SUSPEND_POWER_DOWN);3838- }3333+ if (dev->driver && dev->driver->suspend)3434+ ret = dev->driver->suspend(dev, state, SUSPEND_POWER_DOWN);3935 return ret;4036}4137···3943{4044 int ret = 0;41454242- if (dev->driver && dev->driver->resume) {4646+ if (dev->driver && dev->driver->resume)4347 ret = dev->driver->resume(dev, RESUME_POWER_ON);4444- if (ret == 0)4545- ret = dev->driver->resume(dev, RESUME_RESTORE_STATE);4646- if (ret == 0)4747- ret = dev->driver->resume(dev, RESUME_ENABLE);4848- }4948 return ret;5049}5150
···988988 case 0x33:989989 case 0x29:990990 case 0x24:991991+ case 0x50:991992 case 0x5c:992993 chip->num_freqs = ARRAY_SIZE(tumbler_freqs);993994 chip->model = PMAC_SNAPPER;