From 83e8089867d4000849447273fc5de9af133db4ab Mon Sep 17 00:00:00 2001 From: Catalin Marinas Date: Tue, 7 Jul 2009 10:32:55 +0100 Subject: [PATCH] --- yaml --- r: 155345 b: refs/heads/master c: bf2a76b317c6ccc6f7b6b1dc09664c5b6a155c61 h: refs/heads/master i: 155343: 0089aae44647e5479a4795ddb2413c3a47afa937 v: v3 --- [refs] | 2 +- trunk/Documentation/DocBook/mac80211.tmpl | 2 + .../exception-tables.txt => exception.txt} | 202 ++--- .../feature-removal-schedule.txt | 10 - trunk/Documentation/kernel-parameters.txt | 4 +- trunk/Documentation/x86/00-INDEX | 2 - trunk/MAINTAINERS | 17 +- trunk/Makefile | 2 +- trunk/arch/alpha/include/asm/thread_info.h | 1 - trunk/arch/alpha/kernel/ptrace.c | 1 + trunk/arch/arm/include/asm/thread_info.h | 2 +- trunk/arch/avr32/include/asm/thread_info.h | 2 +- trunk/arch/avr32/kernel/traps.c | 13 +- trunk/arch/blackfin/include/asm/thread_info.h | 2 +- trunk/arch/blackfin/kernel/ptrace.c | 1 + trunk/arch/blackfin/kernel/setup.c | 41 +- trunk/arch/blackfin/kernel/sys_bfin.c | 1 + trunk/arch/blackfin/kernel/traps.c | 34 +- trunk/arch/cris/include/asm/thread_info.h | 4 +- trunk/arch/cris/kernel/sys_cris.c | 1 + trunk/arch/frv/include/asm/thread_info.h | 4 +- trunk/arch/h8300/include/asm/thread_info.h | 2 +- trunk/arch/ia64/include/asm/thread_info.h | 2 +- trunk/arch/ia64/kernel/ptrace.c | 1 + trunk/arch/m32r/include/asm/thread_info.h | 4 +- trunk/arch/m32r/kernel/ptrace.c | 1 + trunk/arch/m68k/include/asm/thread_info_mm.h | 1 - trunk/arch/m68k/include/asm/thread_info_no.h | 1 - trunk/arch/m68knommu/kernel/process.c | 21 +- trunk/arch/m68knommu/kernel/traps.c | 6 +- .../arch/microblaze/include/asm/thread_info.h | 4 +- trunk/arch/microblaze/kernel/ptrace.c | 1 + trunk/arch/microblaze/kernel/signal.c | 1 + trunk/arch/microblaze/kernel/sys_microblaze.c | 1 + trunk/arch/mips/include/asm/thread_info.h | 4 +- trunk/arch/mips/kernel/ptrace32.c | 1 + trunk/arch/mips/mm/hugetlbpage.c | 1 + trunk/arch/mn10300/include/asm/thread_info.h | 4 +- trunk/arch/mn10300/kernel/ptrace.c | 1 + trunk/arch/mn10300/kernel/signal.c | 1 + trunk/arch/mn10300/kernel/sys_mn10300.c | 1 + trunk/arch/mn10300/kernel/traps.c | 22 +- trunk/arch/mn10300/mm/fault.c | 1 + trunk/arch/mn10300/mm/misalignment.c | 1 + trunk/arch/parisc/include/asm/thread_info.h | 2 +- trunk/arch/parisc/kernel/process.c | 2 +- trunk/arch/parisc/kernel/traps.c | 20 +- trunk/arch/powerpc/boot/dts/warp.dts | 3 +- trunk/arch/powerpc/configs/44x/warp_defconfig | 200 +---- trunk/arch/powerpc/include/asm/delay.h | 2 - trunk/arch/powerpc/include/asm/thread_info.h | 4 +- trunk/arch/powerpc/kernel/mpc7450-pmu.c | 1 + trunk/arch/powerpc/kernel/power7-pmu.c | 1 - trunk/arch/powerpc/kernel/ppc970-pmu.c | 1 + trunk/arch/powerpc/kernel/ptrace32.c | 1 + trunk/arch/powerpc/mm/gup.c | 10 +- trunk/arch/powerpc/mm/mmu_context_nohash.c | 16 +- trunk/arch/powerpc/mm/pgtable.c | 4 +- trunk/arch/powerpc/mm/slb.c | 13 +- trunk/arch/powerpc/mm/tlb_hash64.c | 2 +- trunk/arch/powerpc/oprofile/cell/vma_map.c | 2 +- trunk/arch/powerpc/platforms/44x/warp.c | 19 +- .../powerpc/platforms/82xx/pq2ads-pci-pic.c | 2 +- trunk/arch/powerpc/platforms/cell/axon_msi.c | 22 +- .../powerpc/platforms/powermac/cpufreq_64.c | 2 +- trunk/arch/powerpc/platforms/powermac/pic.c | 2 +- trunk/arch/powerpc/platforms/ps3/system-bus.c | 1 + trunk/arch/powerpc/platforms/pseries/lpar.c | 18 +- trunk/arch/powerpc/platforms/pseries/xics.c | 8 +- trunk/arch/powerpc/sysdev/fsl_rio.c | 2 +- trunk/arch/powerpc/sysdev/ipic.c | 4 +- trunk/arch/powerpc/sysdev/mpic.c | 9 +- trunk/arch/powerpc/sysdev/ppc4xx_pci.c | 4 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c | 4 +- trunk/arch/powerpc/sysdev/uic.c | 3 +- trunk/arch/s390/Kconfig | 8 - trunk/arch/s390/include/asm/atomic.h | 7 +- trunk/arch/s390/include/asm/perf_counter.h | 2 - trunk/arch/s390/include/asm/thread_info.h | 2 +- trunk/arch/s390/kernel/dis.c | 1 + trunk/arch/s390/kernel/ipl.c | 15 +- trunk/arch/s390/kernel/ptrace.c | 1 + trunk/arch/s390/lib/Makefile | 2 +- trunk/arch/s390/lib/delay.c | 2 - trunk/arch/s390/lib/ucmpdi2.c | 26 - trunk/arch/s390/mm/fault.c | 1 + trunk/arch/sh/boards/mach-se/7724/setup.c | 38 - trunk/arch/sh/include/asm/perf_counter.h | 2 - trunk/arch/sh/include/asm/thread_info.h | 2 +- trunk/arch/sh/mm/tlb-sh3.c | 1 + trunk/arch/sparc/include/asm/thread_info_32.h | 4 +- trunk/arch/sparc/include/asm/thread_info_64.h | 4 +- trunk/arch/sparc/kernel/ptrace_32.c | 1 + trunk/arch/sparc/kernel/ptrace_64.c | 1 + trunk/arch/sparc/kernel/time_64.c | 1 + trunk/arch/sparc/kernel/traps_32.c | 1 + trunk/arch/um/include/asm/thread_info.h | 2 +- trunk/arch/um/kernel/sysrq.c | 4 +- trunk/arch/x86/include/asm/atomic_32.h | 185 +++-- trunk/arch/x86/include/asm/atomic_64.h | 42 +- trunk/arch/x86/include/asm/spinlock.h | 4 - trunk/arch/x86/include/asm/stacktrace.h | 2 - trunk/arch/x86/include/asm/thread_info.h | 2 +- trunk/arch/x86/kernel/apic/io_apic.c | 1 + .../arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 32 +- .../arch/x86/kernel/cpu/cpufreq/powernow-k8.h | 3 +- trunk/arch/x86/kernel/cpu/mcheck/mce.c | 12 +- trunk/arch/x86/kernel/cpu/perf_counter.c | 8 +- trunk/arch/x86/kernel/dumpstack_32.c | 6 - trunk/arch/x86/kernel/dumpstack_64.c | 22 +- trunk/arch/x86/kernel/e820.c | 7 +- trunk/arch/x86/kernel/pci-gart_64.c | 2 +- trunk/arch/x86/lib/Makefile | 1 - trunk/arch/x86/lib/atomic64_32.c | 230 ------ trunk/arch/x86/lib/usercopy_32.c | 2 +- trunk/arch/x86/mm/fault.c | 9 +- trunk/arch/x86/mm/init_64.c | 11 +- trunk/arch/x86/oprofile/nmi_int.c | 2 +- trunk/arch/x86/power/Makefile | 2 +- trunk/arch/xtensa/include/asm/thread_info.h | 4 +- trunk/arch/xtensa/kernel/traps.c | 6 +- trunk/block/cfq-iosched.c | 2 +- trunk/block/scsi_ioctl.c | 1 - trunk/drivers/base/firmware_class.c | 6 +- trunk/drivers/base/power/main.c | 1 - trunk/drivers/block/DAC960.c | 1 - trunk/drivers/block/Kconfig | 16 - trunk/drivers/block/Makefile | 1 - trunk/drivers/block/amiflop.c | 2 +- trunk/drivers/block/cciss.c | 1 - trunk/drivers/block/loop.c | 1 + trunk/drivers/block/osdblk.c | 701 ---------------- trunk/drivers/block/pktcdvd.c | 10 +- trunk/drivers/block/xsysace.c | 7 +- trunk/drivers/bluetooth/hci_vhci.c | 1 + trunk/drivers/char/amiserial.c | 1 - trunk/drivers/char/cyclades.c | 1 - trunk/drivers/char/epca.c | 1 - trunk/drivers/char/hw_random/intel-rng.c | 9 +- trunk/drivers/char/isicom.c | 17 +- trunk/drivers/char/istallion.c | 1 - trunk/drivers/char/moxa.c | 1 - trunk/drivers/char/mxser.c | 1 - trunk/drivers/char/n_hdlc.c | 1 - trunk/drivers/char/n_r3964.c | 1 - trunk/drivers/char/pty.c | 155 ++-- trunk/drivers/char/rio/rio_linux.c | 1 - trunk/drivers/char/riscom8.c | 1 - trunk/drivers/char/rocket.c | 1 - trunk/drivers/char/serial167.c | 1 - trunk/drivers/char/specialix.c | 1 - trunk/drivers/char/sx.c | 1 - trunk/drivers/char/synclink.c | 1 - trunk/drivers/char/synclink_gt.c | 1 - trunk/drivers/char/synclinkmp.c | 1 - trunk/drivers/char/tpm/tpm.c | 1 + trunk/drivers/char/tty_ioctl.c | 1 + trunk/drivers/char/tty_ldisc.c | 1 + trunk/drivers/char/vt.c | 1 - trunk/drivers/char/vt_ioctl.c | 1 - trunk/drivers/cpufreq/cpufreq.c | 76 +- trunk/drivers/cpufreq/cpufreq_conservative.c | 49 +- trunk/drivers/cpufreq/cpufreq_ondemand.c | 77 +- trunk/drivers/gpio/vr41xx_giu.c | 1 + trunk/drivers/gpu/drm/drm_crtc_helper.c | 2 - trunk/drivers/gpu/drm/i915/i915_dma.c | 72 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 9 +- trunk/drivers/gpu/drm/i915/i915_drv.h | 27 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 36 +- trunk/drivers/gpu/drm/i915/i915_gem_debugfs.c | 44 +- trunk/drivers/gpu/drm/i915/i915_gem_tiling.c | 6 - trunk/drivers/gpu/drm/i915/i915_irq.c | 143 +--- trunk/drivers/gpu/drm/i915/i915_reg.h | 60 +- trunk/drivers/gpu/drm/i915/i915_suspend.c | 221 +++-- trunk/drivers/gpu/drm/i915/intel_bios.c | 20 +- trunk/drivers/gpu/drm/i915/intel_crt.c | 30 +- trunk/drivers/gpu/drm/i915/intel_display.c | 448 +--------- trunk/drivers/gpu/drm/i915/intel_dp.c | 11 +- trunk/drivers/gpu/drm/i915/intel_dp_i2c.c | 11 +- trunk/drivers/gpu/drm/i915/intel_fb.c | 18 +- trunk/drivers/gpu/drm/i915/intel_lvds.c | 74 +- trunk/drivers/gpu/drm/i915/intel_sdvo.c | 114 +-- trunk/drivers/gpu/drm/i915/intel_sdvo_regs.h | 1 - trunk/drivers/hid/usbhid/hid-core.c | 1 + trunk/drivers/hwmon/abituguru3.c | 6 +- trunk/drivers/hwmon/max6650.c | 1 - trunk/drivers/hwmon/sht15.c | 2 +- trunk/drivers/i2c/busses/i2c-ibm_iic.c | 9 +- trunk/drivers/input/keyboard/Kconfig | 294 ++++--- trunk/drivers/input/keyboard/Makefile | 33 +- trunk/drivers/input/keyboard/gpio_keys.c | 33 +- trunk/drivers/input/keyboard/matrix_keypad.c | 453 ----------- trunk/drivers/input/mouse/gpio_mouse.c | 11 +- trunk/drivers/input/serio/i8042-x86ia64io.h | 28 - trunk/drivers/input/serio/i8042.c | 7 +- trunk/drivers/input/serio/serio.c | 7 +- trunk/drivers/input/tablet/wacom_wac.c | 6 +- trunk/drivers/isdn/hisax/hfc_usb.c | 1 + trunk/drivers/isdn/i4l/isdn_tty.c | 1 - trunk/drivers/isdn/mISDN/stack.c | 1 - trunk/drivers/md/dm-crypt.c | 2 +- trunk/drivers/md/md.c | 18 +- trunk/drivers/media/dvb/bt8xx/dst_ca.c | 1 - trunk/drivers/media/dvb/dvb-core/dvbdev.h | 1 + trunk/drivers/media/dvb/ttpci/av7110.c | 1 + trunk/drivers/media/radio/radio-mr800.c | 1 - trunk/drivers/media/radio/radio-si470x.c | 1 - trunk/drivers/media/video/bt8xx/bttv-driver.c | 1 - .../drivers/media/video/cx23885/cx23885-417.c | 1 - .../media/video/cx23885/cx23885-video.c | 1 - .../drivers/media/video/cx88/cx88-blackbird.c | 1 - trunk/drivers/media/video/cx88/cx88-video.c | 1 - trunk/drivers/media/video/dabusb.c | 1 - trunk/drivers/media/video/pwc/pwc-if.c | 1 - trunk/drivers/media/video/pwc/pwc.h | 1 + trunk/drivers/media/video/s2255drv.c | 1 - trunk/drivers/media/video/saa5246a.c | 1 + trunk/drivers/media/video/saa5249.c | 1 + .../media/video/saa7134/saa7134-empress.c | 1 - trunk/drivers/media/video/se401.c | 1 - trunk/drivers/media/video/stk-webcam.c | 1 - trunk/drivers/media/video/stradis.c | 1 - trunk/drivers/media/video/stv680.c | 1 - trunk/drivers/media/video/usbvideo/vicam.c | 1 - .../media/video/usbvision/usbvision-video.c | 1 - trunk/drivers/media/video/v4l2-dev.c | 1 + .../drivers/media/video/zoran/zoran_driver.c | 1 - trunk/drivers/mfd/dm355evm_msp.c | 3 +- trunk/drivers/misc/sgi-gru/grufile.c | 1 + trunk/drivers/misc/sgi-gru/grukservices.c | 1 + trunk/drivers/misc/sgi-xp/xpnet.c | 4 +- trunk/drivers/mtd/ubi/build.c | 6 - trunk/drivers/mtd/ubi/debug.c | 2 - trunk/drivers/mtd/ubi/debug.h | 7 - trunk/drivers/mtd/ubi/io.c | 157 ++-- trunk/drivers/mtd/ubi/scan.c | 14 - trunk/drivers/mtd/ubi/scan.h | 2 - trunk/drivers/mtd/ubi/ubi-media.h | 12 +- trunk/drivers/mtd/ubi/ubi.h | 6 +- trunk/drivers/mtd/ubi/wl.c | 8 - trunk/drivers/net/a2065.c | 12 +- trunk/drivers/net/arcnet/arcnet.c | 26 +- trunk/drivers/net/bmac.c | 7 +- trunk/drivers/net/bnx2x_main.c | 7 +- trunk/drivers/net/cxgb3/cxgb3_main.c | 3 +- trunk/drivers/net/davinci_emac.c | 12 +- trunk/drivers/net/dl2k.c | 17 +- trunk/drivers/net/epic100.c | 5 +- trunk/drivers/net/fealnx.c | 15 +- trunk/drivers/net/fec.h | 12 +- trunk/drivers/net/hamachi.c | 23 +- trunk/drivers/net/hamradio/baycom_epp.c | 2 +- trunk/drivers/net/hamradio/baycom_par.c | 2 +- trunk/drivers/net/hamradio/baycom_ser_fdx.c | 2 +- trunk/drivers/net/hamradio/baycom_ser_hdx.c | 2 +- trunk/drivers/net/igb/e1000_82575.c | 4 - trunk/drivers/net/irda/irtty-sir.c | 1 + trunk/drivers/net/ixgbe/ixgbe_dcb_nl.c | 6 - trunk/drivers/net/ixgbe/ixgbe_main.c | 19 +- trunk/drivers/net/natsemi.c | 4 +- trunk/drivers/net/ne.c | 2 +- trunk/drivers/net/pci-skeleton.c | 2 +- trunk/drivers/net/pcmcia/ibmtr_cs.c | 13 +- trunk/drivers/net/pcmcia/nmclan_cs.c | 15 +- trunk/drivers/net/pcnet32.c | 50 +- trunk/drivers/net/r6040.c | 9 +- trunk/drivers/net/starfire.c | 2 +- trunk/drivers/net/sundance.c | 6 +- trunk/drivers/net/tsi108_eth.c | 8 +- trunk/drivers/net/tulip/de2104x.c | 7 +- trunk/drivers/net/tulip/tulip_core.c | 14 +- trunk/drivers/net/tulip/winbond-840.c | 6 +- trunk/drivers/net/wan/hd64570.c | 3 +- trunk/drivers/net/wan/hd64572.c | 3 +- trunk/drivers/net/wan/sbni.c | 8 +- trunk/drivers/net/wireless/ath/Kconfig | 1 - trunk/drivers/net/wireless/ath/ath9k/xmit.c | 9 +- trunk/drivers/net/wireless/b43/b43.h | 1 - trunk/drivers/net/wireless/b43/main.c | 7 +- trunk/drivers/net/wireless/b43/pcmcia.c | 1 - .../net/wireless/b43legacy/b43legacy.h | 1 - trunk/drivers/net/wireless/b43legacy/main.c | 7 +- .../drivers/net/wireless/iwmc3200wifi/Kconfig | 9 - trunk/drivers/net/wireless/mac80211_hwsim.c | 1 - trunk/drivers/net/wireless/p54/p54common.c | 5 +- trunk/drivers/net/wireless/ray_cs.c | 9 +- trunk/drivers/net/wireless/wavelan_cs.c | 13 +- trunk/drivers/net/wireless/zd1211rw/zd_usb.c | 3 +- trunk/drivers/net/yellowfin.c | 23 +- trunk/drivers/oprofile/oprofile_stats.c | 1 - trunk/drivers/parisc/eisa_enumerator.c | 14 +- trunk/drivers/pci/hotplug/cpci_hotplug_core.c | 1 + trunk/drivers/pci/hotplug/cpqphp_ctrl.c | 1 + trunk/drivers/pci/hotplug/cpqphp_sysfs.c | 1 - trunk/drivers/pci/hotplug/pciehp_ctrl.c | 1 + trunk/drivers/pci/intel-iommu.c | 3 - trunk/drivers/pci/syscall.c | 1 + trunk/drivers/pcmcia/tcic.c | 3 +- trunk/drivers/platform/x86/hp-wmi.c | 2 +- trunk/drivers/s390/block/dasd_eckd.c | 45 +- trunk/drivers/s390/block/dasd_erp.c | 2 +- trunk/drivers/s390/block/dasd_fba.c | 25 +- trunk/drivers/s390/block/dasd_int.h | 3 +- trunk/drivers/s390/block/dasd_ioctl.c | 1 - trunk/drivers/s390/block/dcssblk.c | 7 +- trunk/drivers/s390/block/xpram.c | 2 +- trunk/drivers/s390/char/monreader.c | 4 +- trunk/drivers/s390/char/sclp_rw.h | 5 - trunk/drivers/s390/char/vmwatchdog.c | 8 +- trunk/drivers/scsi/atari_NCR5380.c | 3 +- trunk/drivers/scsi/mac53c94.c | 5 +- trunk/drivers/scsi/qla2xxx/qla_mid.c | 1 + trunk/drivers/scsi/sg.c | 6 +- trunk/drivers/scsi/sun3_NCR5380.c | 3 +- trunk/drivers/serial/8250_pci.c | 11 +- trunk/drivers/serial/sh-sci.c | 11 +- trunk/drivers/ssb/pcmcia.c | 10 +- trunk/drivers/telephony/ixj.c | 1 - trunk/drivers/telephony/phonedev.c | 1 + trunk/drivers/usb/class/cdc-wdm.c | 1 + trunk/drivers/usb/core/hcd.c | 2 +- trunk/drivers/usb/gadget/amd5536udc.c | 1 + trunk/drivers/usb/gadget/langwell_udc.c | 1 + trunk/drivers/usb/gadget/s3c2410_udc.c | 1 + trunk/drivers/usb/host/Kconfig | 4 +- trunk/drivers/usb/host/r8a66597-hcd.c | 1 + trunk/drivers/usb/misc/iowarrior.c | 1 - trunk/drivers/usb/misc/rio500.c | 1 - trunk/drivers/usb/misc/usblcd.c | 1 - trunk/drivers/usb/musb/cppi_dma.h | 1 + trunk/drivers/usb/musb/musb_core.h | 1 + trunk/drivers/usb/serial/ftdi_sio.c | 3 +- trunk/drivers/usb/serial/generic.c | 20 +- trunk/drivers/usb/serial/mos7840.c | 1 - trunk/drivers/usb/serial/pl2303.c | 58 +- trunk/drivers/usb/serial/usb-serial.c | 1 - trunk/drivers/video/amba-clcd.c | 7 +- trunk/drivers/video/atafb.c | 5 +- trunk/drivers/video/atmel_lcdfb.c | 5 +- trunk/drivers/video/fbmem.c | 3 +- trunk/drivers/video/fbsysfs.c | 3 + trunk/drivers/video/fsl-diu-fb.c | 6 + trunk/drivers/video/hitfb.c | 66 +- trunk/drivers/video/i810/i810_main.c | 3 +- trunk/drivers/video/matrox/matroxfb_DAC1064.c | 4 +- trunk/drivers/video/matrox/matroxfb_Ti3026.c | 4 +- trunk/drivers/video/matrox/matroxfb_base.c | 2 + trunk/drivers/video/matrox/matroxfb_crtc2.c | 6 +- trunk/drivers/video/mx3fb.c | 5 + trunk/drivers/video/sh_mobile_lcdcfb.c | 40 +- trunk/drivers/video/sm501fb.c | 5 +- trunk/drivers/video/stifb.c | 7 +- trunk/drivers/video/w100fb.c | 2 + trunk/drivers/watchdog/bcm47xx_wdt.c | 2 +- trunk/drivers/watchdog/sa1100_wdt.c | 5 +- trunk/drivers/watchdog/w83627hf_wdt.c | 5 - trunk/drivers/watchdog/w83697ug_wdt.c | 4 +- trunk/fs/adfs/super.c | 1 - trunk/fs/afs/dir.c | 2 +- trunk/fs/afs/mntpt.c | 1 + trunk/fs/afs/super.c | 1 - trunk/fs/autofs4/dev-ioctl.c | 1 + trunk/fs/bfs/dir.c | 1 + trunk/fs/bfs/file.c | 1 + trunk/fs/bio.c | 22 +- trunk/fs/btrfs/compression.c | 1 + trunk/fs/btrfs/file.c | 1 + trunk/fs/btrfs/inode.c | 1 + trunk/fs/btrfs/ioctl.c | 1 + trunk/fs/btrfs/super.c | 1 + trunk/fs/char_dev.c | 1 + trunk/fs/cifs/CHANGES | 6 +- trunk/fs/cifs/cifs_spnego.c | 9 +- trunk/fs/cifs/cifsacl.c | 26 +- trunk/fs/cifs/cifsfs.c | 1 + trunk/fs/cifs/cifsfs.h | 15 +- trunk/fs/cifs/cifsglob.h | 28 +- trunk/fs/cifs/cifspdu.h | 14 +- trunk/fs/cifs/cifsproto.h | 21 +- trunk/fs/cifs/cifssmb.c | 143 +--- trunk/fs/cifs/dir.c | 46 +- trunk/fs/cifs/file.c | 6 +- trunk/fs/cifs/inode.c | 762 ++++++++++-------- trunk/fs/cifs/readdir.c | 505 +++++++++--- trunk/fs/compat.c | 1 + trunk/fs/compat_ioctl.c | 1 - trunk/fs/exofs/common.h | 4 +- trunk/fs/exofs/dir.c | 4 +- trunk/fs/exofs/exofs.h | 7 +- trunk/fs/exofs/file.c | 21 +- trunk/fs/exofs/inode.c | 7 +- trunk/fs/exofs/namei.c | 4 +- trunk/fs/exofs/osd.c | 4 +- trunk/fs/exofs/super.c | 7 +- trunk/fs/exofs/symlink.c | 4 +- trunk/fs/ext2/ioctl.c | 1 + trunk/fs/ext4/ioctl.c | 1 + trunk/fs/fat/dir.c | 1 + trunk/fs/fat/file.c | 2 +- trunk/fs/fat/namei_msdos.c | 1 + trunk/fs/fat/namei_vfat.c | 1 + trunk/fs/fcntl.c | 1 + trunk/fs/freevxfs/vxfs_super.c | 1 - trunk/fs/fuse/dev.c | 8 +- trunk/fs/hfs/super.c | 1 - trunk/fs/hfsplus/super.c | 1 - trunk/fs/hpfs/dir.c | 1 - trunk/fs/hpfs/file.c | 1 - trunk/fs/hpfs/hpfs_fn.h | 1 + trunk/fs/hpfs/inode.c | 1 - trunk/fs/hpfs/namei.c | 1 - trunk/fs/isofs/inode.c | 4 +- trunk/fs/jffs2/erase.c | 10 +- trunk/fs/jffs2/super.c | 1 - trunk/fs/lockd/clntproc.c | 1 - trunk/fs/lockd/svc4proc.c | 1 - trunk/fs/lockd/svcproc.c | 1 - trunk/fs/namespace.c | 1 - trunk/fs/nfs/delegation.c | 1 - trunk/fs/nfs/dir.c | 1 + trunk/fs/nfs/file.c | 1 + trunk/fs/nfs/getroot.c | 1 + trunk/fs/nfs/inode.c | 1 + trunk/fs/nfs/nfs4proc.c | 1 + trunk/fs/nfs/read.c | 1 + trunk/fs/nfs/write.c | 8 +- trunk/fs/nfsd/nfsctl.c | 1 + trunk/fs/nfsd/nfssvc.c | 1 + trunk/fs/nilfs2/bmap.c | 5 - trunk/fs/nilfs2/cpfile.c | 5 +- trunk/fs/nilfs2/dat.c | 9 + trunk/fs/nilfs2/dir.c | 1 + trunk/fs/nilfs2/segment.c | 30 +- trunk/fs/ocfs2/ioctl.c | 1 + trunk/fs/quota/dquot.c | 4 +- trunk/fs/reiserfs/journal.c | 2 +- trunk/fs/reiserfs/super.c | 1 + trunk/fs/reiserfs/xattr.c | 1 + trunk/fs/squashfs/super.c | 1 - trunk/fs/sysfs/bin.c | 1 - trunk/fs/ubifs/io.c | 57 +- trunk/fs/ubifs/ioctl.c | 1 + trunk/fs/ubifs/recovery.c | 57 +- trunk/fs/ubifs/replay.c | 9 +- trunk/fs/ubifs/scan.c | 20 +- trunk/fs/ubifs/super.c | 14 +- trunk/fs/ubifs/ubifs.h | 11 +- trunk/fs/xfs/linux-2.6/kmem.c | 4 +- trunk/fs/xfs/linux-2.6/xfs_buf.c | 2 +- trunk/fs/xfs/linux-2.6/xfs_file.c | 1 + trunk/include/linux/backing-dev.h | 11 +- trunk/include/linux/blkdev.h | 14 +- trunk/include/linux/crash_dump.h | 1 + trunk/include/linux/elfcore.h | 5 +- trunk/include/linux/hardirq.h | 2 - trunk/include/linux/input/matrix_keypad.h | 65 -- trunk/include/linux/mnt_namespace.h | 13 +- trunk/include/linux/personality.h | 5 +- trunk/include/linux/quotaops.h | 1 + trunk/include/linux/rfkill.h | 1 + trunk/include/linux/sched.h | 9 - trunk/include/linux/spinlock.h | 5 - trunk/include/linux/sunrpc/xdr.h | 1 + trunk/include/linux/syscalls.h | 2 - trunk/include/linux/usb/serial.h | 3 +- trunk/include/net/sock.h | 69 -- trunk/kernel/exit.c | 1 + trunk/kernel/fork.c | 1 + trunk/kernel/kmod.c | 1 + trunk/kernel/kprobes.c | 6 +- trunk/kernel/module.c | 6 +- trunk/kernel/power/user.c | 1 + trunk/kernel/rcutree.c | 3 +- trunk/kernel/sched.c | 14 +- trunk/kernel/trace/Kconfig | 6 +- trunk/kernel/trace/blktrace.c | 1 - trunk/kernel/trace/ftrace.c | 4 +- trunk/kernel/trace/trace.c | 1 - trunk/kernel/trace/trace_event_types.h | 3 - trunk/kernel/trace/trace_output.c | 3 +- trunk/kernel/trace/trace_stack.c | 4 +- trunk/lib/dma-debug.c | 26 +- trunk/mm/backing-dev.c | 7 +- trunk/mm/kmemleak.c | 1 + trunk/mm/memcontrol.c | 2 +- trunk/mm/page-writeback.c | 8 +- trunk/mm/page_alloc.c | 4 +- trunk/mm/vmscan.c | 8 +- trunk/net/appletalk/ddp.c | 1 - trunk/net/atm/common.c | 6 +- trunk/net/core/datagram.c | 2 +- trunk/net/core/netpoll.c | 2 +- trunk/net/core/sock.c | 8 +- trunk/net/dccp/output.c | 2 +- trunk/net/dccp/proto.c | 2 +- trunk/net/ipv4/fib_trie.c | 4 +- trunk/net/ipv4/tcp.c | 2 +- trunk/net/ipx/af_ipx.c | 1 - trunk/net/irda/af_irda.c | 1 - trunk/net/irda/irnet/irnet.h | 1 + trunk/net/irda/irnet/irnet_ppp.c | 1 - trunk/net/iucv/af_iucv.c | 4 +- trunk/net/mac80211/mesh_hwmp.c | 2 +- trunk/net/mac80211/rc80211_minstrel.c | 5 +- trunk/net/rxrpc/af_rxrpc.c | 4 +- trunk/net/sunrpc/clnt.c | 1 + trunk/net/sunrpc/sched.c | 1 + trunk/net/sunrpc/svc_xprt.c | 1 - trunk/net/unix/af_unix.c | 8 +- trunk/net/wanrouter/wanmain.c | 1 - trunk/net/wireless/nl80211.c | 1 - trunk/net/wireless/scan.c | 1 + trunk/net/x25/af_x25.c | 1 - trunk/sound/pci/emu10k1/p16v.c | 2 +- trunk/sound/pci/hda/hda_beep.c | 11 +- trunk/sound/pci/hda/hda_intel.c | 34 +- trunk/sound/pci/hda/patch_realtek.c | 16 +- trunk/sound/pci/hda/patch_sigmatel.c | 4 +- trunk/sound/pci/hda/patch_via.c | 89 +- trunk/sound/soc/codecs/wm8753.c | 6 +- trunk/sound/soc/fsl/mpc5200_dma.c | 1 - trunk/sound/soc/fsl/mpc5200_dma.h | 1 - trunk/sound/soc/fsl/mpc5200_psc_ac97.c | 17 +- trunk/sound/usb/usx2y/usbusx2yaudio.c | 7 +- trunk/tools/perf/Makefile | 20 +- trunk/tools/perf/builtin-annotate.c | 69 +- trunk/tools/perf/builtin-help.c | 6 +- trunk/tools/perf/builtin-list.c | 2 +- trunk/tools/perf/builtin-record.c | 4 +- trunk/tools/perf/builtin-report.c | 383 ++------- trunk/tools/perf/builtin-stat.c | 51 +- trunk/tools/perf/builtin-top.c | 70 +- trunk/tools/perf/perf.c | 5 +- trunk/tools/perf/perf.h | 2 - trunk/tools/perf/util/alias.c | 2 +- trunk/tools/perf/util/cache.h | 1 - trunk/tools/perf/util/callchain.c | 255 ++---- trunk/tools/perf/util/callchain.h | 41 +- trunk/tools/perf/util/color.c | 37 +- trunk/tools/perf/util/color.h | 5 - trunk/tools/perf/util/config.c | 18 +- trunk/tools/perf/util/exec_cmd.c | 5 +- trunk/tools/perf/util/help.c | 26 +- trunk/tools/perf/util/help.h | 6 +- trunk/tools/perf/util/include/asm/system.h | 1 - trunk/tools/perf/util/include/linux/kernel.h | 21 - trunk/tools/perf/util/include/linux/list.h | 18 - trunk/tools/perf/util/include/linux/module.h | 6 - trunk/tools/perf/util/include/linux/poison.h | 1 - .../tools/perf/util/include/linux/prefetch.h | 6 - trunk/tools/perf/util/include/linux/rbtree.h | 1 - trunk/tools/perf/util/list.h | 603 ++++++++++++++ trunk/tools/perf/util/module.c | 509 ------------ trunk/tools/perf/util/module.h | 53 -- trunk/tools/perf/util/parse-events.c | 251 ++---- trunk/tools/perf/util/parse-options.c | 5 +- trunk/tools/perf/util/parse-options.h | 27 +- trunk/tools/perf/util/quote.c | 46 +- trunk/tools/perf/util/quote.h | 2 +- trunk/tools/perf/util/rbtree.c | 383 +++++++++ trunk/tools/perf/util/rbtree.h | 171 ++++ trunk/tools/perf/util/strbuf.c | 13 +- trunk/tools/perf/util/strbuf.h | 10 +- trunk/tools/perf/util/strlist.h | 2 +- trunk/tools/perf/util/symbol.c | 179 +--- trunk/tools/perf/util/symbol.h | 11 +- trunk/tools/perf/util/wrapper.c | 5 +- 567 files changed, 4597 insertions(+), 7376 deletions(-) rename trunk/Documentation/{x86/exception-tables.txt => exception.txt} (75%) delete mode 100644 trunk/arch/s390/lib/ucmpdi2.c delete mode 100644 trunk/arch/x86/lib/atomic64_32.c delete mode 100644 trunk/drivers/block/osdblk.c delete mode 100644 trunk/drivers/input/keyboard/matrix_keypad.c delete mode 100644 trunk/include/linux/input/matrix_keypad.h delete mode 100644 trunk/tools/perf/util/include/asm/system.h delete mode 100644 trunk/tools/perf/util/include/linux/kernel.h delete mode 100644 trunk/tools/perf/util/include/linux/list.h delete mode 100644 trunk/tools/perf/util/include/linux/module.h delete mode 100644 trunk/tools/perf/util/include/linux/poison.h delete mode 100644 trunk/tools/perf/util/include/linux/prefetch.h delete mode 100644 trunk/tools/perf/util/include/linux/rbtree.h create mode 100644 trunk/tools/perf/util/list.h delete mode 100644 trunk/tools/perf/util/module.c delete mode 100644 trunk/tools/perf/util/module.h create mode 100644 trunk/tools/perf/util/rbtree.c create mode 100644 trunk/tools/perf/util/rbtree.h diff --git a/[refs] b/[refs] index deb2c518fcb6..7737b5113e2b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dd0d9a46f573b086a67522f819566427dba9c4c7 +refs/heads/master: bf2a76b317c6ccc6f7b6b1dc09664c5b6a155c61 diff --git a/trunk/Documentation/DocBook/mac80211.tmpl b/trunk/Documentation/DocBook/mac80211.tmpl index f3f37f141dbd..e36986663570 100644 --- a/trunk/Documentation/DocBook/mac80211.tmpl +++ b/trunk/Documentation/DocBook/mac80211.tmpl @@ -184,6 +184,8 @@ usage should require reading the full document. !Finclude/net/mac80211.h ieee80211_ctstoself_get !Finclude/net/mac80211.h ieee80211_ctstoself_duration !Finclude/net/mac80211.h ieee80211_generic_frame_duration +!Finclude/net/mac80211.h ieee80211_get_hdrlen_from_skb +!Finclude/net/mac80211.h ieee80211_hdrlen !Finclude/net/mac80211.h ieee80211_wake_queue !Finclude/net/mac80211.h ieee80211_stop_queue !Finclude/net/mac80211.h ieee80211_wake_queues diff --git a/trunk/Documentation/x86/exception-tables.txt b/trunk/Documentation/exception.txt similarity index 75% rename from trunk/Documentation/x86/exception-tables.txt rename to trunk/Documentation/exception.txt index 32901aa36f0a..2d5aded64247 100644 --- a/trunk/Documentation/x86/exception-tables.txt +++ b/trunk/Documentation/exception.txt @@ -1,123 +1,123 @@ - Kernel level exception handling in Linux + Kernel level exception handling in Linux 2.1.8 Commentary by Joerg Pommnitz -When a process runs in kernel mode, it often has to access user -mode memory whose address has been passed by an untrusted program. +When a process runs in kernel mode, it often has to access user +mode memory whose address has been passed by an untrusted program. To protect itself the kernel has to verify this address. -In older versions of Linux this was done with the -int verify_area(int type, const void * addr, unsigned long size) +In older versions of Linux this was done with the +int verify_area(int type, const void * addr, unsigned long size) function (which has since been replaced by access_ok()). -This function verified that the memory area starting at address +This function verified that the memory area starting at address 'addr' and of size 'size' was accessible for the operation specified -in type (read or write). To do this, verify_read had to look up the -virtual memory area (vma) that contained the address addr. In the -normal case (correctly working program), this test was successful. +in type (read or write). To do this, verify_read had to look up the +virtual memory area (vma) that contained the address addr. In the +normal case (correctly working program), this test was successful. It only failed for a few buggy programs. In some kernel profiling tests, this normally unneeded verification used up a considerable amount of time. -To overcome this situation, Linus decided to let the virtual memory +To overcome this situation, Linus decided to let the virtual memory hardware present in every Linux-capable CPU handle this test. How does this work? -Whenever the kernel tries to access an address that is currently not -accessible, the CPU generates a page fault exception and calls the -page fault handler +Whenever the kernel tries to access an address that is currently not +accessible, the CPU generates a page fault exception and calls the +page fault handler void do_page_fault(struct pt_regs *regs, unsigned long error_code) -in arch/x86/mm/fault.c. The parameters on the stack are set up by -the low level assembly glue in arch/x86/kernel/entry_32.S. The parameter -regs is a pointer to the saved registers on the stack, error_code +in arch/i386/mm/fault.c. The parameters on the stack are set up by +the low level assembly glue in arch/i386/kernel/entry.S. The parameter +regs is a pointer to the saved registers on the stack, error_code contains a reason code for the exception. -do_page_fault first obtains the unaccessible address from the CPU -control register CR2. If the address is within the virtual address -space of the process, the fault probably occurred, because the page -was not swapped in, write protected or something similar. However, -we are interested in the other case: the address is not valid, there -is no vma that contains this address. In this case, the kernel jumps -to the bad_area label. - -There it uses the address of the instruction that caused the exception -(i.e. regs->eip) to find an address where the execution can continue -(fixup). If this search is successful, the fault handler modifies the -return address (again regs->eip) and returns. The execution will +do_page_fault first obtains the unaccessible address from the CPU +control register CR2. If the address is within the virtual address +space of the process, the fault probably occurred, because the page +was not swapped in, write protected or something similar. However, +we are interested in the other case: the address is not valid, there +is no vma that contains this address. In this case, the kernel jumps +to the bad_area label. + +There it uses the address of the instruction that caused the exception +(i.e. regs->eip) to find an address where the execution can continue +(fixup). If this search is successful, the fault handler modifies the +return address (again regs->eip) and returns. The execution will continue at the address in fixup. Where does fixup point to? -Since we jump to the contents of fixup, fixup obviously points -to executable code. This code is hidden inside the user access macros. -I have picked the get_user macro defined in arch/x86/include/asm/uaccess.h -as an example. The definition is somewhat hard to follow, so let's peek at +Since we jump to the contents of fixup, fixup obviously points +to executable code. This code is hidden inside the user access macros. +I have picked the get_user macro defined in include/asm/uaccess.h as an +example. The definition is somewhat hard to follow, so let's peek at the code generated by the preprocessor and the compiler. I selected -the get_user call in drivers/char/sysrq.c for a detailed examination. +the get_user call in drivers/char/console.c for a detailed examination. -The original code in sysrq.c line 587: +The original code in console.c line 1405: get_user(c, buf); The preprocessor output (edited to become somewhat readable): ( - { - long __gu_err = - 14 , __gu_val = 0; - const __typeof__(*( ( buf ) )) *__gu_addr = ((buf)); - if (((((0 + current_set[0])->tss.segment) == 0x18 ) || - (((sizeof(*(buf))) <= 0xC0000000UL) && - ((unsigned long)(__gu_addr ) <= 0xC0000000UL - (sizeof(*(buf))))))) + { + long __gu_err = - 14 , __gu_val = 0; + const __typeof__(*( ( buf ) )) *__gu_addr = ((buf)); + if (((((0 + current_set[0])->tss.segment) == 0x18 ) || + (((sizeof(*(buf))) <= 0xC0000000UL) && + ((unsigned long)(__gu_addr ) <= 0xC0000000UL - (sizeof(*(buf))))))) do { - __gu_err = 0; - switch ((sizeof(*(buf)))) { - case 1: - __asm__ __volatile__( - "1: mov" "b" " %2,%" "b" "1\n" - "2:\n" - ".section .fixup,\"ax\"\n" - "3: movl %3,%0\n" - " xor" "b" " %" "b" "1,%" "b" "1\n" - " jmp 2b\n" - ".section __ex_table,\"a\"\n" - " .align 4\n" - " .long 1b,3b\n" + __gu_err = 0; + switch ((sizeof(*(buf)))) { + case 1: + __asm__ __volatile__( + "1: mov" "b" " %2,%" "b" "1\n" + "2:\n" + ".section .fixup,\"ax\"\n" + "3: movl %3,%0\n" + " xor" "b" " %" "b" "1,%" "b" "1\n" + " jmp 2b\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" + " .long 1b,3b\n" ".text" : "=r"(__gu_err), "=q" (__gu_val): "m"((*(struct __large_struct *) - ( __gu_addr )) ), "i"(- 14 ), "0"( __gu_err )) ; - break; - case 2: + ( __gu_addr )) ), "i"(- 14 ), "0"( __gu_err )) ; + break; + case 2: __asm__ __volatile__( - "1: mov" "w" " %2,%" "w" "1\n" - "2:\n" - ".section .fixup,\"ax\"\n" - "3: movl %3,%0\n" - " xor" "w" " %" "w" "1,%" "w" "1\n" - " jmp 2b\n" - ".section __ex_table,\"a\"\n" - " .align 4\n" - " .long 1b,3b\n" + "1: mov" "w" " %2,%" "w" "1\n" + "2:\n" + ".section .fixup,\"ax\"\n" + "3: movl %3,%0\n" + " xor" "w" " %" "w" "1,%" "w" "1\n" + " jmp 2b\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" + " .long 1b,3b\n" ".text" : "=r"(__gu_err), "=r" (__gu_val) : "m"((*(struct __large_struct *) - ( __gu_addr )) ), "i"(- 14 ), "0"( __gu_err )); - break; - case 4: - __asm__ __volatile__( - "1: mov" "l" " %2,%" "" "1\n" - "2:\n" - ".section .fixup,\"ax\"\n" - "3: movl %3,%0\n" - " xor" "l" " %" "" "1,%" "" "1\n" - " jmp 2b\n" - ".section __ex_table,\"a\"\n" - " .align 4\n" " .long 1b,3b\n" + ( __gu_addr )) ), "i"(- 14 ), "0"( __gu_err )); + break; + case 4: + __asm__ __volatile__( + "1: mov" "l" " %2,%" "" "1\n" + "2:\n" + ".section .fixup,\"ax\"\n" + "3: movl %3,%0\n" + " xor" "l" " %" "" "1,%" "" "1\n" + " jmp 2b\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" " .long 1b,3b\n" ".text" : "=r"(__gu_err), "=r" (__gu_val) : "m"((*(struct __large_struct *) - ( __gu_addr )) ), "i"(- 14 ), "0"(__gu_err)); - break; - default: - (__gu_val) = __get_user_bad(); - } - } while (0) ; - ((c)) = (__typeof__(*((buf))))__gu_val; + ( __gu_addr )) ), "i"(- 14 ), "0"(__gu_err)); + break; + default: + (__gu_val) = __get_user_bad(); + } + } while (0) ; + ((c)) = (__typeof__(*((buf))))__gu_val; __gu_err; } ); @@ -127,12 +127,12 @@ see what code gcc generates: > xorl %edx,%edx > movl current_set,%eax - > cmpl $24,788(%eax) - > je .L1424 + > cmpl $24,788(%eax) + > je .L1424 > cmpl $-1073741825,64(%esp) - > ja .L1423 + > ja .L1423 > .L1424: - > movl %edx,%eax + > movl %edx,%eax > movl 64(%esp),%ebx > #APP > 1: movb (%ebx),%dl /* this is the actual user access */ @@ -149,17 +149,17 @@ see what code gcc generates: > .L1423: > movzbl %dl,%esi -The optimizer does a good job and gives us something we can actually -understand. Can we? The actual user access is quite obvious. Thanks -to the unified address space we can just access the address in user +The optimizer does a good job and gives us something we can actually +understand. Can we? The actual user access is quite obvious. Thanks +to the unified address space we can just access the address in user memory. But what does the .section stuff do????? To understand this we have to look at the final kernel: > objdump --section-headers vmlinux - > + > > vmlinux: file format elf32-i386 - > + > > Sections: > Idx Name Size VMA LMA File off Algn > 0 .text 00098f40 c0100000 c0100000 00001000 2**4 @@ -198,18 +198,18 @@ final kernel executable: The whole user memory access is reduced to 10 x86 machine instructions. The instructions bracketed in the .section directives are no longer -in the normal execution path. They are located in a different section +in the normal execution path. They are located in a different section of the executable file: > objdump --disassemble --section=.fixup vmlinux - > + > > c0199ff5 <.fixup+10b5> movl $0xfffffff2,%eax > c0199ffa <.fixup+10ba> xorb %dl,%dl > c0199ffc <.fixup+10bc> jmp c017e7a7 And finally: > objdump --full-contents --section=__ex_table vmlinux - > + > > c01aa7c4 93c017c0 e09f19c0 97c017c0 99c017c0 ................ > c01aa7d4 f6c217c0 e99f19c0 a5e717c0 f59f19c0 ................ > c01aa7e4 080a18c0 01a019c0 0a0a18c0 04a019c0 ................ @@ -235,8 +235,8 @@ sections in the ELF object file. So the instructions ended up in the .fixup section of the object file and the addresses .long 1b,3b ended up in the __ex_table section of the object file. 1b and 3b -are local labels. The local label 1b (1b stands for next label 1 -backward) is the address of the instruction that might fault, i.e. +are local labels. The local label 1b (1b stands for next label 1 +backward) is the address of the instruction that might fault, i.e. in our case the address of the label 1 is c017e7a5: the original assembly code: > 1: movb (%ebx),%dl and linked in vmlinux : > c017e7a5 movb (%ebx),%dl @@ -254,7 +254,7 @@ The assembly code becomes the value pair > c01aa7d4 c017c2f6 c0199fe9 c017e7a5 c0199ff5 ................ ^this is ^this is - 1b 3b + 1b 3b c017e7a5,c0199ff5 in the exception table of the kernel. So, what actually happens if a fault from kernel mode with no suitable @@ -266,9 +266,9 @@ vma occurs? 3.) CPU calls do_page_fault 4.) do page fault calls search_exception_table (regs->eip == c017e7a5); 5.) search_exception_table looks up the address c017e7a5 in the - exception table (i.e. the contents of the ELF section __ex_table) + exception table (i.e. the contents of the ELF section __ex_table) and returns the address of the associated fault handle code c0199ff5. -6.) do_page_fault modifies its own return address to point to the fault +6.) do_page_fault modifies its own return address to point to the fault handle code and returns. 7.) execution continues in the fault handling code. 8.) 8a) EAX becomes -EFAULT (== -14) diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 09e031c55887..f8cd450be9aa 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -458,13 +458,3 @@ Why: Remove the old legacy 32bit machine check code. This has been but the old version has been kept around for easier testing. Note this doesn't impact the old P5 and WinChip machine check handlers. Who: Andi Kleen - ----------------------------- - -What: lock_policy_rwsem_* and unlock_policy_rwsem_* will not be - exported interface anymore. -When: 2.6.33 -Why: cpu_policy_rwsem has a new cleaner definition making it local to - cpufreq core and contained inside cpufreq.c. Other dependent - drivers should not use it in order to safely avoid lockdep issues. -Who: Venkatesh Pallipadi diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index dd1a6d4bb747..d77fbd8b79ac 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -1720,8 +1720,8 @@ and is between 256 and 4096 characters. It is defined in the file oprofile.cpu_type= Force an oprofile cpu type This might be useful if you have an older oprofile userland or if you want common events. - Format: { arch_perfmon } - arch_perfmon: [X86] Force use of architectural + Format: { archperfmon } + archperfmon: [X86] Force use of architectural perfmon on Intel CPUs instead of the CPU specific event set. diff --git a/trunk/Documentation/x86/00-INDEX b/trunk/Documentation/x86/00-INDEX index f37b46d34861..dbe3377754af 100644 --- a/trunk/Documentation/x86/00-INDEX +++ b/trunk/Documentation/x86/00-INDEX @@ -2,5 +2,3 @@ - this file mtrr.txt - how to use x86 Memory Type Range Registers to increase performance -exception-tables.txt - - why and how Linux kernel uses exception tables on x86 diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 9d1601ec1311..381190c7949c 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -4407,7 +4407,7 @@ W: http://www.nongnu.org/orinoco/ S: Maintained F: drivers/net/wireless/orinoco/ -OSD LIBRARY and FILESYSTEM +OSD LIBRARY P: Boaz Harrosh M: bharrosh@panasas.com P: Benny Halevy @@ -4416,9 +4416,6 @@ L: osd-dev@open-osd.org W: http://open-osd.org T: git git://git.open-osd.org/open-osd.git S: Maintained -F: drivers/scsi/osd/ -F: drivers/include/scsi/osd_* -F: fs/exofs/ P54 WIRELESS DRIVER P: Michael Wu @@ -5806,17 +5803,17 @@ P: Jiri Kosina M: trivial@kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git S: Maintained +F: drivers/char/tty_* +F: drivers/serial/serial_core.c +F: include/linux/serial_core.h +F: include/linux/serial.h +F: include/linux/tty.h TTY LAYER P: Alan Cox M: alan@lxorguk.ukuu.org.uk S: Maintained T: stgit http://zeniv.linux.org.uk/~alan/ttydev/ -F: drivers/char/tty_* -F: drivers/serial/serial_core.c -F: include/linux/serial_core.h -F: include/linux/serial.h -F: include/linux/tty.h TULIP NETWORK DRIVERS P: Grant Grundler @@ -5854,7 +5851,7 @@ UBI FILE SYSTEM (UBIFS) P: Artem Bityutskiy M: dedekind@infradead.org P: Adrian Hunter -M: adrian.hunter@nokia.com +M: ext-adrian.hunter@nokia.com L: linux-mtd@lists.infradead.org T: git git://git.infradead.org/ubifs-2.6.git W: http://www.linux-mtd.infradead.org/doc/ubifs.html diff --git a/trunk/Makefile b/trunk/Makefile index bbe8453baa74..0aeec59c1f0a 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -565,7 +565,7 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) # disable invalid "can't wrap" optimizations for signed / pointers -KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow) +KBUILD_CFLAGS += $(call cc-option,-fwrapv) # revert to pre-gcc-4.4 behaviour of .eh_frame KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm) diff --git a/trunk/arch/alpha/include/asm/thread_info.h b/trunk/arch/alpha/include/asm/thread_info.h index 60c83abfde70..d069526bd767 100644 --- a/trunk/arch/alpha/include/asm/thread_info.h +++ b/trunk/arch/alpha/include/asm/thread_info.h @@ -37,7 +37,6 @@ struct thread_info { .task = &tsk, \ .exec_domain = &default_exec_domain, \ .addr_limit = KERNEL_DS, \ - .preempt_count = INIT_PREEMPT_COUNT, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/alpha/kernel/ptrace.c b/trunk/arch/alpha/kernel/ptrace.c index e072041d19f8..1e9ad52c460e 100644 --- a/trunk/arch/alpha/kernel/ptrace.c +++ b/trunk/arch/alpha/kernel/ptrace.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/arm/include/asm/thread_info.h b/trunk/arch/arm/include/asm/thread_info.h index 73394e50cbca..4f8848260ee2 100644 --- a/trunk/arch/arm/include/asm/thread_info.h +++ b/trunk/arch/arm/include/asm/thread_info.h @@ -73,7 +73,7 @@ struct thread_info { .task = &tsk, \ .exec_domain = &default_exec_domain, \ .flags = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .addr_limit = KERNEL_DS, \ .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ diff --git a/trunk/arch/avr32/include/asm/thread_info.h b/trunk/arch/avr32/include/asm/thread_info.h index fc42de5ca209..4442f8d2d423 100644 --- a/trunk/arch/avr32/include/asm/thread_info.h +++ b/trunk/arch/avr32/include/asm/thread_info.h @@ -40,7 +40,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .restart_block = { \ .fn = do_no_restart_syscall \ } \ diff --git a/trunk/arch/avr32/kernel/traps.c b/trunk/arch/avr32/kernel/traps.c index b91b2044af9c..6e3d491184ea 100644 --- a/trunk/arch/avr32/kernel/traps.c +++ b/trunk/arch/avr32/kernel/traps.c @@ -32,25 +32,22 @@ void NORET_TYPE die(const char *str, struct pt_regs *regs, long err) spin_lock_irq(&die_lock); bust_spinlocks(1); - printk(KERN_ALERT "Oops: %s, sig: %ld [#%d]\n", + printk(KERN_ALERT "Oops: %s, sig: %ld [#%d]\n" KERN_EMERG, str, err, ++die_counter); - - printk(KERN_EMERG); - #ifdef CONFIG_PREEMPT - printk(KERN_CONT "PREEMPT "); + printk("PREEMPT "); #endif #ifdef CONFIG_FRAME_POINTER - printk(KERN_CONT "FRAME_POINTER "); + printk("FRAME_POINTER "); #endif if (current_cpu_data.features & AVR32_FEATURE_OCD) { unsigned long did = ocd_read(DID); - printk(KERN_CONT "chip: 0x%03lx:0x%04lx rev %lu\n", + printk("chip: 0x%03lx:0x%04lx rev %lu\n", (did >> 1) & 0x7ff, (did >> 12) & 0x7fff, (did >> 28) & 0xf); } else { - printk(KERN_CONT "cpu: arch %u r%u / core %u r%u\n", + printk("cpu: arch %u r%u / core %u r%u\n", current_cpu_data.arch_type, current_cpu_data.arch_revision, current_cpu_data.cpu_type, diff --git a/trunk/arch/blackfin/include/asm/thread_info.h b/trunk/arch/blackfin/include/asm/thread_info.h index 2bbfdd950afc..2920087516f2 100644 --- a/trunk/arch/blackfin/include/asm/thread_info.h +++ b/trunk/arch/blackfin/include/asm/thread_info.h @@ -77,7 +77,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/blackfin/kernel/ptrace.c b/trunk/arch/blackfin/kernel/ptrace.c index 6a387eec6b65..d76618db50df 100644 --- a/trunk/arch/blackfin/kernel/ptrace.c +++ b/trunk/arch/blackfin/kernel/ptrace.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/blackfin/kernel/setup.c b/trunk/arch/blackfin/kernel/setup.c index 6136c33e919f..298f023bcc09 100644 --- a/trunk/arch/blackfin/kernel/setup.c +++ b/trunk/arch/blackfin/kernel/setup.c @@ -408,14 +408,13 @@ static void __init print_memory_map(char *who) bfin_memmap.map[i].addr + bfin_memmap.map[i].size); switch (bfin_memmap.map[i].type) { case BFIN_MEMMAP_RAM: - printk(KERN_CONT "(usable)\n"); - break; + printk("(usable)\n"); + break; case BFIN_MEMMAP_RESERVED: - printk(KERN_CONT "(reserved)\n"); - break; - default: - printk(KERN_CONT "type %lu\n", bfin_memmap.map[i].type); - break; + printk("(reserved)\n"); + break; + default: printk("type %lu\n", bfin_memmap.map[i].type); + break; } } } @@ -615,19 +614,19 @@ static __init void memory_setup(void) printk(KERN_INFO "Kernel Managed Memory: %ldMB\n", _ramend >> 20); printk(KERN_INFO "Memory map:\n" - " fixedcode = 0x%p-0x%p\n" - " text = 0x%p-0x%p\n" - " rodata = 0x%p-0x%p\n" - " bss = 0x%p-0x%p\n" - " data = 0x%p-0x%p\n" - " stack = 0x%p-0x%p\n" - " init = 0x%p-0x%p\n" - " available = 0x%p-0x%p\n" + KERN_INFO " fixedcode = 0x%p-0x%p\n" + KERN_INFO " text = 0x%p-0x%p\n" + KERN_INFO " rodata = 0x%p-0x%p\n" + KERN_INFO " bss = 0x%p-0x%p\n" + KERN_INFO " data = 0x%p-0x%p\n" + KERN_INFO " stack = 0x%p-0x%p\n" + KERN_INFO " init = 0x%p-0x%p\n" + KERN_INFO " available = 0x%p-0x%p\n" #ifdef CONFIG_MTD_UCLINUX - " rootfs = 0x%p-0x%p\n" + KERN_INFO " rootfs = 0x%p-0x%p\n" #endif #if DMA_UNCACHED_REGION > 0 - " DMA Zone = 0x%p-0x%p\n" + KERN_INFO " DMA Zone = 0x%p-0x%p\n" #endif , (void *)FIXED_CODE_START, (void *)FIXED_CODE_END, _stext, _etext, @@ -860,13 +859,13 @@ void __init setup_arch(char **cmdline_p) #endif printk(KERN_INFO "Hardware Trace "); if (bfin_read_TBUFCTL() & 0x1) - printk(KERN_CONT "Active "); + printk("Active "); else - printk(KERN_CONT "Off "); + printk("Off "); if (bfin_read_TBUFCTL() & 0x2) - printk(KERN_CONT "and Enabled\n"); + printk("and Enabled\n"); else - printk(KERN_CONT "and Disabled\n"); + printk("and Disabled\n"); #if defined(CONFIG_CHR_DEV_FLASH) || defined(CONFIG_BLK_DEV_FLASH) /* we need to initialize the Flashrom device here since we might diff --git a/trunk/arch/blackfin/kernel/sys_bfin.c b/trunk/arch/blackfin/kernel/sys_bfin.c index 3da60fb13ce4..a8f1329c15a4 100644 --- a/trunk/arch/blackfin/kernel/sys_bfin.c +++ b/trunk/arch/blackfin/kernel/sys_bfin.c @@ -29,6 +29,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include #include #include diff --git a/trunk/arch/blackfin/kernel/traps.c b/trunk/arch/blackfin/kernel/traps.c index 8a1caf2bb5b9..8eeb457ce5d5 100644 --- a/trunk/arch/blackfin/kernel/traps.c +++ b/trunk/arch/blackfin/kernel/traps.c @@ -212,7 +212,7 @@ asmlinkage void double_fault_c(struct pt_regs *fp) console_verbose(); oops_in_progress = 1; #ifdef CONFIG_DEBUG_VERBOSE - printk(KERN_EMERG "Double Fault\n"); + printk(KERN_EMERG "\n" KERN_EMERG "Double Fault\n"); #ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT if (((long)fp->seqstat & SEQSTAT_EXCAUSE) == VEC_UNCOV) { unsigned int cpu = smp_processor_id(); @@ -583,14 +583,15 @@ asmlinkage void trap_c(struct pt_regs *fp) #ifndef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE if (trapnr == VEC_CPLB_I_M || trapnr == VEC_CPLB_M) verbose_printk(KERN_NOTICE "No trace since you do not have " - "CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE enabled\n\n"); + "CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE enabled\n" + KERN_NOTICE "\n"); else #endif dump_bfin_trace_buffer(); if (oops_in_progress) { /* Dump the current kernel stack */ - verbose_printk(KERN_NOTICE "Kernel Stack\n"); + verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "Kernel Stack\n"); show_stack(current, NULL); print_modules(); #ifndef CONFIG_ACCESS_CHECK @@ -905,7 +906,7 @@ void show_stack(struct task_struct *task, unsigned long *stack) ret_addr = 0; if (!j && i % 8 == 0) - printk(KERN_NOTICE "%p:",addr); + printk("\n" KERN_NOTICE "%p:",addr); /* if it is an odd address, or zero, just skip it */ if (*addr & 0x1 || !*addr) @@ -995,9 +996,9 @@ void dump_bfin_process(struct pt_regs *fp) printk(KERN_NOTICE "CPU = %d\n", current_thread_info()->cpu); if (!((unsigned long)current->mm & 0x3) && (unsigned long)current->mm >= FIXED_CODE_START) - verbose_printk(KERN_NOTICE - "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n" - " BSS = 0x%p-0x%p USER-STACK = 0x%p\n\n", + verbose_printk(KERN_NOTICE "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n" + KERN_NOTICE " BSS = 0x%p-0x%p USER-STACK = 0x%p\n" + KERN_NOTICE "\n", (void *)current->mm->start_code, (void *)current->mm->end_code, (void *)current->mm->start_data, @@ -1008,8 +1009,8 @@ void dump_bfin_process(struct pt_regs *fp) else verbose_printk(KERN_NOTICE "invalid mm\n"); } else - verbose_printk(KERN_NOTICE - "No Valid process in current context\n"); + verbose_printk(KERN_NOTICE "\n" KERN_NOTICE + "No Valid process in current context\n"); #endif } @@ -1027,7 +1028,7 @@ void dump_bfin_mem(struct pt_regs *fp) addr < (unsigned short *)((unsigned long)erraddr & ~0xF) + 0x10; addr++) { if (!((unsigned long)addr & 0xF)) - verbose_printk(KERN_NOTICE "0x%p: ", addr); + verbose_printk("\n" KERN_NOTICE "0x%p: ", addr); if (!get_instruction(&val, addr)) { val = 0; @@ -1055,9 +1056,9 @@ void dump_bfin_mem(struct pt_regs *fp) oops_in_progress)){ verbose_printk(KERN_NOTICE "Looks like this was a deferred error - sorry\n"); #ifndef CONFIG_DEBUG_HWERR - verbose_printk(KERN_NOTICE -"The remaining message may be meaningless\n" -"You should enable CONFIG_DEBUG_HWERR to get a better idea where it came from\n"); + verbose_printk(KERN_NOTICE "The remaining message may be meaningless\n" + KERN_NOTICE "You should enable CONFIG_DEBUG_HWERR to get a" + " better idea where it came from\n"); #else /* If we are handling only one peripheral interrupt * and current mm and pid are valid, and the last error @@ -1113,10 +1114,9 @@ void show_regs(struct pt_regs *fp) verbose_printk(KERN_NOTICE "%s", linux_banner); - verbose_printk(KERN_NOTICE "\nSEQUENCER STATUS:\t\t%s\n", - print_tainted()); + verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted()); verbose_printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n", - (long)fp->seqstat, fp->ipend, fp->syscfg); + (long)fp->seqstat, fp->ipend, fp->syscfg); if ((fp->seqstat & SEQSTAT_EXCAUSE) == VEC_HWERR) { verbose_printk(KERN_NOTICE " HWERRCAUSE: 0x%lx\n", (fp->seqstat & SEQSTAT_HWERRCAUSE) >> 14); @@ -1184,7 +1184,7 @@ void show_regs(struct pt_regs *fp) verbose_printk(KERN_NOTICE "ICPLB_FAULT_ADDR: %s\n", buf); } - verbose_printk(KERN_NOTICE "PROCESSOR STATE:\n"); + verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "PROCESSOR STATE:\n"); verbose_printk(KERN_NOTICE " R0 : %08lx R1 : %08lx R2 : %08lx R3 : %08lx\n", fp->r0, fp->r1, fp->r2, fp->r3); verbose_printk(KERN_NOTICE " R4 : %08lx R5 : %08lx R6 : %08lx R7 : %08lx\n", diff --git a/trunk/arch/cris/include/asm/thread_info.h b/trunk/arch/cris/include/asm/thread_info.h index c3aade36c330..bc5b2935ca53 100644 --- a/trunk/arch/cris/include/asm/thread_info.h +++ b/trunk/arch/cris/include/asm/thread_info.h @@ -50,6 +50,8 @@ struct thread_info { /* * macros/functions for gaining access to the thread information structure + * + * preempt_count needs to be 1 initially, until the scheduler is functional. */ #ifndef __ASSEMBLY__ #define INIT_THREAD_INFO(tsk) \ @@ -58,7 +60,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .addr_limit = KERNEL_DS, \ .restart_block = { \ .fn = do_no_restart_syscall, \ diff --git a/trunk/arch/cris/kernel/sys_cris.c b/trunk/arch/cris/kernel/sys_cris.c index 2ad962c7e88e..a79fbd87021b 100644 --- a/trunk/arch/cris/kernel/sys_cris.c +++ b/trunk/arch/cris/kernel/sys_cris.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/frv/include/asm/thread_info.h b/trunk/arch/frv/include/asm/thread_info.h index e608e056bb53..e8a5ed7be021 100644 --- a/trunk/arch/frv/include/asm/thread_info.h +++ b/trunk/arch/frv/include/asm/thread_info.h @@ -56,6 +56,8 @@ struct thread_info { /* * macros/functions for gaining access to the thread information structure + * + * preempt_count needs to be 1 initially, until the scheduler is functional. */ #ifndef __ASSEMBLY__ @@ -65,7 +67,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .addr_limit = KERNEL_DS, \ .restart_block = { \ .fn = do_no_restart_syscall, \ diff --git a/trunk/arch/h8300/include/asm/thread_info.h b/trunk/arch/h8300/include/asm/thread_info.h index 8bbc8b0ee45d..700014d2155f 100644 --- a/trunk/arch/h8300/include/asm/thread_info.h +++ b/trunk/arch/h8300/include/asm/thread_info.h @@ -36,7 +36,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/ia64/include/asm/thread_info.h b/trunk/arch/ia64/include/asm/thread_info.h index 8ce2e388e37c..ae6922626bf4 100644 --- a/trunk/arch/ia64/include/asm/thread_info.h +++ b/trunk/arch/ia64/include/asm/thread_info.h @@ -48,7 +48,7 @@ struct thread_info { .flags = 0, \ .cpu = 0, \ .addr_limit = KERNEL_DS, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 0, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/ia64/kernel/ptrace.c b/trunk/arch/ia64/kernel/ptrace.c index 9daa87fdb018..92c9689b7d97 100644 --- a/trunk/arch/ia64/kernel/ptrace.c +++ b/trunk/arch/ia64/kernel/ptrace.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/m32r/include/asm/thread_info.h b/trunk/arch/m32r/include/asm/thread_info.h index 07bb5bd00e2a..8589d462df27 100644 --- a/trunk/arch/m32r/include/asm/thread_info.h +++ b/trunk/arch/m32r/include/asm/thread_info.h @@ -57,6 +57,8 @@ struct thread_info { /* * macros/functions for gaining access to the thread information structure + * + * preempt_count needs to be 1 initially, until the scheduler is functional. */ #ifndef __ASSEMBLY__ @@ -66,7 +68,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .addr_limit = KERNEL_DS, \ .restart_block = { \ .fn = do_no_restart_syscall, \ diff --git a/trunk/arch/m32r/kernel/ptrace.c b/trunk/arch/m32r/kernel/ptrace.c index 98b8feb12ed8..bf0abe9e1f73 100644 --- a/trunk/arch/m32r/kernel/ptrace.c +++ b/trunk/arch/m32r/kernel/ptrace.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/m68k/include/asm/thread_info_mm.h b/trunk/arch/m68k/include/asm/thread_info_mm.h index 6ea5c33b3c56..af0fda46e94b 100644 --- a/trunk/arch/m68k/include/asm/thread_info_mm.h +++ b/trunk/arch/m68k/include/asm/thread_info_mm.h @@ -19,7 +19,6 @@ struct thread_info { { \ .task = &tsk, \ .exec_domain = &default_exec_domain, \ - .preempt_count = INIT_PREEMPT_COUNT, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/m68k/include/asm/thread_info_no.h b/trunk/arch/m68k/include/asm/thread_info_no.h index c2bde5e24b0b..82529f424ea3 100644 --- a/trunk/arch/m68k/include/asm/thread_info_no.h +++ b/trunk/arch/m68k/include/asm/thread_info_no.h @@ -49,7 +49,6 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/m68knommu/kernel/process.c b/trunk/arch/m68knommu/kernel/process.c index 8f8f4abab2ff..1e96c6eb6312 100644 --- a/trunk/arch/m68knommu/kernel/process.c +++ b/trunk/arch/m68knommu/kernel/process.c @@ -290,7 +290,7 @@ void dump(struct pt_regs *fp) unsigned char *tp; int i; - printk(KERN_EMERG "\nCURRENT PROCESS:\n\n"); + printk(KERN_EMERG "\n" KERN_EMERG "CURRENT PROCESS:\n" KERN_EMERG "\n"); printk(KERN_EMERG "COMM=%s PID=%d\n", current->comm, current->pid); if (current->mm) { @@ -301,7 +301,8 @@ void dump(struct pt_regs *fp) (int) current->mm->end_data, (int) current->mm->end_data, (int) current->mm->brk); - printk(KERN_EMERG "USER-STACK=%08x KERNEL-STACK=%08x\n\n", + printk(KERN_EMERG "USER-STACK=%08x KERNEL-STACK=%08x\n" + KERN_EMERG "\n", (int) current->mm->start_stack, (int)(((unsigned long) current) + THREAD_SIZE)); } @@ -312,35 +313,35 @@ void dump(struct pt_regs *fp) fp->d0, fp->d1, fp->d2, fp->d3); printk(KERN_EMERG "d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n", fp->d4, fp->d5, fp->a0, fp->a1); - printk(KERN_EMERG "\nUSP: %08x TRAPFRAME: %08x\n", + printk(KERN_EMERG "\n" KERN_EMERG "USP: %08x TRAPFRAME: %08x\n", (unsigned int) rdusp(), (unsigned int) fp); - printk(KERN_EMERG "\nCODE:"); + printk(KERN_EMERG "\n" KERN_EMERG "CODE:"); tp = ((unsigned char *) fp->pc) - 0x20; for (sp = (unsigned long *) tp, i = 0; (i < 0x40); i += 4) { if ((i % 0x10) == 0) - printk(KERN_EMERG "%08x: ", (int) (tp + i)); + printk("\n" KERN_EMERG "%08x: ", (int) (tp + i)); printk("%08x ", (int) *sp++); } - printk(KERN_EMERG "\n"); + printk("\n" KERN_EMERG "\n"); printk(KERN_EMERG "KERNEL STACK:"); tp = ((unsigned char *) fp) - 0x40; for (sp = (unsigned long *) tp, i = 0; (i < 0xc0); i += 4) { if ((i % 0x10) == 0) - printk(KERN_EMERG "%08x: ", (int) (tp + i)); + printk("\n" KERN_EMERG "%08x: ", (int) (tp + i)); printk("%08x ", (int) *sp++); } - printk(KERN_EMERG "\n"); + printk("\n" KERN_EMERG "\n"); printk(KERN_EMERG "USER STACK:"); tp = (unsigned char *) (rdusp() - 0x10); for (sp = (unsigned long *) tp, i = 0; (i < 0x80); i += 4) { if ((i % 0x10) == 0) - printk(KERN_EMERG "%08x: ", (int) (tp + i)); + printk("\n" KERN_EMERG "%08x: ", (int) (tp + i)); printk("%08x ", (int) *sp++); } - printk(KERN_EMERG "\n"); + printk("\n" KERN_EMERG "\n"); } /* diff --git a/trunk/arch/m68knommu/kernel/traps.c b/trunk/arch/m68knommu/kernel/traps.c index 3739c8f657d7..51d325343ab5 100644 --- a/trunk/arch/m68knommu/kernel/traps.c +++ b/trunk/arch/m68knommu/kernel/traps.c @@ -111,7 +111,7 @@ static void print_this_address(unsigned long addr, int i) if (i % 5) printk(KERN_CONT " [%08lx] ", addr); else - printk(KERN_EMERG " [%08lx] ", addr); + printk(KERN_CONT "\n" KERN_EMERG " [%08lx] ", addr); i++; #endif } @@ -137,8 +137,8 @@ static void __show_stack(struct task_struct *task, unsigned long *stack) if (stack + 1 + i > endstack) break; if (i % 8 == 0) - printk(KERN_EMERG " "); - printk(KERN_CONT " %08lx", *(stack + i)); + printk("\n" KERN_EMERG " "); + printk(" %08lx", *(stack + i)); } printk("\n"); i = 0; diff --git a/trunk/arch/microblaze/include/asm/thread_info.h b/trunk/arch/microblaze/include/asm/thread_info.h index 6e92885d381a..7fac44498445 100644 --- a/trunk/arch/microblaze/include/asm/thread_info.h +++ b/trunk/arch/microblaze/include/asm/thread_info.h @@ -75,6 +75,8 @@ struct thread_info { /* * macros/functions for gaining access to the thread information structure + * + * preempt_count needs to be 1 initially, until the scheduler is functional. */ #define INIT_THREAD_INFO(tsk) \ { \ @@ -82,7 +84,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .addr_limit = KERNEL_DS, \ .restart_block = { \ .fn = do_no_restart_syscall, \ diff --git a/trunk/arch/microblaze/kernel/ptrace.c b/trunk/arch/microblaze/kernel/ptrace.c index 53ff39af6a5c..b86aa623e36d 100644 --- a/trunk/arch/microblaze/kernel/ptrace.c +++ b/trunk/arch/microblaze/kernel/ptrace.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include diff --git a/trunk/arch/microblaze/kernel/signal.c b/trunk/arch/microblaze/kernel/signal.c index 1c80e4fc40ce..493819c25fba 100644 --- a/trunk/arch/microblaze/kernel/signal.c +++ b/trunk/arch/microblaze/kernel/signal.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/microblaze/kernel/sys_microblaze.c b/trunk/arch/microblaze/kernel/sys_microblaze.c index e000bce09b2b..8c9ebac5da10 100644 --- a/trunk/arch/microblaze/kernel/sys_microblaze.c +++ b/trunk/arch/microblaze/kernel/sys_microblaze.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/mips/include/asm/thread_info.h b/trunk/arch/mips/include/asm/thread_info.h index f9df720d2e40..143a48136a4b 100644 --- a/trunk/arch/mips/include/asm/thread_info.h +++ b/trunk/arch/mips/include/asm/thread_info.h @@ -39,6 +39,8 @@ struct thread_info { /* * macros/functions for gaining access to the thread information structure + * + * preempt_count needs to be 1 initially, until the scheduler is functional. */ #define INIT_THREAD_INFO(tsk) \ { \ @@ -46,7 +48,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = _TIF_FIXADE, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .addr_limit = KERNEL_DS, \ .restart_block = { \ .fn = do_no_restart_syscall, \ diff --git a/trunk/arch/mips/kernel/ptrace32.c b/trunk/arch/mips/kernel/ptrace32.c index 32644b4a0714..c4f9ac17474a 100644 --- a/trunk/arch/mips/kernel/ptrace32.c +++ b/trunk/arch/mips/kernel/ptrace32.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include diff --git a/trunk/arch/mips/mm/hugetlbpage.c b/trunk/arch/mips/mm/hugetlbpage.c index 8c2834f5919d..471c09aa1614 100644 --- a/trunk/arch/mips/mm/hugetlbpage.c +++ b/trunk/arch/mips/mm/hugetlbpage.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/mn10300/include/asm/thread_info.h b/trunk/arch/mn10300/include/asm/thread_info.h index 58d64f8b2cc3..78a3881f3c12 100644 --- a/trunk/arch/mn10300/include/asm/thread_info.h +++ b/trunk/arch/mn10300/include/asm/thread_info.h @@ -65,6 +65,8 @@ struct thread_info { /* * macros/functions for gaining access to the thread information structure + * + * preempt_count needs to be 1 initially, until the scheduler is functional. */ #ifndef __ASSEMBLY__ @@ -74,7 +76,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .addr_limit = KERNEL_DS, \ .restart_block = { \ .fn = do_no_restart_syscall, \ diff --git a/trunk/arch/mn10300/kernel/ptrace.c b/trunk/arch/mn10300/kernel/ptrace.c index cf847dabc1bd..e143339ad28e 100644 --- a/trunk/arch/mn10300/kernel/ptrace.c +++ b/trunk/arch/mn10300/kernel/ptrace.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/mn10300/kernel/signal.c b/trunk/arch/mn10300/kernel/signal.c index feb2f2e810db..9f7572a0f578 100644 --- a/trunk/arch/mn10300/kernel/signal.c +++ b/trunk/arch/mn10300/kernel/signal.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/mn10300/kernel/sys_mn10300.c b/trunk/arch/mn10300/kernel/sys_mn10300.c index 29d196b83d25..bca5a84dc72c 100644 --- a/trunk/arch/mn10300/kernel/sys_mn10300.c +++ b/trunk/arch/mn10300/kernel/sys_mn10300.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/mn10300/kernel/traps.c b/trunk/arch/mn10300/kernel/traps.c index 91365adba4f5..681ad8c9e4fb 100644 --- a/trunk/arch/mn10300/kernel/traps.c +++ b/trunk/arch/mn10300/kernel/traps.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -135,7 +136,8 @@ void show_trace(unsigned long *sp) unsigned long *stack, addr, module_start, module_end; int i; - printk(KERN_EMERG "\nCall Trace:"); + printk(KERN_EMERG "\n" + KERN_EMERG "Call Trace:"); stack = sp; i = 0; @@ -151,7 +153,7 @@ void show_trace(unsigned long *sp) printk("\n"); #else if ((i % 6) == 0) - printk(KERN_EMERG " "); + printk("\n" KERN_EMERG " "); printk("[<%08lx>] ", addr); i++; #endif @@ -178,7 +180,7 @@ void show_stack(struct task_struct *task, unsigned long *sp) if (((long) stack & (THREAD_SIZE - 1)) == 0) break; if ((i % 8) == 0) - printk(KERN_EMERG " "); + printk("\n" KERN_EMERG " "); printk("%08lx ", *stack++); } @@ -262,7 +264,8 @@ void show_registers(struct pt_regs *regs) show_stack(current, (unsigned long *) sp); #if 0 - printk(KERN_EMERG "\nCode: "); + printk(KERN_EMERG "\n" + KERN_EMERG "Code: "); if (regs->pc < PAGE_OFFSET) goto bad; @@ -308,14 +311,16 @@ void die(const char *str, struct pt_regs *regs, enum exception_code code) { console_verbose(); spin_lock_irq(&die_lock); - printk(KERN_EMERG "\n%s: %04x\n", + printk(KERN_EMERG "\n" + KERN_EMERG "%s: %04x\n", str, code & 0xffff); show_registers(regs); if (regs->pc >= 0x02000000 && regs->pc < 0x04000000 && (regs->epsw & (EPSW_IM | EPSW_IE)) != (EPSW_IM | EPSW_IE)) { printk(KERN_EMERG "Exception in usermode interrupt handler\n"); - printk(KERN_EMERG "\nPlease connect to kernel debugger !!\n"); + printk(KERN_EMERG "\n" + KERN_EMERG " Please connect to kernel debugger !!\n"); asm volatile ("0: bra 0b"); } @@ -424,8 +429,9 @@ asmlinkage void io_bus_error(u32 bcberr, u32 bcbear, struct pt_regs *regs) { console_verbose(); - printk(KERN_EMERG "Asynchronous I/O Bus Error\n"); - printk(KERN_EMERG "==========================\n"); + printk(KERN_EMERG "\n" + KERN_EMERG "Asynchronous I/O Bus Error\n" + KERN_EMERG "==========================\n"); if (bcberr & BCBERR_BEME) printk(KERN_EMERG "- Multiple recorded errors\n"); diff --git a/trunk/arch/mn10300/mm/fault.c b/trunk/arch/mn10300/mm/fault.c index 53bb17d0f068..a62e1e138bc1 100644 --- a/trunk/arch/mn10300/mm/fault.c +++ b/trunk/arch/mn10300/mm/fault.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include /* For unblank_screen() */ diff --git a/trunk/arch/mn10300/mm/misalignment.c b/trunk/arch/mn10300/mm/misalignment.c index 30016251f658..94c4a4358065 100644 --- a/trunk/arch/mn10300/mm/misalignment.c +++ b/trunk/arch/mn10300/mm/misalignment.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/parisc/include/asm/thread_info.h b/trunk/arch/parisc/include/asm/thread_info.h index 4ce0edfbe969..0407959da489 100644 --- a/trunk/arch/parisc/include/asm/thread_info.h +++ b/trunk/arch/parisc/include/asm/thread_info.h @@ -23,7 +23,7 @@ struct thread_info { .flags = 0, \ .cpu = 0, \ .addr_limit = KERNEL_DS, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .restart_block = { \ .fn = do_no_restart_syscall \ } \ diff --git a/trunk/arch/parisc/kernel/process.c b/trunk/arch/parisc/kernel/process.c index 1f3aa8db0203..61c07078c072 100644 --- a/trunk/arch/parisc/kernel/process.c +++ b/trunk/arch/parisc/kernel/process.c @@ -156,7 +156,7 @@ void machine_power_off(void) * software. The user has to press the button himself. */ printk(KERN_EMERG "System shut down completed.\n" - "Please power this system off now."); + KERN_EMERG "Please power this system off now."); } void (*pm_power_off)(void) = machine_power_off; diff --git a/trunk/arch/parisc/kernel/traps.c b/trunk/arch/parisc/kernel/traps.c index 528f0ff9b273..c32f5d6d778e 100644 --- a/trunk/arch/parisc/kernel/traps.c +++ b/trunk/arch/parisc/kernel/traps.c @@ -250,14 +250,15 @@ void die_if_kernel(char *str, struct pt_regs *regs, long err) oops_enter(); /* Amuse the user in a SPARC fashion */ - if (err) printk(KERN_CRIT - " _______________________________ \n" - " < Your System ate a SPARC! Gah! >\n" - " ------------------------------- \n" - " \\ ^__^\n" - " (__)\\ )\\/\\\n" - " U ||----w |\n" - " || ||\n"); + if (err) printk( +KERN_CRIT " _______________________________ \n" +KERN_CRIT " < Your System ate a SPARC! Gah! >\n" +KERN_CRIT " ------------------------------- \n" +KERN_CRIT " \\ ^__^\n" +KERN_CRIT " \\ (xx)\\_______\n" +KERN_CRIT " (__)\\ )\\/\\\n" +KERN_CRIT " U ||----w |\n" +KERN_CRIT " || ||\n"); /* unlock the pdc lock if necessary */ pdc_emergency_unlock(); @@ -796,8 +797,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs) else printk(KERN_DEBUG "User Fault (long pointer) (fault %d) ", code); - printk(KERN_CONT "pid=%d command='%s'\n", - task_pid_nr(current), current->comm); + printk("pid=%d command='%s'\n", task_pid_nr(current), current->comm); show_regs(regs); #endif si.si_signo = SIGSEGV; diff --git a/trunk/arch/powerpc/boot/dts/warp.dts b/trunk/arch/powerpc/boot/dts/warp.dts index 31605ee4afb6..01bfb56bbe80 100644 --- a/trunk/arch/powerpc/boot/dts/warp.dts +++ b/trunk/arch/powerpc/boot/dts/warp.dts @@ -261,11 +261,10 @@ compatible = "gpio-leds"; green { gpios = <&GPIO1 0 0>; - default-state = "keep"; + default-state = "on"; }; red { gpios = <&GPIO1 1 0>; - default-state = "keep"; }; }; diff --git a/trunk/arch/powerpc/configs/44x/warp_defconfig b/trunk/arch/powerpc/configs/44x/warp_defconfig index 787635f23d8f..3b77f092abe1 100644 --- a/trunk/arch/powerpc/configs/44x/warp_defconfig +++ b/trunk/arch/powerpc/configs/44x/warp_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.30 -# Tue Jun 9 23:35:36 2009 +# Linux kernel version: 2.6.29-rc2 +# Fri Jan 23 07:57:16 2009 # # CONFIG_PPC64 is not set @@ -41,7 +41,6 @@ CONFIG_ARCH_HAS_ILOG2_U32=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_GPIO=y # CONFIG_ARCH_NO_VIRT_TO_BUS is not set CONFIG_PPC=y CONFIG_EARLY_PRINTK=y @@ -54,12 +53,10 @@ CONFIG_PPC_UDBG_16550=y # CONFIG_GENERIC_TBSYNC is not set CONFIG_AUDIT_ARCH=y CONFIG_GENERIC_BUG=y -CONFIG_DTC=y # CONFIG_DEFAULT_UIMAGE is not set CONFIG_PPC_DCR_NATIVE=y # CONFIG_PPC_DCR_MMIO is not set CONFIG_PPC_DCR=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # @@ -77,17 +74,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set - -# -# RCU Subsystem -# -CONFIG_CLASSIC_RCU=y -# CONFIG_TREE_RCU is not set -# CONFIG_PREEMPT_RCU is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_PREEMPT_RCU_TRACE is not set -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y +# CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_GROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y @@ -95,29 +82,27 @@ CONFIG_FAIR_GROUP_SCHED=y CONFIG_USER_SCHED=y # CONFIG_CGROUP_SCHED is not set # CONFIG_CGROUPS is not set -# CONFIG_SYSFS_DEPRECATED_V2 is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y # CONFIG_RELAY is not set # CONFIG_NAMESPACES is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -# CONFIG_RD_BZIP2 is not set -# CONFIG_RD_LZMA is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set -# CONFIG_STRIP_ASM_SYMS is not set -CONFIG_HOTPLUG=y +# CONFIG_HOTPLUG is not set CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y +CONFIG_COMPAT_BRK=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y +CONFIG_ANON_INODES=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y @@ -125,13 +110,10 @@ CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y -CONFIG_COMPAT_BRK=y -# CONFIG_SLAB is not set -CONFIG_SLUB=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set # CONFIG_SLOB is not set # CONFIG_PROFILING is not set -# CONFIG_MARKERS is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -139,7 +121,6 @@ CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y -# CONFIG_SLOW_WORK is not set # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -152,6 +133,7 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_BLOCK=y # CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_INTEGRITY is not set @@ -167,6 +149,11 @@ CONFIG_DEFAULT_AS=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="anticipatory" +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set # CONFIG_FREEZER is not set # @@ -186,11 +173,10 @@ CONFIG_WARP=y # CONFIG_ARCHES is not set # CONFIG_CANYONLANDS is not set # CONFIG_GLACIER is not set -# CONFIG_REDWOOD is not set # CONFIG_YOSEMITE is not set # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set # CONFIG_PPC44x_SIMPLE is not set -CONFIG_PPC4xx_GPIO=y +# CONFIG_PPC4xx_GPIO is not set CONFIG_440EP=y CONFIG_IBM440EP_ERR42=y # CONFIG_IPIC is not set @@ -249,13 +235,9 @@ CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_UNEVICTABLE_LRU=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y -CONFIG_STDBINUTILS=y CONFIG_PPC_4K_PAGES=y # CONFIG_PPC_16K_PAGES is not set # CONFIG_PPC_64K_PAGES is not set -# CONFIG_PPC_256K_PAGES is not set CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_PROC_DEVICETREE=y CONFIG_CMDLINE_BOOL=y @@ -274,7 +256,6 @@ CONFIG_PPC_PCI_CHOICE=y # CONFIG_PCI_DOMAINS is not set # CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set # CONFIG_HAS_RAPIDIO is not set # @@ -290,12 +271,14 @@ CONFIG_PAGE_OFFSET=0xc0000000 CONFIG_KERNEL_START=0xc0000000 CONFIG_PHYSICAL_START=0x00000000 CONFIG_TASK_SIZE=0xc0000000 +CONFIG_CONSISTENT_START=0xff100000 CONFIG_CONSISTENT_SIZE=0x00200000 CONFIG_NET=y # # Networking options # +CONFIG_COMPAT_NET_DEV_OPS=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y @@ -370,7 +353,6 @@ CONFIG_VLAN_8021Q=y # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set @@ -383,6 +365,7 @@ CONFIG_VLAN_8021Q=y # CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set +# CONFIG_PHONET is not set # CONFIG_WIRELESS is not set # CONFIG_WIMAX is not set # CONFIG_RFKILL is not set @@ -395,12 +378,8 @@ CONFIG_VLAN_8021Q=y # # Generic Driver Options # -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" # CONFIG_STANDALONE is not set CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set @@ -492,21 +471,13 @@ CONFIG_MTD_NAND_NDFC=y # LPDDR flash memory drivers # # CONFIG_MTD_LPDDR is not set +# CONFIG_MTD_QINFO_PROBE is not set # # UBI - Unsorted block images # -CONFIG_MTD_UBI=y -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# -# CONFIG_MTD_UBI_DEBUG is not set +# CONFIG_MTD_UBI is not set CONFIG_OF_DEVICE=y -CONFIG_OF_GPIO=y CONFIG_OF_I2C=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y @@ -524,17 +495,10 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_XILINX_SYSACE is not set # CONFIG_BLK_DEV_HD is not set CONFIG_MISC_DEVICES=y +# CONFIG_EEPROM_93CX6 is not set # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_ISL29003 is not set # CONFIG_C2PORT is not set - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=y -# CONFIG_EEPROM_LEGACY is not set -# CONFIG_EEPROM_93CX6 is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -565,7 +529,7 @@ CONFIG_BLK_DEV_SD=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_SCAN_ASYNC is not set -# CONFIG_SCSI_WAIT_SCAN is not set +CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports @@ -577,12 +541,10 @@ CONFIG_SCSI_SPI_ATTRS=y # CONFIG_SCSI_SRP_ATTRS is not set # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_DH is not set -# CONFIG_SCSI_OSD_INITIATOR is not set # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y -CONFIG_COMPAT_NET_DEV_OPS=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_MACVLAN is not set @@ -592,8 +554,6 @@ CONFIG_COMPAT_NET_DEV_OPS=y # CONFIG_PHYLIB is not set CONFIG_NET_ETHERNET=y CONFIG_MII=y -# CONFIG_ETHOC is not set -# CONFIG_DNET is not set CONFIG_IBM_NEW_EMAC=y CONFIG_IBM_NEW_EMAC_RXB=128 CONFIG_IBM_NEW_EMAC_TXB=64 @@ -617,6 +577,7 @@ CONFIG_IBM_NEW_EMAC_ZMII=y # # CONFIG_WLAN_PRE80211 is not set # CONFIG_WLAN_80211 is not set +# CONFIG_IWLWIFI_LEDS is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers @@ -685,7 +646,6 @@ CONFIG_LEGACY_PTY_COUNT=256 # CONFIG_HVC_UDBG is not set # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y -# CONFIG_HW_RANDOM_TIMERIOMEM is not set # CONFIG_NVRAM is not set # CONFIG_GEN_RTC is not set # CONFIG_R3964 is not set @@ -703,7 +663,6 @@ CONFIG_I2C_HELPER_AUTO=y # # I2C system bus drivers (mostly embedded / system-on-chip) # -# CONFIG_I2C_GPIO is not set CONFIG_I2C_IBM_IIC=y # CONFIG_I2C_MPC is not set # CONFIG_I2C_OCORES is not set @@ -726,9 +685,12 @@ CONFIG_I2C_IBM_IIC=y # Miscellaneous I2C Chip support # # CONFIG_DS1682 is not set +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_LEGACY=y # CONFIG_SENSORS_PCF8574 is not set # CONFIG_PCF8575 is not set # CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_MAX6875 is not set # CONFIG_SENSORS_TSL2550 is not set # CONFIG_I2C_DEBUG_CORE is not set @@ -737,30 +699,7 @@ CONFIG_I2C_IBM_IIC=y # CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y - -# -# Memory mapped GPIO expanders: -# -# CONFIG_GPIO_XILINX is not set - -# -# I2C GPIO expanders: -# -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_PCA953X is not set -# CONFIG_GPIO_PCF857X is not set - -# -# PCI GPIO expanders: -# - -# -# SPI GPIO expanders: -# +# CONFIG_GPIOLIB is not set # CONFIG_W1 is not set # CONFIG_POWER_SUPPLY is not set CONFIG_HWMON=y @@ -782,7 +721,6 @@ CONFIG_SENSORS_AD7414=y # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_F71882FG is not set # CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_G760A is not set # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set # CONFIG_SENSORS_IT87 is not set @@ -797,15 +735,11 @@ CONFIG_SENSORS_AD7414=y # CONFIG_SENSORS_LM90 is not set # CONFIG_SENSORS_LM92 is not set # CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LTC4215 is not set # CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LM95241 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_SHT15 is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set @@ -851,7 +785,6 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_MFD_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_HTC_PASIC3 is not set -# CONFIG_TPS65010 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_MFD_TMIO is not set # CONFIG_PMIC_DA903X is not set @@ -937,11 +870,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_TMC is not set # -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; # # -# also be needed; see USB_STORAGE Help for more info +# see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set @@ -982,6 +915,7 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set @@ -995,8 +929,6 @@ CONFIG_USB_STORAGE=y # # OTG and related infrastructure # -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_NOP_USB_XCEIV is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set @@ -1014,7 +946,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y # # CONFIG_MMC_SDHCI is not set # CONFIG_MMC_WBSD is not set -CONFIG_MMC_PIKASD=y # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y @@ -1022,31 +953,16 @@ CONFIG_LEDS_CLASS=y # # LED drivers # -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_GPIO_PLATFORM is not set -CONFIG_LEDS_GPIO_OF=y -# CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_BD2802 is not set # # LED Triggers # -CONFIG_LEDS_TRIGGERS=y -# CONFIG_LEDS_TRIGGER_TIMER is not set -# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_GPIO is not set -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y - -# -# iptables trigger is under Netfilter config (LED target) -# +# CONFIG_LEDS_TRIGGERS is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_EDAC is not set # CONFIG_RTC_CLASS is not set # CONFIG_DMADEVICES is not set -# CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set # CONFIG_STAGING is not set @@ -1057,7 +973,6 @@ CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set # CONFIG_EXT3_FS_XATTR is not set # CONFIG_EXT4_FS is not set CONFIG_JBD=y @@ -1077,11 +992,6 @@ CONFIG_INOTIFY_USER=y # CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set -# -# Caches -# -# CONFIG_FSCACHE is not set - # # CD-ROM/DVD Filesystems # @@ -1129,12 +1039,6 @@ CONFIG_JFFS2_ZLIB=y # CONFIG_JFFS2_LZO is not set CONFIG_JFFS2_RTIME=y # CONFIG_JFFS2_RUBIN is not set -CONFIG_UBIFS_FS=y -# CONFIG_UBIFS_FS_XATTR is not set -# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set -CONFIG_UBIFS_FS_LZO=y -CONFIG_UBIFS_FS_ZLIB=y -# CONFIG_UBIFS_FS_DEBUG is not set CONFIG_CRAMFS=y # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -1145,7 +1049,6 @@ CONFIG_CRAMFS=y # CONFIG_ROMFS_FS is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set -# CONFIG_NILFS2_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y @@ -1157,6 +1060,7 @@ CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y +# CONFIG_SUNRPC_REGISTER_V4 is not set # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set @@ -1211,7 +1115,6 @@ CONFIG_NLS_ISO8859_15=y # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y # CONFIG_DLM is not set -# CONFIG_BINARY_PRINTF is not set # # Library routines @@ -1219,7 +1122,7 @@ CONFIG_NLS_UTF8=y CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=y -CONFIG_CRC16=y +# CONFIG_CRC16 is not set CONFIG_CRC_T10DIF=y # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y @@ -1227,19 +1130,16 @@ CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_DECOMPRESS_GZIP=y +CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_HAVE_LMB=y -CONFIG_NLATTR=y # # Kernel hacking # -CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_TIME is not set CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -1252,15 +1152,11 @@ CONFIG_DEBUG_KERNEL=y CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_DETECT_HUNG_TASK=y -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 # CONFIG_SCHED_DEBUG is not set # CONFIG_SCHEDSTATS is not set # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set @@ -1284,12 +1180,9 @@ CONFIG_DEBUG_INFO=y # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_SYSCTL_SYSCALL_CHECK=y -# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_TRACING_SUPPORT=y # # Tracers @@ -1297,27 +1190,24 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_FUNCTION_TRACER is not set # CONFIG_SCHED_TRACER is not set # CONFIG_CONTEXT_SWITCH_TRACER is not set -# CONFIG_EVENT_TRACER is not set # CONFIG_BOOT_TRACER is not set # CONFIG_TRACE_BRANCH_PROFILING is not set # CONFIG_STACK_TRACER is not set -# CONFIG_KMEMTRACE is not set -# CONFIG_WORKQUEUE_TRACER is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_PRINT_STACK_DEPTH=64 # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_CODE_PATCHING_SELFTEST is not set # CONFIG_FTR_FIXUP_SELFTEST is not set # CONFIG_MSI_BITMAP_SELFTEST is not set # CONFIG_XMON is not set CONFIG_IRQSTACKS=y # CONFIG_VIRQ_DEBUG is not set -# CONFIG_BDI_SWITCH is not set +CONFIG_BDI_SWITCH=y # CONFIG_PPC_EARLY_DEBUG is not set # @@ -1333,8 +1223,6 @@ CONFIG_CRYPTO=y # Crypto core or helper # # CONFIG_CRYPTO_FIPS is not set -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y # CONFIG_CRYPTO_MANAGER is not set # CONFIG_CRYPTO_MANAGER2 is not set # CONFIG_CRYPTO_GF128MUL is not set @@ -1406,15 +1294,13 @@ CONFIG_CRYPTO_ALGAPI2=y # # Compression # -CONFIG_CRYPTO_DEFLATE=y -# CONFIG_CRYPTO_ZLIB is not set -CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set # # Random Number Generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_PPC4XX is not set # CONFIG_PPC_CLOCK is not set # CONFIG_VIRTUALIZATION is not set diff --git a/trunk/arch/powerpc/include/asm/delay.h b/trunk/arch/powerpc/include/asm/delay.h index 52e4d54da2a9..1e2eb41fa057 100644 --- a/trunk/arch/powerpc/include/asm/delay.h +++ b/trunk/arch/powerpc/include/asm/delay.h @@ -63,8 +63,6 @@ extern void udelay(unsigned long usecs); udelay(delay); \ else \ cpu_relax(); \ - if (!__ret) \ - __ret = (condition); \ __ret; \ }) diff --git a/trunk/arch/powerpc/include/asm/thread_info.h b/trunk/arch/powerpc/include/asm/thread_info.h index c8b329255678..9aba5a38a7c4 100644 --- a/trunk/arch/powerpc/include/asm/thread_info.h +++ b/trunk/arch/powerpc/include/asm/thread_info.h @@ -46,13 +46,15 @@ struct thread_info { /* * macros/functions for gaining access to the thread information structure + * + * preempt_count needs to be 1 initially, until the scheduler is functional. */ #define INIT_THREAD_INFO(tsk) \ { \ .task = &tsk, \ .exec_domain = &default_exec_domain, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/powerpc/kernel/mpc7450-pmu.c b/trunk/arch/powerpc/kernel/mpc7450-pmu.c index c244133c67a6..75ff47fed7bf 100644 --- a/trunk/arch/powerpc/kernel/mpc7450-pmu.c +++ b/trunk/arch/powerpc/kernel/mpc7450-pmu.c @@ -10,6 +10,7 @@ */ #include #include +#include #include #include diff --git a/trunk/arch/powerpc/kernel/power7-pmu.c b/trunk/arch/powerpc/kernel/power7-pmu.c index 5a9f5cbd40a4..5d755ef7ac8f 100644 --- a/trunk/arch/powerpc/kernel/power7-pmu.c +++ b/trunk/arch/powerpc/kernel/power7-pmu.c @@ -358,7 +358,6 @@ static struct power_pmu power7_pmu = { .get_constraint = power7_get_constraint, .get_alternatives = power7_get_alternatives, .disable_pmc = power7_disable_pmc, - .flags = PPMU_ALT_SIPR, .n_generic = ARRAY_SIZE(power7_generic_events), .generic_events = power7_generic_events, .cache_events = &power7_cache_events, diff --git a/trunk/arch/powerpc/kernel/ppc970-pmu.c b/trunk/arch/powerpc/kernel/ppc970-pmu.c index 833097ac45dc..6637c87fe70e 100644 --- a/trunk/arch/powerpc/kernel/ppc970-pmu.c +++ b/trunk/arch/powerpc/kernel/ppc970-pmu.c @@ -10,6 +10,7 @@ */ #include #include +#include #include #include diff --git a/trunk/arch/powerpc/kernel/ptrace32.c b/trunk/arch/powerpc/kernel/ptrace32.c index 8a6daf4129f6..297632cba047 100644 --- a/trunk/arch/powerpc/kernel/ptrace32.c +++ b/trunk/arch/powerpc/kernel/ptrace32.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/powerpc/mm/gup.c b/trunk/arch/powerpc/mm/gup.c index bc122a120bf0..bc400c78c97f 100644 --- a/trunk/arch/powerpc/mm/gup.c +++ b/trunk/arch/powerpc/mm/gup.c @@ -159,7 +159,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, int psize; #endif - pr_devel("%s(%lx,%x,%s)\n", __func__, start, nr_pages, write ? "write" : "read"); + pr_debug("%s(%lx,%x,%s)\n", __func__, start, nr_pages, write ? "write" : "read"); start &= PAGE_MASK; addr = start; @@ -170,7 +170,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, start, len))) goto slow_irqon; - pr_devel(" aligned: %lx .. %lx\n", start, end); + pr_debug(" aligned: %lx .. %lx\n", start, end); #ifdef CONFIG_HUGETLB_PAGE /* We bail out on slice boundary crossing when hugetlb is @@ -234,7 +234,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, do { VM_BUG_ON(shift != mmu_psize_defs[get_slice_psize(mm, a)].shift); ptep = huge_pte_offset(mm, a); - pr_devel(" %016lx: huge ptep %p\n", a, ptep); + pr_debug(" %016lx: huge ptep %p\n", a, ptep); if (!ptep || !gup_huge_pte(ptep, hstate, &a, end, write, pages, &nr)) goto slow; @@ -249,7 +249,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, #ifdef CONFIG_PPC64 VM_BUG_ON(shift != mmu_psize_defs[get_slice_psize(mm, addr)].shift); #endif - pr_devel(" %016lx: normal pgd %p\n", addr, + pr_debug(" %016lx: normal pgd %p\n", addr, (void *)pgd_val(pgd)); next = pgd_addr_end(addr, end); if (pgd_none(pgd)) @@ -269,7 +269,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, slow: local_irq_enable(); slow_irqon: - pr_devel(" slow path ! nr = %d\n", nr); + pr_debug(" slow path ! nr = %d\n", nr); /* Try to get the remaining pages with get_user_pages */ start += nr << PAGE_SHIFT; diff --git a/trunk/arch/powerpc/mm/mmu_context_nohash.c b/trunk/arch/powerpc/mm/mmu_context_nohash.c index 92a197117d5b..8343986809c0 100644 --- a/trunk/arch/powerpc/mm/mmu_context_nohash.c +++ b/trunk/arch/powerpc/mm/mmu_context_nohash.c @@ -89,7 +89,7 @@ static unsigned int steal_context_smp(unsigned int id) id = first_context; continue; } - pr_devel("[%d] steal context %d from mm @%p\n", + pr_debug("[%d] steal context %d from mm @%p\n", smp_processor_id(), id, mm); /* Mark this mm has having no context anymore */ @@ -126,7 +126,7 @@ static unsigned int steal_context_up(unsigned int id) /* Pick up the victim mm */ mm = context_mm[id]; - pr_devel("[%d] steal context %d from mm @%p\n", cpu, id, mm); + pr_debug("[%d] steal context %d from mm @%p\n", cpu, id, mm); /* Flush the TLB for that context */ local_flush_tlb_mm(mm); @@ -180,7 +180,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next) spin_lock(&context_lock); #ifndef DEBUG_STEAL_ONLY - pr_devel("[%d] activating context for mm @%p, active=%d, id=%d\n", + pr_debug("[%d] activating context for mm @%p, active=%d, id=%d\n", cpu, next, next->context.active, next->context.id); #endif @@ -189,7 +189,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next) next->context.active++; if (prev) { #ifndef DEBUG_STEAL_ONLY - pr_devel(" old context %p active was: %d\n", + pr_debug(" old context %p active was: %d\n", prev, prev->context.active); #endif WARN_ON(prev->context.active < 1); @@ -236,7 +236,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next) next->context.id = id; #ifndef DEBUG_STEAL_ONLY - pr_devel("[%d] picked up new id %d, nrf is now %d\n", + pr_debug("[%d] picked up new id %d, nrf is now %d\n", cpu, id, nr_free_contexts); #endif @@ -247,7 +247,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next) * local TLB for it and unmark it before we use it */ if (test_bit(id, stale_map[cpu])) { - pr_devel("[%d] flushing stale context %d for mm @%p !\n", + pr_debug("[%d] flushing stale context %d for mm @%p !\n", cpu, id, next); local_flush_tlb_mm(next); @@ -314,13 +314,13 @@ static int __cpuinit mmu_context_cpu_notify(struct notifier_block *self, switch (action) { case CPU_ONLINE: case CPU_ONLINE_FROZEN: - pr_devel("MMU: Allocating stale context map for CPU %d\n", cpu); + pr_debug("MMU: Allocating stale context map for CPU %d\n", cpu); stale_map[cpu] = kzalloc(CTX_MAP_SIZE, GFP_KERNEL); break; #ifdef CONFIG_HOTPLUG_CPU case CPU_DEAD: case CPU_DEAD_FROZEN: - pr_devel("MMU: Freeing stale context map for CPU %d\n", cpu); + pr_debug("MMU: Freeing stale context map for CPU %d\n", cpu); kfree(stale_map[cpu]); stale_map[cpu] = NULL; break; diff --git a/trunk/arch/powerpc/mm/pgtable.c b/trunk/arch/powerpc/mm/pgtable.c index 627767d6169b..ae1d67cc090c 100644 --- a/trunk/arch/powerpc/mm/pgtable.c +++ b/trunk/arch/powerpc/mm/pgtable.c @@ -129,12 +129,12 @@ static pte_t do_dcache_icache_coherency(pte_t pte) page = pfn_to_page(pfn); if (!PageReserved(page) && !test_bit(PG_arch_1, &page->flags)) { - pr_devel("do_dcache_icache_coherency... flushing\n"); + pr_debug("do_dcache_icache_coherency... flushing\n"); flush_dcache_icache_page(page); set_bit(PG_arch_1, &page->flags); } else - pr_devel("do_dcache_icache_coherency... already clean\n"); + pr_debug("do_dcache_icache_coherency... already clean\n"); return __pte(pte_val(pte) | _PAGE_HWEXEC); } diff --git a/trunk/arch/powerpc/mm/slb.c b/trunk/arch/powerpc/mm/slb.c index 5b7038f248b6..3b52c80e5e33 100644 --- a/trunk/arch/powerpc/mm/slb.c +++ b/trunk/arch/powerpc/mm/slb.c @@ -14,6 +14,8 @@ * 2 of the License, or (at your option) any later version. */ +#undef DEBUG + #include #include #include @@ -25,6 +27,11 @@ #include #include +#ifdef DEBUG +#define DBG(fmt...) printk(fmt) +#else +#define DBG pr_debug +#endif extern void slb_allocate_realmode(unsigned long ea); extern void slb_allocate_user(unsigned long ea); @@ -278,13 +285,13 @@ void slb_initialize(void) patch_slb_encoding(slb_compare_rr_to_size, mmu_slb_size); - pr_devel("SLB: linear LLP = %04lx\n", linear_llp); - pr_devel("SLB: io LLP = %04lx\n", io_llp); + DBG("SLB: linear LLP = %04lx\n", linear_llp); + DBG("SLB: io LLP = %04lx\n", io_llp); #ifdef CONFIG_SPARSEMEM_VMEMMAP patch_slb_encoding(slb_miss_kernel_load_vmemmap, SLB_VSID_KERNEL | vmemmap_llp); - pr_devel("SLB: vmemmap LLP = %04lx\n", vmemmap_llp); + DBG("SLB: vmemmap LLP = %04lx\n", vmemmap_llp); #endif } diff --git a/trunk/arch/powerpc/mm/tlb_hash64.c b/trunk/arch/powerpc/mm/tlb_hash64.c index 937eb90677d9..1be1b5e59796 100644 --- a/trunk/arch/powerpc/mm/tlb_hash64.c +++ b/trunk/arch/powerpc/mm/tlb_hash64.c @@ -72,7 +72,7 @@ void hpte_need_flush(struct mm_struct *mm, unsigned long addr, */ if (huge) { #ifdef CONFIG_HUGETLB_PAGE - psize = get_slice_psize(mm, addr); + psize = get_slice_psize(mm, addr);; #else BUG(); psize = pte_pagesize_index(mm, addr, pte); /* shutup gcc */ diff --git a/trunk/arch/powerpc/oprofile/cell/vma_map.c b/trunk/arch/powerpc/oprofile/cell/vma_map.c index c591339daf58..258fa4411e9e 100644 --- a/trunk/arch/powerpc/oprofile/cell/vma_map.c +++ b/trunk/arch/powerpc/oprofile/cell/vma_map.c @@ -185,7 +185,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, goto fail; if (shdr_str.sh_type != SHT_STRTAB) - goto fail; + goto fail;; for (j = 0; j < shdr.sh_size / sizeof (sym); j++) { if (copy_from_user(&sym, spu_elf_start + diff --git a/trunk/arch/powerpc/platforms/44x/warp.c b/trunk/arch/powerpc/platforms/44x/warp.c index e5c1b096c3e1..0362c88f47d7 100644 --- a/trunk/arch/powerpc/platforms/44x/warp.c +++ b/trunk/arch/powerpc/platforms/44x/warp.c @@ -64,6 +64,8 @@ define_machine(warp) { }; +static u32 post_info; + static int __init warp_post_info(void) { struct device_node *np; @@ -85,9 +87,10 @@ static int __init warp_post_info(void) iounmap(fpga); - if (post1 || post2) + if (post1 || post2) { printk(KERN_INFO "Warp POST %08x %08x\n", post1, post2); - else + post_info = 1; + } else printk(KERN_INFO "Warp POST OK\n"); return 0; @@ -163,9 +166,6 @@ static irqreturn_t temp_isr(int irq, void *context) value ^= 1; mdelay(500); } - - /* Not reached */ - return IRQ_HANDLED; } static int pika_setup_leds(void) @@ -179,10 +179,15 @@ static int pika_setup_leds(void) } for_each_child_of_node(np, child) - if (strcmp(child->name, "green") == 0) + if (strcmp(child->name, "green") == 0) { green_led = of_get_gpio(child, 0); - else if (strcmp(child->name, "red") == 0) + /* Turn back on the green LED */ + gpio_set_value(green_led, 1); + } else if (strcmp(child->name, "red") == 0) { red_led = of_get_gpio(child, 0); + /* Set based on post */ + gpio_set_value(red_led, post_info); + } of_node_put(np); diff --git a/trunk/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/trunk/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c index 7ee979f323d1..ddf0bdc0fc8b 100644 --- a/trunk/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c +++ b/trunk/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c @@ -147,7 +147,7 @@ int __init pq2ads_pci_init_irq(void) goto out; } - priv = kzalloc(sizeof(*priv), GFP_KERNEL); + priv = alloc_bootmem(sizeof(struct pq2ads_pci_pic)); if (!priv) { of_node_put(np); ret = -ENOMEM; diff --git a/trunk/arch/powerpc/platforms/cell/axon_msi.c b/trunk/arch/powerpc/platforms/cell/axon_msi.c index aca5741ddc67..c71498dbf211 100644 --- a/trunk/arch/powerpc/platforms/cell/axon_msi.c +++ b/trunk/arch/powerpc/platforms/cell/axon_msi.c @@ -85,7 +85,7 @@ static inline void axon_msi_debug_setup(struct device_node *dn, static void msic_dcr_write(struct axon_msic *msic, unsigned int dcr_n, u32 val) { - pr_devel("axon_msi: dcr_write(0x%x, 0x%x)\n", val, dcr_n); + pr_debug("axon_msi: dcr_write(0x%x, 0x%x)\n", val, dcr_n); dcr_write(msic->dcr_host, dcr_n, val); } @@ -98,7 +98,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc) int retry = 0; write_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG); - pr_devel("axon_msi: original write_offset 0x%x\n", write_offset); + pr_debug("axon_msi: original write_offset 0x%x\n", write_offset); /* write_offset doesn't wrap properly, so we have to mask it */ write_offset &= MSIC_FIFO_SIZE_MASK; @@ -108,7 +108,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc) msi = le32_to_cpu(msic->fifo_virt[idx]); msi &= 0xFFFF; - pr_devel("axon_msi: woff %x roff %x msi %x\n", + pr_debug("axon_msi: woff %x roff %x msi %x\n", write_offset, msic->read_offset, msi); if (msi < NR_IRQS && irq_map[msi].host == msic->irq_host) { @@ -123,12 +123,12 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc) */ udelay(1); retry++; - pr_devel("axon_msi: invalid irq 0x%x!\n", msi); + pr_debug("axon_msi: invalid irq 0x%x!\n", msi); continue; } if (retry) { - pr_devel("axon_msi: late irq 0x%x, retry %d\n", + pr_debug("axon_msi: late irq 0x%x, retry %d\n", msi, retry); retry = 0; } @@ -332,7 +332,7 @@ static int axon_msi_shutdown(struct of_device *device) struct axon_msic *msic = dev_get_drvdata(&device->dev); u32 tmp; - pr_devel("axon_msi: disabling %s\n", + pr_debug("axon_msi: disabling %s\n", msic->irq_host->of_node->full_name); tmp = dcr_read(msic->dcr_host, MSIC_CTRL_REG); tmp &= ~MSIC_CTRL_ENABLE & ~MSIC_CTRL_IRQ_ENABLE; @@ -349,7 +349,7 @@ static int axon_msi_probe(struct of_device *device, unsigned int virq; int dcr_base, dcr_len; - pr_devel("axon_msi: setting up dn %s\n", dn->full_name); + pr_debug("axon_msi: setting up dn %s\n", dn->full_name); msic = kzalloc(sizeof(struct axon_msic), GFP_KERNEL); if (!msic) { @@ -403,7 +403,7 @@ static int axon_msi_probe(struct of_device *device, set_irq_data(virq, msic); set_irq_chained_handler(virq, axon_msi_cascade); - pr_devel("axon_msi: irq 0x%x setup for axon_msi\n", virq); + pr_debug("axon_msi: irq 0x%x setup for axon_msi\n", virq); /* Enable the MSIC hardware */ msic_dcr_write(msic, MSIC_BASE_ADDR_HI_REG, msic->fifo_phys >> 32); @@ -484,13 +484,13 @@ void axon_msi_debug_setup(struct device_node *dn, struct axon_msic *msic) addr = of_translate_address(dn, of_get_property(dn, "reg", NULL)); if (addr == OF_BAD_ADDR) { - pr_devel("axon_msi: couldn't translate reg property\n"); + pr_debug("axon_msi: couldn't translate reg property\n"); return; } msic->trigger = ioremap(addr, 0x4); if (!msic->trigger) { - pr_devel("axon_msi: ioremap failed\n"); + pr_debug("axon_msi: ioremap failed\n"); return; } @@ -498,7 +498,7 @@ void axon_msi_debug_setup(struct device_node *dn, struct axon_msic *msic) if (!debugfs_create_file(name, 0600, powerpc_debugfs_root, msic, &fops_msic)) { - pr_devel("axon_msi: debugfs_create_file failed!\n"); + pr_debug("axon_msi: debugfs_create_file failed!\n"); return; } } diff --git a/trunk/arch/powerpc/platforms/powermac/cpufreq_64.c b/trunk/arch/powerpc/platforms/powermac/cpufreq_64.c index 708c75133377..22ecfbe7183d 100644 --- a/trunk/arch/powerpc/platforms/powermac/cpufreq_64.c +++ b/trunk/arch/powerpc/platforms/powermac/cpufreq_64.c @@ -251,7 +251,7 @@ static void g5_pfunc_switch_volt(int speed_mode) static struct pmf_function *pfunc_cpu_setfreq_high; static struct pmf_function *pfunc_cpu_setfreq_low; static struct pmf_function *pfunc_cpu_getfreq; -static struct pmf_function *pfunc_slewing_done; +static struct pmf_function *pfunc_slewing_done;; static int g5_pfunc_switch_freq(int speed_mode) { diff --git a/trunk/arch/powerpc/platforms/powermac/pic.c b/trunk/arch/powerpc/platforms/powermac/pic.c index d212006a5b3c..dce736349107 100644 --- a/trunk/arch/powerpc/platforms/powermac/pic.c +++ b/trunk/arch/powerpc/platforms/powermac/pic.c @@ -609,7 +609,7 @@ static int pmacpic_find_viaint(void) np = of_find_node_by_name(NULL, "via-pmu"); if (np == NULL) goto not_found; - viaint = irq_of_parse_and_map(np, 0); + viaint = irq_of_parse_and_map(np, 0);; not_found: #endif /* CONFIG_ADB_PMU */ diff --git a/trunk/arch/powerpc/platforms/ps3/system-bus.c b/trunk/arch/powerpc/platforms/ps3/system-bus.c index 3f763c5284ac..9fead0faf38b 100644 --- a/trunk/arch/powerpc/platforms/ps3/system-bus.c +++ b/trunk/arch/powerpc/platforms/ps3/system-bus.c @@ -284,6 +284,7 @@ static int ps3_sb_free_mmio_region(struct ps3_mmio_region *r) int result; dump_mmio_region(r); +; result = lv1_unmap_device_mmio_region(r->dev->bus_id, r->dev->dev_id, r->lpar_addr); diff --git a/trunk/arch/powerpc/platforms/pseries/lpar.c b/trunk/arch/powerpc/platforms/pseries/lpar.c index 903eb9eec687..e3139fa5e556 100644 --- a/trunk/arch/powerpc/platforms/pseries/lpar.c +++ b/trunk/arch/powerpc/platforms/pseries/lpar.c @@ -286,7 +286,7 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group, unsigned long hpte_v, hpte_r; if (!(vflags & HPTE_V_BOLTED)) - pr_devel("hpte_insert(group=%lx, va=%016lx, pa=%016lx, " + pr_debug("hpte_insert(group=%lx, va=%016lx, pa=%016lx, " "rflags=%lx, vflags=%lx, psize=%d)\n", hpte_group, va, pa, rflags, vflags, psize); @@ -294,7 +294,7 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group, hpte_r = hpte_encode_r(pa, psize) | rflags; if (!(vflags & HPTE_V_BOLTED)) - pr_devel(" hpte_v=%016lx, hpte_r=%016lx\n", hpte_v, hpte_r); + pr_debug(" hpte_v=%016lx, hpte_r=%016lx\n", hpte_v, hpte_r); /* Now fill in the actual HPTE */ /* Set CEC cookie to 0 */ @@ -311,7 +311,7 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group, lpar_rc = plpar_pte_enter(flags, hpte_group, hpte_v, hpte_r, &slot); if (unlikely(lpar_rc == H_PTEG_FULL)) { if (!(vflags & HPTE_V_BOLTED)) - pr_devel(" full\n"); + pr_debug(" full\n"); return -1; } @@ -322,11 +322,11 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group, */ if (unlikely(lpar_rc != H_SUCCESS)) { if (!(vflags & HPTE_V_BOLTED)) - pr_devel(" lpar err %lu\n", lpar_rc); + pr_debug(" lpar err %lu\n", lpar_rc); return -2; } if (!(vflags & HPTE_V_BOLTED)) - pr_devel(" -> slot: %lu\n", slot & 7); + pr_debug(" -> slot: %lu\n", slot & 7); /* Because of iSeries, we have to pass down the secondary * bucket bit here as well @@ -418,17 +418,17 @@ static long pSeries_lpar_hpte_updatepp(unsigned long slot, want_v = hpte_encode_avpn(va, psize, ssize); - pr_devel(" update: avpnv=%016lx, hash=%016lx, f=%lx, psize: %d ...", + pr_debug(" update: avpnv=%016lx, hash=%016lx, f=%lx, psize: %d ...", want_v, slot, flags, psize); lpar_rc = plpar_pte_protect(flags, slot, want_v); if (lpar_rc == H_NOT_FOUND) { - pr_devel("not found !\n"); + pr_debug("not found !\n"); return -1; } - pr_devel("ok\n"); + pr_debug("ok\n"); BUG_ON(lpar_rc != H_SUCCESS); @@ -503,7 +503,7 @@ static void pSeries_lpar_hpte_invalidate(unsigned long slot, unsigned long va, unsigned long lpar_rc; unsigned long dummy1, dummy2; - pr_devel(" inval : slot=%lx, va=%016lx, psize: %d, local: %d\n", + pr_debug(" inval : slot=%lx, va=%016lx, psize: %d, local: %d\n", slot, va, psize, local); want_v = hpte_encode_avpn(va, psize, ssize); diff --git a/trunk/arch/powerpc/platforms/pseries/xics.c b/trunk/arch/powerpc/platforms/pseries/xics.c index 419f8a637ffe..be3581a8c294 100644 --- a/trunk/arch/powerpc/platforms/pseries/xics.c +++ b/trunk/arch/powerpc/platforms/pseries/xics.c @@ -190,10 +190,10 @@ static void xics_unmask_irq(unsigned int virq) int call_status; int server; - pr_devel("xics: unmask virq %d\n", virq); + pr_debug("xics: unmask virq %d\n", virq); irq = (unsigned int)irq_map[virq].hwirq; - pr_devel(" -> map to hwirq 0x%x\n", irq); + pr_debug(" -> map to hwirq 0x%x\n", irq); if (irq == XICS_IPI || irq == XICS_IRQ_SPURIOUS) return; @@ -252,7 +252,7 @@ static void xics_mask_irq(unsigned int virq) { unsigned int irq; - pr_devel("xics: mask virq %d\n", virq); + pr_debug("xics: mask virq %d\n", virq); irq = (unsigned int)irq_map[virq].hwirq; if (irq == XICS_IPI || irq == XICS_IRQ_SPURIOUS) @@ -414,7 +414,7 @@ static int xics_host_match(struct irq_host *h, struct device_node *node) static int xics_host_map(struct irq_host *h, unsigned int virq, irq_hw_number_t hw) { - pr_devel("xics: map virq %d, hwirq 0x%lx\n", virq, hw); + pr_debug("xics: map virq %d, hwirq 0x%lx\n", virq, hw); /* Insert the interrupt mapping into the radix tree for fast lookup */ irq_radix_revmap_insert(xics_host, virq, hw); diff --git a/trunk/arch/powerpc/sysdev/fsl_rio.c b/trunk/arch/powerpc/sysdev/fsl_rio.c index cbb3bed75d3c..39db9d1155d2 100644 --- a/trunk/arch/powerpc/sysdev/fsl_rio.c +++ b/trunk/arch/powerpc/sysdev/fsl_rio.c @@ -965,7 +965,7 @@ static inline void fsl_rio_info(struct device *dev, u32 ccsr) break; default: str = "Unknown"; - break; + break;; } dev_info(dev, "Hardware port width: %s\n", str); diff --git a/trunk/arch/powerpc/sysdev/ipic.c b/trunk/arch/powerpc/sysdev/ipic.c index 69e2630c9062..a86d3ce01ead 100644 --- a/trunk/arch/powerpc/sysdev/ipic.c +++ b/trunk/arch/powerpc/sysdev/ipic.c @@ -728,10 +728,12 @@ struct ipic * __init ipic_init(struct device_node *node, unsigned int flags) if (ret) return NULL; - ipic = kzalloc(sizeof(*ipic), GFP_KERNEL); + ipic = alloc_bootmem(sizeof(struct ipic)); if (ipic == NULL) return NULL; + memset(ipic, 0, sizeof(struct ipic)); + ipic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR, NR_IPIC_INTS, &ipic_host_ops, 0); diff --git a/trunk/arch/powerpc/sysdev/mpic.c b/trunk/arch/powerpc/sysdev/mpic.c index 3981ae4cb58e..d46de1f0f3ee 100644 --- a/trunk/arch/powerpc/sysdev/mpic.c +++ b/trunk/arch/powerpc/sysdev/mpic.c @@ -508,8 +508,9 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic) printk(KERN_INFO "mpic: Setting up HT PICs workarounds for U3/U4\n"); /* Allocate fixups array */ - mpic->fixups = kzalloc(128 * sizeof(*mpic->fixups), GFP_KERNEL); + mpic->fixups = alloc_bootmem(128 * sizeof(struct mpic_irq_fixup)); BUG_ON(mpic->fixups == NULL); + memset(mpic->fixups, 0, 128 * sizeof(struct mpic_irq_fixup)); /* Init spinlock */ spin_lock_init(&mpic->fixup_lock); @@ -1108,8 +1109,9 @@ struct mpic * __init mpic_alloc(struct device_node *node, psize /= 4; bits = intvec_top + 1; mapsize = BITS_TO_LONGS(bits) * sizeof(unsigned long); - mpic->protected = kzalloc(mapsize, GFP_KERNEL); + mpic->protected = alloc_bootmem(mapsize); BUG_ON(mpic->protected == NULL); + memset(mpic->protected, 0, mapsize); for (i = 0; i < psize; i++) { if (psrc[i] > intvec_top) continue; @@ -1351,8 +1353,7 @@ void __init mpic_init(struct mpic *mpic) #ifdef CONFIG_PM /* allocate memory to save mpic state */ - mpic->save_data = kmalloc(mpic->num_sources * sizeof(*mpic->save_data), - GFP_KERNEL); + mpic->save_data = alloc_bootmem(mpic->num_sources * sizeof(struct mpic_irq_save)); BUG_ON(mpic->save_data == NULL); #endif } diff --git a/trunk/arch/powerpc/sysdev/ppc4xx_pci.c b/trunk/arch/powerpc/sysdev/ppc4xx_pci.c index 6ff9d71b4c0d..daefc93ddffe 100644 --- a/trunk/arch/powerpc/sysdev/ppc4xx_pci.c +++ b/trunk/arch/powerpc/sysdev/ppc4xx_pci.c @@ -1531,7 +1531,7 @@ static void __init ppc4xx_configure_pciex_PIMs(struct ppc4xx_pciex_port *port, */ /* Calculate window size */ - sa = (0xffffffffffffffffull << ilog2(ep_size)); + sa = (0xffffffffffffffffull << ilog2(ep_size));; /* Setup BAR0 */ out_le32(mbase + PECFG_BAR0HMPA, RES_TO_U32_HIGH(sa)); @@ -1550,7 +1550,7 @@ static void __init ppc4xx_configure_pciex_PIMs(struct ppc4xx_pciex_port *port, out_le32(mbase + PCI_BASE_ADDRESS_1, RES_TO_U32_HIGH(ep_addr)); } else { /* Calculate window size */ - sa = (0xffffffffffffffffull << ilog2(size)); + sa = (0xffffffffffffffffull << ilog2(size));; if (res->flags & IORESOURCE_PREFETCH) sa |= 0x8; diff --git a/trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c b/trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c index 074905c3ee5a..63cdf9887f36 100644 --- a/trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c +++ b/trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c @@ -333,10 +333,12 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags, if (ret) return; - qe_ic = kzalloc(sizeof(*qe_ic), GFP_KERNEL); + qe_ic = alloc_bootmem(sizeof(struct qe_ic)); if (qe_ic == NULL) return; + memset(qe_ic, 0, sizeof(struct qe_ic)); + qe_ic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR, NR_QE_IC_INTS, &qe_ic_host_ops, 0); if (qe_ic->irqhost == NULL) diff --git a/trunk/arch/powerpc/sysdev/uic.c b/trunk/arch/powerpc/sysdev/uic.c index 466ce9ace127..d35405c59434 100644 --- a/trunk/arch/powerpc/sysdev/uic.c +++ b/trunk/arch/powerpc/sysdev/uic.c @@ -258,10 +258,11 @@ static struct uic * __init uic_init_one(struct device_node *node) BUG_ON(! of_device_is_compatible(node, "ibm,uic")); - uic = kzalloc(sizeof(*uic), GFP_KERNEL); + uic = alloc_bootmem(sizeof(*uic)); if (! uic) return NULL; /* FIXME: panic? */ + memset(uic, 0, sizeof(*uic)); spin_lock_init(&uic->lock); indexp = of_get_property(node, "cell-index", &len); if (!indexp || (len != sizeof(u32))) { diff --git a/trunk/arch/s390/Kconfig b/trunk/arch/s390/Kconfig index 2ae5d72f47ed..e577839f3073 100644 --- a/trunk/arch/s390/Kconfig +++ b/trunk/arch/s390/Kconfig @@ -95,11 +95,6 @@ config S390 select HAVE_ARCH_TRACEHOOK select INIT_ALL_POSSIBLE select HAVE_PERF_COUNTERS - select GENERIC_ATOMIC64 if !64BIT - -config SCHED_OMIT_FRAME_POINTER - bool - default y source "init/Kconfig" @@ -121,9 +116,6 @@ config 32BIT bool default y if !64BIT -config KTIME_SCALAR - def_bool 32BIT - config SMP bool "Symmetric multi-processing support" ---help--- diff --git a/trunk/arch/s390/include/asm/atomic.h b/trunk/arch/s390/include/asm/atomic.h index c7d0abfb0f00..fca9dffcc669 100644 --- a/trunk/arch/s390/include/asm/atomic.h +++ b/trunk/arch/s390/include/asm/atomic.h @@ -268,12 +268,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) #undef __CSG_LOOP - -#else /* __s390x__ */ - -#include - -#endif /* __s390x__ */ +#endif #define smp_mb__before_atomic_dec() smp_mb() #define smp_mb__after_atomic_dec() smp_mb() diff --git a/trunk/arch/s390/include/asm/perf_counter.h b/trunk/arch/s390/include/asm/perf_counter.h index 7015188c2cc2..a7205a3828cb 100644 --- a/trunk/arch/s390/include/asm/perf_counter.h +++ b/trunk/arch/s390/include/asm/perf_counter.h @@ -6,5 +6,3 @@ static inline void set_perf_counter_pending(void) {} static inline void clear_perf_counter_pending(void) {} - -#define PERF_COUNTER_INDEX_OFFSET 0 diff --git a/trunk/arch/s390/include/asm/thread_info.h b/trunk/arch/s390/include/asm/thread_info.h index ba1cab9fc1f9..925bcc649035 100644 --- a/trunk/arch/s390/include/asm/thread_info.h +++ b/trunk/arch/s390/include/asm/thread_info.h @@ -61,7 +61,7 @@ struct thread_info { .exec_domain = &default_exec_domain, \ .flags = 0, \ .cpu = 0, \ - .preempt_count = INIT_PREEMPT_COUNT, \ + .preempt_count = 1, \ .restart_block = { \ .fn = do_no_restart_syscall, \ }, \ diff --git a/trunk/arch/s390/kernel/dis.c b/trunk/arch/s390/kernel/dis.c index db943a7ec513..d2f270c995d9 100644 --- a/trunk/arch/s390/kernel/dis.c +++ b/trunk/arch/s390/kernel/dis.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/s390/kernel/ipl.c b/trunk/arch/s390/kernel/ipl.c index 371a2d88f4ac..b8bf4b140065 100644 --- a/trunk/arch/s390/kernel/ipl.c +++ b/trunk/arch/s390/kernel/ipl.c @@ -70,7 +70,6 @@ struct shutdown_action { char *name; void (*fn) (struct shutdown_trigger *trigger); int (*init) (void); - int init_rc; }; static char *ipl_type_str(enum ipl_type type) @@ -1487,13 +1486,11 @@ static int set_trigger(const char *buf, struct shutdown_trigger *trigger, int i; for (i = 0; i < SHUTDOWN_ACTIONS_COUNT; i++) { + if (!shutdown_actions_list[i]) + continue; if (sysfs_streq(buf, shutdown_actions_list[i]->name)) { - if (shutdown_actions_list[i]->init_rc) { - return shutdown_actions_list[i]->init_rc; - } else { - trigger->action = shutdown_actions_list[i]; - return len; - } + trigger->action = shutdown_actions_list[i]; + return len; } } return -EINVAL; @@ -1643,8 +1640,8 @@ static void __init shutdown_actions_init(void) for (i = 0; i < SHUTDOWN_ACTIONS_COUNT; i++) { if (!shutdown_actions_list[i]->init) continue; - shutdown_actions_list[i]->init_rc = - shutdown_actions_list[i]->init(); + if (shutdown_actions_list[i]->init()) + shutdown_actions_list[i] = NULL; } } diff --git a/trunk/arch/s390/kernel/ptrace.c b/trunk/arch/s390/kernel/ptrace.c index 43acd73105b7..490b39934d65 100644 --- a/trunk/arch/s390/kernel/ptrace.c +++ b/trunk/arch/s390/kernel/ptrace.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/s390/lib/Makefile b/trunk/arch/s390/lib/Makefile index 97975ec7a274..ab6735df2d21 100644 --- a/trunk/arch/s390/lib/Makefile +++ b/trunk/arch/s390/lib/Makefile @@ -3,6 +3,6 @@ # lib-y += delay.o string.o uaccess_std.o uaccess_pt.o -obj-$(CONFIG_32BIT) += div64.o qrnnd.o ucmpdi2.o +obj-$(CONFIG_32BIT) += div64.o qrnnd.o lib-$(CONFIG_64BIT) += uaccess_mvcos.o lib-$(CONFIG_SMP) += spinlock.o diff --git a/trunk/arch/s390/lib/delay.c b/trunk/arch/s390/lib/delay.c index 97c1eca83cc2..3f5f680726ed 100644 --- a/trunk/arch/s390/lib/delay.c +++ b/trunk/arch/s390/lib/delay.c @@ -36,11 +36,9 @@ static void __udelay_disabled(unsigned long usecs) cr0 = (cr0_saved & 0xffff00e0) | 0x00000800; __ctl_load(cr0 , 0, 0); mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; - lockdep_off(); trace_hardirqs_on(); __load_psw_mask(mask); local_irq_disable(); - lockdep_on(); __ctl_load(cr0_saved, 0, 0); local_tick_enable(clock_saved); set_clock_comparator(S390_lowcore.clock_comparator); diff --git a/trunk/arch/s390/lib/ucmpdi2.c b/trunk/arch/s390/lib/ucmpdi2.c deleted file mode 100644 index 3e05ff532582..000000000000 --- a/trunk/arch/s390/lib/ucmpdi2.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - -union ull_union { - unsigned long long ull; - struct { - unsigned int high; - unsigned int low; - } ui; -}; - -int __ucmpdi2(unsigned long long a, unsigned long long b) -{ - union ull_union au = {.ull = a}; - union ull_union bu = {.ull = b}; - - if (au.ui.high < bu.ui.high) - return 0; - else if (au.ui.high > bu.ui.high) - return 2; - if (au.ui.low < bu.ui.low) - return 0; - else if (au.ui.low > bu.ui.low) - return 2; - return 1; -} -EXPORT_SYMBOL(__ucmpdi2); diff --git a/trunk/arch/s390/mm/fault.c b/trunk/arch/s390/mm/fault.c index e5e119fe03b2..74eb26bf1970 100644 --- a/trunk/arch/s390/mm/fault.c +++ b/trunk/arch/s390/mm/fault.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/sh/boards/mach-se/7724/setup.c b/trunk/arch/sh/boards/mach-se/7724/setup.c index 8fed45a2fb85..c050a8d76dfd 100644 --- a/trunk/arch/sh/boards/mach-se/7724/setup.c +++ b/trunk/arch/sh/boards/mach-se/7724/setup.c @@ -19,7 +19,6 @@ #include #include #include -#include #include