Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'master'

+684 -499
+258 -234
Documentation/kernel-parameters.txt
··· 17 17 18 18 usbcore.blinkenlights=1 19 19 20 - The text in square brackets at the beginning of the description state the 20 + The text in square brackets at the beginning of the description states the 21 21 restrictions on the kernel for the said kernel parameter to be valid. The 22 22 restrictions referred to are that the relevant option is valid if: 23 23 ··· 27 27 APM Advanced Power Management support is enabled. 28 28 AX25 Appropriate AX.25 support is enabled. 29 29 CD Appropriate CD support is enabled. 30 - DEVFS devfs support is enabled. 31 - DRM Direct Rendering Management support is enabled. 30 + DEVFS devfs support is enabled. 31 + DRM Direct Rendering Management support is enabled. 32 32 EDD BIOS Enhanced Disk Drive Services (EDD) is enabled 33 33 EFI EFI Partitioning (GPT) is enabled 34 34 EIDE EIDE/ATAPI support is enabled. ··· 71 71 SERIAL Serial support is enabled. 72 72 SMP The kernel is an SMP kernel. 73 73 SPARC Sparc architecture is enabled. 74 - SWSUSP Software suspension is enabled. 74 + SWSUSP Software suspend is enabled. 75 75 TS Appropriate touchscreen support is enabled. 76 76 USB USB support is enabled. 77 77 USBHID USB Human Interface Device support is enabled. ··· 105 105 See header of drivers/scsi/53c7xx.c. 106 106 See also Documentation/scsi/ncr53c7xx.txt. 107 107 108 - acpi= [HW,ACPI] Advanced Configuration and Power Interface 109 - Format: { force | off | ht | strict } 108 + acpi= [HW,ACPI] Advanced Configuration and Power Interface 109 + Format: { force | off | ht | strict | noirq } 110 110 force -- enable ACPI if default was off 111 111 off -- disable ACPI if default was on 112 112 noirq -- do not use ACPI for IRQ routing 113 113 ht -- run only enough ACPI to enable Hyper Threading 114 - strict -- Be less tolerant of platforms that are not 114 + strict -- Be less tolerant of platforms that are not 115 115 strictly ACPI specification compliant. 116 116 117 117 See also Documentation/pm.txt, pci=noacpi ··· 119 119 acpi_sleep= [HW,ACPI] Sleep options 120 120 Format: { s3_bios, s3_mode } 121 121 See Documentation/power/video.txt 122 - 122 + 123 123 acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode 124 - Format: { level | edge | high | low } 124 + Format: { level | edge | high | low } 125 125 126 - acpi_irq_balance [HW,ACPI] ACPI will balance active IRQs 127 - default in APIC mode 126 + acpi_irq_balance [HW,ACPI] 127 + ACPI will balance active IRQs 128 + default in APIC mode 128 129 129 - acpi_irq_nobalance [HW,ACPI] ACPI will not move active IRQs (default) 130 - default in PIC mode 130 + acpi_irq_nobalance [HW,ACPI] 131 + ACPI will not move active IRQs (default) 132 + default in PIC mode 131 133 132 - acpi_irq_pci= [HW,ACPI] If irq_balance, Clear listed IRQs for use by PCI 134 + acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for 135 + use by PCI 133 136 Format: <irq>,<irq>... 134 137 135 - acpi_irq_isa= [HW,ACPI] If irq_balance, Mark listed IRQs used by ISA 138 + acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA 136 139 Format: <irq>,<irq>... 137 140 138 141 acpi_osi= [HW,ACPI] empty param disables _OSI ··· 148 145 149 146 acpi_dbg_layer= [HW,ACPI] 150 147 Format: <int> 151 - Each bit of the <int> indicates an acpi debug layer, 148 + Each bit of the <int> indicates an ACPI debug layer, 152 149 1: enable, 0: disable. It is useful for boot time 153 150 debugging. After system has booted up, it can be set 154 151 via /proc/acpi/debug_layer. 155 152 156 153 acpi_dbg_level= [HW,ACPI] 157 154 Format: <int> 158 - Each bit of the <int> indicates an acpi debug level, 155 + Each bit of the <int> indicates an ACPI debug level, 159 156 1: enable, 0: disable. It is useful for boot time 160 157 debugging. After system has booted up, it can be set 161 158 via /proc/acpi/debug_level. ··· 164 161 165 162 acpi_generic_hotkey [HW,ACPI] 166 163 Allow consolidated generic hotkey driver to 167 - over-ride platform specific driver. 164 + override platform specific driver. 168 165 See also Documentation/acpi-hotkey.txt. 169 166 170 167 enable_timer_pin_1 [i386,x86-64] 171 168 Enable PIN 1 of APIC timer 172 - Can be useful to work around chipset bugs (in particular on some ATI chipsets) 169 + Can be useful to work around chipset bugs 170 + (in particular on some ATI chipsets). 173 171 The kernel tries to set a reasonable default. 174 172 175 173 disable_timer_pin_1 [i386,x86-64] ··· 186 182 187 183 adlib= [HW,OSS] 188 184 Format: <io> 189 - 185 + 190 186 advansys= [HW,SCSI] 191 187 See header of drivers/scsi/advansys.c. 192 188 ··· 196 192 aedsp16= [HW,OSS] Audio Excel DSP 16 197 193 Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq> 198 194 See also header of sound/oss/aedsp16.c. 199 - 195 + 200 196 aha152x= [HW,SCSI] 201 197 See Documentation/scsi/aha152x.txt. 202 198 ··· 209 205 aic79xx= [HW,SCSI] 210 206 See Documentation/scsi/aic79xx.txt. 211 207 212 - AM53C974= [HW,SCSI] 213 - Format: <host-scsi-id>,<target-scsi-id>,<max-rate>,<max-offset> 214 - See also header of drivers/scsi/AM53C974.c. 215 - 216 208 amijoy.map= [HW,JOY] Amiga joystick support 217 209 Map of devices attached to JOY0DAT and JOY1DAT 218 210 Format: <a>,<b> ··· 219 219 connected to one of 16 gameports 220 220 Format: <type1>,<type2>,..<type16> 221 221 222 - apc= [HW,SPARC] Power management functions (SPARCstation-4/5 + deriv.) 222 + apc= [HW,SPARC] 223 + Power management functions (SPARCstation-4/5 + deriv.) 223 224 Format: noidle 224 225 Disable APC CPU standby support. SPARCstation-Fox does 225 226 not play well with APC CPU idle - disable it if you have 226 227 APC and your system crashes randomly. 227 228 228 - apic= [APIC,i386] Change the output verbosity whilst booting 229 + apic= [APIC,i386] Change the output verbosity whilst booting 229 230 Format: { quiet (default) | verbose | debug } 230 231 Change the amount of debugging information output 231 232 when initialising the APIC and IO-APIC components. 232 - 233 + 233 234 apm= [APM] Advanced Power Management 234 235 See header of arch/i386/kernel/apm.c. 235 236 236 237 applicom= [HW] 237 238 Format: <mem>,<irq> 238 - 239 + 239 240 arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards 240 241 Format: <io>,<irq>,<nodeID> 241 242 ··· 251 250 252 251 atkbd.reset= [HW] Reset keyboard during initialization 253 252 254 - atkbd.set= [HW] Select keyboard code set 255 - Format: <int> (2 = AT (default) 3 = PS/2) 253 + atkbd.set= [HW] Select keyboard code set 254 + Format: <int> (2 = AT (default), 3 = PS/2) 256 255 257 256 atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar 258 257 keyboards 259 258 260 259 atkbd.softraw= [HW] Choose between synthetic and real raw mode 261 260 Format: <bool> (0 = real, 1 = synthetic (default)) 262 - 263 - atkbd.softrepeat= 264 - [HW] Use software keyboard repeat 261 + 262 + atkbd.softrepeat= [HW] 263 + Use software keyboard repeat 265 264 266 265 autotest [IA64] 267 266 268 267 awe= [HW,OSS] AWE32/SB32/AWE64 wave table synth 269 268 Format: <io>,<memsize>,<isapnp> 270 - 269 + 271 270 aztcd= [HW,CD] Aztech CD268 CDROM driver 272 271 Format: <io>,0x79 (?) 273 272 274 273 baycom_epp= [HW,AX25] 275 274 Format: <io>,<mode> 276 - 275 + 277 276 baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem 278 277 Format: <io>,<mode> 279 278 See header of drivers/net/hamradio/baycom_par.c. 280 279 281 - baycom_ser_fdx= [HW,AX25] BayCom Serial Port AX.25 Modem (Full Duplex Mode) 280 + baycom_ser_fdx= [HW,AX25] 281 + BayCom Serial Port AX.25 Modem (Full Duplex Mode) 282 282 Format: <io>,<irq>,<mode>[,<baud>] 283 283 See header of drivers/net/hamradio/baycom_ser_fdx.c. 284 284 285 - baycom_ser_hdx= [HW,AX25] BayCom Serial Port AX.25 Modem (Half Duplex Mode) 285 + baycom_ser_hdx= [HW,AX25] 286 + BayCom Serial Port AX.25 Modem (Half Duplex Mode) 286 287 Format: <io>,<irq>,<mode> 287 288 See header of drivers/net/hamradio/baycom_ser_hdx.c. 288 289 ··· 295 292 blkmtd_count= 296 293 297 294 bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards) 298 - bttv.radio= Most important insmod options are available as kernel args too. 295 + bttv.radio= Most important insmod options are available as 296 + kernel args too. 299 297 bttv.pll= See Documentation/video4linux/bttv/Insmod-options 300 298 bttv.tuner= and Documentation/video4linux/bttv/CARDLIST 301 299 ··· 322 318 checkreqprot [SELINUX] Set initial checkreqprot flag value. 323 319 Format: { "0" | "1" } 324 320 See security/selinux/Kconfig help text. 325 - 0 -- check protection applied by kernel (includes any implied execute protection). 321 + 0 -- check protection applied by kernel (includes 322 + any implied execute protection). 326 323 1 -- check protection requested by application. 327 324 Default value is set via a kernel config option. 328 - Value can be changed at runtime via /selinux/checkreqprot. 329 - 330 - clock= [BUGS=IA-32, HW] gettimeofday timesource override. 325 + Value can be changed at runtime via 326 + /selinux/checkreqprot. 327 + 328 + clock= [BUGS=IA-32,HW] gettimeofday timesource override. 331 329 Forces specified timesource (if avaliable) to be used 332 - when calculating gettimeofday(). If specicified timesource 333 - is not avalible, it defaults to PIT. 330 + when calculating gettimeofday(). If specicified 331 + timesource is not avalible, it defaults to PIT. 334 332 Format: { pit | tsc | cyclone | pmtmr } 335 333 336 334 hpet= [IA-32,HPET] option to disable HPET and use PIT. ··· 342 336 Format: { auto | [<io>,][<irq>] } 343 337 344 338 com20020= [HW,NET] ARCnet - COM20020 chipset 345 - Format: <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]] 339 + Format: 340 + <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]] 346 341 347 342 com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers) 348 343 Format: <io>[,<irq>] 349 344 350 - com90xx= [HW,NET] ARCnet - COM90xx chipset (memory-mapped buffers) 345 + com90xx= [HW,NET] 346 + ARCnet - COM90xx chipset (memory-mapped buffers) 351 347 Format: <io>[,<irq>[,<memstart>]] 352 348 353 349 condev= [HW,S390] console device 354 350 conmode= 355 - 351 + 356 352 console= [KNL] Output console device and options. 357 353 358 354 tty<n> Use the virtual console device <n>. ··· 375 367 options are the same as for ttyS, above. 376 368 377 369 cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver 378 - Format: <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] 370 + Format: 371 + <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>] 379 372 380 373 cpia_pp= [HW,PPT] 381 374 Format: { parport<nr> | auto | none } ··· 393 384 394 385 cs89x0_media= [HW,NET] 395 386 Format: { rj45 | aui | bnc } 396 - 387 + 397 388 cyclades= [HW,SERIAL] Cyclades multi-serial port adapter. 398 - 399 - dasd= [HW,NET] 389 + 390 + dasd= [HW,NET] 400 391 See header of drivers/s390/block/dasd_devmap.c. 401 392 402 393 db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port ··· 415 406 416 407 dhash_entries= [KNL] 417 408 Set number of hash buckets for dentry cache. 418 - 409 + 419 410 digi= [HW,SERIAL] 420 411 IO parameters + enable/disable command. 421 412 ··· 433 424 434 425 dtc3181e= [HW,SCSI] 435 426 436 - earlyprintk= [IA-32, X86-64] 427 + earlyprintk= [IA-32,X86-64] 437 428 earlyprintk=vga 438 429 earlyprintk=serial[,ttySn[,baudrate]] 439 430 440 - Append ,keep to not disable it when the real console 431 + Append ",keep" to not disable it when the real console 441 432 takes over. 442 433 443 434 Only vga or serial at a time, not both. ··· 460 451 Format: {"of[f]" | "sk[ipmbr]"} 461 452 See comment in arch/i386/boot/edd.S 462 453 463 - eicon= [HW,ISDN] 454 + eicon= [HW,ISDN] 464 455 Format: <id>,<membase>,<irq> 465 456 466 457 eisa_irq_edge= [PARISC,HW] ··· 471 462 arch/i386/kernel/cpu/cpufreq/elanfreq.c. 472 463 473 464 elevator= [IOSCHED] 474 - Format: {"as"|"cfq"|"deadline"|"noop"} 475 - See Documentation/block/as-iosched.txt 476 - and Documentation/block/deadline-iosched.txt for details. 465 + Format: {"as" | "cfq" | "deadline" | "noop"} 466 + See Documentation/block/as-iosched.txt and 467 + Documentation/block/deadline-iosched.txt for details. 468 + 477 469 elfcorehdr= [IA-32] 478 - Specifies physical address of start of kernel core image 479 - elf header. 470 + Specifies physical address of start of kernel core 471 + image elf header. 480 472 See Documentation/kdump.txt for details. 481 473 482 474 enforcing [SELINUX] Set initial enforcing status. ··· 495 485 es1371= [HW,OSS] 496 486 Format: <spdif>,[<nomix>,[<amplifier>]] 497 487 See also header of sound/oss/es1371.c. 498 - 488 + 499 489 ether= [HW,NET] Ethernet cards parameters 500 490 This option is obsoleted by the "netdev=" option, which 501 491 has equivalent usage. See its documentation for details. ··· 536 526 537 527 gus= [HW,OSS] 538 528 Format: <io>,<irq>,<dma>,<dma16> 539 - 529 + 540 530 gvp11= [HW,SCSI] 541 531 542 532 hashdist= [KNL,NUMA] Large hashes allocated during boot 543 533 are distributed across NUMA nodes. Defaults on 544 534 for IA-64, off otherwise. 535 + Format: 0 | 1 (for off | on) 545 536 546 537 hcl= [IA-64] SGI's Hardware Graph compatibility layer 547 538 ··· 606 595 ide?= [HW] (E)IDE subsystem 607 596 Format: ide?=noprobe or chipset specific parameters. 608 597 See Documentation/ide.txt. 609 - 598 + 610 599 idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed 611 600 See Documentation/ide.txt. 612 601 613 602 idle= [HW] 614 603 Format: idle=poll or idle=halt 615 - 604 + 616 605 ihash_entries= [KNL] 617 606 Set number of hash buckets for inode cache. 618 607 ··· 660 649 firmware running. 661 650 662 651 isapnp= [ISAPNP] 663 - Format: <RDP>, <reset>, <pci_scan>, <verbosity> 652 + Format: <RDP>,<reset>,<pci_scan>,<verbosity> 664 653 665 654 isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler. 666 655 Format: <cpu number>,...,<cpu number> ··· 672 661 "number of CPUs in system - 1". 673 662 674 663 This option is the preferred way to isolate CPUs. The 675 - alternative - manually setting the CPU mask of all tasks 676 - in the system can cause problems and suboptimal load 677 - balancer performance. 664 + alternative -- manually setting the CPU mask of all 665 + tasks in the system -- can cause problems and 666 + suboptimal load balancer performance. 678 667 679 668 isp16= [HW,CD] 680 669 Format: <io>,<irq>,<dma>,<setup> 681 670 682 - iucv= [HW,NET] 671 + iucv= [HW,NET] 683 672 684 673 js= [HW,JOY] Analog joystick 685 674 See Documentation/input/joystick.txt. 686 675 687 676 keepinitrd [HW,ARM] 688 677 689 - kstack=N [IA-32, X86-64] Print N words from the kernel stack 678 + kstack=N [IA-32,X86-64] Print N words from the kernel stack 690 679 in oops dumps. 691 680 692 681 l2cr= [PPC] 693 682 694 - lapic [IA-32,APIC] Enable the local APIC even if BIOS disabled it. 683 + lapic [IA-32,APIC] Enable the local APIC even if BIOS 684 + disabled it. 695 685 696 686 lasi= [HW,SCSI] PARISC LASI driver for the 53c700 chip 697 687 Format: addr:<io>,irq:<irq> 698 688 699 - llsc*= [IA64] 700 - See function print_params() in arch/ia64/sn/kernel/llsc4.c. 689 + llsc*= [IA64] See function print_params() in 690 + arch/ia64/sn/kernel/llsc4.c. 701 691 702 692 load_ramdisk= [RAM] List of ramdisks to load from floppy 703 693 See Documentation/ramdisk.txt. ··· 725 713 7 (KERN_DEBUG) debug-level messages 726 714 727 715 log_buf_len=n Sets the size of the printk ring buffer, in bytes. 728 - Format is n, nk, nM. n must be a power of two. The 729 - default is set in kernel config. 716 + Format: { n | nk | nM } 717 + n must be a power of two. The default size 718 + is set in the kernel config file. 730 719 731 720 lp=0 [LP] Specify parallel ports to use, e.g, 732 721 lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses ··· 763 750 ltpc= [NET] 764 751 Format: <io>,<irq>,<dma> 765 752 766 - mac5380= [HW,SCSI] 767 - Format: <can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags> 753 + mac5380= [HW,SCSI] Format: 754 + <can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags> 768 755 769 - mac53c9x= [HW,SCSI] 770 - Format: <num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags> 756 + mac53c9x= [HW,SCSI] Format: 757 + <num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags> 771 758 772 - machvec= [IA64] 773 - Force the use of a particular machine-vector (machvec) in a generic 774 - kernel. Example: machvec=hpzx1_swiotlb 759 + machvec= [IA64] Force the use of a particular machine-vector 760 + (machvec) in a generic kernel. 761 + Example: machvec=hpzx1_swiotlb 775 762 776 - mad16= [HW,OSS] 777 - Format: <io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick> 763 + mad16= [HW,OSS] Format: 764 + <io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick> 778 765 779 766 maui= [HW,OSS] 780 767 Format: <io>,<irq> 781 - 782 - max_loop= [LOOP] Maximum number of loopback devices that can 768 + 769 + max_loop= [LOOP] Maximum number of loopback devices that can 783 770 be mounted 784 771 Format: <1-256> 785 772 ··· 789 776 max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or 790 777 equal to this physical address is ignored. 791 778 792 - max_luns= [SCSI] Maximum number of LUNs to probe 779 + max_luns= [SCSI] Maximum number of LUNs to probe. 793 780 Should be between 1 and 2^32-1. 794 781 795 782 max_report_luns= 796 - [SCSI] Maximum number of LUNs received 783 + [SCSI] Maximum number of LUNs received. 797 784 Should be between 1 and 16384. 798 785 799 786 mca-pentium [BUGS=IA-32] ··· 809 796 810 797 md= [HW] RAID subsystems devices and level 811 798 See Documentation/md.txt. 812 - 799 + 813 800 mdacon= [MDA] 814 801 Format: <first>,<last> 815 802 Specifies range of consoles to be captured by the MDA. 816 - 803 + 817 804 mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory 818 805 Amount of memory to be used when the kernel is not able 819 806 to see the whole system memory or for test. ··· 864 851 MTD_Partition= [MTD] 865 852 Format: <name>,<region-number>,<size>,<offset> 866 853 867 - MTD_Region= [MTD] 868 - Format: <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>] 854 + MTD_Region= [MTD] Format: 855 + <name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>] 869 856 870 857 mtdparts= [MTD] 871 858 See drivers/mtd/cmdline.c. 872 859 873 860 mtouchusb.raw_coordinates= 874 - [HW] Make the MicroTouch USB driver use raw coordinates ('y', default) 875 - or cooked coordinates ('n') 861 + [HW] Make the MicroTouch USB driver use raw coordinates 862 + ('y', default) or cooked coordinates ('n') 876 863 877 864 n2= [NET] SDL Inc. RISCom/N2 synchronous serial card 878 865 ··· 893 880 Format: <irq>,<io>,<mem_start>,<mem_end>,<name> 894 881 Note that mem_start is often overloaded to mean 895 882 something different and driver-specific. 896 - 883 + This usage is only documented in each driver source 884 + file if at all. 885 + 897 886 nfsaddrs= [NFS] 898 887 See Documentation/nfsroot.txt. 899 888 ··· 908 893 emulation library even if a 387 maths coprocessor 909 894 is present. 910 895 911 - noalign [KNL,ARM] 912 - 896 + noalign [KNL,ARM] 897 + 913 898 noapic [SMP,APIC] Tells the kernel to not make use of any 914 899 IOAPICs that may be present in the system. 915 900 ··· 920 905 on "Classic" PPC cores. 921 906 922 907 nocache [ARM] 923 - 908 + 924 909 nodisconnect [HW,SCSI,M68K] Disables SCSI disconnects. 925 910 926 911 noexec [IA-64] 927 912 928 - noexec [IA-32, X86-64] 913 + noexec [IA-32,X86-64] 929 914 noexec=on: enable non-executable mappings (default) 930 915 noexec=off: disable nn-executable mappings 931 916 932 917 nofxsr [BUGS=IA-32] 933 918 934 919 nohlt [BUGS=ARM] 935 - 920 + 936 921 no-hlt [BUGS=IA-32] Tells the kernel that the hlt 937 922 instruction doesn't work correctly and not to 938 923 use it. ··· 963 948 964 949 noresidual [PPC] Don't use residual data on PReP machines. 965 950 966 - noresume [SWSUSP] Disables resume and restore original swap space. 967 - 951 + noresume [SWSUSP] Disables resume and restores original swap 952 + space. 953 + 968 954 no-scroll [VGA] Disables scrollback. 969 955 This is required for the Braillex ib80-piezo Braille 970 956 reader made by F.H. Papenmeier (Germany). ··· 981 965 nousb [USB] Disable the USB subsystem 982 966 983 967 nowb [ARM] 984 - 968 + 985 969 opl3= [HW,OSS] 986 970 Format: <io> 987 971 988 972 opl3sa= [HW,OSS] 989 973 Format: <io>,<irq>,<dma>,<dma2>,<mpu_io>,<mpu_irq> 990 974 991 - opl3sa2= [HW,OSS] 992 - Format: <io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple] 993 - 975 + opl3sa2= [HW,OSS] Format: 976 + <io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple] 977 + 994 978 oprofile.timer= [HW] 995 979 Use timer interrupt instead of performance counters 996 980 ··· 1009 993 Format: <parport#> 1010 994 parkbd.mode= [HW] Parallel port keyboard adapter mode of operation, 1011 995 0 for XT, 1 for AT (default is AT). 1012 - Format: <mode> 996 + Format: <mode> 1013 997 1014 - parport=0 [HW,PPT] Specify parallel ports. 0 disables. 1015 - parport=auto Use 'auto' to force the driver to use 1016 - parport=0xBBB[,IRQ[,DMA]] any IRQ/DMA settings detected (the 1017 - default is to ignore detected IRQ/DMA 1018 - settings because of possible 1019 - conflicts). You can specify the base 1020 - address, IRQ, and DMA settings; IRQ and 1021 - DMA should be numbers, or 'auto' (for 1022 - using detected settings on that 1023 - particular port), or 'nofifo' (to avoid 1024 - using a FIFO even if it is detected). 1025 - Parallel ports are assigned in the 1026 - order they are specified on the command 1027 - line, starting with parport0. 998 + parport= [HW,PPT] Specify parallel ports. 0 disables. 999 + Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] } 1000 + Use 'auto' to force the driver to use any 1001 + IRQ/DMA settings detected (the default is to 1002 + ignore detected IRQ/DMA settings because of 1003 + possible conflicts). You can specify the base 1004 + address, IRQ, and DMA settings; IRQ and DMA 1005 + should be numbers, or 'auto' (for using detected 1006 + settings on that particular port), or 'nofifo' 1007 + (to avoid using a FIFO even if it is detected). 1008 + Parallel ports are assigned in the order they 1009 + are specified on the command line, starting 1010 + with parport0. 1028 1011 1029 - parport_init_mode= 1030 - [HW,PPT] Configure VIA parallel port to 1031 - operate in specific mode. This is 1032 - necessary on Pegasos computer where 1033 - firmware has no options for setting up 1034 - parallel port mode and sets it to 1035 - spp. Currently this function knows 1036 - 686a and 8231 chips. 1012 + parport_init_mode= [HW,PPT] 1013 + Configure VIA parallel port to operate in 1014 + a specific mode. This is necessary on Pegasos 1015 + computer where firmware has no options for setting 1016 + up parallel port mode and sets it to spp. 1017 + Currently this function knows 686a and 8231 chips. 1037 1018 Format: [spp|ps2|epp|ecp|ecpepp] 1038 1019 1039 - pas2= [HW,OSS] 1040 - Format: <io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16> 1041 - 1020 + pas2= [HW,OSS] Format: 1021 + <io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16> 1022 + 1042 1023 pas16= [HW,SCSI] 1043 1024 See header of drivers/scsi/pas16.c. 1044 1025 ··· 1045 1032 See header of drivers/block/paride/pcd.c. 1046 1033 See also Documentation/paride.txt. 1047 1034 1048 - pci=option[,option...] [PCI] various PCI subsystem options: 1049 - off [IA-32] don't probe for the PCI bus 1050 - bios [IA-32] force use of PCI BIOS, don't access 1051 - the hardware directly. Use this if your machine 1052 - has a non-standard PCI host bridge. 1053 - nobios [IA-32] disallow use of PCI BIOS, only direct 1054 - hardware access methods are allowed. Use this 1055 - if you experience crashes upon bootup and you 1056 - suspect they are caused by the BIOS. 1057 - conf1 [IA-32] Force use of PCI Configuration Mechanism 1. 1058 - conf2 [IA-32] Force use of PCI Configuration Mechanism 2. 1059 - nosort [IA-32] Don't sort PCI devices according to 1060 - order given by the PCI BIOS. This sorting is done 1061 - to get a device order compatible with older kernels. 1062 - biosirq [IA-32] Use PCI BIOS calls to get the interrupt 1063 - routing table. These calls are known to be buggy 1064 - on several machines and they hang the machine when used, 1065 - but on other computers it's the only way to get the 1066 - interrupt routing table. Try this option if the kernel 1067 - is unable to allocate IRQs or discover secondary PCI 1068 - buses on your motherboard. 1069 - rom [IA-32] Assign address space to expansion ROMs. 1070 - Use with caution as certain devices share address 1071 - decoders between ROMs and other resources. 1072 - irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be assigned 1073 - automatically to PCI devices. You can make the kernel 1074 - exclude IRQs of your ISA cards this way. 1035 + pci=option[,option...] [PCI] various PCI subsystem options: 1036 + off [IA-32] don't probe for the PCI bus 1037 + bios [IA-32] force use of PCI BIOS, don't access 1038 + the hardware directly. Use this if your machine 1039 + has a non-standard PCI host bridge. 1040 + nobios [IA-32] disallow use of PCI BIOS, only direct 1041 + hardware access methods are allowed. Use this 1042 + if you experience crashes upon bootup and you 1043 + suspect they are caused by the BIOS. 1044 + conf1 [IA-32] Force use of PCI Configuration 1045 + Mechanism 1. 1046 + conf2 [IA-32] Force use of PCI Configuration 1047 + Mechanism 2. 1048 + nosort [IA-32] Don't sort PCI devices according to 1049 + order given by the PCI BIOS. This sorting is 1050 + done to get a device order compatible with 1051 + older kernels. 1052 + biosirq [IA-32] Use PCI BIOS calls to get the interrupt 1053 + routing table. These calls are known to be buggy 1054 + on several machines and they hang the machine 1055 + when used, but on other computers it's the only 1056 + way to get the interrupt routing table. Try 1057 + this option if the kernel is unable to allocate 1058 + IRQs or discover secondary PCI buses on your 1059 + motherboard. 1060 + rom [IA-32] Assign address space to expansion ROMs. 1061 + Use with caution as certain devices share 1062 + address decoders between ROMs and other 1063 + resources. 1064 + irqmask=0xMMMM [IA-32] Set a bit mask of IRQs allowed to be 1065 + assigned automatically to PCI devices. You can 1066 + make the kernel exclude IRQs of your ISA cards 1067 + this way. 1075 1068 pirqaddr=0xAAAAA [IA-32] Specify the physical address 1076 - of the PIRQ table (normally generated 1077 - by the BIOS) if it is outside the 1078 - F0000h-100000h range. 1079 - lastbus=N [IA-32] Scan all buses till bus #N. Can be useful 1080 - if the kernel is unable to find your secondary buses 1081 - and you want to tell it explicitly which ones they are. 1082 - assign-busses [IA-32] Always assign all PCI bus 1083 - numbers ourselves, overriding 1084 - whatever the firmware may have 1085 - done. 1086 - usepirqmask [IA-32] Honor the possible IRQ mask 1087 - stored in the BIOS $PIR table. This is 1088 - needed on some systems with broken 1089 - BIOSes, notably some HP Pavilion N5400 1090 - and Omnibook XE3 notebooks. This will 1091 - have no effect if ACPI IRQ routing is 1092 - enabled. 1093 - noacpi [IA-32] Do not use ACPI for IRQ routing 1094 - or for PCI scanning. 1095 - routeirq Do IRQ routing for all PCI devices. 1096 - This is normally done in pci_enable_device(), 1097 - so this option is a temporary workaround 1098 - for broken drivers that don't call it. 1099 - 1100 - firmware [ARM] Do not re-enumerate the bus but 1101 - instead just use the configuration 1102 - from the bootloader. This is currently 1103 - used on IXP2000 systems where the 1104 - bus has to be configured a certain way 1105 - for adjunct CPUs. 1069 + of the PIRQ table (normally generated 1070 + by the BIOS) if it is outside the 1071 + F0000h-100000h range. 1072 + lastbus=N [IA-32] Scan all buses thru bus #N. Can be 1073 + useful if the kernel is unable to find your 1074 + secondary buses and you want to tell it 1075 + explicitly which ones they are. 1076 + assign-busses [IA-32] Always assign all PCI bus 1077 + numbers ourselves, overriding 1078 + whatever the firmware may have done. 1079 + usepirqmask [IA-32] Honor the possible IRQ mask stored 1080 + in the BIOS $PIR table. This is needed on 1081 + some systems with broken BIOSes, notably 1082 + some HP Pavilion N5400 and Omnibook XE3 1083 + notebooks. This will have no effect if ACPI 1084 + IRQ routing is enabled. 1085 + noacpi [IA-32] Do not use ACPI for IRQ routing 1086 + or for PCI scanning. 1087 + routeirq Do IRQ routing for all PCI devices. 1088 + This is normally done in pci_enable_device(), 1089 + so this option is a temporary workaround 1090 + for broken drivers that don't call it. 1091 + firmware [ARM] Do not re-enumerate the bus but instead 1092 + just use the configuration from the 1093 + bootloader. This is currently used on 1094 + IXP2000 systems where the bus has to be 1095 + configured a certain way for adjunct CPUs. 1106 1096 1107 1097 pcmv= [HW,PCMCIA] BadgePAD 4 1108 1098 ··· 1143 1127 [ISAPNP] Exclude DMAs for the autoconfiguration 1144 1128 1145 1129 pnp_reserve_io= [ISAPNP] Exclude I/O ports for the autoconfiguration 1146 - Ranges are in pairs (I/O port base and size). 1130 + Ranges are in pairs (I/O port base and size). 1147 1131 1148 1132 pnp_reserve_mem= 1149 - [ISAPNP] Exclude memory regions for the autoconfiguration 1133 + [ISAPNP] Exclude memory regions for the 1134 + autoconfiguration. 1150 1135 Ranges are in pairs (memory base and size). 1151 1136 1152 1137 profile= [KNL] Enable kernel profiling via /proc/profile 1153 - { schedule | <number> } 1154 - (param: schedule - profile schedule points} 1155 - (param: profile step/bucket size as a power of 2 for 1156 - statistical time based profiling) 1138 + Format: [schedule,]<number> 1139 + Param: "schedule" - profile schedule points. 1140 + Param: <number> - step/bucket size as a power of 2 for 1141 + statistical time based profiling. 1157 1142 1158 - processor.max_cstate= [HW, ACPI] 1143 + processor.max_cstate= [HW,ACPI] 1159 1144 Limit processor to maximum C-state 1160 1145 max_cstate=9 overrides any DMI blacklist limit. 1161 1146 ··· 1164 1147 before loading. 1165 1148 See Documentation/ramdisk.txt. 1166 1149 1167 - psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to 1168 - probe for (bare|imps|exps|lifebook|any). 1150 + psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to 1151 + probe for; one of (bare|imps|exps|lifebook|any). 1169 1152 psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports 1170 1153 per second. 1171 - psmouse.resetafter= 1172 - [HW,MOUSE] Try to reset the device after so many bad packets 1154 + psmouse.resetafter= [HW,MOUSE] 1155 + Try to reset the device after so many bad packets 1173 1156 (0 = never). 1174 1157 psmouse.resolution= 1175 1158 [HW,MOUSE] Set desired mouse resolution, in dpi. 1176 1159 psmouse.smartscroll= 1177 - [HW,MOUSE] Controls Logitech smartscroll autorepeat, 1160 + [HW,MOUSE] Controls Logitech smartscroll autorepeat. 1178 1161 0 = disabled, 1 = enabled (default). 1179 1162 1180 1163 pss= [HW,OSS] Personal Sound System (ECHO ESC614) 1181 - Format: <io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq> 1164 + Format: 1165 + <io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq> 1182 1166 1183 1167 pt. [PARIDE] 1184 1168 See Documentation/paride.txt. 1185 1169 1186 1170 quiet= [KNL] Disable log messages 1187 - 1171 + 1188 1172 r128= [HW,DRM] 1189 1173 1190 1174 raid= [HW,RAID] ··· 1194 1176 ramdisk= [RAM] Sizes of RAM disks in kilobytes [deprecated] 1195 1177 See Documentation/ramdisk.txt. 1196 1178 1197 - ramdisk_blocksize= 1198 - [RAM] 1179 + ramdisk_blocksize= [RAM] 1199 1180 See Documentation/ramdisk.txt. 1200 - 1181 + 1201 1182 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes 1202 1183 New name for the ramdisk parameter. 1203 1184 See Documentation/ramdisk.txt. ··· 1212 1195 1213 1196 reserve= [KNL,BUGS] Force the kernel to ignore some iomem area 1214 1197 1215 - resume= [SWSUSP] Specify the partition device for software suspension 1198 + resume= [SWSUSP] 1199 + Specify the partition device for software suspend 1216 1200 1217 1201 rhash_entries= [KNL,NET] 1218 1202 Set number of hash buckets for route cache ··· 1243 1225 Format: <io>,<irq>,<dma>,<dma2> 1244 1226 1245 1227 sbni= [NET] Granch SBNI12 leased line adapter 1246 - 1228 + 1247 1229 sbpcd= [HW,CD] Soundblaster CD adapter 1248 1230 Format: <io>,<type> 1249 1231 See a comment before function sbpcd_setup() in ··· 1276 1258 1277 1259 serialnumber [BUGS=IA-32] 1278 1260 1279 - sg_def_reserved_size= 1280 - [SCSI] 1281 - 1261 + sg_def_reserved_size= [SCSI] 1262 + 1282 1263 sgalaxy= [HW,OSS] 1283 1264 Format: <io>,<irq>,<dma>,<dma2>,<sgbase> 1284 1265 1285 1266 shapers= [NET] 1286 1267 Maximal number of shapers. 1287 - 1268 + 1288 1269 sim710= [SCSI,HW] 1289 1270 See header of drivers/scsi/sim710.c. 1290 1271 1291 1272 simeth= [IA-64] 1292 1273 simscsi= 1293 - 1274 + 1294 1275 sjcd= [HW,CD] 1295 1276 Format: <io>,<irq>,<dma> 1296 1277 See header of drivers/cdrom/sjcd.c. ··· 1420 1403 snd-wavefront= [HW,ALSA] 1421 1404 1422 1405 snd-ymfpci= [HW,ALSA] 1423 - 1406 + 1424 1407 sonicvibes= [HW,OSS] 1425 1408 Format: <reverb> 1426 - 1409 + 1427 1410 sonycd535= [HW,CD] 1428 1411 Format: <io>[,<irq>] 1429 1412 ··· 1440 1423 1441 1424 sscape= [HW,OSS] 1442 1425 Format: <io>,<irq>,<dma>,<mpu_io>,<mpu_irq> 1443 - 1426 + 1444 1427 st= [HW,SCSI] SCSI tape parameters (buffers, etc.) 1445 1428 See Documentation/scsi/st.txt. 1446 1429 ··· 1463 1446 stram_swap= [HW,M68k] 1464 1447 1465 1448 swiotlb= [IA-64] Number of I/O TLB slabs 1466 - 1449 + 1467 1450 switches= [HW,M68k] 1468 1451 1469 1452 sym53c416= [HW,SCSI] ··· 1496 1479 tp720= [HW,PS2] 1497 1480 1498 1481 trix= [HW,OSS] MediaTrix AudioTrix Pro 1499 - Format: <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq> 1500 - 1482 + Format: 1483 + <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq> 1484 + 1501 1485 tsdev.xres= [TS] Horizontal screen resolution. 1502 1486 tsdev.yres= [TS] Vertical screen resolution. 1503 1487 1504 - turbografx.map[2|3]= 1505 - [HW,JOY] TurboGraFX parallel port interface 1506 - Format: <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7> 1488 + turbografx.map[2|3]= [HW,JOY] 1489 + TurboGraFX parallel port interface 1490 + Format: 1491 + <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7> 1507 1492 See also Documentation/input/joystick-parport.txt 1508 1493 1509 1494 u14-34f= [HW,SCSI] UltraStor 14F/34F SCSI host adapter ··· 1521 1502 1522 1503 usbhid.mousepoll= 1523 1504 [USBHID] The interval which mice are to be polled at. 1524 - 1505 + 1525 1506 video= [FB] Frame buffer configuration 1526 1507 See Documentation/fb/modedb.txt. 1527 1508 1528 1509 vga= [BOOT,IA-32] Select a particular video mode 1529 - See Documentation/i386/boot.txt and Documentation/svga.txt. 1510 + See Documentation/i386/boot.txt and 1511 + Documentation/svga.txt. 1530 1512 Use vga=ask for menu. 1531 1513 This is actually a boot loader parameter; the value is 1532 1514 passed to the kernel using a special protocol. 1533 1515 1534 - vmalloc=nn[KMG] [KNL,BOOT] forces the vmalloc area to have an exact 1516 + vmalloc=nn[KMG] [KNL,BOOT] Forces the vmalloc area to have an exact 1535 1517 size of <nn>. This can be used to increase the 1536 1518 minimum size (128MB on x86). It can also be used to 1537 1519 decrease the size and leave more room for directly ··· 1540 1520 1541 1521 vmhalt= [KNL,S390] 1542 1522 1543 - vmpoff= [KNL,S390] 1544 - 1523 + vmpoff= [KNL,S390] 1524 + 1545 1525 waveartist= [HW,OSS] 1546 1526 Format: <io>,<irq>,<dma>,<dma2> 1547 - 1527 + 1548 1528 wd33c93= [HW,SCSI] 1549 1529 See header of drivers/scsi/wd33c93.c. 1550 1530 ··· 1558 1538 xd_geo= See header of drivers/block/xd.c. 1559 1539 1560 1540 xirc2ps_cs= [NET,PCMCIA] 1561 - Format: <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] 1541 + Format: 1542 + <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]] 1562 1543 1563 1544 1564 - 1545 + ______________________________________________________________________ 1565 1546 Changelog: 1566 1547 1548 + 2000-06-?? Mr. Unknown 1567 1549 The last known update (for 2.4.0) - the changelog was not kept before. 1568 - 2000-06-?? Mr. Unknown 1569 1550 1551 + 2002-11-24 Petr Baudis <pasky@ucw.cz> 1552 + Randy Dunlap <randy.dunlap@verizon.net> 1570 1553 Update for 2.5.49, description for most of the options introduced, 1571 1554 references to other documentation (C files, READMEs, ..), added S390, 1572 1555 PPC, SPARC, MTD, ALSA and OSS category. Minor corrections and 1573 1556 reformatting. 1574 - 2002-11-24 Petr Baudis <pasky@ucw.cz> 1575 - Randy Dunlap <randy.dunlap@verizon.net> 1557 + 1558 + 2005-10-19 Randy Dunlap <rdunlap@xenotime.net> 1559 + Lots of typos, whitespace, some reformatting. 1576 1560 1577 1561 TODO: 1578 1562
+8 -7
arch/arm/mach-integrator/impd1.c
··· 67 67 } 68 68 writel(0, impd1->base + IMPD1_LOCK); 69 69 70 - #if DEBUG 70 + #ifdef DEBUG 71 71 vco.v = val & 0x1ff; 72 72 vco.r = (val >> 9) & 0x7f; 73 73 vco.s = (val >> 16) & 7; ··· 427 427 return ret; 428 428 } 429 429 430 + static int impd1_remove_one(struct device *dev, void *data) 431 + { 432 + device_unregister(dev); 433 + return 0; 434 + } 435 + 430 436 static void impd1_remove(struct lm_device *dev) 431 437 { 432 438 struct impd1_module *impd1 = lm_get_drvdata(dev); 433 - struct list_head *l, *n; 434 439 int i; 435 440 436 - list_for_each_safe(l, n, &dev->dev.children) { 437 - struct device *d = list_to_dev(l); 438 - 439 - device_unregister(d); 440 - } 441 + device_for_each_child(&dev->dev, NULL, impd1_remove_one); 441 442 442 443 for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) 443 444 clk_unregister(&impd1->vcos[i]);
+20
arch/arm/mach-pxa/generic.c
··· 250 250 i2c_device.dev.platform_data = info; 251 251 } 252 252 253 + static struct resource i2s_resources[] = { 254 + { 255 + .start = 0x40400000, 256 + .end = 0x40400083, 257 + .flags = IORESOURCE_MEM, 258 + }, { 259 + .start = IRQ_I2S, 260 + .end = IRQ_I2S, 261 + .flags = IORESOURCE_IRQ, 262 + }, 263 + }; 264 + 265 + static struct platform_device i2s_device = { 266 + .name = "pxa2xx-i2s", 267 + .id = -1, 268 + .resource = i2c_resources, 269 + .num_resources = ARRAY_SIZE(i2s_resources), 270 + }; 271 + 253 272 static struct platform_device *devices[] __initdata = { 254 273 &pxamci_device, 255 274 &udc_device, ··· 277 258 &btuart_device, 278 259 &stuart_device, 279 260 &i2c_device, 261 + &i2s_device, 280 262 }; 281 263 282 264 static int __init pxa_init(void)
+3 -3
arch/arm/mach-s3c2410/mach-bast.c
··· 307 307 } 308 308 309 309 static struct s3c2410_platform_nand bast_nand_info = { 310 - .tacls = 40, 311 - .twrph0 = 80, 312 - .twrph1 = 80, 310 + .tacls = 30, 311 + .twrph0 = 60, 312 + .twrph1 = 60, 313 313 .nr_sets = ARRAY_SIZE(bast_nand_sets), 314 314 .sets = bast_nand_sets, 315 315 .select_chip = bast_nand_select,
+19 -11
arch/i386/kernel/cpu/cpufreq/powernow-k8.c
··· 44 44 45 45 #define PFX "powernow-k8: " 46 46 #define BFX PFX "BIOS error: " 47 - #define VERSION "version 1.50.3" 47 + #define VERSION "version 1.50.4" 48 48 #include "powernow-k8.h" 49 49 50 50 /* serialize freq changes */ ··· 111 111 u32 i = 0; 112 112 113 113 do { 114 - if (i++ > 0x1000000) { 115 - printk(KERN_ERR PFX "detected change pending stuck\n"); 114 + if (i++ > 10000) { 115 + dprintk("detected change pending stuck\n"); 116 116 return 1; 117 117 } 118 118 rdmsr(MSR_FIDVID_STATUS, lo, hi); ··· 159 159 { 160 160 u32 lo; 161 161 u32 savevid = data->currvid; 162 + u32 i = 0; 162 163 163 164 if ((fid & INVALID_FID_MASK) || (data->currvid & INVALID_VID_MASK)) { 164 165 printk(KERN_ERR PFX "internal error - overflow on fid write\n"); ··· 171 170 dprintk("writing fid 0x%x, lo 0x%x, hi 0x%x\n", 172 171 fid, lo, data->plllock * PLL_LOCK_CONVERSION); 173 172 174 - wrmsr(MSR_FIDVID_CTL, lo, data->plllock * PLL_LOCK_CONVERSION); 175 - 176 - if (query_current_values_with_pending_wait(data)) 177 - return 1; 173 + do { 174 + wrmsr(MSR_FIDVID_CTL, lo, data->plllock * PLL_LOCK_CONVERSION); 175 + if (i++ > 100) { 176 + printk(KERN_ERR PFX "internal error - pending bit very stuck - no further pstate changes possible\n"); 177 + return 1; 178 + } 179 + } while (query_current_values_with_pending_wait(data)); 178 180 179 181 count_off_irt(data); 180 182 ··· 201 197 { 202 198 u32 lo; 203 199 u32 savefid = data->currfid; 200 + int i = 0; 204 201 205 202 if ((data->currfid & INVALID_FID_MASK) || (vid & INVALID_VID_MASK)) { 206 203 printk(KERN_ERR PFX "internal error - overflow on vid write\n"); ··· 213 208 dprintk("writing vid 0x%x, lo 0x%x, hi 0x%x\n", 214 209 vid, lo, STOP_GRANT_5NS); 215 210 216 - wrmsr(MSR_FIDVID_CTL, lo, STOP_GRANT_5NS); 217 - 218 - if (query_current_values_with_pending_wait(data)) 219 - return 1; 211 + do { 212 + wrmsr(MSR_FIDVID_CTL, lo, STOP_GRANT_5NS); 213 + if (i++ > 100) { 214 + printk(KERN_ERR PFX "internal error - pending bit very stuck - no further pstate changes possible\n"); 215 + return 1; 216 + } 217 + } while (query_current_values_with_pending_wait(data)); 220 218 221 219 if (savefid != data->currfid) { 222 220 printk(KERN_ERR PFX "fid changed on vid trans, old 0x%x new 0x%x\n",
+1 -1
arch/ppc64/kernel/iSeries_htab.c
··· 66 66 } 67 67 68 68 if (slot < 0) { /* MSB set means secondary group */ 69 - vflags |= HPTE_V_VALID; 69 + vflags |= HPTE_V_SECONDARY; 70 70 secondary = 1; 71 71 slot &= 0x7fffffffffffffff; 72 72 }
+1 -1
arch/ppc64/kernel/time.c
··· 870 870 rb = ((ra + b) - (x * divisor)) << 32; 871 871 872 872 y = (rb + c)/divisor; 873 - rc = ((rb + b) - (y * divisor)) << 32; 873 + rc = ((rb + c) - (y * divisor)) << 32; 874 874 875 875 z = (rc + d)/divisor; 876 876
+1 -2
arch/ppc64/mm/init.c
··· 799 799 if (cpus_equal(vma->vm_mm->cpu_vm_mask, tmp)) 800 800 local = 1; 801 801 802 - __hash_page(ea, pte_val(pte) & (_PAGE_USER|_PAGE_RW), vsid, ptep, 803 - 0x300, local); 802 + __hash_page(ea, 0, vsid, ptep, 0x300, local); 804 803 local_irq_restore(flags); 805 804 } 806 805
+1 -1
arch/um/include/sysdep-i386/thread.h
··· 4 4 #include <kern_constants.h> 5 5 6 6 #define TASK_DEBUGREGS(task) ((unsigned long *) &(((char *) (task))[HOST_TASK_DEBUGREGS])) 7 - #ifdef CONFIG_MODE_TT 7 + #ifdef UML_CONFIG_MODE_TT 8 8 #define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID])) 9 9 #endif 10 10
+1 -1
arch/um/include/sysdep-x86_64/thread.h
··· 3 3 4 4 #include <kern_constants.h> 5 5 6 - #ifdef CONFIG_MODE_TT 6 + #ifdef UML_CONFIG_MODE_TT 7 7 #define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID])) 8 8 #endif 9 9
+2 -1
drivers/char/drm/drm_vm.c
··· 148 148 149 149 offset = address - vma->vm_start; 150 150 i = (unsigned long)map->handle + offset; 151 - page = vmalloc_to_page((void *)i); 151 + page = (map->type == _DRM_CONSISTENT) ? 152 + virt_to_page((void *)i) : vmalloc_to_page((void *)i); 152 153 if (!page) 153 154 return NOPAGE_OOM; 154 155 get_page(page);
+1 -1
drivers/char/drm/mga_drv.h
··· 227 227 #define MGA_EMIT_STATE( dev_priv, dirty ) \ 228 228 do { \ 229 229 if ( (dirty) & ~MGA_UPLOAD_CLIPRECTS ) { \ 230 - if ( dev_priv->chipset == MGA_CARD_TYPE_G400 ) { \ 230 + if ( dev_priv->chipset >= MGA_CARD_TYPE_G400 ) { \ 231 231 mga_g400_emit_state( dev_priv ); \ 232 232 } else { \ 233 233 mga_g200_emit_state( dev_priv ); \
+1 -1
drivers/char/drm/mga_state.c
··· 53 53 54 54 /* Force reset of DWGCTL on G400 (eliminates clip disable bit). 55 55 */ 56 - if (dev_priv->chipset == MGA_CARD_TYPE_G400) { 56 + if (dev_priv->chipset >= MGA_CARD_TYPE_G400) { 57 57 DMA_BLOCK(MGA_DWGCTL, ctx->dwgctl, 58 58 MGA_LEN + MGA_EXEC, 0x80000000, 59 59 MGA_DWGCTL, ctx->dwgctl,
+11 -10
drivers/infiniband/hw/mthca/mthca_eq.c
··· 396 396 writel(dev->eq_table.clr_mask, dev->eq_table.clr_int); 397 397 398 398 ecr = readl(dev->eq_regs.tavor.ecr_base + 4); 399 - if (ecr) { 400 - writel(ecr, dev->eq_regs.tavor.ecr_base + 401 - MTHCA_ECR_CLR_BASE - MTHCA_ECR_BASE + 4); 399 + if (!ecr) 400 + return IRQ_NONE; 402 401 403 - for (i = 0; i < MTHCA_NUM_EQ; ++i) 404 - if (ecr & dev->eq_table.eq[i].eqn_mask && 405 - mthca_eq_int(dev, &dev->eq_table.eq[i])) { 402 + writel(ecr, dev->eq_regs.tavor.ecr_base + 403 + MTHCA_ECR_CLR_BASE - MTHCA_ECR_BASE + 4); 404 + 405 + for (i = 0; i < MTHCA_NUM_EQ; ++i) 406 + if (ecr & dev->eq_table.eq[i].eqn_mask) { 407 + if (mthca_eq_int(dev, &dev->eq_table.eq[i])) 406 408 tavor_set_eq_ci(dev, &dev->eq_table.eq[i], 407 409 dev->eq_table.eq[i].cons_index); 408 - tavor_eq_req_not(dev, dev->eq_table.eq[i].eqn); 409 - } 410 - } 410 + tavor_eq_req_not(dev, dev->eq_table.eq[i].eqn); 411 + } 411 412 412 - return IRQ_RETVAL(ecr); 413 + return IRQ_HANDLED; 413 414 } 414 415 415 416 static irqreturn_t mthca_tavor_msi_x_interrupt(int irq, void *eq_ptr,
-1
drivers/media/video/Kconfig
··· 262 262 depends on VIDEO_SAA7134 && DVB_CORE 263 263 select VIDEO_BUF_DVB 264 264 select DVB_MT352 265 - select DVB_CX22702 266 265 select DVB_TDA1004X 267 266 ---help--- 268 267 This adds support for DVB cards based on the
+8 -4
drivers/message/fusion/mptsas.c
··· 257 257 printk("SAS Address=0x%llX\n", le64_to_cpu(sas_address)); 258 258 printk("Target ID=0x%X\n", pg0->TargetID); 259 259 printk("Bus=0x%X\n", pg0->Bus); 260 - printk("PhyNum=0x%X\n", pg0->PhyNum); 261 - printk("AccessStatus=0x%X\n", le16_to_cpu(pg0->AccessStatus)); 260 + printk("Parent Phy Num=0x%X\n", pg0->PhyNum); 261 + printk("Access Status=0x%X\n", le16_to_cpu(pg0->AccessStatus)); 262 262 printk("Device Info=0x%X\n", le32_to_cpu(pg0->DeviceInfo)); 263 263 printk("Flags=0x%X\n", le16_to_cpu(pg0->Flags)); 264 264 printk("Physical Port=0x%X\n", pg0->PhysicalPort); ··· 270 270 printk("---- SAS EXPANDER PAGE 1 ------------\n"); 271 271 272 272 printk("Physical Port=0x%X\n", pg1->PhysicalPort); 273 - printk("PHY Identifier=0x%X\n", pg1->Phy); 273 + printk("PHY Identifier=0x%X\n", pg1->PhyIdentifier); 274 274 printk("Negotiated Link Rate=0x%X\n", pg1->NegotiatedLinkRate); 275 275 printk("Programmed Link Rate=0x%X\n", pg1->ProgrammedLinkRate); 276 276 printk("Hardware Link Rate=0x%X\n", pg1->HwLinkRate); ··· 604 604 mptsas_print_expander_pg1(buffer); 605 605 606 606 /* save config data */ 607 - phy_info->phy_id = buffer->Phy; 607 + phy_info->phy_id = buffer->PhyIdentifier; 608 608 phy_info->port_id = buffer->PhysicalPort; 609 609 phy_info->negotiated_link_rate = buffer->NegotiatedLinkRate; 610 610 phy_info->programmed_link_rate = buffer->ProgrammedLinkRate; ··· 825 825 mptsas_sas_device_pg0(ioc, &port_info->phy_info[i].identify, 826 826 (MPI_SAS_DEVICE_PGAD_FORM_GET_NEXT_HANDLE << 827 827 MPI_SAS_DEVICE_PGAD_FORM_SHIFT), handle); 828 + port_info->phy_info[i].identify.phy_id = 829 + port_info->phy_info[i].phy_id; 828 830 handle = port_info->phy_info[i].identify.handle; 829 831 830 832 if (port_info->phy_info[i].attached.handle) { ··· 883 881 (MPI_SAS_DEVICE_PGAD_FORM_HANDLE << 884 882 MPI_SAS_DEVICE_PGAD_FORM_SHIFT), 885 883 port_info->phy_info[i].identify.handle); 884 + port_info->phy_info[i].identify.phy_id = 885 + port_info->phy_info[i].phy_id; 886 886 } 887 887 888 888 if (port_info->phy_info[i].attached.handle) {
+88 -13
drivers/pci/quirks.c
··· 241 241 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_868, quirk_s3_64M ); 242 242 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_968, quirk_s3_64M ); 243 243 244 - static void __devinit quirk_io_region(struct pci_dev *dev, unsigned region, unsigned size, int nr) 244 + static void __devinit quirk_io_region(struct pci_dev *dev, unsigned region, 245 + unsigned size, int nr, const char *name) 245 246 { 246 247 region &= ~(size-1); 247 248 if (region) { ··· 260 259 pcibios_bus_to_resource(dev, res, &bus_region); 261 260 262 261 pci_claim_resource(dev, nr); 262 + printk("PCI quirk: region %04x-%04x claimed by %s\n", region, region + size - 1, name); 263 263 } 264 264 } 265 265 ··· 293 291 u16 region; 294 292 295 293 pci_read_config_word(dev, 0xE0, &region); 296 - quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES); 294 + quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES, "ali7101 ACPI"); 297 295 pci_read_config_word(dev, 0xE2, &region); 298 - quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1); 296 + quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1, "ali7101 SMB"); 299 297 } 300 298 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101, quirk_ali7101_acpi ); 299 + 300 + static void piix4_io_quirk(struct pci_dev *dev, const char *name, unsigned int port, unsigned int enable) 301 + { 302 + u32 devres; 303 + u32 mask, size, base; 304 + 305 + pci_read_config_dword(dev, port, &devres); 306 + if ((devres & enable) != enable) 307 + return; 308 + mask = (devres >> 16) & 15; 309 + base = devres & 0xffff; 310 + size = 16; 311 + for (;;) { 312 + unsigned bit = size >> 1; 313 + if ((bit & mask) == bit) 314 + break; 315 + size = bit; 316 + } 317 + /* 318 + * For now we only print it out. Eventually we'll want to 319 + * reserve it (at least if it's in the 0x1000+ range), but 320 + * let's get enough confirmation reports first. 321 + */ 322 + base &= -size; 323 + printk("%s PIO at %04x-%04x\n", name, base, base + size - 1); 324 + } 325 + 326 + static void piix4_mem_quirk(struct pci_dev *dev, const char *name, unsigned int port, unsigned int enable) 327 + { 328 + u32 devres; 329 + u32 mask, size, base; 330 + 331 + pci_read_config_dword(dev, port, &devres); 332 + if ((devres & enable) != enable) 333 + return; 334 + base = devres & 0xffff0000; 335 + mask = (devres & 0x3f) << 16; 336 + size = 128 << 16; 337 + for (;;) { 338 + unsigned bit = size >> 1; 339 + if ((bit & mask) == bit) 340 + break; 341 + size = bit; 342 + } 343 + /* 344 + * For now we only print it out. Eventually we'll want to 345 + * reserve it, but let's get enough confirmation reports first. 346 + */ 347 + base &= -size; 348 + printk("%s MMIO at %04x-%04x\n", name, base, base + size - 1); 349 + } 301 350 302 351 /* 303 352 * PIIX4 ACPI: Two IO regions pointed to by longwords at 304 353 * 0x40 (64 bytes of ACPI registers) 305 354 * 0x90 (32 bytes of SMB registers) 355 + * and a few strange programmable PIIX4 device resources. 306 356 */ 307 357 static void __devinit quirk_piix4_acpi(struct pci_dev *dev) 308 358 { 309 - u32 region; 359 + u32 region, res_a; 310 360 311 361 pci_read_config_dword(dev, 0x40, &region); 312 - quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES); 362 + quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES, "PIIX4 ACPI"); 313 363 pci_read_config_dword(dev, 0x90, &region); 314 - quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1); 364 + quirk_io_region(dev, region, 32, PCI_BRIDGE_RESOURCES+1, "PIIX4 SMB"); 365 + 366 + /* Device resource A has enables for some of the other ones */ 367 + pci_read_config_dword(dev, 0x5c, &res_a); 368 + 369 + piix4_io_quirk(dev, "PIIX4 devres B", 0x60, 3 << 21); 370 + piix4_io_quirk(dev, "PIIX4 devres C", 0x64, 3 << 21); 371 + 372 + /* Device resource D is just bitfields for static resources */ 373 + 374 + /* Device 12 enabled? */ 375 + if (res_a & (1 << 29)) { 376 + piix4_io_quirk(dev, "PIIX4 devres E", 0x68, 1 << 20); 377 + piix4_mem_quirk(dev, "PIIX4 devres F", 0x6c, 1 << 7); 378 + } 379 + /* Device 13 enabled? */ 380 + if (res_a & (1 << 30)) { 381 + piix4_io_quirk(dev, "PIIX4 devres G", 0x70, 1 << 20); 382 + piix4_mem_quirk(dev, "PIIX4 devres H", 0x74, 1 << 7); 383 + } 384 + piix4_io_quirk(dev, "PIIX4 devres I", 0x78, 1 << 20); 385 + piix4_io_quirk(dev, "PIIX4 devres J", 0x7c, 1 << 20); 315 386 } 316 387 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4_acpi ); 317 388 ··· 398 323 u32 region; 399 324 400 325 pci_read_config_dword(dev, 0x40, &region); 401 - quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES); 326 + quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES, "ICH4 ACPI/GPIO/TCO"); 402 327 403 328 pci_read_config_dword(dev, 0x58, &region); 404 - quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES+1); 329 + quirk_io_region(dev, region, 64, PCI_BRIDGE_RESOURCES+1, "ICH4 GPIO"); 405 330 } 406 331 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0, quirk_ich4_lpc_acpi ); 407 332 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0, quirk_ich4_lpc_acpi ); ··· 427 352 if (rev & 0x10) { 428 353 pci_read_config_dword(dev, 0x48, &region); 429 354 region &= PCI_BASE_ADDRESS_IO_MASK; 430 - quirk_io_region(dev, region, 256, PCI_BRIDGE_RESOURCES); 355 + quirk_io_region(dev, region, 256, PCI_BRIDGE_RESOURCES, "vt82c586 ACPI"); 431 356 } 432 357 } 433 358 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_vt82c586_acpi ); ··· 447 372 448 373 pci_read_config_word(dev, 0x70, &hm); 449 374 hm &= PCI_BASE_ADDRESS_IO_MASK; 450 - quirk_io_region(dev, hm, 128, PCI_BRIDGE_RESOURCES + 1); 375 + quirk_io_region(dev, hm, 128, PCI_BRIDGE_RESOURCES + 1, "vt82c868 HW-mon"); 451 376 452 377 pci_read_config_dword(dev, 0x90, &smb); 453 378 smb &= PCI_BASE_ADDRESS_IO_MASK; 454 - quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 2); 379 + quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 2, "vt82c868 SMB"); 455 380 } 456 381 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_vt82c686_acpi ); 457 382 ··· 466 391 467 392 pci_read_config_word(dev, 0x88, &pm); 468 393 pm &= PCI_BASE_ADDRESS_IO_MASK; 469 - quirk_io_region(dev, pm, 128, PCI_BRIDGE_RESOURCES); 394 + quirk_io_region(dev, pm, 128, PCI_BRIDGE_RESOURCES, "vt8235 PM"); 470 395 471 396 pci_read_config_word(dev, 0xd0, &smb); 472 397 smb &= PCI_BASE_ADDRESS_IO_MASK; 473 - quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 1); 398 + quirk_io_region(dev, smb, 16, PCI_BRIDGE_RESOURCES + 1, "vt8235 SMB"); 474 399 } 475 400 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8235, quirk_vt8235_acpi); 476 401
+1 -1
drivers/pci/setup-bus.c
··· 40 40 * FIXME: IO should be max 256 bytes. However, since we may 41 41 * have a P2P bridge below a cardbus bridge, we need 4K. 42 42 */ 43 - #define CARDBUS_IO_SIZE (4*1024) 43 + #define CARDBUS_IO_SIZE (256) 44 44 #define CARDBUS_MEM_SIZE (32*1024*1024) 45 45 46 46 static void __devinit
+1 -1
drivers/scsi/NCR5380.c
··· 91 91 #ifndef NDEBUG 92 92 #define NDEBUG 0 93 93 #endif 94 - #ifndef NDEBUG 94 + #ifndef NDEBUG_ABORT 95 95 #define NDEBUG_ABORT 0 96 96 #endif 97 97
+1 -1
drivers/scsi/aacraid/aacraid.h
··· 19 19 #define AAC_MAX_LUN (8) 20 20 21 21 #define AAC_MAX_HOSTPHYSMEMPAGES (0xfffff) 22 - #define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)512) 22 + #define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)256) 23 23 24 24 /* 25 25 * These macros convert from physical channels to virtual channels
+2 -1
drivers/scsi/qla2xxx/qla_os.c
··· 1325 1325 ha->brd_info = brd_info; 1326 1326 sprintf(ha->host_str, "%s_%ld", ha->brd_info->drv_name, ha->host_no); 1327 1327 1328 + ha->dpc_pid = -1; 1329 + 1328 1330 /* Configure PCI I/O space */ 1329 1331 ret = qla2x00_iospace_config(ha); 1330 1332 if (ret) ··· 1450 1448 */ 1451 1449 spin_lock_init(&ha->mbx_reg_lock); 1452 1450 1453 - ha->dpc_pid = -1; 1454 1451 init_completion(&ha->dpc_inited); 1455 1452 init_completion(&ha->dpc_exited); 1456 1453
+1
drivers/scsi/scsi_devinfo.c
··· 185 185 {"PIONEER", "CD-ROM DRM-600", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, 186 186 {"PIONEER", "CD-ROM DRM-602X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, 187 187 {"PIONEER", "CD-ROM DRM-604X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, 188 + {"PIONEER", "CD-ROM DRM-624X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, 188 189 {"REGAL", "CDC-4X", NULL, BLIST_MAX5LUN | BLIST_SINGLELUN}, 189 190 {"SanDisk", "ImageMate CF-SD1", NULL, BLIST_FORCELUN}, 190 191 {"SEAGATE", "ST34555N", "0930", BLIST_NOTQ}, /* Chokes on tagged INQUIRY */
+4 -3
drivers/scsi/scsi_lib.c
··· 97 97 } 98 98 99 99 static void scsi_run_queue(struct request_queue *q); 100 - static void scsi_release_buffers(struct scsi_cmnd *cmd); 101 100 102 101 /* 103 102 * Function: scsi_unprep_request() ··· 1039 1040 * if sg table allocation fails, requeue request later. 1040 1041 */ 1041 1042 sgpnt = scsi_alloc_sgtable(cmd, GFP_ATOMIC); 1042 - if (unlikely(!sgpnt)) 1043 + if (unlikely(!sgpnt)) { 1044 + scsi_unprep_request(req); 1043 1045 return BLKPREP_DEFER; 1046 + } 1044 1047 1045 1048 cmd->request_buffer = (char *) sgpnt; 1046 1049 cmd->request_bufflen = req->nr_sectors << 9; ··· 1246 1245 */ 1247 1246 ret = scsi_init_io(cmd); 1248 1247 switch(ret) { 1248 + /* For BLKPREP_KILL/DEFER the cmd was released */ 1249 1249 case BLKPREP_KILL: 1250 - /* BLKPREP_KILL return also releases the command */ 1251 1250 goto kill; 1252 1251 case BLKPREP_DEFER: 1253 1252 goto defer;
+10 -3
drivers/scsi/scsi_transport_fc.c
··· 819 819 return snprintf(buf, FC_BINDTYPE_MAX_NAMELEN, "%s\n", name); 820 820 } 821 821 822 + #define get_list_head_entry(pos, head, member) \ 823 + pos = list_entry((head)->next, typeof(*pos), member) 824 + 822 825 static ssize_t 823 826 store_fc_private_host_tgtid_bind_type(struct class_device *cdev, 824 827 const char *buf, size_t count) 825 828 { 826 829 struct Scsi_Host *shost = transport_class_to_shost(cdev); 827 - struct fc_rport *rport, *next_rport; 830 + struct fc_rport *rport; 828 831 enum fc_tgtid_binding_type val; 829 832 unsigned long flags; 830 833 ··· 837 834 /* if changing bind type, purge all unused consistent bindings */ 838 835 if (val != fc_host_tgtid_bind_type(shost)) { 839 836 spin_lock_irqsave(shost->host_lock, flags); 840 - list_for_each_entry_safe(rport, next_rport, 841 - &fc_host_rport_bindings(shost), peers) 837 + while (!list_empty(&fc_host_rport_bindings(shost))) { 838 + get_list_head_entry(rport, 839 + &fc_host_rport_bindings(shost), peers); 840 + spin_unlock_irqrestore(shost->host_lock, flags); 842 841 fc_rport_terminate(rport); 842 + spin_lock_irqsave(shost->host_lock, flags); 843 + } 843 844 spin_unlock_irqrestore(shost->host_lock, flags); 844 845 } 845 846
+8
drivers/video/fbsysfs.c
··· 242 242 fb_info->var.yres_virtual); 243 243 } 244 244 245 + static ssize_t show_stride(struct class_device *class_device, char *buf) 246 + { 247 + struct fb_info *fb_info = 248 + (struct fb_info *)class_get_devdata(class_device); 249 + return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->fix.line_length); 250 + } 251 + 245 252 /* Format for cmap is "%02x%c%4x%4x%4x\n" */ 246 253 /* %02x entry %c transp %4x red %4x blue %4x green \n */ 247 254 /* 256 rows at 16 chars equals 4096, the normal page size */ ··· 439 432 __ATTR(pan, S_IRUGO|S_IWUSR, show_pan, store_pan), 440 433 __ATTR(virtual_size, S_IRUGO|S_IWUSR, show_virtual, store_virtual), 441 434 __ATTR(name, S_IRUGO, show_name, NULL), 435 + __ATTR(stride, S_IRUGO, show_stride, NULL), 442 436 }; 443 437 444 438 int fb_init_class_device(struct fb_info *fb_info)
+6
fs/aio.c
··· 1397 1397 if (unlikely(!access_ok(VERIFY_WRITE, kiocb->ki_buf, 1398 1398 kiocb->ki_left))) 1399 1399 break; 1400 + ret = security_file_permission(file, MAY_READ); 1401 + if (unlikely(ret)) 1402 + break; 1400 1403 ret = -EINVAL; 1401 1404 if (file->f_op->aio_read) 1402 1405 kiocb->ki_retry = aio_pread; ··· 1411 1408 ret = -EFAULT; 1412 1409 if (unlikely(!access_ok(VERIFY_READ, kiocb->ki_buf, 1413 1410 kiocb->ki_left))) 1411 + break; 1412 + ret = security_file_permission(file, MAY_WRITE); 1413 + if (unlikely(ret)) 1414 1414 break; 1415 1415 ret = -EINVAL; 1416 1416 if (file->f_op->aio_write)
+1
fs/inotify.c
··· 176 176 if (atomic_dec_and_test(&dev->count)) { 177 177 atomic_dec(&dev->user->inotify_devs); 178 178 free_uid(dev->user); 179 + idr_destroy(&dev->idr); 179 180 kfree(dev); 180 181 } 181 182 }
+10 -4
include/asm-alpha/atomic.h
··· 1 1 #ifndef _ALPHA_ATOMIC_H 2 2 #define _ALPHA_ATOMIC_H 3 3 4 + #include <asm/barrier.h> 5 + 4 6 /* 5 7 * Atomic operations that C can't guarantee us. Useful for 6 8 * resource counting etc... ··· 102 100 static __inline__ long atomic_add_return(int i, atomic_t * v) 103 101 { 104 102 long temp, result; 103 + smp_mb(); 105 104 __asm__ __volatile__( 106 105 "1: ldl_l %0,%1\n" 107 106 " addl %0,%3,%2\n" 108 107 " addl %0,%3,%0\n" 109 108 " stl_c %0,%1\n" 110 109 " beq %0,2f\n" 111 - " mb\n" 112 110 ".subsection 2\n" 113 111 "2: br 1b\n" 114 112 ".previous" 115 113 :"=&r" (temp), "=m" (v->counter), "=&r" (result) 116 114 :"Ir" (i), "m" (v->counter) : "memory"); 115 + smp_mb(); 117 116 return result; 118 117 } 119 118 ··· 123 120 static __inline__ long atomic64_add_return(long i, atomic64_t * v) 124 121 { 125 122 long temp, result; 123 + smp_mb(); 126 124 __asm__ __volatile__( 127 125 "1: ldq_l %0,%1\n" 128 126 " addq %0,%3,%2\n" 129 127 " addq %0,%3,%0\n" 130 128 " stq_c %0,%1\n" 131 129 " beq %0,2f\n" 132 - " mb\n" 133 130 ".subsection 2\n" 134 131 "2: br 1b\n" 135 132 ".previous" 136 133 :"=&r" (temp), "=m" (v->counter), "=&r" (result) 137 134 :"Ir" (i), "m" (v->counter) : "memory"); 135 + smp_mb(); 138 136 return result; 139 137 } 140 138 141 139 static __inline__ long atomic_sub_return(int i, atomic_t * v) 142 140 { 143 141 long temp, result; 142 + smp_mb(); 144 143 __asm__ __volatile__( 145 144 "1: ldl_l %0,%1\n" 146 145 " subl %0,%3,%2\n" 147 146 " subl %0,%3,%0\n" 148 147 " stl_c %0,%1\n" 149 148 " beq %0,2f\n" 150 - " mb\n" 151 149 ".subsection 2\n" 152 150 "2: br 1b\n" 153 151 ".previous" 154 152 :"=&r" (temp), "=m" (v->counter), "=&r" (result) 155 153 :"Ir" (i), "m" (v->counter) : "memory"); 154 + smp_mb(); 156 155 return result; 157 156 } 158 157 159 158 static __inline__ long atomic64_sub_return(long i, atomic64_t * v) 160 159 { 161 160 long temp, result; 161 + smp_mb(); 162 162 __asm__ __volatile__( 163 163 "1: ldq_l %0,%1\n" 164 164 " subq %0,%3,%2\n" 165 165 " subq %0,%3,%0\n" 166 166 " stq_c %0,%1\n" 167 167 " beq %0,2f\n" 168 - " mb\n" 169 168 ".subsection 2\n" 170 169 "2: br 1b\n" 171 170 ".previous" 172 171 :"=&r" (temp), "=m" (v->counter), "=&r" (result) 173 172 :"Ir" (i), "m" (v->counter) : "memory"); 173 + smp_mb(); 174 174 return result; 175 175 } 176 176
+34
include/asm-alpha/barrier.h
··· 1 + #ifndef __BARRIER_H 2 + #define __BARRIER_H 3 + 4 + #define mb() \ 5 + __asm__ __volatile__("mb": : :"memory") 6 + 7 + #define rmb() \ 8 + __asm__ __volatile__("mb": : :"memory") 9 + 10 + #define wmb() \ 11 + __asm__ __volatile__("wmb": : :"memory") 12 + 13 + #define read_barrier_depends() \ 14 + __asm__ __volatile__("mb": : :"memory") 15 + 16 + #ifdef CONFIG_SMP 17 + #define smp_mb() mb() 18 + #define smp_rmb() rmb() 19 + #define smp_wmb() wmb() 20 + #define smp_read_barrier_depends() read_barrier_depends() 21 + #else 22 + #define smp_mb() barrier() 23 + #define smp_rmb() barrier() 24 + #define smp_wmb() barrier() 25 + #define smp_read_barrier_depends() barrier() 26 + #endif 27 + 28 + #define set_mb(var, value) \ 29 + do { var = value; mb(); } while (0) 30 + 31 + #define set_wmb(var, value) \ 32 + do { var = value; wmb(); } while (0) 33 + 34 + #endif /* __BARRIER_H */
+1 -30
include/asm-alpha/system.h
··· 4 4 #include <linux/config.h> 5 5 #include <asm/pal.h> 6 6 #include <asm/page.h> 7 + #include <asm/barrier.h> 7 8 8 9 /* 9 10 * System defines.. Note that this is included both from .c and .S ··· 139 138 140 139 struct task_struct; 141 140 extern struct task_struct *alpha_switch_to(unsigned long, struct task_struct*); 142 - 143 - #define mb() \ 144 - __asm__ __volatile__("mb": : :"memory") 145 - 146 - #define rmb() \ 147 - __asm__ __volatile__("mb": : :"memory") 148 - 149 - #define wmb() \ 150 - __asm__ __volatile__("wmb": : :"memory") 151 - 152 - #define read_barrier_depends() \ 153 - __asm__ __volatile__("mb": : :"memory") 154 - 155 - #ifdef CONFIG_SMP 156 - #define smp_mb() mb() 157 - #define smp_rmb() rmb() 158 - #define smp_wmb() wmb() 159 - #define smp_read_barrier_depends() read_barrier_depends() 160 - #else 161 - #define smp_mb() barrier() 162 - #define smp_rmb() barrier() 163 - #define smp_wmb() barrier() 164 - #define smp_read_barrier_depends() barrier() 165 - #endif 166 - 167 - #define set_mb(var, value) \ 168 - do { var = value; mb(); } while (0) 169 - 170 - #define set_wmb(var, value) \ 171 - do { var = value; wmb(); } while (0) 172 141 173 142 #define imb() \ 174 143 __asm__ __volatile__ ("call_pal %0 #imb" : : "i" (PAL_imb) : "memory")
+17 -4
include/asm-arm/arch-s3c2410/regs-clock.h
··· 18 18 * 10-Feb-2005 Ben Dooks Fixed CAMDIVN address (Guillaume Gourat) 19 19 * 10-Mar-2005 Lucas Villa Real Changed S3C2410_VA to S3C24XX_VA 20 20 * 27-Aug-2005 Ben Dooks Add clock-slow info 21 - */ 21 + * 20-Oct-2005 Ben Dooks Fixed overflow in PLL (Guillaume Gourat) 22 + * 20-Oct-2005 Ben Dooks Add masks for DCLK (Guillaume Gourat) 23 + */ 22 24 23 25 #ifndef __ASM_ARM_REGS_CLOCK 24 26 #define __ASM_ARM_REGS_CLOCK "$Id: clock.h,v 1.4 2003/04/30 14:50:51 ben Exp $" ··· 68 66 #define S3C2410_DCLKCON_DCLK0_UCLK (1<<1) 69 67 #define S3C2410_DCLKCON_DCLK0_DIV(x) (((x) - 1 )<<4) 70 68 #define S3C2410_DCLKCON_DCLK0_CMP(x) (((x) - 1 )<<8) 69 + #define S3C2410_DCLKCON_DCLK0_DIV_MASK ((0xf)<<4) 70 + #define S3C2410_DCLKCON_DCLK0_CMP_MASK ((0xf)<<8) 71 71 72 72 #define S3C2410_DCLKCON_DCLK1EN (1<<16) 73 73 #define S3C2410_DCLKCON_DCLK1_PCLK (0<<17) 74 74 #define S3C2410_DCLKCON_DCLK1_UCLK (1<<17) 75 75 #define S3C2410_DCLKCON_DCLK1_DIV(x) (((x) - 1) <<20) 76 + #define S3C2410_DCLKCON_DCLK1_CMP(x) (((x) - 1) <<24) 77 + #define S3C2410_DCLKCON_DCLK1_DIV_MASK ((0xf) <<20) 78 + #define S3C2410_DCLKCON_DCLK1_CMP_MASK ((0xf) <<24) 76 79 77 80 #define S3C2410_CLKDIVN_PDIVN (1<<0) 78 81 #define S3C2410_CLKDIVN_HDIVN (1<<1) ··· 90 83 91 84 #ifndef __ASSEMBLY__ 92 85 86 + #include <asm/div64.h> 87 + 93 88 static inline unsigned int 94 - s3c2410_get_pll(int pllval, int baseclk) 89 + s3c2410_get_pll(unsigned int pllval, unsigned int baseclk) 95 90 { 96 - int mdiv, pdiv, sdiv; 91 + unsigned int mdiv, pdiv, sdiv; 92 + uint64_t fvco; 97 93 98 94 mdiv = pllval >> S3C2410_PLLCON_MDIVSHIFT; 99 95 pdiv = pllval >> S3C2410_PLLCON_PDIVSHIFT; ··· 106 96 pdiv &= S3C2410_PLLCON_PDIVMASK; 107 97 sdiv &= S3C2410_PLLCON_SDIVMASK; 108 98 109 - return (baseclk * (mdiv + 8)) / ((pdiv + 2) << sdiv); 99 + fvco = (uint64_t)baseclk * (mdiv + 8); 100 + do_div(fvco, (pdiv + 2) << sdiv); 101 + 102 + return (unsigned int)fvco; 110 103 } 111 104 112 105 #endif /* __ASSEMBLY__ */
+3 -13
include/linux/hugetlb.h
··· 25 25 unsigned long hugetlb_total_pages(void); 26 26 struct page *alloc_huge_page(void); 27 27 void free_huge_page(struct page *); 28 + int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, 29 + unsigned long address, int write_access); 28 30 29 31 extern unsigned long max_huge_pages; 30 32 extern const unsigned long hugetlb_zero, hugetlb_infinity; ··· 101 99 do { } while (0) 102 100 #define alloc_huge_page() ({ NULL; }) 103 101 #define free_huge_page(p) ({ (void)(p); BUG(); }) 102 + #define hugetlb_fault(mm, vma, addr, write) ({ BUG(); 0; }) 104 103 105 104 #ifndef HPAGE_MASK 106 105 #define HPAGE_MASK 0 /* Keep the compiler happy */ ··· 158 155 { 159 156 file->f_op = &hugetlbfs_file_operations; 160 157 } 161 - 162 - static inline int valid_hugetlb_file_off(struct vm_area_struct *vma, 163 - unsigned long address) 164 - { 165 - struct inode *inode = vma->vm_file->f_dentry->d_inode; 166 - loff_t file_off = address - vma->vm_start; 167 - 168 - file_off += (vma->vm_pgoff << PAGE_SHIFT); 169 - 170 - return (file_off < inode->i_size); 171 - } 172 - 173 158 #else /* !CONFIG_HUGETLBFS */ 174 159 175 160 #define is_file_hugepages(file) 0 176 161 #define set_file_hugepages(file) BUG() 177 162 #define hugetlb_zero_setup(size) ERR_PTR(-ENOSYS) 178 - #define valid_hugetlb_file_off(vma, address) 0 179 163 180 164 #endif /* !CONFIG_HUGETLBFS */ 181 165
+1
include/linux/idr.h
··· 75 75 int idr_get_new(struct idr *idp, void *ptr, int *id); 76 76 int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); 77 77 void idr_remove(struct idr *idp, int id); 78 + void idr_destroy(struct idr *idp); 78 79 void idr_init(struct idr *idp);
+1 -1
include/net/ax25.h
··· 171 171 ax25_address calls[AX25_MAX_DIGIS]; 172 172 unsigned char repeated[AX25_MAX_DIGIS]; 173 173 unsigned char ndigi; 174 - char lastrepeat; 174 + signed char lastrepeat; 175 175 } ax25_digi; 176 176 177 177 typedef struct ax25_route {
+3 -1
include/net/llc_pdu.h
··· 254 254 { 255 255 if (skb->protocol == ntohs(ETH_P_802_2)) 256 256 memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN); 257 - else if (skb->protocol == ntohs(ETH_P_TR_802_2)) 257 + else if (skb->protocol == ntohs(ETH_P_TR_802_2)) { 258 258 memcpy(sa, tr_hdr(skb)->saddr, ETH_ALEN); 259 + *sa &= 0x7F; 260 + } 259 261 } 260 262 261 263 /**
+1 -8
kernel/exit.c
··· 825 825 826 826 tsk->flags |= PF_EXITING; 827 827 828 - /* 829 - * Make sure we don't try to process any timer firings 830 - * while we are already exiting. 831 - */ 832 - tsk->it_virt_expires = cputime_zero; 833 - tsk->it_prof_expires = cputime_zero; 834 - tsk->it_sched_expires = 0; 835 - 836 828 if (unlikely(in_atomic())) 837 829 printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n", 838 830 current->comm, current->pid, ··· 835 843 group_dead = atomic_dec_and_test(&tsk->signal->live); 836 844 if (group_dead) { 837 845 del_timer_sync(&tsk->signal->real_timer); 846 + exit_itimers(tsk->signal); 838 847 acct_process(code); 839 848 } 840 849 exit_mm(tsk);
+67 -52
kernel/posix-cpu-timers.c
··· 380 380 int posix_cpu_timer_del(struct k_itimer *timer) 381 381 { 382 382 struct task_struct *p = timer->it.cpu.task; 383 + int ret = 0; 383 384 384 - if (timer->it.cpu.firing) 385 - return TIMER_RETRY; 385 + if (likely(p != NULL)) { 386 + read_lock(&tasklist_lock); 387 + if (unlikely(p->signal == NULL)) { 388 + /* 389 + * We raced with the reaping of the task. 390 + * The deletion should have cleared us off the list. 391 + */ 392 + BUG_ON(!list_empty(&timer->it.cpu.entry)); 393 + } else { 394 + spin_lock(&p->sighand->siglock); 395 + if (timer->it.cpu.firing) 396 + ret = TIMER_RETRY; 397 + else 398 + list_del(&timer->it.cpu.entry); 399 + spin_unlock(&p->sighand->siglock); 400 + } 401 + read_unlock(&tasklist_lock); 386 402 387 - if (unlikely(p == NULL)) 388 - return 0; 389 - 390 - spin_lock(&p->sighand->siglock); 391 - if (!list_empty(&timer->it.cpu.entry)) { 392 - /* 393 - * Take us off the task's timer list. We don't need to 394 - * take tasklist_lock and check for the task being reaped. 395 - * If it was reaped, it already called posix_cpu_timers_exit 396 - * and posix_cpu_timers_exit_group to clear all the timers 397 - * that pointed to it. 398 - */ 399 - list_del(&timer->it.cpu.entry); 400 - put_task_struct(p); 403 + if (!ret) 404 + put_task_struct(p); 401 405 } 402 - spin_unlock(&p->sighand->siglock); 403 406 404 - return 0; 407 + return ret; 405 408 } 406 409 407 410 /* ··· 421 418 cputime_t ptime = cputime_add(utime, stime); 422 419 423 420 list_for_each_entry_safe(timer, next, head, entry) { 424 - put_task_struct(timer->task); 425 - timer->task = NULL; 426 421 list_del_init(&timer->entry); 427 422 if (cputime_lt(timer->expires.cpu, ptime)) { 428 423 timer->expires.cpu = cputime_zero; ··· 432 431 433 432 ++head; 434 433 list_for_each_entry_safe(timer, next, head, entry) { 435 - put_task_struct(timer->task); 436 - timer->task = NULL; 437 434 list_del_init(&timer->entry); 438 435 if (cputime_lt(timer->expires.cpu, utime)) { 439 436 timer->expires.cpu = cputime_zero; ··· 443 444 444 445 ++head; 445 446 list_for_each_entry_safe(timer, next, head, entry) { 446 - put_task_struct(timer->task); 447 - timer->task = NULL; 448 447 list_del_init(&timer->entry); 449 448 if (timer->expires.sched < sched_time) { 450 449 timer->expires.sched = 0; ··· 485 488 unsigned long long ns, nsleft; 486 489 struct task_struct *t = p; 487 490 unsigned int nthreads = atomic_read(&p->signal->live); 491 + 492 + if (!nthreads) 493 + return; 488 494 489 495 switch (clock_idx) { 490 496 default: ··· 730 730 * Disarm any old timer after extracting its expiry time. 731 731 */ 732 732 BUG_ON(!irqs_disabled()); 733 + 734 + ret = 0; 733 735 spin_lock(&p->sighand->siglock); 734 736 old_expires = timer->it.cpu.expires; 735 - list_del_init(&timer->it.cpu.entry); 737 + if (unlikely(timer->it.cpu.firing)) { 738 + timer->it.cpu.firing = -1; 739 + ret = TIMER_RETRY; 740 + } else 741 + list_del_init(&timer->it.cpu.entry); 736 742 spin_unlock(&p->sighand->siglock); 737 743 738 744 /* ··· 786 780 } 787 781 } 788 782 789 - if (unlikely(timer->it.cpu.firing)) { 783 + if (unlikely(ret)) { 790 784 /* 791 785 * We are colliding with the timer actually firing. 792 786 * Punt after filling in the timer's old value, and ··· 794 788 * it as an overrun (thanks to bump_cpu_timer above). 795 789 */ 796 790 read_unlock(&tasklist_lock); 797 - timer->it.cpu.firing = -1; 798 - ret = TIMER_RETRY; 799 791 goto out; 800 792 } 801 793 ··· 959 955 static void check_thread_timers(struct task_struct *tsk, 960 956 struct list_head *firing) 961 957 { 958 + int maxfire; 962 959 struct list_head *timers = tsk->cpu_timers; 963 960 961 + maxfire = 20; 964 962 tsk->it_prof_expires = cputime_zero; 965 963 while (!list_empty(timers)) { 966 964 struct cpu_timer_list *t = list_entry(timers->next, 967 965 struct cpu_timer_list, 968 966 entry); 969 - if (cputime_lt(prof_ticks(tsk), t->expires.cpu)) { 967 + if (!--maxfire || cputime_lt(prof_ticks(tsk), t->expires.cpu)) { 970 968 tsk->it_prof_expires = t->expires.cpu; 971 969 break; 972 970 } ··· 977 971 } 978 972 979 973 ++timers; 974 + maxfire = 20; 980 975 tsk->it_virt_expires = cputime_zero; 981 976 while (!list_empty(timers)) { 982 977 struct cpu_timer_list *t = list_entry(timers->next, 983 978 struct cpu_timer_list, 984 979 entry); 985 - if (cputime_lt(virt_ticks(tsk), t->expires.cpu)) { 980 + if (!--maxfire || cputime_lt(virt_ticks(tsk), t->expires.cpu)) { 986 981 tsk->it_virt_expires = t->expires.cpu; 987 982 break; 988 983 } ··· 992 985 } 993 986 994 987 ++timers; 988 + maxfire = 20; 995 989 tsk->it_sched_expires = 0; 996 990 while (!list_empty(timers)) { 997 991 struct cpu_timer_list *t = list_entry(timers->next, 998 992 struct cpu_timer_list, 999 993 entry); 1000 - if (tsk->sched_time < t->expires.sched) { 994 + if (!--maxfire || tsk->sched_time < t->expires.sched) { 1001 995 tsk->it_sched_expires = t->expires.sched; 1002 996 break; 1003 997 } ··· 1015 1007 static void check_process_timers(struct task_struct *tsk, 1016 1008 struct list_head *firing) 1017 1009 { 1010 + int maxfire; 1018 1011 struct signal_struct *const sig = tsk->signal; 1019 1012 cputime_t utime, stime, ptime, virt_expires, prof_expires; 1020 1013 unsigned long long sched_time, sched_expires; ··· 1048 1039 } while (t != tsk); 1049 1040 ptime = cputime_add(utime, stime); 1050 1041 1042 + maxfire = 20; 1051 1043 prof_expires = cputime_zero; 1052 1044 while (!list_empty(timers)) { 1053 1045 struct cpu_timer_list *t = list_entry(timers->next, 1054 1046 struct cpu_timer_list, 1055 1047 entry); 1056 - if (cputime_lt(ptime, t->expires.cpu)) { 1048 + if (!--maxfire || cputime_lt(ptime, t->expires.cpu)) { 1057 1049 prof_expires = t->expires.cpu; 1058 1050 break; 1059 1051 } ··· 1063 1053 } 1064 1054 1065 1055 ++timers; 1056 + maxfire = 20; 1066 1057 virt_expires = cputime_zero; 1067 1058 while (!list_empty(timers)) { 1068 1059 struct cpu_timer_list *t = list_entry(timers->next, 1069 1060 struct cpu_timer_list, 1070 1061 entry); 1071 - if (cputime_lt(utime, t->expires.cpu)) { 1062 + if (!--maxfire || cputime_lt(utime, t->expires.cpu)) { 1072 1063 virt_expires = t->expires.cpu; 1073 1064 break; 1074 1065 } ··· 1078 1067 } 1079 1068 1080 1069 ++timers; 1070 + maxfire = 20; 1081 1071 sched_expires = 0; 1082 1072 while (!list_empty(timers)) { 1083 1073 struct cpu_timer_list *t = list_entry(timers->next, 1084 1074 struct cpu_timer_list, 1085 1075 entry); 1086 - if (sched_time < t->expires.sched) { 1076 + if (!--maxfire || sched_time < t->expires.sched) { 1087 1077 sched_expires = t->expires.sched; 1088 1078 break; 1089 1079 } ··· 1166 1154 cputime_t prof_left, virt_left, ticks; 1167 1155 unsigned long long sched_left, sched; 1168 1156 const unsigned int nthreads = atomic_read(&sig->live); 1157 + 1158 + if (!nthreads) 1159 + return; 1169 1160 1170 1161 prof_left = cputime_sub(prof_expires, utime); 1171 1162 prof_left = cputime_sub(prof_left, stime); ··· 1295 1280 1296 1281 #undef UNEXPIRED 1297 1282 1298 - BUG_ON(tsk->exit_state); 1299 - 1300 1283 /* 1301 1284 * Double-check with locks held. 1302 1285 */ 1303 1286 read_lock(&tasklist_lock); 1304 - spin_lock(&tsk->sighand->siglock); 1287 + if (likely(tsk->signal != NULL)) { 1288 + spin_lock(&tsk->sighand->siglock); 1305 1289 1306 - /* 1307 - * Here we take off tsk->cpu_timers[N] and tsk->signal->cpu_timers[N] 1308 - * all the timers that are firing, and put them on the firing list. 1309 - */ 1310 - check_thread_timers(tsk, &firing); 1311 - check_process_timers(tsk, &firing); 1290 + /* 1291 + * Here we take off tsk->cpu_timers[N] and tsk->signal->cpu_timers[N] 1292 + * all the timers that are firing, and put them on the firing list. 1293 + */ 1294 + check_thread_timers(tsk, &firing); 1295 + check_process_timers(tsk, &firing); 1312 1296 1313 - /* 1314 - * We must release these locks before taking any timer's lock. 1315 - * There is a potential race with timer deletion here, as the 1316 - * siglock now protects our private firing list. We have set 1317 - * the firing flag in each timer, so that a deletion attempt 1318 - * that gets the timer lock before we do will give it up and 1319 - * spin until we've taken care of that timer below. 1320 - */ 1321 - spin_unlock(&tsk->sighand->siglock); 1297 + /* 1298 + * We must release these locks before taking any timer's lock. 1299 + * There is a potential race with timer deletion here, as the 1300 + * siglock now protects our private firing list. We have set 1301 + * the firing flag in each timer, so that a deletion attempt 1302 + * that gets the timer lock before we do will give it up and 1303 + * spin until we've taken care of that timer below. 1304 + */ 1305 + spin_unlock(&tsk->sighand->siglock); 1306 + } 1322 1307 read_unlock(&tasklist_lock); 1323 1308 1324 1309 /*
+1 -1
kernel/posix-timers.c
··· 1157 1157 } 1158 1158 1159 1159 /* 1160 - * This is called by __exit_signal, only when there are no more 1160 + * This is called by do_exit or de_thread, only when there are no more 1161 1161 * references to the shared signal_struct. 1162 1162 */ 1163 1163 void exit_itimers(struct signal_struct *sig)
+1 -13
kernel/signal.c
··· 397 397 flush_sigqueue(&tsk->pending); 398 398 if (sig) { 399 399 /* 400 - * We are cleaning up the signal_struct here. We delayed 401 - * calling exit_itimers until after flush_sigqueue, just in 402 - * case our thread-local pending queue contained a queued 403 - * timer signal that would have been cleared in 404 - * exit_itimers. When that called sigqueue_free, it would 405 - * attempt to re-take the tasklist_lock and deadlock. This 406 - * can never happen if we ensure that all queues the 407 - * timer's signal might be queued on have been flushed 408 - * first. The shared_pending queue, and our own pending 409 - * queue are the only queues the timer could be on, since 410 - * there are no other threads left in the group and timer 411 - * signals are constrained to threads inside the group. 400 + * We are cleaning up the signal_struct here. 412 401 */ 413 - exit_itimers(sig); 414 402 exit_thread_group_keys(sig); 415 403 kmem_cache_free(signal_cachep, sig); 416 404 }
+13
lib/idr.c
··· 346 346 EXPORT_SYMBOL(idr_remove); 347 347 348 348 /** 349 + * idr_destroy - release all cached layers within an idr tree 350 + * idp: idr handle 351 + */ 352 + void idr_destroy(struct idr *idp) 353 + { 354 + while (idp->id_free_cnt) { 355 + struct idr_layer *p = alloc_layer(idp); 356 + kmem_cache_free(idr_layer_cache, p); 357 + } 358 + } 359 + EXPORT_SYMBOL(idr_destroy); 360 + 361 + /** 349 362 * idr_find - return pointer for given id 350 363 * @idp: idr handle 351 364 * @id: lookup key
+22
mm/hugetlb.c
··· 394 394 return ret; 395 395 } 396 396 397 + /* 398 + * On ia64 at least, it is possible to receive a hugetlb fault from a 399 + * stale zero entry left in the TLB from earlier hardware prefetching. 400 + * Low-level arch code should already have flushed the stale entry as 401 + * part of its fault handling, but we do need to accept this minor fault 402 + * and return successfully. Whereas the "normal" case is that this is 403 + * an access to a hugetlb page which has been truncated off since mmap. 404 + */ 405 + int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, 406 + unsigned long address, int write_access) 407 + { 408 + int ret = VM_FAULT_SIGBUS; 409 + pte_t *pte; 410 + 411 + spin_lock(&mm->page_table_lock); 412 + pte = huge_pte_offset(mm, address); 413 + if (pte && !pte_none(*pte)) 414 + ret = VM_FAULT_MINOR; 415 + spin_unlock(&mm->page_table_lock); 416 + return ret; 417 + } 418 + 397 419 int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, 398 420 struct page **pages, struct vm_area_struct **vmas, 399 421 unsigned long *position, int *length, int i)
+2 -12
mm/memory.c
··· 2045 2045 2046 2046 inc_page_state(pgfault); 2047 2047 2048 - if (unlikely(is_vm_hugetlb_page(vma))) { 2049 - if (valid_hugetlb_file_off(vma, address)) 2050 - /* We get here only if there was a stale(zero) TLB entry 2051 - * (because of HW prefetching). 2052 - * Low-level arch code (if needed) should have already 2053 - * purged the stale entry as part of this fault handling. 2054 - * Here we just return. 2055 - */ 2056 - return VM_FAULT_MINOR; 2057 - else 2058 - return VM_FAULT_SIGBUS; /* mapping truncation does this. */ 2059 - } 2048 + if (unlikely(is_vm_hugetlb_page(vma))) 2049 + return hugetlb_fault(mm, vma, address, write_access); 2060 2050 2061 2051 /* 2062 2052 * We need the page table lock to synchronize with kswapd
+3 -2
net/802/tr.c
··· 340 340 unsigned int hash, rii_p = 0; 341 341 unsigned long flags; 342 342 struct rif_cache *entry; 343 - 343 + unsigned char saddr0; 344 344 345 345 spin_lock_irqsave(&rif_lock, flags); 346 + saddr0 = trh->saddr[0]; 346 347 347 348 /* 348 349 * Firstly see if the entry exists ··· 396 395 entry->rcf = trh->rcf & htons((unsigned short)~TR_RCF_BROADCAST_MASK); 397 396 memcpy(&(entry->rseg[0]),&(trh->rseg[0]),8*sizeof(unsigned short)); 398 397 entry->local_ring = 0; 399 - trh->saddr[0]|=TR_RII; /* put the routing indicator back for tcpdump */ 400 398 } 401 399 else 402 400 { ··· 422 422 } 423 423 entry->last_used=jiffies; 424 424 } 425 + trh->saddr[0]=saddr0; /* put the routing indicator back for tcpdump */ 425 426 spin_unlock_irqrestore(&rif_lock, flags); 426 427 } 427 428
+16 -32
net/core/neighbour.c
··· 175 175 } 176 176 } 177 177 178 - void neigh_changeaddr(struct neigh_table *tbl, struct net_device *dev) 178 + static void neigh_flush_dev(struct neigh_table *tbl, struct net_device *dev) 179 179 { 180 180 int i; 181 - 182 - write_lock_bh(&tbl->lock); 183 - 184 - for (i=0; i <= tbl->hash_mask; i++) { 185 - struct neighbour *n, **np; 186 - 187 - np = &tbl->hash_buckets[i]; 188 - while ((n = *np) != NULL) { 189 - if (dev && n->dev != dev) { 190 - np = &n->next; 191 - continue; 192 - } 193 - *np = n->next; 194 - write_lock_bh(&n->lock); 195 - n->dead = 1; 196 - neigh_del_timer(n); 197 - write_unlock_bh(&n->lock); 198 - neigh_release(n); 199 - } 200 - } 201 - 202 - write_unlock_bh(&tbl->lock); 203 - } 204 - 205 - int neigh_ifdown(struct neigh_table *tbl, struct net_device *dev) 206 - { 207 - int i; 208 - 209 - write_lock_bh(&tbl->lock); 210 181 211 182 for (i = 0; i <= tbl->hash_mask; i++) { 212 183 struct neighbour *n, **np = &tbl->hash_buckets[i]; ··· 214 243 neigh_release(n); 215 244 } 216 245 } 246 + } 217 247 248 + void neigh_changeaddr(struct neigh_table *tbl, struct net_device *dev) 249 + { 250 + write_lock_bh(&tbl->lock); 251 + neigh_flush_dev(tbl, dev); 252 + write_unlock_bh(&tbl->lock); 253 + } 254 + 255 + int neigh_ifdown(struct neigh_table *tbl, struct net_device *dev) 256 + { 257 + write_lock_bh(&tbl->lock); 258 + neigh_flush_dev(tbl, dev); 218 259 pneigh_ifdown(tbl, dev); 219 260 write_unlock_bh(&tbl->lock); 220 261 ··· 715 732 if (unlikely(mod_timer(&n->timer, when))) { 716 733 printk("NEIGH: BUG, double timer add, state is %x\n", 717 734 n->nud_state); 735 + dump_stack(); 718 736 } 719 737 } 720 738 ··· 799 815 } 800 816 801 817 if (neigh->nud_state & NUD_IN_TIMER) { 802 - neigh_hold(neigh); 803 818 if (time_before(next, jiffies + HZ/2)) 804 819 next = jiffies + HZ/2; 805 - neigh_add_timer(neigh, next); 820 + if (!mod_timer(&neigh->timer, next)) 821 + neigh_hold(neigh); 806 822 } 807 823 if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) { 808 824 struct sk_buff *skb = skb_peek(&neigh->arp_queue);
+6
net/core/skbuff.c
··· 410 410 C(nfct); 411 411 nf_conntrack_get(skb->nfct); 412 412 C(nfctinfo); 413 + #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) 414 + C(ipvs_property); 415 + #endif 413 416 #ifdef CONFIG_BRIDGE_NETFILTER 414 417 C(nf_bridge); 415 418 nf_bridge_get(skb->nf_bridge); ··· 470 467 new->nfct = old->nfct; 471 468 nf_conntrack_get(old->nfct); 472 469 new->nfctinfo = old->nfctinfo; 470 + #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) 471 + new->ipvs_property = old->ipvs_property; 472 + #endif 473 473 #ifdef CONFIG_BRIDGE_NETFILTER 474 474 new->nf_bridge = old->nf_bridge; 475 475 nf_bridge_get(old->nf_bridge);
+2
net/dccp/ipv4.c
··· 463 463 if (skb != NULL) { 464 464 const struct inet_request_sock *ireq = inet_rsk(req); 465 465 466 + memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); 466 467 err = ip_build_and_send_pkt(skb, sk, ireq->loc_addr, 467 468 ireq->rmt_addr, 468 469 ireq->opt); ··· 648 647 if (skb != NULL) { 649 648 const struct inet_sock *inet = inet_sk(sk); 650 649 650 + memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); 651 651 err = ip_build_and_send_pkt(skb, sk, 652 652 inet->saddr, inet->daddr, NULL); 653 653 if (err == NET_XMIT_CN)
+5 -5
net/dccp/output.c
··· 62 62 63 63 skb->h.raw = skb_push(skb, dccp_header_size); 64 64 dh = dccp_hdr(skb); 65 - /* 66 - * Data packets are not cloned as they are never retransmitted 67 - */ 68 - if (skb_cloned(skb)) 65 + 66 + if (!skb->sk) 69 67 skb_set_owner_w(skb, sk); 70 68 71 69 /* Build DCCP header and checksum it. */ ··· 100 102 101 103 DCCP_INC_STATS(DCCP_MIB_OUTSEGS); 102 104 105 + memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); 103 106 err = ip_queue_xmit(skb, 0); 104 107 if (err <= 0) 105 108 return err; ··· 242 243 243 244 err = dccp_transmit_skb(sk, skb); 244 245 ccid_hc_tx_packet_sent(dp->dccps_hc_tx_ccid, sk, 0, len); 245 - } 246 + } else 247 + kfree_skb(skb); 246 248 247 249 return err; 248 250 }
-2
net/dccp/proto.c
··· 402 402 * This bug was _quickly_ found & fixed by just looking at an OSTRA 403 403 * generated callgraph 8) -acme 404 404 */ 405 - if (rc != 0) 406 - goto out_discard; 407 405 out_release: 408 406 release_sock(sk); 409 407 return rc ? : len;
+3
net/ipv4/ip_output.c
··· 391 391 to->nfct = from->nfct; 392 392 nf_conntrack_get(to->nfct); 393 393 to->nfctinfo = from->nfctinfo; 394 + #if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE) 395 + to->ipvs_property = from->ipvs_property; 396 + #endif 394 397 #ifdef CONFIG_BRIDGE_NETFILTER 395 398 nf_bridge_put(to->nf_bridge); 396 399 to->nf_bridge = from->nf_bridge;
+1 -11
net/ipv4/tcp_output.c
··· 435 435 int nsize, old_factor; 436 436 u16 flags; 437 437 438 - if (unlikely(len >= skb->len)) { 439 - if (net_ratelimit()) { 440 - printk(KERN_DEBUG "TCP: seg_size=%u, mss=%u, seq=%u, " 441 - "end_seq=%u, skb->len=%u.\n", len, mss_now, 442 - TCP_SKB_CB(skb)->seq, TCP_SKB_CB(skb)->end_seq, 443 - skb->len); 444 - WARN_ON(1); 445 - } 446 - return 0; 447 - } 448 - 438 + BUG_ON(len > skb->len); 449 439 nsize = skb_headlen(skb) - len; 450 440 if (nsize < 0) 451 441 nsize = 0;
+1 -1
net/ipv6/ip6_flowlabel.c
··· 483 483 goto done; 484 484 } 485 485 fl1 = sfl->fl; 486 - atomic_inc(&fl->users); 486 + atomic_inc(&fl1->users); 487 487 break; 488 488 } 489 489 }
+3 -1
security/selinux/selinuxfs.c
··· 879 879 if (sscanf(page, "%d", &new_value) != 1) 880 880 goto out; 881 881 882 - if (new_value) { 882 + if (new_value && bool_pending_values) { 883 883 security_set_bools(bool_num, bool_pending_values); 884 884 } 885 885 ··· 952 952 953 953 /* remove any existing files */ 954 954 kfree(bool_pending_values); 955 + bool_pending_values = NULL; 955 956 956 957 sel_remove_bools(dir); 957 958 ··· 1003 1002 } 1004 1003 return ret; 1005 1004 err: 1005 + kfree(values); 1006 1006 d_genocide(dir); 1007 1007 ret = -ENOMEM; 1008 1008 goto out;
+4 -2
security/selinux/ss/policydb.c
··· 650 650 } 651 651 if (lrt) kfree(lrt); 652 652 653 - for (i = 0; i < p->p_types.nprim; i++) 654 - ebitmap_destroy(&p->type_attr_map[i]); 653 + if (p->type_attr_map) { 654 + for (i = 0; i < p->p_types.nprim; i++) 655 + ebitmap_destroy(&p->type_attr_map[i]); 656 + } 655 657 kfree(p->type_attr_map); 656 658 657 659 return;
+4 -2
sound/core/init.c
··· 828 828 card = get_snd_generic_card(dev); 829 829 if (card->power_state == SNDRV_CTL_POWER_D3hot) 830 830 return 0; 831 - card->pm_suspend(card, PMSG_SUSPEND); 831 + if (card->pm_suspend) 832 + card->pm_suspend(card, PMSG_SUSPEND); 832 833 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); 833 834 return 0; 834 835 } ··· 844 843 card = get_snd_generic_card(dev); 845 844 if (card->power_state == SNDRV_CTL_POWER_D0) 846 845 return 0; 847 - card->pm_resume(card); 846 + if (card->pm_suspend) 847 + card->pm_resume(card); 848 848 snd_power_change_state(card, SNDRV_CTL_POWER_D0); 849 849 return 0; 850 850 }