···17171818 usbcore.blinkenlights=119192020-The text in square brackets at the beginning of the description state the2020+The text in square brackets at the beginning of the description states the2121restrictions on the kernel for the said kernel parameter to be valid. The2222restrictions referred to are that the relevant option is valid if:2323···2727 APM Advanced Power Management support is enabled.2828 AX25 Appropriate AX.25 support is enabled.2929 CD Appropriate CD support is enabled.3030- DEVFS devfs support is enabled. 3131- DRM Direct Rendering Management support is enabled. 3030+ DEVFS devfs support is enabled.3131+ DRM Direct Rendering Management support is enabled.3232 EDD BIOS Enhanced Disk Drive Services (EDD) is enabled3333 EFI EFI Partitioning (GPT) is enabled3434 EIDE EIDE/ATAPI support is enabled.···7171 SERIAL Serial support is enabled.7272 SMP The kernel is an SMP kernel.7373 SPARC Sparc architecture is enabled.7474- SWSUSP Software suspension is enabled.7474+ SWSUSP Software suspend is enabled.7575 TS Appropriate touchscreen support is enabled.7676 USB USB support is enabled.7777 USBHID USB Human Interface Device support is enabled.···105105 See header of drivers/scsi/53c7xx.c.106106 See also Documentation/scsi/ncr53c7xx.txt.107107108108- acpi= [HW,ACPI] Advanced Configuration and Power Interface 109109- Format: { force | off | ht | strict }108108+ acpi= [HW,ACPI] Advanced Configuration and Power Interface109109+ Format: { force | off | ht | strict | noirq }110110 force -- enable ACPI if default was off111111 off -- disable ACPI if default was on112112 noirq -- do not use ACPI for IRQ routing113113 ht -- run only enough ACPI to enable Hyper Threading114114- strict -- Be less tolerant of platforms that are not114114+ strict -- Be less tolerant of platforms that are not115115 strictly ACPI specification compliant.116116117117 See also Documentation/pm.txt, pci=noacpi···119119 acpi_sleep= [HW,ACPI] Sleep options120120 Format: { s3_bios, s3_mode }121121 See Documentation/power/video.txt122122-122122+123123 acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode124124- Format: { level | edge | high | low }124124+ Format: { level | edge | high | low }125125126126- acpi_irq_balance [HW,ACPI] ACPI will balance active IRQs127127- default in APIC mode126126+ acpi_irq_balance [HW,ACPI]127127+ ACPI will balance active IRQs128128+ default in APIC mode128129129129- acpi_irq_nobalance [HW,ACPI] ACPI will not move active IRQs (default)130130- default in PIC mode130130+ acpi_irq_nobalance [HW,ACPI]131131+ ACPI will not move active IRQs (default)132132+ default in PIC mode131133132132- acpi_irq_pci= [HW,ACPI] If irq_balance, Clear listed IRQs for use by PCI134134+ acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for135135+ use by PCI133136 Format: <irq>,<irq>...134137135135- acpi_irq_isa= [HW,ACPI] If irq_balance, Mark listed IRQs used by ISA138138+ acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA136139 Format: <irq>,<irq>...137140138141 acpi_osi= [HW,ACPI] empty param disables _OSI···148145149146 acpi_dbg_layer= [HW,ACPI]150147 Format: <int>151151- Each bit of the <int> indicates an acpi debug layer,148148+ Each bit of the <int> indicates an ACPI debug layer,152149 1: enable, 0: disable. It is useful for boot time153150 debugging. After system has booted up, it can be set154151 via /proc/acpi/debug_layer.155152156153 acpi_dbg_level= [HW,ACPI]157154 Format: <int>158158- Each bit of the <int> indicates an acpi debug level,155155+ Each bit of the <int> indicates an ACPI debug level,159156 1: enable, 0: disable. It is useful for boot time160157 debugging. After system has booted up, it can be set161158 via /proc/acpi/debug_level.···164161165162 acpi_generic_hotkey [HW,ACPI]166163 Allow consolidated generic hotkey driver to167167- over-ride platform specific driver.164164+ override platform specific driver.168165 See also Documentation/acpi-hotkey.txt.169166170167 enable_timer_pin_1 [i386,x86-64]171168 Enable PIN 1 of APIC timer172172- Can be useful to work around chipset bugs (in particular on some ATI chipsets)169169+ Can be useful to work around chipset bugs170170+ (in particular on some ATI chipsets).173171 The kernel tries to set a reasonable default.174172175173 disable_timer_pin_1 [i386,x86-64]···186182187183 adlib= [HW,OSS]188184 Format: <io>189189-185185+190186 advansys= [HW,SCSI]191187 See header of drivers/scsi/advansys.c.192188···196192 aedsp16= [HW,OSS] Audio Excel DSP 16197193 Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq>198194 See also header of sound/oss/aedsp16.c.199199-195195+200196 aha152x= [HW,SCSI]201197 See Documentation/scsi/aha152x.txt.202198···209205 aic79xx= [HW,SCSI]210206 See Documentation/scsi/aic79xx.txt.211207212212- AM53C974= [HW,SCSI]213213- Format: <host-scsi-id>,<target-scsi-id>,<max-rate>,<max-offset>214214- See also header of drivers/scsi/AM53C974.c.215215-216208 amijoy.map= [HW,JOY] Amiga joystick support217209 Map of devices attached to JOY0DAT and JOY1DAT218210 Format: <a>,<b>···219219 connected to one of 16 gameports220220 Format: <type1>,<type2>,..<type16>221221222222- apc= [HW,SPARC] Power management functions (SPARCstation-4/5 + deriv.)222222+ apc= [HW,SPARC]223223+ Power management functions (SPARCstation-4/5 + deriv.)223224 Format: noidle224225 Disable APC CPU standby support. SPARCstation-Fox does225226 not play well with APC CPU idle - disable it if you have226227 APC and your system crashes randomly.227228228228- apic= [APIC,i386] Change the output verbosity whilst booting229229+ apic= [APIC,i386] Change the output verbosity whilst booting229230 Format: { quiet (default) | verbose | debug }230231 Change the amount of debugging information output231232 when initialising the APIC and IO-APIC components.232232-233233+233234 apm= [APM] Advanced Power Management234235 See header of arch/i386/kernel/apm.c.235236236237 applicom= [HW]237238 Format: <mem>,<irq>238238-239239+239240 arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards240241 Format: <io>,<irq>,<nodeID>241242···251250252251 atkbd.reset= [HW] Reset keyboard during initialization253252254254- atkbd.set= [HW] Select keyboard code set 255255- Format: <int> (2 = AT (default) 3 = PS/2)253253+ atkbd.set= [HW] Select keyboard code set254254+ Format: <int> (2 = AT (default), 3 = PS/2)256255257256 atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar258257 keyboards259258260259 atkbd.softraw= [HW] Choose between synthetic and real raw mode261260 Format: <bool> (0 = real, 1 = synthetic (default))262262-263263- atkbd.softrepeat=264264- [HW] Use software keyboard repeat261261+262262+ atkbd.softrepeat= [HW]263263+ Use software keyboard repeat265264266265 autotest [IA64]267266268267 awe= [HW,OSS] AWE32/SB32/AWE64 wave table synth269268 Format: <io>,<memsize>,<isapnp>270270-269269+271270 aztcd= [HW,CD] Aztech CD268 CDROM driver272271 Format: <io>,0x79 (?)273272274273 baycom_epp= [HW,AX25]275274 Format: <io>,<mode>276276-275275+277276 baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem278277 Format: <io>,<mode>279278 See header of drivers/net/hamradio/baycom_par.c.280279281281- baycom_ser_fdx= [HW,AX25] BayCom Serial Port AX.25 Modem (Full Duplex Mode)280280+ baycom_ser_fdx= [HW,AX25]281281+ BayCom Serial Port AX.25 Modem (Full Duplex Mode)282282 Format: <io>,<irq>,<mode>[,<baud>]283283 See header of drivers/net/hamradio/baycom_ser_fdx.c.284284285285- baycom_ser_hdx= [HW,AX25] BayCom Serial Port AX.25 Modem (Half Duplex Mode)285285+ baycom_ser_hdx= [HW,AX25]286286+ BayCom Serial Port AX.25 Modem (Half Duplex Mode)286287 Format: <io>,<irq>,<mode>287288 See header of drivers/net/hamradio/baycom_ser_hdx.c.288289···295292 blkmtd_count=296293297294 bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards)298298- bttv.radio= Most important insmod options are available as kernel args too.295295+ bttv.radio= Most important insmod options are available as296296+ kernel args too.299297 bttv.pll= See Documentation/video4linux/bttv/Insmod-options300298 bttv.tuner= and Documentation/video4linux/bttv/CARDLIST301299···322318 checkreqprot [SELINUX] Set initial checkreqprot flag value.323319 Format: { "0" | "1" }324320 See security/selinux/Kconfig help text.325325- 0 -- check protection applied by kernel (includes any implied execute protection).321321+ 0 -- check protection applied by kernel (includes322322+ any implied execute protection).326323 1 -- check protection requested by application.327324 Default value is set via a kernel config option.328328- Value can be changed at runtime via /selinux/checkreqprot.329329-330330- clock= [BUGS=IA-32, HW] gettimeofday timesource override. 325325+ Value can be changed at runtime via326326+ /selinux/checkreqprot.327327+328328+ clock= [BUGS=IA-32,HW] gettimeofday timesource override.331329 Forces specified timesource (if avaliable) to be used332332- when calculating gettimeofday(). If specicified timesource333333- is not avalible, it defaults to PIT. 330330+ when calculating gettimeofday(). If specicified331331+ timesource is not avalible, it defaults to PIT.334332 Format: { pit | tsc | cyclone | pmtmr }335333336334 hpet= [IA-32,HPET] option to disable HPET and use PIT.···342336 Format: { auto | [<io>,][<irq>] }343337344338 com20020= [HW,NET] ARCnet - COM20020 chipset345345- Format: <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]339339+ Format:340340+ <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]346341347342 com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers)348343 Format: <io>[,<irq>]349344350350- com90xx= [HW,NET] ARCnet - COM90xx chipset (memory-mapped buffers)345345+ com90xx= [HW,NET]346346+ ARCnet - COM90xx chipset (memory-mapped buffers)351347 Format: <io>[,<irq>[,<memstart>]]352348353349 condev= [HW,S390] console device354350 conmode=355355-351351+356352 console= [KNL] Output console device and options.357353358354 tty<n> Use the virtual console device <n>.···375367 options are the same as for ttyS, above.376368377369 cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver378378- Format: <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]370370+ Format:371371+ <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]379372380373 cpia_pp= [HW,PPT]381374 Format: { parport<nr> | auto | none }···393384394385 cs89x0_media= [HW,NET]395386 Format: { rj45 | aui | bnc }396396-387387+397388 cyclades= [HW,SERIAL] Cyclades multi-serial port adapter.398398-399399- dasd= [HW,NET] 389389+390390+ dasd= [HW,NET]400391 See header of drivers/s390/block/dasd_devmap.c.401392402393 db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port···415406416407 dhash_entries= [KNL]417408 Set number of hash buckets for dentry cache.418418-409409+419410 digi= [HW,SERIAL]420411 IO parameters + enable/disable command.421412···433424434425 dtc3181e= [HW,SCSI]435426436436- earlyprintk= [IA-32, X86-64]427427+ earlyprintk= [IA-32,X86-64]437428 earlyprintk=vga438429 earlyprintk=serial[,ttySn[,baudrate]]439430440440- Append ,keep to not disable it when the real console431431+ Append ",keep" to not disable it when the real console441432 takes over.442433443434 Only vga or serial at a time, not both.···460451 Format: {"of[f]" | "sk[ipmbr]"}461452 See comment in arch/i386/boot/edd.S462453463463- eicon= [HW,ISDN] 454454+ eicon= [HW,ISDN]464455 Format: <id>,<membase>,<irq>465456466457 eisa_irq_edge= [PARISC,HW]···471462 arch/i386/kernel/cpu/cpufreq/elanfreq.c.472463473464 elevator= [IOSCHED]474474- Format: {"as"|"cfq"|"deadline"|"noop"}475475- See Documentation/block/as-iosched.txt476476- and Documentation/block/deadline-iosched.txt for details.465465+ Format: {"as" | "cfq" | "deadline" | "noop"}466466+ See Documentation/block/as-iosched.txt and467467+ Documentation/block/deadline-iosched.txt for details.468468+477469 elfcorehdr= [IA-32]478478- Specifies physical address of start of kernel core image479479- elf header.470470+ Specifies physical address of start of kernel core471471+ image elf header.480472 See Documentation/kdump.txt for details.481473482474 enforcing [SELINUX] Set initial enforcing status.···495485 es1371= [HW,OSS]496486 Format: <spdif>,[<nomix>,[<amplifier>]]497487 See also header of sound/oss/es1371.c.498498-488488+499489 ether= [HW,NET] Ethernet cards parameters500490 This option is obsoleted by the "netdev=" option, which501491 has equivalent usage. See its documentation for details.···536526537527 gus= [HW,OSS]538528 Format: <io>,<irq>,<dma>,<dma16>539539-529529+540530 gvp11= [HW,SCSI]541531542532 hashdist= [KNL,NUMA] Large hashes allocated during boot543533 are distributed across NUMA nodes. Defaults on544534 for IA-64, off otherwise.535535+ Format: 0 | 1 (for off | on)545536546537 hcl= [IA-64] SGI's Hardware Graph compatibility layer547538···606595 ide?= [HW] (E)IDE subsystem607596 Format: ide?=noprobe or chipset specific parameters.608597 See Documentation/ide.txt.609609-598598+610599 idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed611600 See Documentation/ide.txt.612601613602 idle= [HW]614603 Format: idle=poll or idle=halt615615-604604+616605 ihash_entries= [KNL]617606 Set number of hash buckets for inode cache.618607···660649 firmware running.661650662651 isapnp= [ISAPNP]663663- Format: <RDP>, <reset>, <pci_scan>, <verbosity>652652+ Format: <RDP>,<reset>,<pci_scan>,<verbosity>664653665654 isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler.666655 Format: <cpu number>,...,<cpu number>···672661 "number of CPUs in system - 1".673662674663 This option is the preferred way to isolate CPUs. The675675- alternative - manually setting the CPU mask of all tasks676676- in the system can cause problems and suboptimal load677677- balancer performance.664664+ alternative -- manually setting the CPU mask of all665665+ tasks in the system -- can cause problems and666666+ suboptimal load balancer performance.678667679668 isp16= [HW,CD]680669 Format: <io>,<irq>,<dma>,<setup>681670682682- iucv= [HW,NET] 671671+ iucv= [HW,NET]683672684673 js= [HW,JOY] Analog joystick685674 See Documentation/input/joystick.txt.686675687676 keepinitrd [HW,ARM]688677689689- kstack=N [IA-32, X86-64] Print N words from the kernel stack678678+ kstack=N [IA-32,X86-64] Print N words from the kernel stack690679 in oops dumps.691680692681 l2cr= [PPC]693682694694- lapic [IA-32,APIC] Enable the local APIC even if BIOS disabled it.683683+ lapic [IA-32,APIC] Enable the local APIC even if BIOS684684+ disabled it.695685696686 lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip697687 Format: addr:<io>,irq:<irq>698688699699- llsc*= [IA64]700700- See function print_params() in arch/ia64/sn/kernel/llsc4.c.689689+ llsc*= [IA64] See function print_params() in690690+ arch/ia64/sn/kernel/llsc4.c.701691702692 load_ramdisk= [RAM] List of ramdisks to load from floppy703693 See Documentation/ramdisk.txt.···725713 7 (KERN_DEBUG) debug-level messages726714727715 log_buf_len=n Sets the size of the printk ring buffer, in bytes.728728- Format is n, nk, nM. n must be a power of two. The729729- default is set in kernel config.716716+ Format: { n | nk | nM }717717+ n must be a power of two. The default size718718+ is set in the kernel config file.730719731720 lp=0 [LP] Specify parallel ports to use, e.g,732721 lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses···763750 ltpc= [NET]764751 Format: <io>,<irq>,<dma>765752766766- mac5380= [HW,SCSI]767767- Format: <can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>753753+ mac5380= [HW,SCSI] Format:754754+ <can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>768755769769- mac53c9x= [HW,SCSI]770770- Format: <num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>756756+ mac53c9x= [HW,SCSI] Format:757757+ <num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>771758772772- machvec= [IA64]773773- Force the use of a particular machine-vector (machvec) in a generic774774- kernel. Example: machvec=hpzx1_swiotlb759759+ machvec= [IA64] Force the use of a particular machine-vector760760+ (machvec) in a generic kernel.761761+ Example: machvec=hpzx1_swiotlb775762776776- mad16= [HW,OSS]777777- Format: <io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick>763763+ mad16= [HW,OSS] Format:764764+ <io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick>778765779766 maui= [HW,OSS]780767 Format: <io>,<irq>781781-782782- max_loop= [LOOP] Maximum number of loopback devices that can768768+769769+ max_loop= [LOOP] Maximum number of loopback devices that can783770 be mounted784771 Format: <1-256>785772···789776 max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or790777 equal to this physical address is ignored.791778792792- max_luns= [SCSI] Maximum number of LUNs to probe779779+ max_luns= [SCSI] Maximum number of LUNs to probe.793780 Should be between 1 and 2^32-1.794781795782 max_report_luns=796796- [SCSI] Maximum number of LUNs received783783+ [SCSI] Maximum number of LUNs received.797784 Should be between 1 and 16384.798785799786 mca-pentium [BUGS=IA-32]···809796810797 md= [HW] RAID subsystems devices and level811798 See Documentation/md.txt.812812-799799+813800 mdacon= [MDA]814801 Format: <first>,<last>815802 Specifies range of consoles to be captured by the MDA.816816-803803+817804 mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory818805 Amount of memory to be used when the kernel is not able819806 to see the whole system memory or for test.···864851 MTD_Partition= [MTD]865852 Format: <name>,<region-number>,<size>,<offset>866853867867- MTD_Region= [MTD]868868- Format: <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]854854+ MTD_Region= [MTD] Format:855855+ <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]869856870857 mtdparts= [MTD]871858 See drivers/mtd/cmdline.c.872859873860 mtouchusb.raw_coordinates=874874- [HW] Make the MicroTouch USB driver use raw coordinates ('y', default)875875- or cooked coordinates ('n')861861+ [HW] Make the MicroTouch USB driver use raw coordinates862862+ ('y', default) or cooked coordinates ('n')876863877864 n2= [NET] SDL Inc. RISCom/N2 synchronous serial card878865···893880 Format: <irq>,<io>,<mem_start>,<mem_end>,<name>894881 Note that mem_start is often overloaded to mean895882 something different and driver-specific.896896-883883+ This usage is only documented in each driver source884884+ file if at all.885885+897886 nfsaddrs= [NFS]898887 See Documentation/nfsroot.txt.899888···908893 emulation library even if a 387 maths coprocessor909894 is present.910895911911- noalign [KNL,ARM] 912912-896896+ noalign [KNL,ARM]897897+913898 noapic [SMP,APIC] Tells the kernel to not make use of any914899 IOAPICs that may be present in the system.915900···920905 on "Classic" PPC cores.921906922907 nocache [ARM]923923-908908+924909 nodisconnect [HW,SCSI,M68K] Disables SCSI disconnects.925910926911 noexec [IA-64]927912928928- noexec [IA-32, X86-64]913913+ noexec [IA-32,X86-64]929914 noexec=on: enable non-executable mappings (default)930915 noexec=off: disable nn-executable mappings931916932917 nofxsr [BUGS=IA-32]933918934919 nohlt [BUGS=ARM]935935-920920+936921 no-hlt [BUGS=IA-32] Tells the kernel that the hlt937922 instruction doesn't work correctly and not to938923 use it.···963948964949 noresidual [PPC] Don't use residual data on PReP machines.965950966966- noresume [SWSUSP] Disables resume and restore original swap space.967967-951951+ noresume [SWSUSP] Disables resume and restores original swap952952+ space.953953+968954 no-scroll [VGA] Disables scrollback.969955 This is required for the Braillex ib80-piezo Braille970956 reader made by F.H. Papenmeier (Germany).···981965 nousb [USB] Disable the USB subsystem982966983967 nowb [ARM]984984-968968+985969 opl3= [HW,OSS]986970 Format: <io>987971988972 opl3sa= [HW,OSS]989973 Format: <io>,<irq>,<dma>,<dma2>,<mpu_io>,<mpu_irq>990974991991- opl3sa2= [HW,OSS]992992- Format: <io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple]993993-975975+ opl3sa2= [HW,OSS] Format:976976+ <io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple]977977+994978 oprofile.timer= [HW]995979 Use timer interrupt instead of performance counters996980···1009993 Format: <parport#>1010994 parkbd.mode= [HW] Parallel port keyboard adapter mode of operation,1011995 0 for XT, 1 for AT (default is AT).10121012- Format: <mode> 996996+ Format: <mode>101399710141014- parport=0 [HW,PPT] Specify parallel ports. 0 disables.10151015- parport=auto Use 'auto' to force the driver to use10161016- parport=0xBBB[,IRQ[,DMA]] any IRQ/DMA settings detected (the10171017- default is to ignore detected IRQ/DMA10181018- settings because of possible10191019- conflicts). You can specify the base10201020- address, IRQ, and DMA settings; IRQ and10211021- DMA should be numbers, or 'auto' (for10221022- using detected settings on that10231023- particular port), or 'nofifo' (to avoid10241024- using a FIFO even if it is detected).10251025- Parallel ports are assigned in the10261026- order they are specified on the command10271027- line, starting with parport0.998998+ parport= [HW,PPT] Specify parallel ports. 0 disables.999999+ Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] }10001000+ Use 'auto' to force the driver to use any10011001+ IRQ/DMA settings detected (the default is to10021002+ ignore detected IRQ/DMA settings because of10031003+ possible conflicts). You can specify the base10041004+ address, IRQ, and DMA settings; IRQ and DMA10051005+ should be numbers, or 'auto' (for using detected10061006+ settings on that particular port), or 'nofifo'10071007+ (to avoid using a FIFO even if it is detected).10081008+ Parallel ports are assigned in the order they10091009+ are specified on the command line, starting10101010+ with parport0.1028101110291029- parport_init_mode=10301030- [HW,PPT] Configure VIA parallel port to10311031- operate in specific mode. This is10321032- necessary on Pegasos computer where10331033- firmware has no options for setting up10341034- parallel port mode and sets it to10351035- spp. Currently this function knows10361036- 686a and 8231 chips.10121012+ parport_init_mode= [HW,PPT]10131013+ Configure VIA parallel port to operate in10141014+ a specific mode. This is necessary on Pegasos10151015+ computer where firmware has no options for setting10161016+ up parallel port mode and sets it to spp.10171017+ Currently this function knows 686a and 8231 chips.10371018 Format: [spp|ps2|epp|ecp|ecpepp]1038101910391039- pas2= [HW,OSS]10401040- Format: <io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>10411041-10201020+ pas2= [HW,OSS] Format:10211021+ <io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>10221022+10421023 pas16= [HW,SCSI]10431024 See header of drivers/scsi/pas16.c.10441025···10451032 See header of drivers/block/paride/pcd.c.10461033 See also Documentation/paride.txt.1047103410481048- pci=option[,option...] [PCI] various PCI subsystem options:10491049- off [IA-32] don't probe for the PCI bus10501050- bios [IA-32] force use of PCI BIOS, don't access10511051- the hardware directly. Use this if your machine10521052- has a non-standard PCI host bridge.10531053- nobios [IA-32] disallow use of PCI BIOS, only direct10541054- hardware access methods are allowed. Use this10551055- if you experience crashes upon bootup and you10561056- suspect they are caused by the BIOS.10571057- conf1 [IA-32] Force use of PCI Configuration Mechanism 1.10581058- conf2 [IA-32] Force use of PCI Configuration Mechanism 2.10591059- nosort [IA-32] Don't sort PCI devices according to10601060- order given by the PCI BIOS. This sorting is done10611061- to get a device order compatible with older kernels.10621062- biosirq [IA-32] Use PCI BIOS calls to get the interrupt10631063- routing table. These calls are known to be buggy10641064- on several machines and they hang the machine when used,10651065- but on other computers it's the only way to get the10661066- interrupt routing table. Try this option if the kernel10671067- is unable to allocate IRQs or discover secondary PCI10681068- buses on your motherboard.10691069- rom [IA-32] Assign address space to expansion ROMs.10701070- Use with caution as certain devices share address10711071- decoders between ROMs and other resources.10721072- irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be assigned10731073- automatically to PCI devices. You can make the kernel10741074- exclude IRQs of your ISA cards this way.10351035+ pci=option[,option...] [PCI] various PCI subsystem options:10361036+ off [IA-32] don't probe for the PCI bus10371037+ bios [IA-32] force use of PCI BIOS, don't access10381038+ the hardware directly. Use this if your machine10391039+ has a non-standard PCI host bridge.10401040+ nobios [IA-32] disallow use of PCI BIOS, only direct10411041+ hardware access methods are allowed. Use this10421042+ if you experience crashes upon bootup and you10431043+ suspect they are caused by the BIOS.10441044+ conf1 [IA-32] Force use of PCI Configuration10451045+ Mechanism 1.10461046+ conf2 [IA-32] Force use of PCI Configuration10471047+ Mechanism 2.10481048+ nosort [IA-32] Don't sort PCI devices according to10491049+ order given by the PCI BIOS. This sorting is10501050+ done to get a device order compatible with10511051+ older kernels.10521052+ biosirq [IA-32] Use PCI BIOS calls to get the interrupt10531053+ routing table. These calls are known to be buggy10541054+ on several machines and they hang the machine10551055+ when used, but on other computers it's the only10561056+ way to get the interrupt routing table. Try10571057+ this option if the kernel is unable to allocate10581058+ IRQs or discover secondary PCI buses on your10591059+ motherboard.10601060+ rom [IA-32] Assign address space to expansion ROMs.10611061+ Use with caution as certain devices share10621062+ address decoders between ROMs and other10631063+ resources.10641064+ irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be10651065+ assigned automatically to PCI devices. You can10661066+ make the kernel exclude IRQs of your ISA cards10671067+ this way.10751068 pirqaddr=0xAAAAA [IA-32] Specify the physical address10761076- of the PIRQ table (normally generated10771077- by the BIOS) if it is outside the10781078- F0000h-100000h range.10791079- lastbus=N [IA-32] Scan all buses till bus #N. Can be useful10801080- if the kernel is unable to find your secondary buses10811081- and you want to tell it explicitly which ones they are.10821082- assign-busses [IA-32] Always assign all PCI bus10831083- numbers ourselves, overriding10841084- whatever the firmware may have10851085- done.10861086- usepirqmask [IA-32] Honor the possible IRQ mask10871087- stored in the BIOS $PIR table. This is10881088- needed on some systems with broken10891089- BIOSes, notably some HP Pavilion N540010901090- and Omnibook XE3 notebooks. This will10911091- have no effect if ACPI IRQ routing is10921092- enabled.10931093- noacpi [IA-32] Do not use ACPI for IRQ routing10941094- or for PCI scanning.10951095- routeirq Do IRQ routing for all PCI devices.10961096- This is normally done in pci_enable_device(),10971097- so this option is a temporary workaround10981098- for broken drivers that don't call it.10991099-11001100- firmware [ARM] Do not re-enumerate the bus but11011101- instead just use the configuration11021102- from the bootloader. This is currently11031103- used on IXP2000 systems where the11041104- bus has to be configured a certain way11051105- for adjunct CPUs.10691069+ of the PIRQ table (normally generated10701070+ by the BIOS) if it is outside the10711071+ F0000h-100000h range.10721072+ lastbus=N [IA-32] Scan all buses thru bus #N. Can be10731073+ useful if the kernel is unable to find your10741074+ secondary buses and you want to tell it10751075+ explicitly which ones they are.10761076+ assign-busses [IA-32] Always assign all PCI bus10771077+ numbers ourselves, overriding10781078+ whatever the firmware may have done.10791079+ usepirqmask [IA-32] Honor the possible IRQ mask stored10801080+ in the BIOS $PIR table. This is needed on10811081+ some systems with broken BIOSes, notably10821082+ some HP Pavilion N5400 and Omnibook XE310831083+ notebooks. This will have no effect if ACPI10841084+ IRQ routing is enabled.10851085+ noacpi [IA-32] Do not use ACPI for IRQ routing10861086+ or for PCI scanning.10871087+ routeirq Do IRQ routing for all PCI devices.10881088+ This is normally done in pci_enable_device(),10891089+ so this option is a temporary workaround10901090+ for broken drivers that don't call it.10911091+ firmware [ARM] Do not re-enumerate the bus but instead10921092+ just use the configuration from the10931093+ bootloader. This is currently used on10941094+ IXP2000 systems where the bus has to be10951095+ configured a certain way for adjunct CPUs.1106109611071097 pcmv= [HW,PCMCIA] BadgePAD 411081098···11431127 [ISAPNP] Exclude DMAs for the autoconfiguration1144112811451129 pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration11461146- Ranges are in pairs (I/O port base and size).11301130+ Ranges are in pairs (I/O port base and size).1147113111481132 pnp_reserve_mem=11491149- [ISAPNP] Exclude memory regions for the autoconfiguration11331133+ [ISAPNP] Exclude memory regions for the11341134+ autoconfiguration.11501135 Ranges are in pairs (memory base and size).1151113611521137 profile= [KNL] Enable kernel profiling via /proc/profile11531153- { schedule | <number> }11541154- (param: schedule - profile schedule points}11551155- (param: profile step/bucket size as a power of 2 for11561156- statistical time based profiling)11381138+ Format: [schedule,]<number>11391139+ Param: "schedule" - profile schedule points.11401140+ Param: <number> - step/bucket size as a power of 2 for11411141+ statistical time based profiling.1157114211581158- processor.max_cstate= [HW, ACPI]11431143+ processor.max_cstate= [HW,ACPI]11591144 Limit processor to maximum C-state11601145 max_cstate=9 overrides any DMI blacklist limit.11611146···11641147 before loading.11651148 See Documentation/ramdisk.txt.1166114911671167- psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to11681168- probe for (bare|imps|exps|lifebook|any).11501150+ psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to11511151+ probe for; one of (bare|imps|exps|lifebook|any).11691152 psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports11701153 per second.11711171- psmouse.resetafter=11721172- [HW,MOUSE] Try to reset the device after so many bad packets11541154+ psmouse.resetafter= [HW,MOUSE]11551155+ Try to reset the device after so many bad packets11731156 (0 = never).11741157 psmouse.resolution=11751158 [HW,MOUSE] Set desired mouse resolution, in dpi.11761159 psmouse.smartscroll=11771177- [HW,MOUSE] Controls Logitech smartscroll autorepeat,11601160+ [HW,MOUSE] Controls Logitech smartscroll autorepeat.11781161 0 = disabled, 1 = enabled (default).1179116211801163 pss= [HW,OSS] Personal Sound System (ECHO ESC614)11811181- Format: <io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>11641164+ Format:11651165+ <io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>1182116611831167 pt. [PARIDE]11841168 See Documentation/paride.txt.1185116911861170 quiet= [KNL] Disable log messages11871187-11711171+11881172 r128= [HW,DRM]1189117311901174 raid= [HW,RAID]···11941176 ramdisk= [RAM] Sizes of RAM disks in kilobytes [deprecated]11951177 See Documentation/ramdisk.txt.1196117811971197- ramdisk_blocksize=11981198- [RAM]11791179+ ramdisk_blocksize= [RAM]11991180 See Documentation/ramdisk.txt.12001200-11811181+12011182 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes12021183 New name for the ramdisk parameter.12031184 See Documentation/ramdisk.txt.···1212119512131196 reserve= [KNL,BUGS] Force the kernel to ignore some iomem area1214119712151215- resume= [SWSUSP] Specify the partition device for software suspension11981198+ resume= [SWSUSP]11991199+ Specify the partition device for software suspend1216120012171201 rhash_entries= [KNL,NET]12181202 Set number of hash buckets for route cache···12431225 Format: <io>,<irq>,<dma>,<dma2>1244122612451227 sbni= [NET] Granch SBNI12 leased line adapter12461246-12281228+12471229 sbpcd= [HW,CD] Soundblaster CD adapter12481230 Format: <io>,<type>12491231 See a comment before function sbpcd_setup() in···1276125812771259 serialnumber [BUGS=IA-32]1278126012791279- sg_def_reserved_size=12801280- [SCSI]12811281-12611261+ sg_def_reserved_size= [SCSI]12621262+12821263 sgalaxy= [HW,OSS]12831264 Format: <io>,<irq>,<dma>,<dma2>,<sgbase>1284126512851266 shapers= [NET]12861267 Maximal number of shapers.12871287-12681268+12881269 sim710= [SCSI,HW]12891270 See header of drivers/scsi/sim710.c.1290127112911272 simeth= [IA-64]12921273 simscsi=12931293-12741274+12941275 sjcd= [HW,CD]12951276 Format: <io>,<irq>,<dma>12961277 See header of drivers/cdrom/sjcd.c.···14201403 snd-wavefront= [HW,ALSA]1421140414221405 snd-ymfpci= [HW,ALSA]14231423-14061406+14241407 sonicvibes= [HW,OSS]14251408 Format: <reverb>14261426-14091409+14271410 sonycd535= [HW,CD]14281411 Format: <io>[,<irq>]14291412···1440142314411424 sscape= [HW,OSS]14421425 Format: <io>,<irq>,<dma>,<mpu_io>,<mpu_irq>14431443-14261426+14441427 st= [HW,SCSI] SCSI tape parameters (buffers, etc.)14451428 See Documentation/scsi/st.txt.14461429···14631446 stram_swap= [HW,M68k]1464144714651448 swiotlb= [IA-64] Number of I/O TLB slabs14661466-14491449+14671450 switches= [HW,M68k]1468145114691452 sym53c416= [HW,SCSI]···14961479 tp720= [HW,PS2]1497148014981481 trix= [HW,OSS] MediaTrix AudioTrix Pro14991499- Format: <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>15001500-14821482+ Format:14831483+ <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>14841484+15011485 tsdev.xres= [TS] Horizontal screen resolution.15021486 tsdev.yres= [TS] Vertical screen resolution.1503148715041504- turbografx.map[2|3]=15051505- [HW,JOY] TurboGraFX parallel port interface15061506- Format: <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>14881488+ turbografx.map[2|3]= [HW,JOY]14891489+ TurboGraFX parallel port interface14901490+ Format:14911491+ <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>15071492 See also Documentation/input/joystick-parport.txt1508149315091494 u14-34f= [HW,SCSI] UltraStor 14F/34F SCSI host adapter···1521150215221503 usbhid.mousepoll=15231504 [USBHID] The interval which mice are to be polled at.15241524-15051505+15251506 video= [FB] Frame buffer configuration15261507 See Documentation/fb/modedb.txt.1527150815281509 vga= [BOOT,IA-32] Select a particular video mode15291529- See Documentation/i386/boot.txt and Documentation/svga.txt.15101510+ See Documentation/i386/boot.txt and15111511+ Documentation/svga.txt.15301512 Use vga=ask for menu.15311513 This is actually a boot loader parameter; the value is15321514 passed to the kernel using a special protocol.1533151515341534- vmalloc=nn[KMG] [KNL,BOOT] forces the vmalloc area to have an exact15161516+ vmalloc=nn[KMG] [KNL,BOOT] Forces the vmalloc area to have an exact15351517 size of <nn>. This can be used to increase the15361518 minimum size (128MB on x86). It can also be used to15371519 decrease the size and leave more room for directly···1540152015411521 vmhalt= [KNL,S390]1542152215431543- vmpoff= [KNL,S390] 15441544-15231523+ vmpoff= [KNL,S390]15241524+15451525 waveartist= [HW,OSS]15461526 Format: <io>,<irq>,<dma>,<dma2>15471547-15271527+15481528 wd33c93= [HW,SCSI]15491529 See header of drivers/scsi/wd33c93.c.15501530···15581538 xd_geo= See header of drivers/block/xd.c.1559153915601540 xirc2ps_cs= [NET,PCMCIA]15611561- Format: <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]15411541+ Format:15421542+ <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]156215431563154415641564-15451545+______________________________________________________________________15651546Changelog:1566154715481548+2000-06-?? Mr. Unknown15671549 The last known update (for 2.4.0) - the changelog was not kept before.15681568- 2000-06-?? Mr. Unknown1569155015511551+2002-11-24 Petr Baudis <pasky@ucw.cz>15521552+ Randy Dunlap <randy.dunlap@verizon.net>15701553 Update for 2.5.49, description for most of the options introduced,15711554 references to other documentation (C files, READMEs, ..), added S390,15721555 PPC, SPARC, MTD, ALSA and OSS category. Minor corrections and15731556 reformatting.15741574- 2002-11-24 Petr Baudis <pasky@ucw.cz>15751575- Randy Dunlap <randy.dunlap@verizon.net>15571557+15581558+2005-10-19 Randy Dunlap <rdunlap@xenotime.net>15591559+ Lots of typos, whitespace, some reformatting.1576156015771561TODO:15781562
···53535454 /* Force reset of DWGCTL on G400 (eliminates clip disable bit).5555 */5656- if (dev_priv->chipset == MGA_CARD_TYPE_G400) {5656+ if (dev_priv->chipset >= MGA_CARD_TYPE_G400) {5757 DMA_BLOCK(MGA_DWGCTL, ctx->dwgctl,5858 MGA_LEN + MGA_EXEC, 0x80000000,5959 MGA_DWGCTL, ctx->dwgctl,
+11-10
drivers/infiniband/hw/mthca/mthca_eq.c
···396396 writel(dev->eq_table.clr_mask, dev->eq_table.clr_int);397397398398 ecr = readl(dev->eq_regs.tavor.ecr_base + 4);399399- if (ecr) {400400- writel(ecr, dev->eq_regs.tavor.ecr_base +401401- MTHCA_ECR_CLR_BASE - MTHCA_ECR_BASE + 4);399399+ if (!ecr)400400+ return IRQ_NONE;402401403403- for (i = 0; i < MTHCA_NUM_EQ; ++i)404404- if (ecr & dev->eq_table.eq[i].eqn_mask &&405405- mthca_eq_int(dev, &dev->eq_table.eq[i])) {402402+ writel(ecr, dev->eq_regs.tavor.ecr_base +403403+ MTHCA_ECR_CLR_BASE - MTHCA_ECR_BASE + 4);404404+405405+ for (i = 0; i < MTHCA_NUM_EQ; ++i)406406+ if (ecr & dev->eq_table.eq[i].eqn_mask) {407407+ if (mthca_eq_int(dev, &dev->eq_table.eq[i]))406408 tavor_set_eq_ci(dev, &dev->eq_table.eq[i],407409 dev->eq_table.eq[i].cons_index);408408- tavor_eq_req_not(dev, dev->eq_table.eq[i].eqn);409409- }410410- }410410+ tavor_eq_req_not(dev, dev->eq_table.eq[i].eqn);411411+ }411412412412- return IRQ_RETVAL(ecr);413413+ return IRQ_HANDLED;413414}414415415416static irqreturn_t mthca_tavor_msi_x_interrupt(int irq, void *eq_ptr,
-1
drivers/media/video/Kconfig
···262262 depends on VIDEO_SAA7134 && DVB_CORE263263 select VIDEO_BUF_DVB264264 select DVB_MT352265265- select DVB_CX22702266265 select DVB_TDA1004X267266 ---help---268267 This adds support for DVB cards based on the
···241241DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_868, quirk_s3_64M );242242DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_968, quirk_s3_64M );243243244244-static void __devinit quirk_io_region(struct pci_dev *dev, unsigned region, unsigned size, int nr)244244+static void __devinit quirk_io_region(struct pci_dev *dev, unsigned region,245245+ unsigned size, int nr, const char *name)245246{246247 region &= ~(size-1);247248 if (region) {···260259 pcibios_bus_to_resource(dev, res, &bus_region);261260262261 pci_claim_resource(dev, nr);262262+ printk("PCI quirk: region %04x-%04x claimed by %s\n", region, region + size - 1, name);263263 }264264} 265265···293291 u16 region;294292295293 pci_read_config_word(dev, 0xE0, ®ion);296296- quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES);294294+ quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES, "ali7101 ACPI");297295 pci_read_config_word(dev, 0xE2, ®ion);298298- quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1);296296+ quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1, "ali7101 SMB");299297}300298DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101, quirk_ali7101_acpi );299299+300300+static void piix4_io_quirk(struct pci_dev *dev, const char *name, unsigned int port, unsigned int enable)301301+{302302+ u32 devres;303303+ u32 mask, size, base;304304+305305+ pci_read_config_dword(dev, port, &devres);306306+ if ((devres & enable) != enable)307307+ return;308308+ mask = (devres >> 16) & 15;309309+ base = devres & 0xffff;310310+ size = 16;311311+ for (;;) {312312+ unsigned bit = size >> 1;313313+ if ((bit & mask) == bit)314314+ break;315315+ size = bit;316316+ }317317+ /*318318+ * For now we only print it out. Eventually we'll want to319319+ * reserve it (at least if it's in the 0x1000+ range), but320320+ * let's get enough confirmation reports first. 321321+ */322322+ base &= -size;323323+ printk("%s PIO at %04x-%04x\n", name, base, base + size - 1);324324+}325325+326326+static void piix4_mem_quirk(struct pci_dev *dev, const char *name, unsigned int port, unsigned int enable)327327+{328328+ u32 devres;329329+ u32 mask, size, base;330330+331331+ pci_read_config_dword(dev, port, &devres);332332+ if ((devres & enable) != enable)333333+ return;334334+ base = devres & 0xffff0000;335335+ mask = (devres & 0x3f) << 16;336336+ size = 128 << 16;337337+ for (;;) {338338+ unsigned bit = size >> 1;339339+ if ((bit & mask) == bit)340340+ break;341341+ size = bit;342342+ }343343+ /*344344+ * For now we only print it out. Eventually we'll want to345345+ * reserve it, but let's get enough confirmation reports first. 346346+ */347347+ base &= -size;348348+ printk("%s MMIO at %04x-%04x\n", name, base, base + size - 1);349349+}301350302351/*303352 * PIIX4 ACPI: Two IO regions pointed to by longwords at304353 * 0x40 (64 bytes of ACPI registers)305354 * 0x90 (32 bytes of SMB registers)355355+ * and a few strange programmable PIIX4 device resources.306356 */307357static void __devinit quirk_piix4_acpi(struct pci_dev *dev)308358{309309- u32 region;359359+ u32 region, res_a;310360311361 pci_read_config_dword(dev, 0x40, ®ion);312312- quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES);362362+ quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES, "PIIX4 ACPI");313363 pci_read_config_dword(dev, 0x90, ®ion);314314- quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1);364364+ quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1, "PIIX4 SMB");365365+366366+ /* Device resource A has enables for some of the other ones */367367+ pci_read_config_dword(dev, 0x5c, &res_a);368368+369369+ piix4_io_quirk(dev, "PIIX4 devres B", 0x60, 3 << 21);370370+ piix4_io_quirk(dev, "PIIX4 devres C", 0x64, 3 << 21);371371+372372+ /* Device resource D is just bitfields for static resources */373373+374374+ /* Device 12 enabled? */375375+ if (res_a & (1 << 29)) {376376+ piix4_io_quirk(dev, "PIIX4 devres E", 0x68, 1 << 20);377377+ piix4_mem_quirk(dev, "PIIX4 devres F", 0x6c, 1 << 7);378378+ }379379+ /* Device 13 enabled? */380380+ if (res_a & (1 << 30)) {381381+ piix4_io_quirk(dev, "PIIX4 devres G", 0x70, 1 << 20);382382+ piix4_mem_quirk(dev, "PIIX4 devres H", 0x74, 1 << 7);383383+ }384384+ piix4_io_quirk(dev, "PIIX4 devres I", 0x78, 1 << 20);385385+ piix4_io_quirk(dev, "PIIX4 devres J", 0x7c, 1 << 20);315386}316387DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4_acpi );317388···398323 u32 region;399324400325 pci_read_config_dword(dev, 0x40, ®ion);401401- quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES);326326+ quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES, "ICH4 ACPI/GPIO/TCO");402327403328 pci_read_config_dword(dev, 0x58, ®ion);404404- quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES+1);329329+ quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES+1, "ICH4 GPIO");405330}406331DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0, quirk_ich4_lpc_acpi );407332DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0, quirk_ich4_lpc_acpi );···427352 if (rev & 0x10) {428353 pci_read_config_dword(dev, 0x48, ®ion);429354 region &= PCI_BASE_ADDRESS_IO_MASK;430430- quirk_io_region(dev, region, 256, PCI_BRIDGE_RESOURCES);355355+ quirk_io_region(dev, region, 256, PCI_BRIDGE_RESOURCES, "vt82c586 ACPI");431356 }432357}433358DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_vt82c586_acpi );···447372448373 pci_read_config_word(dev, 0x70, &hm);449374 hm &= PCI_BASE_ADDRESS_IO_MASK;450450- quirk_io_region(dev, hm, 128, PCI_BRIDGE_RESOURCES + 1);375375+ quirk_io_region(dev, hm, 128, PCI_BRIDGE_RESOURCES + 1, "vt82c868 HW-mon");451376452377 pci_read_config_dword(dev, 0x90, &smb);453378 smb &= PCI_BASE_ADDRESS_IO_MASK;454454- quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 2);379379+ quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 2, "vt82c868 SMB");455380}456381DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_vt82c686_acpi );457382···466391467392 pci_read_config_word(dev, 0x88, &pm);468393 pm &= PCI_BASE_ADDRESS_IO_MASK;469469- quirk_io_region(dev, pm, 128, PCI_BRIDGE_RESOURCES);394394+ quirk_io_region(dev, pm, 128, PCI_BRIDGE_RESOURCES, "vt8235 PM");470395471396 pci_read_config_word(dev, 0xd0, &smb);472397 smb &= PCI_BASE_ADDRESS_IO_MASK;473473- quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 1);398398+ quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 1, "vt8235 SMB");474399}475400DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8235, quirk_vt8235_acpi);476401
+1-1
drivers/pci/setup-bus.c
···4040 * FIXME: IO should be max 256 bytes. However, since we may4141 * have a P2P bridge below a cardbus bridge, we need 4K.4242 */4343-#define CARDBUS_IO_SIZE (4*1024)4343+#define CARDBUS_IO_SIZE (256)4444#define CARDBUS_MEM_SIZE (32*1024*1024)45454646static void __devinit
···242242 fb_info->var.yres_virtual);243243}244244245245+static ssize_t show_stride(struct class_device *class_device, char *buf)246246+{247247+ struct fb_info *fb_info =248248+ (struct fb_info *)class_get_devdata(class_device);249249+ return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->fix.line_length);250250+}251251+245252/* Format for cmap is "%02x%c%4x%4x%4x\n" */246253/* %02x entry %c transp %4x red %4x blue %4x green \n */247254/* 256 rows at 16 chars equals 4096, the normal page size */···439432 __ATTR(pan, S_IRUGO|S_IWUSR, show_pan, store_pan),440433 __ATTR(virtual_size, S_IRUGO|S_IWUSR, show_virtual, store_virtual),441434 __ATTR(name, S_IRUGO, show_name, NULL),435435+ __ATTR(stride, S_IRUGO, show_stride, NULL),442436};443437444438int fb_init_class_device(struct fb_info *fb_info)
+6
fs/aio.c
···13971397 if (unlikely(!access_ok(VERIFY_WRITE, kiocb->ki_buf,13981398 kiocb->ki_left)))13991399 break;14001400+ ret = security_file_permission(file, MAY_READ);14011401+ if (unlikely(ret))14021402+ break;14001403 ret = -EINVAL;14011404 if (file->f_op->aio_read)14021405 kiocb->ki_retry = aio_pread;···14111408 ret = -EFAULT;14121409 if (unlikely(!access_ok(VERIFY_READ, kiocb->ki_buf,14131410 kiocb->ki_left)))14111411+ break;14121412+ ret = security_file_permission(file, MAY_WRITE);14131413+ if (unlikely(ret))14141414 break;14151415 ret = -EINVAL;14161416 if (file->f_op->aio_write)
+1
fs/inotify.c
···176176 if (atomic_dec_and_test(&dev->count)) {177177 atomic_dec(&dev->user->inotify_devs);178178 free_uid(dev->user);179179+ idr_destroy(&dev->idr);179180 kfree(dev);180181 }181182}
···254254{255255 if (skb->protocol == ntohs(ETH_P_802_2))256256 memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);257257- else if (skb->protocol == ntohs(ETH_P_TR_802_2))257257+ else if (skb->protocol == ntohs(ETH_P_TR_802_2)) {258258 memcpy(sa, tr_hdr(skb)->saddr, ETH_ALEN);259259+ *sa &= 0x7F;260260+ }259261}260262261263/**
+1-8
kernel/exit.c
···825825826826 tsk->flags |= PF_EXITING;827827828828- /*829829- * Make sure we don't try to process any timer firings830830- * while we are already exiting.831831- */832832- tsk->it_virt_expires = cputime_zero;833833- tsk->it_prof_expires = cputime_zero;834834- tsk->it_sched_expires = 0;835835-836828 if (unlikely(in_atomic()))837829 printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",838830 current->comm, current->pid,···835843 group_dead = atomic_dec_and_test(&tsk->signal->live);836844 if (group_dead) {837845 del_timer_sync(&tsk->signal->real_timer);846846+ exit_itimers(tsk->signal);838847 acct_process(code);839848 }840849 exit_mm(tsk);
+67-52
kernel/posix-cpu-timers.c
···380380int posix_cpu_timer_del(struct k_itimer *timer)381381{382382 struct task_struct *p = timer->it.cpu.task;383383+ int ret = 0;383384384384- if (timer->it.cpu.firing)385385- return TIMER_RETRY;385385+ if (likely(p != NULL)) {386386+ read_lock(&tasklist_lock);387387+ if (unlikely(p->signal == NULL)) {388388+ /*389389+ * We raced with the reaping of the task.390390+ * The deletion should have cleared us off the list.391391+ */392392+ BUG_ON(!list_empty(&timer->it.cpu.entry));393393+ } else {394394+ spin_lock(&p->sighand->siglock);395395+ if (timer->it.cpu.firing)396396+ ret = TIMER_RETRY;397397+ else398398+ list_del(&timer->it.cpu.entry);399399+ spin_unlock(&p->sighand->siglock);400400+ }401401+ read_unlock(&tasklist_lock);386402387387- if (unlikely(p == NULL))388388- return 0;389389-390390- spin_lock(&p->sighand->siglock);391391- if (!list_empty(&timer->it.cpu.entry)) {392392- /*393393- * Take us off the task's timer list. We don't need to394394- * take tasklist_lock and check for the task being reaped.395395- * If it was reaped, it already called posix_cpu_timers_exit396396- * and posix_cpu_timers_exit_group to clear all the timers397397- * that pointed to it.398398- */399399- list_del(&timer->it.cpu.entry);400400- put_task_struct(p);403403+ if (!ret)404404+ put_task_struct(p);401405 }402402- spin_unlock(&p->sighand->siglock);403406404404- return 0;407407+ return ret;405408}406409407410/*···421418 cputime_t ptime = cputime_add(utime, stime);422419423420 list_for_each_entry_safe(timer, next, head, entry) {424424- put_task_struct(timer->task);425425- timer->task = NULL;426421 list_del_init(&timer->entry);427422 if (cputime_lt(timer->expires.cpu, ptime)) {428423 timer->expires.cpu = cputime_zero;···432431433432 ++head;434433 list_for_each_entry_safe(timer, next, head, entry) {435435- put_task_struct(timer->task);436436- timer->task = NULL;437434 list_del_init(&timer->entry);438435 if (cputime_lt(timer->expires.cpu, utime)) {439436 timer->expires.cpu = cputime_zero;···443444444445 ++head;445446 list_for_each_entry_safe(timer, next, head, entry) {446446- put_task_struct(timer->task);447447- timer->task = NULL;448447 list_del_init(&timer->entry);449448 if (timer->expires.sched < sched_time) {450449 timer->expires.sched = 0;···485488 unsigned long long ns, nsleft;486489 struct task_struct *t = p;487490 unsigned int nthreads = atomic_read(&p->signal->live);491491+492492+ if (!nthreads)493493+ return;488494489495 switch (clock_idx) {490496 default:···730730 * Disarm any old timer after extracting its expiry time.731731 */732732 BUG_ON(!irqs_disabled());733733+734734+ ret = 0;733735 spin_lock(&p->sighand->siglock);734736 old_expires = timer->it.cpu.expires;735735- list_del_init(&timer->it.cpu.entry);737737+ if (unlikely(timer->it.cpu.firing)) {738738+ timer->it.cpu.firing = -1;739739+ ret = TIMER_RETRY;740740+ } else741741+ list_del_init(&timer->it.cpu.entry);736742 spin_unlock(&p->sighand->siglock);737743738744 /*···786780 }787781 }788782789789- if (unlikely(timer->it.cpu.firing)) {783783+ if (unlikely(ret)) {790784 /*791785 * We are colliding with the timer actually firing.792786 * Punt after filling in the timer's old value, and···794788 * it as an overrun (thanks to bump_cpu_timer above).795789 */796790 read_unlock(&tasklist_lock);797797- timer->it.cpu.firing = -1;798798- ret = TIMER_RETRY;799791 goto out;800792 }801793···959955static void check_thread_timers(struct task_struct *tsk,960956 struct list_head *firing)961957{958958+ int maxfire;962959 struct list_head *timers = tsk->cpu_timers;963960961961+ maxfire = 20;964962 tsk->it_prof_expires = cputime_zero;965963 while (!list_empty(timers)) {966964 struct cpu_timer_list *t = list_entry(timers->next,967965 struct cpu_timer_list,968966 entry);969969- if (cputime_lt(prof_ticks(tsk), t->expires.cpu)) {967967+ if (!--maxfire || cputime_lt(prof_ticks(tsk), t->expires.cpu)) {970968 tsk->it_prof_expires = t->expires.cpu;971969 break;972970 }···977971 }978972979973 ++timers;974974+ maxfire = 20;980975 tsk->it_virt_expires = cputime_zero;981976 while (!list_empty(timers)) {982977 struct cpu_timer_list *t = list_entry(timers->next,983978 struct cpu_timer_list,984979 entry);985985- if (cputime_lt(virt_ticks(tsk), t->expires.cpu)) {980980+ if (!--maxfire || cputime_lt(virt_ticks(tsk), t->expires.cpu)) {986981 tsk->it_virt_expires = t->expires.cpu;987982 break;988983 }···992985 }993986994987 ++timers;988988+ maxfire = 20;995989 tsk->it_sched_expires = 0;996990 while (!list_empty(timers)) {997991 struct cpu_timer_list *t = list_entry(timers->next,998992 struct cpu_timer_list,999993 entry);10001000- if (tsk->sched_time < t->expires.sched) {994994+ if (!--maxfire || tsk->sched_time < t->expires.sched) {1001995 tsk->it_sched_expires = t->expires.sched;1002996 break;1003997 }···10151007static void check_process_timers(struct task_struct *tsk,10161008 struct list_head *firing)10171009{10101010+ int maxfire;10181011 struct signal_struct *const sig = tsk->signal;10191012 cputime_t utime, stime, ptime, virt_expires, prof_expires;10201013 unsigned long long sched_time, sched_expires;···10481039 } while (t != tsk);10491040 ptime = cputime_add(utime, stime);1050104110421042+ maxfire = 20;10511043 prof_expires = cputime_zero;10521044 while (!list_empty(timers)) {10531045 struct cpu_timer_list *t = list_entry(timers->next,10541046 struct cpu_timer_list,10551047 entry);10561056- if (cputime_lt(ptime, t->expires.cpu)) {10481048+ if (!--maxfire || cputime_lt(ptime, t->expires.cpu)) {10571049 prof_expires = t->expires.cpu;10581050 break;10591051 }···10631053 }1064105410651055 ++timers;10561056+ maxfire = 20;10661057 virt_expires = cputime_zero;10671058 while (!list_empty(timers)) {10681059 struct cpu_timer_list *t = list_entry(timers->next,10691060 struct cpu_timer_list,10701061 entry);10711071- if (cputime_lt(utime, t->expires.cpu)) {10621062+ if (!--maxfire || cputime_lt(utime, t->expires.cpu)) {10721063 virt_expires = t->expires.cpu;10731064 break;10741065 }···10781067 }1079106810801069 ++timers;10701070+ maxfire = 20;10811071 sched_expires = 0;10821072 while (!list_empty(timers)) {10831073 struct cpu_timer_list *t = list_entry(timers->next,10841074 struct cpu_timer_list,10851075 entry);10861086- if (sched_time < t->expires.sched) {10761076+ if (!--maxfire || sched_time < t->expires.sched) {10871077 sched_expires = t->expires.sched;10881078 break;10891079 }···11661154 cputime_t prof_left, virt_left, ticks;11671155 unsigned long long sched_left, sched;11681156 const unsigned int nthreads = atomic_read(&sig->live);11571157+11581158+ if (!nthreads)11591159+ return;1169116011701161 prof_left = cputime_sub(prof_expires, utime);11711162 prof_left = cputime_sub(prof_left, stime);···1295128012961281#undef UNEXPIRED1297128212981298- BUG_ON(tsk->exit_state);12991299-13001283 /*13011284 * Double-check with locks held.13021285 */13031286 read_lock(&tasklist_lock);13041304- spin_lock(&tsk->sighand->siglock);12871287+ if (likely(tsk->signal != NULL)) {12881288+ spin_lock(&tsk->sighand->siglock);1305128913061306- /*13071307- * Here we take off tsk->cpu_timers[N] and tsk->signal->cpu_timers[N]13081308- * all the timers that are firing, and put them on the firing list.13091309- */13101310- check_thread_timers(tsk, &firing);13111311- check_process_timers(tsk, &firing);12901290+ /*12911291+ * Here we take off tsk->cpu_timers[N] and tsk->signal->cpu_timers[N]12921292+ * all the timers that are firing, and put them on the firing list.12931293+ */12941294+ check_thread_timers(tsk, &firing);12951295+ check_process_timers(tsk, &firing);1312129613131313- /*13141314- * We must release these locks before taking any timer's lock.13151315- * There is a potential race with timer deletion here, as the13161316- * siglock now protects our private firing list. We have set13171317- * the firing flag in each timer, so that a deletion attempt13181318- * that gets the timer lock before we do will give it up and13191319- * spin until we've taken care of that timer below.13201320- */13211321- spin_unlock(&tsk->sighand->siglock);12971297+ /*12981298+ * We must release these locks before taking any timer's lock.12991299+ * There is a potential race with timer deletion here, as the13001300+ * siglock now protects our private firing list. We have set13011301+ * the firing flag in each timer, so that a deletion attempt13021302+ * that gets the timer lock before we do will give it up and13031303+ * spin until we've taken care of that timer below.13041304+ */13051305+ spin_unlock(&tsk->sighand->siglock);13061306+ }13221307 read_unlock(&tasklist_lock);1323130813241309 /*
+1-1
kernel/posix-timers.c
···11571157}1158115811591159/*11601160- * This is called by __exit_signal, only when there are no more11601160+ * This is called by do_exit or de_thread, only when there are no more11611161 * references to the shared signal_struct.11621162 */11631163void exit_itimers(struct signal_struct *sig)
+1-13
kernel/signal.c
···397397 flush_sigqueue(&tsk->pending);398398 if (sig) {399399 /*400400- * We are cleaning up the signal_struct here. We delayed401401- * calling exit_itimers until after flush_sigqueue, just in402402- * case our thread-local pending queue contained a queued403403- * timer signal that would have been cleared in404404- * exit_itimers. When that called sigqueue_free, it would405405- * attempt to re-take the tasklist_lock and deadlock. This406406- * can never happen if we ensure that all queues the407407- * timer's signal might be queued on have been flushed408408- * first. The shared_pending queue, and our own pending409409- * queue are the only queues the timer could be on, since410410- * there are no other threads left in the group and timer411411- * signals are constrained to threads inside the group.400400+ * We are cleaning up the signal_struct here.412401 */413413- exit_itimers(sig);414402 exit_thread_group_keys(sig);415403 kmem_cache_free(signal_cachep, sig);416404 }
+13
lib/idr.c
···346346EXPORT_SYMBOL(idr_remove);347347348348/**349349+ * idr_destroy - release all cached layers within an idr tree350350+ * idp: idr handle351351+ */352352+void idr_destroy(struct idr *idp)353353+{354354+ while (idp->id_free_cnt) {355355+ struct idr_layer *p = alloc_layer(idp);356356+ kmem_cache_free(idr_layer_cache, p);357357+ }358358+}359359+EXPORT_SYMBOL(idr_destroy);360360+361361+/**349362 * idr_find - return pointer for given id350363 * @idp: idr handle351364 * @id: lookup key
+22
mm/hugetlb.c
···394394 return ret;395395}396396397397+/*398398+ * On ia64 at least, it is possible to receive a hugetlb fault from a399399+ * stale zero entry left in the TLB from earlier hardware prefetching.400400+ * Low-level arch code should already have flushed the stale entry as401401+ * part of its fault handling, but we do need to accept this minor fault402402+ * and return successfully. Whereas the "normal" case is that this is403403+ * an access to a hugetlb page which has been truncated off since mmap.404404+ */405405+int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,406406+ unsigned long address, int write_access)407407+{408408+ int ret = VM_FAULT_SIGBUS;409409+ pte_t *pte;410410+411411+ spin_lock(&mm->page_table_lock);412412+ pte = huge_pte_offset(mm, address);413413+ if (pte && !pte_none(*pte))414414+ ret = VM_FAULT_MINOR;415415+ spin_unlock(&mm->page_table_lock);416416+ return ret;417417+}418418+397419int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,398420 struct page **pages, struct vm_area_struct **vmas,399421 unsigned long *position, int *length, int i)
+2-12
mm/memory.c
···2045204520462046 inc_page_state(pgfault);2047204720482048- if (unlikely(is_vm_hugetlb_page(vma))) {20492049- if (valid_hugetlb_file_off(vma, address))20502050- /* We get here only if there was a stale(zero) TLB entry 20512051- * (because of HW prefetching). 20522052- * Low-level arch code (if needed) should have already20532053- * purged the stale entry as part of this fault handling. 20542054- * Here we just return.20552055- */20562056- return VM_FAULT_MINOR; 20572057- else20582058- return VM_FAULT_SIGBUS; /* mapping truncation does this. */20592059- }20482048+ if (unlikely(is_vm_hugetlb_page(vma)))20492049+ return hugetlb_fault(mm, vma, address, write_access);2060205020612051 /*20622052 * We need the page table lock to synchronize with kswapd
+3-2
net/802/tr.c
···340340 unsigned int hash, rii_p = 0;341341 unsigned long flags;342342 struct rif_cache *entry;343343-343343+ unsigned char saddr0;344344345345 spin_lock_irqsave(&rif_lock, flags);346346+ saddr0 = trh->saddr[0];346347347348 /*348349 * Firstly see if the entry exists···396395 entry->rcf = trh->rcf & htons((unsigned short)~TR_RCF_BROADCAST_MASK);397396 memcpy(&(entry->rseg[0]),&(trh->rseg[0]),8*sizeof(unsigned short));398397 entry->local_ring = 0;399399- trh->saddr[0]|=TR_RII; /* put the routing indicator back for tcpdump */400398 }401399 else402400 {···422422 } 423423 entry->last_used=jiffies; 424424 }425425+ trh->saddr[0]=saddr0; /* put the routing indicator back for tcpdump */425426 spin_unlock_irqrestore(&rif_lock, flags);426427}427428
+16-32
net/core/neighbour.c
···175175 }176176}177177178178-void neigh_changeaddr(struct neigh_table *tbl, struct net_device *dev)178178+static void neigh_flush_dev(struct neigh_table *tbl, struct net_device *dev)179179{180180 int i;181181-182182- write_lock_bh(&tbl->lock);183183-184184- for (i=0; i <= tbl->hash_mask; i++) {185185- struct neighbour *n, **np;186186-187187- np = &tbl->hash_buckets[i];188188- while ((n = *np) != NULL) {189189- if (dev && n->dev != dev) {190190- np = &n->next;191191- continue;192192- }193193- *np = n->next;194194- write_lock_bh(&n->lock);195195- n->dead = 1;196196- neigh_del_timer(n);197197- write_unlock_bh(&n->lock);198198- neigh_release(n);199199- }200200- }201201-202202- write_unlock_bh(&tbl->lock);203203-}204204-205205-int neigh_ifdown(struct neigh_table *tbl, struct net_device *dev)206206-{207207- int i;208208-209209- write_lock_bh(&tbl->lock);210181211182 for (i = 0; i <= tbl->hash_mask; i++) {212183 struct neighbour *n, **np = &tbl->hash_buckets[i];···214243 neigh_release(n);215244 }216245 }246246+}217247248248+void neigh_changeaddr(struct neigh_table *tbl, struct net_device *dev)249249+{250250+ write_lock_bh(&tbl->lock);251251+ neigh_flush_dev(tbl, dev);252252+ write_unlock_bh(&tbl->lock);253253+}254254+255255+int neigh_ifdown(struct neigh_table *tbl, struct net_device *dev)256256+{257257+ write_lock_bh(&tbl->lock);258258+ neigh_flush_dev(tbl, dev);218259 pneigh_ifdown(tbl, dev);219260 write_unlock_bh(&tbl->lock);220261···715732 if (unlikely(mod_timer(&n->timer, when))) {716733 printk("NEIGH: BUG, double timer add, state is %x\n",717734 n->nud_state);735735+ dump_stack();718736 }719737}720738···799815 }800816801817 if (neigh->nud_state & NUD_IN_TIMER) {802802- neigh_hold(neigh);803818 if (time_before(next, jiffies + HZ/2))804819 next = jiffies + HZ/2;805805- neigh_add_timer(neigh, next);820820+ if (!mod_timer(&neigh->timer, next))821821+ neigh_hold(neigh);806822 }807823 if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) {808824 struct sk_buff *skb = skb_peek(&neigh->arp_queue);
···62626363 skb->h.raw = skb_push(skb, dccp_header_size);6464 dh = dccp_hdr(skb);6565- /*6666- * Data packets are not cloned as they are never retransmitted6767- */6868- if (skb_cloned(skb))6565+6666+ if (!skb->sk)6967 skb_set_owner_w(skb, sk);70687169 /* Build DCCP header and checksum it. */···100102101103 DCCP_INC_STATS(DCCP_MIB_OUTSEGS);102104105105+ memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));103106 err = ip_queue_xmit(skb, 0);104107 if (err <= 0)105108 return err;···242243243244 err = dccp_transmit_skb(sk, skb);244245 ccid_hc_tx_packet_sent(dp->dccps_hc_tx_ccid, sk, 0, len);245245- }246246+ } else247247+ kfree_skb(skb);246248247249 return err;248250}
-2
net/dccp/proto.c
···402402 * This bug was _quickly_ found & fixed by just looking at an OSTRA403403 * generated callgraph 8) -acme404404 */405405- if (rc != 0)406406- goto out_discard;407405out_release:408406 release_sock(sk);409407 return rc ? : len;
···650650 }651651 if (lrt) kfree(lrt);652652653653- for (i = 0; i < p->p_types.nprim; i++)654654- ebitmap_destroy(&p->type_attr_map[i]);653653+ if (p->type_attr_map) {654654+ for (i = 0; i < p->p_types.nprim; i++)655655+ ebitmap_destroy(&p->type_attr_map[i]);656656+ }655657 kfree(p->type_attr_map);656658657659 return;
+4-2
sound/core/init.c
···828828 card = get_snd_generic_card(dev);829829 if (card->power_state == SNDRV_CTL_POWER_D3hot)830830 return 0;831831- card->pm_suspend(card, PMSG_SUSPEND);831831+ if (card->pm_suspend)832832+ card->pm_suspend(card, PMSG_SUSPEND);832833 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);833834 return 0;834835}···844843 card = get_snd_generic_card(dev);845844 if (card->power_state == SNDRV_CTL_POWER_D0)846845 return 0;847847- card->pm_resume(card);846846+ if (card->pm_suspend)847847+ card->pm_resume(card);848848 snd_power_change_state(card, SNDRV_CTL_POWER_D0);849849 return 0;850850}