浏览代码

Merge branch 'slab/rcu' into slab/next

Conflicts:
	mm/slub.c
Pekka Enberg 14 年之前
父节点
当前提交
c914955675
共有 100 个文件被更改,包括 523 次插入376 次删除
  1. 1 0
      .gitignore
  2. 1 0
      .mailmap
  3. 25 0
      Documentation/ABI/testing/sysfs-platform-at91
  4. 2 2
      Documentation/DocBook/device-drivers.tmpl
  5. 3 3
      Documentation/DocBook/drm.tmpl
  6. 5 0
      Documentation/DocBook/filesystems.tmpl
  7. 0 0
      Documentation/devicetree/bindings/ata/fsl-sata.txt
  8. 0 0
      Documentation/devicetree/bindings/eeprom.txt
  9. 0 0
      Documentation/devicetree/bindings/gpio/8xxx_gpio.txt
  10. 0 0
      Documentation/devicetree/bindings/gpio/gpio.txt
  11. 0 0
      Documentation/devicetree/bindings/gpio/led.txt
  12. 0 0
      Documentation/devicetree/bindings/i2c/fsl-i2c.txt
  13. 0 0
      Documentation/devicetree/bindings/marvell.txt
  14. 0 0
      Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
  15. 0 0
      Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt
  16. 0 0
      Documentation/devicetree/bindings/mtd/fsl-upm-nand.txt
  17. 0 0
      Documentation/devicetree/bindings/mtd/mtd-physmap.txt
  18. 0 0
      Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txt
  19. 0 0
      Documentation/devicetree/bindings/net/can/sja1000.txt
  20. 0 0
      Documentation/devicetree/bindings/net/fsl-tsec-phy.txt
  21. 0 0
      Documentation/devicetree/bindings/net/mdio-gpio.txt
  22. 0 0
      Documentation/devicetree/bindings/net/phy.txt
  23. 0 0
      Documentation/devicetree/bindings/pci/83xx-512x-pci.txt
  24. 0 0
      Documentation/devicetree/bindings/powerpc/4xx/cpm.txt
  25. 0 0
      Documentation/devicetree/bindings/powerpc/4xx/emac.txt
  26. 0 0
      Documentation/devicetree/bindings/powerpc/4xx/ndfc.txt
  27. 0 0
      Documentation/devicetree/bindings/powerpc/4xx/ppc440spe-adma.txt
  28. 0 0
      Documentation/devicetree/bindings/powerpc/4xx/reboot.txt
  29. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/board.txt
  30. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm.txt
  31. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/brg.txt
  32. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/i2c.txt
  33. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/pic.txt
  34. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/usb.txt
  35. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/gpio.txt
  36. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt
  37. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe.txt
  38. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/firmware.txt
  39. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/par_io.txt
  40. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt
  41. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt
  42. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/usb.txt
  43. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/serial.txt
  44. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/diu.txt
  45. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/dma.txt
  46. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/ecm.txt
  47. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/gtm.txt
  48. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/guts.txt
  49. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/lbc.txt
  50. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/mcm.txt
  51. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/mcu-mpc8349emitx.txt
  52. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/mpc5121-psc.txt
  53. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/mpc5200.txt
  54. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
  55. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt
  56. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/pmc.txt
  57. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/sec.txt
  58. 0 0
      Documentation/devicetree/bindings/powerpc/fsl/ssi.txt
  59. 0 0
      Documentation/devicetree/bindings/powerpc/nintendo/gamecube.txt
  60. 0 0
      Documentation/devicetree/bindings/powerpc/nintendo/wii.txt
  61. 0 0
      Documentation/devicetree/bindings/spi/fsl-spi.txt
  62. 0 0
      Documentation/devicetree/bindings/spi/spi-bus.txt
  63. 0 0
      Documentation/devicetree/bindings/usb/fsl-usb.txt
  64. 0 0
      Documentation/devicetree/bindings/usb/usb-ehci.txt
  65. 0 0
      Documentation/devicetree/bindings/xilinx.txt
  66. 54 111
      Documentation/devicetree/booting-without-of.txt
  67. 16 0
      Documentation/feature-removal-schedule.txt
  68. 2 0
      Documentation/filesystems/ntfs.txt
  69. 15 6
      Documentation/hwmon/jc42
  70. 7 1
      Documentation/hwmon/k10temp
  71. 18 10
      Documentation/kernel-parameters.txt
  72. 0 6
      Documentation/networking/00-INDEX
  73. 2 0
      Documentation/networking/Makefile
  74. 71 12
      Documentation/networking/bonding.txt
  75. 8 1
      Documentation/networking/dns_resolver.txt
  76. 1 1
      Documentation/networking/ip-sysctl.txt
  77. 15 18
      Documentation/scheduler/sched-stats.txt
  78. 1 0
      Documentation/sound/alsa/HD-Audio-Models.txt
  79. 2 2
      Documentation/workqueue.txt
  80. 88 21
      MAINTAINERS
  81. 1 1
      Makefile
  82. 1 0
      arch/alpha/Kconfig
  83. 9 4
      arch/alpha/kernel/irq.c
  84. 3 8
      arch/alpha/kernel/irq_alpha.c
  85. 10 8
      arch/alpha/kernel/irq_i8259.c
  86. 3 5
      arch/alpha/kernel/irq_impl.h
  87. 10 10
      arch/alpha/kernel/irq_pyxis.c
  88. 8 8
      arch/alpha/kernel/irq_srm.c
  89. 14 14
      arch/alpha/kernel/sys_alcor.c
  90. 8 8
      arch/alpha/kernel/sys_cabriolet.c
  91. 27 25
      arch/alpha/kernel/sys_dp264.c
  92. 9 9
      arch/alpha/kernel/sys_eb64p.c
  93. 8 6
      arch/alpha/kernel/sys_eiger.c
  94. 12 12
      arch/alpha/kernel/sys_jensen.c
  95. 19 23
      arch/alpha/kernel/sys_marvel.c
  96. 8 8
      arch/alpha/kernel/sys_mikasa.c
  97. 8 8
      arch/alpha/kernel/sys_noritake.c
  98. 10 7
      arch/alpha/kernel/sys_rawhide.c
  99. 8 8
      arch/alpha/kernel/sys_rx164.c
  100. 10 10
      arch/alpha/kernel/sys_sable.c

+ 1 - 0
.gitignore

@@ -28,6 +28,7 @@ modules.builtin
 *.gz
 *.gz
 *.bz2
 *.bz2
 *.lzma
 *.lzma
+*.xz
 *.lzo
 *.lzo
 *.patch
 *.patch
 *.gcno
 *.gcno

+ 1 - 0
.mailmap

@@ -23,6 +23,7 @@ Andy Adamson <andros@citi.umich.edu>
 Arnaud Patard <arnaud.patard@rtp-net.org>
 Arnaud Patard <arnaud.patard@rtp-net.org>
 Arnd Bergmann <arnd@arndb.de>
 Arnd Bergmann <arnd@arndb.de>
 Axel Dyks <xl@xlsigned.net>
 Axel Dyks <xl@xlsigned.net>
+Axel Lin <axel.lin@gmail.com>
 Ben Gardner <bgardner@wabtec.com>
 Ben Gardner <bgardner@wabtec.com>
 Ben M Cahill <ben.m.cahill@intel.com>
 Ben M Cahill <ben.m.cahill@intel.com>
 Björn Steinbrink <B.Steinbrink@gmx.de>
 Björn Steinbrink <B.Steinbrink@gmx.de>

+ 25 - 0
Documentation/ABI/testing/sysfs-platform-at91

@@ -0,0 +1,25 @@
+What:		/sys/devices/platform/at91_can/net/<iface>/mb0_id
+Date:		January 2011
+KernelVersion:	2.6.38
+Contact:	Marc Kleine-Budde <kernel@pengutronix.de>
+Description:
+		Value representing the can_id of mailbox 0.
+
+		Default: 0x7ff (standard frame)
+
+		Due to a chip bug (errata 50.2.6.3 & 50.3.5.3 in
+		"AT91SAM9263 Preliminary 6249H-ATARM-27-Jul-09") the
+		contents of mailbox 0 may be send under certain
+		conditions (even if disabled or in rx mode).
+
+		The workaround in the errata suggests not to use the
+		mailbox and load it with an unused identifier.
+
+		In order to use an extended can_id add the
+		CAN_EFF_FLAG (0x80000000U) to the can_id. Example:
+
+		- standard id 0x7ff:
+		echo 0x7ff      > /sys/class/net/can0/mb0_id
+
+		- extended id 0x1fffffff:
+		echo 0x9fffffff > /sys/class/net/can0/mb0_id

+ 2 - 2
Documentation/DocBook/device-drivers.tmpl

@@ -217,8 +217,8 @@ X!Isound/sound_firmware.c
   <chapter id="uart16x50">
   <chapter id="uart16x50">
      <title>16x50 UART Driver</title>
      <title>16x50 UART Driver</title>
 !Iinclude/linux/serial_core.h
 !Iinclude/linux/serial_core.h
-!Edrivers/serial/serial_core.c
-!Edrivers/serial/8250.c
+!Edrivers/tty/serial/serial_core.c
+!Edrivers/tty/serial/8250.c
   </chapter>
   </chapter>
 
 
   <chapter id="fbdev">
   <chapter id="fbdev">

+ 3 - 3
Documentation/DocBook/drm.tmpl

@@ -73,8 +73,8 @@
       services.
       services.
     </para>
     </para>
     <para>
     <para>
-      The core of every DRM driver is struct drm_device.  Drivers
-      will typically statically initialize a drm_device structure,
+      The core of every DRM driver is struct drm_driver.  Drivers
+      will typically statically initialize a drm_driver structure,
       then pass it to drm_init() at load time.
       then pass it to drm_init() at load time.
     </para>
     </para>
 
 
@@ -84,7 +84,7 @@
     <title>Driver initialization</title>
     <title>Driver initialization</title>
     <para>
     <para>
       Before calling the DRM initialization routines, the driver must
       Before calling the DRM initialization routines, the driver must
-      first create and fill out a struct drm_device structure.
+      first create and fill out a struct drm_driver structure.
     </para>
     </para>
     <programlisting>
     <programlisting>
       static struct drm_driver driver = {
       static struct drm_driver driver = {

+ 5 - 0
Documentation/DocBook/filesystems.tmpl

@@ -82,6 +82,11 @@
      </sect1>
      </sect1>
   </chapter>
   </chapter>
 
 
+  <chapter id="fs_events">
+     <title>Events based on file descriptors</title>
+!Efs/eventfd.c
+  </chapter>
+
   <chapter id="sysfs">
   <chapter id="sysfs">
      <title>The Filesystem for Exporting Kernel Objects</title>
      <title>The Filesystem for Exporting Kernel Objects</title>
 !Efs/sysfs/file.c
 !Efs/sysfs/file.c

+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/sata.txt → Documentation/devicetree/bindings/ata/fsl-sata.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/eeprom.txt → Documentation/devicetree/bindings/eeprom.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/8xxx_gpio.txt → Documentation/devicetree/bindings/gpio/8xxx_gpio.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/gpio/gpio.txt → Documentation/devicetree/bindings/gpio/gpio.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/gpio/led.txt → Documentation/devicetree/bindings/gpio/led.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/i2c.txt → Documentation/devicetree/bindings/i2c/fsl-i2c.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/marvell.txt → Documentation/devicetree/bindings/marvell.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/esdhc.txt → Documentation/devicetree/bindings/mmc/fsl-esdhc.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/mmc-spi-slot.txt → Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/upm-nand.txt → Documentation/devicetree/bindings/mtd/fsl-upm-nand.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/mtd-physmap.txt → Documentation/devicetree/bindings/mtd/mtd-physmap.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/can.txt → Documentation/devicetree/bindings/net/can/mpc5xxx-mscan.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/can/sja1000.txt → Documentation/devicetree/bindings/net/can/sja1000.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/tsec.txt → Documentation/devicetree/bindings/net/fsl-tsec-phy.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/gpio/mdio.txt → Documentation/devicetree/bindings/net/mdio-gpio.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/phy.txt → Documentation/devicetree/bindings/net/phy.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/83xx-512x-pci.txt → Documentation/devicetree/bindings/pci/83xx-512x-pci.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/4xx/cpm.txt → Documentation/devicetree/bindings/powerpc/4xx/cpm.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/4xx/emac.txt → Documentation/devicetree/bindings/powerpc/4xx/emac.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/4xx/ndfc.txt → Documentation/devicetree/bindings/powerpc/4xx/ndfc.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/4xx/ppc440spe-adma.txt → Documentation/devicetree/bindings/powerpc/4xx/ppc440spe-adma.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/4xx/reboot.txt → Documentation/devicetree/bindings/powerpc/4xx/reboot.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/board.txt → Documentation/devicetree/bindings/powerpc/fsl/board.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/brg.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/i2c.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/pic.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/usb.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/gpio.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/gpio.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/firmware.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/par_io.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/usb.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt → Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/serial.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/diu.txt → Documentation/devicetree/bindings/powerpc/fsl/diu.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/dma.txt → Documentation/devicetree/bindings/powerpc/fsl/dma.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/ecm.txt → Documentation/devicetree/bindings/powerpc/fsl/ecm.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/gtm.txt → Documentation/devicetree/bindings/powerpc/fsl/gtm.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/guts.txt → Documentation/devicetree/bindings/powerpc/fsl/guts.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/lbc.txt → Documentation/devicetree/bindings/powerpc/fsl/lbc.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/mcm.txt → Documentation/devicetree/bindings/powerpc/fsl/mcm.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/mcu-mpc8349emitx.txt → Documentation/devicetree/bindings/powerpc/fsl/mcu-mpc8349emitx.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/mpc5121-psc.txt → Documentation/devicetree/bindings/powerpc/fsl/mpc5121-psc.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/mpc5200.txt → Documentation/devicetree/bindings/powerpc/fsl/mpc5200.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/mpic.txt → Documentation/devicetree/bindings/powerpc/fsl/mpic.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/msi-pic.txt → Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/pmc.txt → Documentation/devicetree/bindings/powerpc/fsl/pmc.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/sec.txt → Documentation/devicetree/bindings/powerpc/fsl/sec.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/ssi.txt → Documentation/devicetree/bindings/powerpc/fsl/ssi.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/nintendo/gamecube.txt → Documentation/devicetree/bindings/powerpc/nintendo/gamecube.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/nintendo/wii.txt → Documentation/devicetree/bindings/powerpc/nintendo/wii.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/spi.txt → Documentation/devicetree/bindings/spi/fsl-spi.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/spi-bus.txt → Documentation/devicetree/bindings/spi/spi-bus.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/fsl/usb.txt → Documentation/devicetree/bindings/usb/fsl-usb.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/usb-ehci.txt → Documentation/devicetree/bindings/usb/usb-ehci.txt


+ 0 - 0
Documentation/powerpc/dts-bindings/xilinx.txt → Documentation/devicetree/bindings/xilinx.txt


+ 54 - 111
Documentation/powerpc/booting-without-of.txt → Documentation/devicetree/booting-without-of.txt

@@ -13,7 +13,6 @@ Table of Contents
 
 
   I - Introduction
   I - Introduction
     1) Entry point for arch/powerpc
     1) Entry point for arch/powerpc
-    2) Board support
 
 
   II - The DT block format
   II - The DT block format
     1) Header
     1) Header
@@ -41,13 +40,6 @@ Table of Contents
   VI - System-on-a-chip devices and nodes
   VI - System-on-a-chip devices and nodes
     1) Defining child nodes of an SOC
     1) Defining child nodes of an SOC
     2) Representing devices without a current OF specification
     2) Representing devices without a current OF specification
-      a) PHY nodes
-      b) Interrupt controllers
-      c) 4xx/Axon EMAC ethernet nodes
-      d) Xilinx IP cores
-      e) USB EHCI controllers
-      f) MDIO on GPIOs
-      g) SPI busses
 
 
   VII - Specifying interrupt information for devices
   VII - Specifying interrupt information for devices
     1) interrupts property
     1) interrupts property
@@ -123,7 +115,7 @@ Revision Information
 I - Introduction
 I - Introduction
 ================
 ================
 
 
-During the recent development of the Linux/ppc64 kernel, and more
+During the development of the Linux/ppc64 kernel, and more
 specifically, the addition of new platform types outside of the old
 specifically, the addition of new platform types outside of the old
 IBM pSeries/iSeries pair, it was decided to enforce some strict rules
 IBM pSeries/iSeries pair, it was decided to enforce some strict rules
 regarding the kernel entry and bootloader <-> kernel interfaces, in
 regarding the kernel entry and bootloader <-> kernel interfaces, in
@@ -146,7 +138,7 @@ section III, but, for example, the kernel does not require you to
 create a node for every PCI device in the system. It is a requirement
 create a node for every PCI device in the system. It is a requirement
 to have a node for PCI host bridges in order to provide interrupt
 to have a node for PCI host bridges in order to provide interrupt
 routing informations and memory/IO ranges, among others. It is also
 routing informations and memory/IO ranges, among others. It is also
-recommended to define nodes for on chip devices and other busses that
+recommended to define nodes for on chip devices and other buses that
 don't specifically fit in an existing OF specification. This creates a
 don't specifically fit in an existing OF specification. This creates a
 great flexibility in the way the kernel can then probe those and match
 great flexibility in the way the kernel can then probe those and match
 drivers to device, without having to hard code all sorts of tables. It
 drivers to device, without having to hard code all sorts of tables. It
@@ -158,7 +150,7 @@ it with special cases.
 1) Entry point for arch/powerpc
 1) Entry point for arch/powerpc
 -------------------------------
 -------------------------------
 
 
-   There is one and one single entry point to the kernel, at the start
+   There is one single entry point to the kernel, at the start
    of the kernel image. That entry point supports two calling
    of the kernel image. That entry point supports two calling
    conventions:
    conventions:
 
 
@@ -210,12 +202,6 @@ it with special cases.
         with all CPUs. The way to do that with method b) will be
         with all CPUs. The way to do that with method b) will be
         described in a later revision of this document.
         described in a later revision of this document.
 
 
-
-2) Board support
-----------------
-
-64-bit kernels:
-
    Board supports (platforms) are not exclusive config options. An
    Board supports (platforms) are not exclusive config options. An
    arbitrary set of board supports can be built in a single kernel
    arbitrary set of board supports can be built in a single kernel
    image. The kernel will "know" what set of functions to use for a
    image. The kernel will "know" what set of functions to use for a
@@ -234,48 +220,11 @@ it with special cases.
         containing the various callbacks that the generic code will
         containing the various callbacks that the generic code will
         use to get to your platform specific code
         use to get to your platform specific code
 
 
-        c) Add a reference to your "ppc_md" structure in the
-        "machines" table in arch/powerpc/kernel/setup_64.c if you are
-        a 64-bit platform.
-
-        d) request and get assigned a platform number (see PLATFORM_*
-        constants in arch/powerpc/include/asm/processor.h
-
-32-bit embedded kernels:
-
-  Currently, board support is essentially an exclusive config option.
-  The kernel is configured for a single platform.  Part of the reason
-  for this is to keep kernels on embedded systems small and efficient;
-  part of this is due to the fact the code is already that way. In the
-  future, a kernel may support multiple platforms, but only if the
+  A kernel image may support multiple platforms, but only if the
   platforms feature the same core architecture.  A single kernel build
   platforms feature the same core architecture.  A single kernel build
   cannot support both configurations with Book E and configurations
   cannot support both configurations with Book E and configurations
   with classic Powerpc architectures.
   with classic Powerpc architectures.
 
 
-  32-bit embedded platforms that are moved into arch/powerpc using a
-  flattened device tree should adopt the merged tree practice of
-  setting ppc_md up dynamically, even though the kernel is currently
-  built with support for only a single platform at a time.  This allows
-  unification of the setup code, and will make it easier to go to a
-  multiple-platform-support model in the future.
-
-NOTE: I believe the above will be true once Ben's done with the merge
-of the boot sequences.... someone speak up if this is wrong!
-
-  To add a 32-bit embedded platform support, follow the instructions
-  for 64-bit platforms above, with the exception that the Kconfig
-  option should be set up such that the kernel builds exclusively for
-  the platform selected.  The processor type for the platform should
-  enable another config option to select the specific board
-  supported.
-
-NOTE: If Ben doesn't merge the setup files, may need to change this to
-point to setup_32.c
-
-
-   I will describe later the boot process and various callbacks that
-   your platform should implement.
-
 
 
 II - The DT block format
 II - The DT block format
 ========================
 ========================
@@ -300,8 +249,8 @@ the block to RAM before passing it to the kernel.
 1) Header
 1) Header
 ---------
 ---------
 
 
-   The kernel is entered with r3 pointing to an area of memory that is
-   roughly described in arch/powerpc/include/asm/prom.h by the structure
+   The kernel is passed the physical address pointing to an area of memory
+   that is roughly described in include/linux/of_fdt.h by the structure
    boot_param_header:
    boot_param_header:
 
 
 struct boot_param_header {
 struct boot_param_header {
@@ -339,7 +288,7 @@ struct boot_param_header {
    All values in this header are in big endian format, the various
    All values in this header are in big endian format, the various
    fields in this header are defined more precisely below. All
    fields in this header are defined more precisely below. All
    "offset" values are in bytes from the start of the header; that is
    "offset" values are in bytes from the start of the header; that is
-   from the value of r3.
+   from the physical base address of the device tree block.
 
 
    - magic
    - magic
 
 
@@ -437,7 +386,7 @@ struct boot_param_header {
 
 
 
 
              ------------------------------
              ------------------------------
-       r3 -> |  struct boot_param_header  |
+     base -> |  struct boot_param_header  |
              ------------------------------
              ------------------------------
              |      (alignment gap) (*)   |
              |      (alignment gap) (*)   |
              ------------------------------
              ------------------------------
@@ -457,7 +406,7 @@ struct boot_param_header {
       -----> ------------------------------
       -----> ------------------------------
       |
       |
       |
       |
-      --- (r3 + totalsize)
+      --- (base + totalsize)
 
 
   (*) The alignment gaps are not necessarily present; their presence
   (*) The alignment gaps are not necessarily present; their presence
       and size are dependent on the various alignment requirements of
       and size are dependent on the various alignment requirements of
@@ -500,7 +449,7 @@ the device-tree structure. It is typically used to represent "path" in
 the device-tree. More details about the actual format of these will be
 the device-tree. More details about the actual format of these will be
 below.
 below.
 
 
-The kernel powerpc generic code does not make any formal use of the
+The kernel generic code does not make any formal use of the
 unit address (though some board support code may do) so the only real
 unit address (though some board support code may do) so the only real
 requirement here for the unit address is to ensure uniqueness of
 requirement here for the unit address is to ensure uniqueness of
 the node unit name at a given level of the tree. Nodes with no notion
 the node unit name at a given level of the tree. Nodes with no notion
@@ -518,20 +467,21 @@ path to the root node is "/".
 
 
 Every node which actually represents an actual device (that is, a node
 Every node which actually represents an actual device (that is, a node
 which isn't only a virtual "container" for more nodes, like "/cpus"
 which isn't only a virtual "container" for more nodes, like "/cpus"
-is) is also required to have a "device_type" property indicating the
-type of node .
+is) is also required to have a "compatible" property indicating the
+specific hardware and an optional list of devices it is fully
+backwards compatible with.
 
 
 Finally, every node that can be referenced from a property in another
 Finally, every node that can be referenced from a property in another
-node is required to have a "linux,phandle" property. Real open
-firmware implementations provide a unique "phandle" value for every
-node that the "prom_init()" trampoline code turns into
-"linux,phandle" properties. However, this is made optional if the
-flattened device tree is used directly. An example of a node
+node is required to have either a "phandle" or a "linux,phandle"
+property. Real Open Firmware implementations provide a unique
+"phandle" value for every node that the "prom_init()" trampoline code
+turns into "linux,phandle" properties. However, this is made optional
+if the flattened device tree is used directly. An example of a node
 referencing another node via "phandle" is when laying out the
 referencing another node via "phandle" is when laying out the
 interrupt tree which will be described in a further version of this
 interrupt tree which will be described in a further version of this
 document.
 document.
 
 
-This "linux, phandle" property is a 32-bit value that uniquely
+The "phandle" property is a 32-bit value that uniquely
 identifies a node. You are free to use whatever values or system of
 identifies a node. You are free to use whatever values or system of
 values, internal pointers, or whatever to generate these, the only
 values, internal pointers, or whatever to generate these, the only
 requirement is that every node for which you provide that property has
 requirement is that every node for which you provide that property has
@@ -694,7 +644,7 @@ made of 3 cells, the bottom two containing the actual address itself
 while the top cell contains address space indication, flags, and pci
 while the top cell contains address space indication, flags, and pci
 bus & device numbers.
 bus & device numbers.
 
 
-For busses that support dynamic allocation, it's the accepted practice
+For buses that support dynamic allocation, it's the accepted practice
 to then not provide the address in "reg" (keep it 0) though while
 to then not provide the address in "reg" (keep it 0) though while
 providing a flag indicating the address is dynamically allocated, and
 providing a flag indicating the address is dynamically allocated, and
 then, to provide a separate "assigned-addresses" property that
 then, to provide a separate "assigned-addresses" property that
@@ -711,7 +661,7 @@ prom_parse.c file of the recent kernels for your bus type.
 The "reg" property only defines addresses and sizes (if #size-cells is
 The "reg" property only defines addresses and sizes (if #size-cells is
 non-0) within a given bus. In order to translate addresses upward
 non-0) within a given bus. In order to translate addresses upward
 (that is into parent bus addresses, and possibly into CPU physical
 (that is into parent bus addresses, and possibly into CPU physical
-addresses), all busses must contain a "ranges" property. If the
+addresses), all buses must contain a "ranges" property. If the
 "ranges" property is missing at a given level, it's assumed that
 "ranges" property is missing at a given level, it's assumed that
 translation isn't possible, i.e., the registers are not visible on the
 translation isn't possible, i.e., the registers are not visible on the
 parent bus.  The format of the "ranges" property for a bus is a list
 parent bus.  The format of the "ranges" property for a bus is a list
@@ -727,9 +677,9 @@ example, for a PCI host controller, that would be a CPU address. For a
 PCI<->ISA bridge, that would be a PCI address. It defines the base
 PCI<->ISA bridge, that would be a PCI address. It defines the base
 address in the parent bus where the beginning of that range is mapped.
 address in the parent bus where the beginning of that range is mapped.
 
 
-For a new 64-bit powerpc board, I recommend either the 2/2 format or
+For new 64-bit board support, I recommend either the 2/2 format or
 Apple's 2/1 format which is slightly more compact since sizes usually
 Apple's 2/1 format which is slightly more compact since sizes usually
-fit in a single 32-bit word.   New 32-bit powerpc boards should use a
+fit in a single 32-bit word.   New 32-bit board support should use a
 1/1 format, unless the processor supports physical addresses greater
 1/1 format, unless the processor supports physical addresses greater
 than 32-bits, in which case a 2/1 format is recommended.
 than 32-bits, in which case a 2/1 format is recommended.
 
 
@@ -754,7 +704,7 @@ of their actual names.
 While earlier users of Open Firmware like OldWorld macintoshes tended
 While earlier users of Open Firmware like OldWorld macintoshes tended
 to use the actual device name for the "name" property, it's nowadays
 to use the actual device name for the "name" property, it's nowadays
 considered a good practice to use a name that is closer to the device
 considered a good practice to use a name that is closer to the device
-class (often equal to device_type). For example, nowadays, ethernet
+class (often equal to device_type). For example, nowadays, Ethernet
 controllers are named "ethernet", an additional "model" property
 controllers are named "ethernet", an additional "model" property
 defining precisely the chip type/model, and "compatible" property
 defining precisely the chip type/model, and "compatible" property
 defining the family in case a single driver can driver more than one
 defining the family in case a single driver can driver more than one
@@ -772,7 +722,7 @@ is present).
 4) Note about node and property names and character set
 4) Note about node and property names and character set
 -------------------------------------------------------
 -------------------------------------------------------
 
 
-While open firmware provides more flexible usage of 8859-1, this
+While Open Firmware provides more flexible usage of 8859-1, this
 specification enforces more strict rules. Nodes and properties should
 specification enforces more strict rules. Nodes and properties should
 be comprised only of ASCII characters 'a' to 'z', '0' to
 be comprised only of ASCII characters 'a' to 'z', '0' to
 '9', ',', '.', '_', '+', '#', '?', and '-'. Node names additionally
 '9', ',', '.', '_', '+', '#', '?', and '-'. Node names additionally
@@ -792,7 +742,7 @@ address which can extend beyond that limit.
 --------------------------------
 --------------------------------
   These are all that are currently required. However, it is strongly
   These are all that are currently required. However, it is strongly
   recommended that you expose PCI host bridges as documented in the
   recommended that you expose PCI host bridges as documented in the
-  PCI binding to open firmware, and your interrupt tree as documented
+  PCI binding to Open Firmware, and your interrupt tree as documented
   in OF interrupt tree specification.
   in OF interrupt tree specification.
 
 
   a) The root node
   a) The root node
@@ -802,20 +752,12 @@ address which can extend beyond that limit.
     - model : this is your board name/model
     - model : this is your board name/model
     - #address-cells : address representation for "root" devices
     - #address-cells : address representation for "root" devices
     - #size-cells: the size representation for "root" devices
     - #size-cells: the size representation for "root" devices
-    - device_type : This property shouldn't be necessary. However, if
-      you decide to create a device_type for your root node, make sure it
-      is _not_ "chrp" unless your platform is a pSeries or PAPR compliant
-      one for 64-bit, or a CHRP-type machine for 32-bit as this will
-      matched by the kernel this way.
-
-  Additionally, some recommended properties are:
-
     - compatible : the board "family" generally finds its way here,
     - compatible : the board "family" generally finds its way here,
       for example, if you have 2 board models with a similar layout,
       for example, if you have 2 board models with a similar layout,
       that typically get driven by the same platform code in the
       that typically get driven by the same platform code in the
-      kernel, you would use a different "model" property but put a
-      value in "compatible". The kernel doesn't directly use that
-      value but it is generally useful.
+      kernel, you would specify the exact board model in the
+      compatible property followed by an entry that represents the SoC
+      model.
 
 
   The root node is also generally where you add additional properties
   The root node is also generally where you add additional properties
   specific to your board like the serial number if any, that sort of
   specific to your board like the serial number if any, that sort of
@@ -841,8 +783,11 @@ address which can extend beyond that limit.
 
 
   So under /cpus, you are supposed to create a node for every CPU on
   So under /cpus, you are supposed to create a node for every CPU on
   the machine. There is no specific restriction on the name of the
   the machine. There is no specific restriction on the name of the
-  CPU, though It's common practice to call it PowerPC,<name>. For
+  CPU, though it's common to call it <architecture>,<core>. For
   example, Apple uses PowerPC,G5 while IBM uses PowerPC,970FX.
   example, Apple uses PowerPC,G5 while IBM uses PowerPC,970FX.
+  However, the Generic Names convention suggests that it would be
+  better to simply use 'cpu' for each cpu node and use the compatible
+  property to identify the specific cpu core.
 
 
   Required properties:
   Required properties:
 
 
@@ -923,7 +868,7 @@ compatibility.
 
 
   e) The /chosen node
   e) The /chosen node
 
 
-  This node is a bit "special". Normally, that's where open firmware
+  This node is a bit "special". Normally, that's where Open Firmware
   puts some variable environment information, like the arguments, or
   puts some variable environment information, like the arguments, or
   the default input/output devices.
   the default input/output devices.
 
 
@@ -940,11 +885,7 @@ compatibility.
       console device if any. Typically, if you have serial devices on
       console device if any. Typically, if you have serial devices on
       your board, you may want to put the full path to the one set as
       your board, you may want to put the full path to the one set as
       the default console in the firmware here, for the kernel to pick
       the default console in the firmware here, for the kernel to pick
-      it up as its own default console. If you look at the function
-      set_preferred_console() in arch/ppc64/kernel/setup.c, you'll see
-      that the kernel tries to find out the default console and has
-      knowledge of various types like 8250 serial ports. You may want
-      to extend this function to add your own.
+      it up as its own default console.
 
 
   Note that u-boot creates and fills in the chosen node for platforms
   Note that u-boot creates and fills in the chosen node for platforms
   that use it.
   that use it.
@@ -955,23 +896,23 @@ compatibility.
 
 
   f) the /soc<SOCname> node
   f) the /soc<SOCname> node
 
 
-  This node is used to represent a system-on-a-chip (SOC) and must be
-  present if the processor is a SOC. The top-level soc node contains
-  information that is global to all devices on the SOC. The node name
-  should contain a unit address for the SOC, which is the base address
-  of the memory-mapped register set for the SOC. The name of an soc
+  This node is used to represent a system-on-a-chip (SoC) and must be
+  present if the processor is a SoC. The top-level soc node contains
+  information that is global to all devices on the SoC. The node name
+  should contain a unit address for the SoC, which is the base address
+  of the memory-mapped register set for the SoC. The name of an SoC
   node should start with "soc", and the remainder of the name should
   node should start with "soc", and the remainder of the name should
   represent the part number for the soc.  For example, the MPC8540's
   represent the part number for the soc.  For example, the MPC8540's
   soc node would be called "soc8540".
   soc node would be called "soc8540".
 
 
   Required properties:
   Required properties:
 
 
-    - device_type : Should be "soc"
     - ranges : Should be defined as specified in 1) to describe the
     - ranges : Should be defined as specified in 1) to describe the
-      translation of SOC addresses for memory mapped SOC registers.
-    - bus-frequency: Contains the bus frequency for the SOC node.
+      translation of SoC addresses for memory mapped SoC registers.
+    - bus-frequency: Contains the bus frequency for the SoC node.
       Typically, the value of this field is filled in by the boot
       Typically, the value of this field is filled in by the boot
       loader.
       loader.
+    - compatible : Exact model of the SoC
 
 
 
 
   Recommended properties:
   Recommended properties:
@@ -1155,12 +1096,13 @@ while all this has been defined and implemented.
 
 
   - An example of code for iterating nodes & retrieving properties
   - An example of code for iterating nodes & retrieving properties
     directly from the flattened tree format can be found in the kernel
     directly from the flattened tree format can be found in the kernel
-    file arch/ppc64/kernel/prom.c, look at scan_flat_dt() function,
+    file drivers/of/fdt.c.  Look at the of_scan_flat_dt() function,
     its usage in early_init_devtree(), and the corresponding various
     its usage in early_init_devtree(), and the corresponding various
     early_init_dt_scan_*() callbacks. That code can be re-used in a
     early_init_dt_scan_*() callbacks. That code can be re-used in a
     GPL bootloader, and as the author of that code, I would be happy
     GPL bootloader, and as the author of that code, I would be happy
     to discuss possible free licensing to any vendor who wishes to
     to discuss possible free licensing to any vendor who wishes to
     integrate all or part of this code into a non-GPL bootloader.
     integrate all or part of this code into a non-GPL bootloader.
+    (reference needed; who is 'I' here? ---gcl Jan 31, 2011)
 
 
 
 
 
 
@@ -1203,18 +1145,19 @@ MPC8540.
 2) Representing devices without a current OF specification
 2) Representing devices without a current OF specification
 ----------------------------------------------------------
 ----------------------------------------------------------
 
 
-Currently, there are many devices on SOCs that do not have a standard
-representation pre-defined as part of the open firmware
-specifications, mainly because the boards that contain these SOCs are
-not currently booted using open firmware.   This section contains
-descriptions for the SOC devices for which new nodes have been
-defined; this list will expand as more and more SOC-containing
-platforms are moved over to use the flattened-device-tree model.
+Currently, there are many devices on SoCs that do not have a standard
+representation defined as part of the Open Firmware specifications,
+mainly because the boards that contain these SoCs are not currently
+booted using Open Firmware.  Binding documentation for new devices
+should be added to the Documentation/devicetree/bindings directory.
+That directory will expand as device tree support is added to more and
+more SoCs.
+
 
 
 VII - Specifying interrupt information for devices
 VII - Specifying interrupt information for devices
 ===================================================
 ===================================================
 
 
-The device tree represents the busses and devices of a hardware
+The device tree represents the buses and devices of a hardware
 system in a form similar to the physical bus topology of the
 system in a form similar to the physical bus topology of the
 hardware.
 hardware.
 
 

+ 16 - 0
Documentation/feature-removal-schedule.txt

@@ -603,3 +603,19 @@ Why:	The adm9240, w83792d and w83793 hardware monitoring drivers have
 Who:	Jean Delvare <khali@linux-fr.org>
 Who:	Jean Delvare <khali@linux-fr.org>
 
 
 ----------------------------
 ----------------------------
+
+What:	noswapaccount kernel command line parameter
+When:	2.6.40
+Why:	The original implementation of memsw feature enabled by
+	CONFIG_CGROUP_MEM_RES_CTLR_SWAP could be disabled by the noswapaccount
+	kernel parameter (introduced in 2.6.29-rc1). Later on, this decision
+	turned out to be not ideal because we cannot have the feature compiled
+	in and disabled by default and let only interested to enable it
+	(e.g. general distribution kernels might need it). Therefore we have
+	added swapaccount[=0|1] parameter (introduced in 2.6.37) which provides
+	the both possibilities. If we remove noswapaccount we will have
+	less command line parameters with the same functionality and we
+	can also cleanup the parameter handling a bit ().
+Who:	Michal Hocko <mhocko@suse.cz>
+
+----------------------------

+ 2 - 0
Documentation/filesystems/ntfs.txt

@@ -460,6 +460,8 @@ Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
 2.1.30:
 2.1.30:
 	- Fix writev() (it kept writing the first segment over and over again
 	- Fix writev() (it kept writing the first segment over and over again
 	  instead of moving onto subsequent segments).
 	  instead of moving onto subsequent segments).
+	- Fix crash in ntfs_mft_record_alloc() when mapping the new extent mft
+	  record failed.
 2.1.29:
 2.1.29:
 	- Fix a deadlock when mounting read-write.
 	- Fix a deadlock when mounting read-write.
 2.1.28:
 2.1.28:

+ 15 - 6
Documentation/hwmon/jc42

@@ -51,7 +51,8 @@ Supported chips:
   * JEDEC JC 42.4 compliant temperature sensor chips
   * JEDEC JC 42.4 compliant temperature sensor chips
     Prefix: 'jc42'
     Prefix: 'jc42'
     Addresses scanned: I2C 0x18 - 0x1f
     Addresses scanned: I2C 0x18 - 0x1f
-    Datasheet: -
+    Datasheet:
+	http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf
 
 
 Author:
 Author:
 	Guenter Roeck <guenter.roeck@ericsson.com>
 	Guenter Roeck <guenter.roeck@ericsson.com>
@@ -60,7 +61,11 @@ Author:
 Description
 Description
 -----------
 -----------
 
 
-This driver implements support for JEDEC JC 42.4 compliant temperature sensors.
+This driver implements support for JEDEC JC 42.4 compliant temperature sensors,
+which are used on many DDR3 memory modules for mobile devices and servers. Some
+systems use the sensor to prevent memory overheating by automatically throttling
+the memory controller.
+
 The driver auto-detects the chips listed above, but can be manually instantiated
 The driver auto-detects the chips listed above, but can be manually instantiated
 to support other JC 42.4 compliant chips.
 to support other JC 42.4 compliant chips.
 
 
@@ -81,15 +86,19 @@ limits. The chip supports only a single register to configure the hysteresis,
 which applies to all limits. This register can be written by writing into
 which applies to all limits. This register can be written by writing into
 temp1_crit_hyst. Other hysteresis attributes are read-only.
 temp1_crit_hyst. Other hysteresis attributes are read-only.
 
 
+If the BIOS has configured the sensor for automatic temperature management, it
+is likely that it has locked the registers, i.e., that the temperature limits
+cannot be changed.
+
 Sysfs entries
 Sysfs entries
 -------------
 -------------
 
 
 temp1_input		Temperature (RO)
 temp1_input		Temperature (RO)
-temp1_min		Minimum temperature (RW)
-temp1_max		Maximum temperature (RW)
-temp1_crit		Critical high temperature (RW)
+temp1_min		Minimum temperature (RO or RW)
+temp1_max		Maximum temperature (RO or RW)
+temp1_crit		Critical high temperature (RO or RW)
 
 
-temp1_crit_hyst		Critical hysteresis temperature (RW)
+temp1_crit_hyst		Critical hysteresis temperature (RO or RW)
 temp1_max_hyst		Maximum hysteresis temperature (RO)
 temp1_max_hyst		Maximum hysteresis temperature (RO)
 
 
 temp1_min_alarm		Temperature low alarm
 temp1_min_alarm		Temperature low alarm

+ 7 - 1
Documentation/hwmon/k10temp

@@ -9,6 +9,8 @@ Supported chips:
   Socket S1G3: Athlon II, Sempron, Turion II
   Socket S1G3: Athlon II, Sempron, Turion II
 * AMD Family 11h processors:
 * AMD Family 11h processors:
   Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
   Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
+* AMD Family 12h processors: "Llano"
+* AMD Family 14h processors: "Brazos" (C/E/G-Series)
 
 
   Prefix: 'k10temp'
   Prefix: 'k10temp'
   Addresses scanned: PCI space
   Addresses scanned: PCI space
@@ -17,10 +19,14 @@ Supported chips:
     http://support.amd.com/us/Processor_TechDocs/31116.pdf
     http://support.amd.com/us/Processor_TechDocs/31116.pdf
   BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors:
   BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors:
     http://support.amd.com/us/Processor_TechDocs/41256.pdf
     http://support.amd.com/us/Processor_TechDocs/41256.pdf
+  BIOS and Kernel Developer's Guide (BKDG) for AMD Family 14h Models 00h-0Fh Processors:
+    http://support.amd.com/us/Processor_TechDocs/43170.pdf
   Revision Guide for AMD Family 10h Processors:
   Revision Guide for AMD Family 10h Processors:
     http://support.amd.com/us/Processor_TechDocs/41322.pdf
     http://support.amd.com/us/Processor_TechDocs/41322.pdf
   Revision Guide for AMD Family 11h Processors:
   Revision Guide for AMD Family 11h Processors:
     http://support.amd.com/us/Processor_TechDocs/41788.pdf
     http://support.amd.com/us/Processor_TechDocs/41788.pdf
+  Revision Guide for AMD Family 14h Models 00h-0Fh Processors:
+    http://support.amd.com/us/Processor_TechDocs/47534.pdf
   AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:
   AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:
     http://support.amd.com/us/Processor_TechDocs/43373.pdf
     http://support.amd.com/us/Processor_TechDocs/43373.pdf
   AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet:
   AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet:
@@ -34,7 +40,7 @@ Description
 -----------
 -----------
 
 
 This driver permits reading of the internal temperature sensor of AMD
 This driver permits reading of the internal temperature sensor of AMD
-Family 10h and 11h processors.
+Family 10h/11h/12h/14h processors.
 
 
 All these processors have a sensor, but on those for Socket F or AM2+,
 All these processors have a sensor, but on those for Socket F or AM2+,
 the sensor may return inconsistent values (erratum 319).  The driver
 the sensor may return inconsistent values (erratum 319).  The driver

+ 18 - 10
Documentation/kernel-parameters.txt

@@ -43,11 +43,11 @@ parameter is applicable:
 	AVR32	AVR32 architecture is enabled.
 	AVR32	AVR32 architecture is enabled.
 	AX25	Appropriate AX.25 support is enabled.
 	AX25	Appropriate AX.25 support is enabled.
 	BLACKFIN Blackfin architecture is enabled.
 	BLACKFIN Blackfin architecture is enabled.
+	DRM	Direct Rendering Management support is enabled.
+	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
 	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
 	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
 	EFI	EFI Partitioning (GPT) is enabled
 	EFI	EFI Partitioning (GPT) is enabled
 	EIDE	EIDE/ATAPI support is enabled.
 	EIDE	EIDE/ATAPI support is enabled.
-	DRM	Direct Rendering Management support is enabled.
-	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
 	FB	The frame buffer device is enabled.
 	FB	The frame buffer device is enabled.
 	GCOV	GCOV profiling is enabled.
 	GCOV	GCOV profiling is enabled.
 	HW	Appropriate hardware is enabled.
 	HW	Appropriate hardware is enabled.
@@ -144,6 +144,11 @@ a fixed number of characters. This limit depends on the architecture
 and is between 256 and 4096 characters. It is defined in the file
 and is between 256 and 4096 characters. It is defined in the file
 ./include/asm/setup.h as COMMAND_LINE_SIZE.
 ./include/asm/setup.h as COMMAND_LINE_SIZE.
 
 
+Finally, the [KMG] suffix is commonly described after a number of kernel
+parameter values. These 'K', 'M', and 'G' letters represent the _binary_
+multipliers 'Kilo', 'Mega', and 'Giga', equalling 2^10, 2^20, and 2^30
+bytes respectively. Such letter suffixes can also be entirely omitted.
+
 
 
 	acpi=		[HW,ACPI,X86]
 	acpi=		[HW,ACPI,X86]
 			Advanced Configuration and Power Interface
 			Advanced Configuration and Power Interface
@@ -545,16 +550,20 @@ and is between 256 and 4096 characters. It is defined in the file
 			Format:
 			Format:
 			<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
 			<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
 
 
-	crashkernel=nn[KMG]@ss[KMG]
-			[KNL] Reserve a chunk of physical memory to
-			hold a kernel to switch to with kexec on panic.
+	crashkernel=size[KMG][@offset[KMG]]
+			[KNL] Using kexec, Linux can switch to a 'crash kernel'
+			upon panic. This parameter reserves the physical
+			memory region [offset, offset + size] for that kernel
+			image. If '@offset' is omitted, then a suitable offset
+			is selected automatically. Check
+			Documentation/kdump/kdump.txt for further details.
 
 
 	crashkernel=range1:size1[,range2:size2,...][@offset]
 	crashkernel=range1:size1[,range2:size2,...][@offset]
 			[KNL] Same as above, but depends on the memory
 			[KNL] Same as above, but depends on the memory
 			in the running system. The syntax of range is
 			in the running system. The syntax of range is
 			start-[end] where start and end are both
 			start-[end] where start and end are both
 			a memory unit (amount[KMG]). See also
 			a memory unit (amount[KMG]). See also
-			Documentation/kdump/kdump.txt for a example.
+			Documentation/kdump/kdump.txt for an example.
 
 
 	cs89x0_dma=	[HW,NET]
 	cs89x0_dma=	[HW,NET]
 			Format: <dma>
 			Format: <dma>
@@ -1262,10 +1271,9 @@ and is between 256 and 4096 characters. It is defined in the file
 			6 (KERN_INFO)		informational
 			6 (KERN_INFO)		informational
 			7 (KERN_DEBUG)		debug-level messages
 			7 (KERN_DEBUG)		debug-level messages
 
 
-	log_buf_len=n	Sets the size of the printk ring buffer, in bytes.
-			Format: { n | nk | nM }
-			n must be a power of two.  The default size
-			is set in the kernel config file.
+	log_buf_len=n[KMG]	Sets the size of the printk ring buffer,
+			in bytes.  n must be a power of two.  The default
+			size is set in the kernel config file.
 
 
 	logo.nologo	[FB] Disables display of the built-in Linux logo.
 	logo.nologo	[FB] Disables display of the built-in Linux logo.
 			This may be used to provide more screen space for
 			This may be used to provide more screen space for

+ 0 - 6
Documentation/networking/00-INDEX

@@ -40,8 +40,6 @@ decnet.txt
 	- info on using the DECnet networking layer in Linux.
 	- info on using the DECnet networking layer in Linux.
 depca.txt
 depca.txt
 	- the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver
 	- the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver
-dgrs.txt
-	- the Digi International RightSwitch SE-X Ethernet driver
 dmfe.txt
 dmfe.txt
 	- info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver.
 	- info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver.
 e100.txt
 e100.txt
@@ -50,8 +48,6 @@ e1000.txt
 	- info on Intel's E1000 line of gigabit ethernet boards
 	- info on Intel's E1000 line of gigabit ethernet boards
 eql.txt
 eql.txt
 	- serial IP load balancing
 	- serial IP load balancing
-ethertap.txt
-	- the Ethertap user space packet reception and transmission driver
 ewrk3.txt
 ewrk3.txt
 	- the Digital EtherWORKS 3 DE203/4/5 Ethernet driver
 	- the Digital EtherWORKS 3 DE203/4/5 Ethernet driver
 filter.txt
 filter.txt
@@ -104,8 +100,6 @@ tuntap.txt
 	- TUN/TAP device driver, allowing user space Rx/Tx of packets.
 	- TUN/TAP device driver, allowing user space Rx/Tx of packets.
 vortex.txt
 vortex.txt
 	- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards.
 	- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards.
-wavelan.txt
-	- AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver
 x25.txt
 x25.txt
 	- general info on X.25 development.
 	- general info on X.25 development.
 x25-iface.txt
 x25-iface.txt

+ 2 - 0
Documentation/networking/Makefile

@@ -4,6 +4,8 @@ obj- := dummy.o
 # List of programs to build
 # List of programs to build
 hostprogs-y := ifenslave
 hostprogs-y := ifenslave
 
 
+HOSTCFLAGS_ifenslave.o += -I$(objtree)/usr/include
+
 # Tell kbuild to always build the programs
 # Tell kbuild to always build the programs
 always := $(hostprogs-y)
 always := $(hostprogs-y)
 
 

+ 71 - 12
Documentation/networking/bonding.txt

@@ -49,7 +49,8 @@ Table of Contents
 3.3	Configuring Bonding Manually with Ifenslave
 3.3	Configuring Bonding Manually with Ifenslave
 3.3.1		Configuring Multiple Bonds Manually
 3.3.1		Configuring Multiple Bonds Manually
 3.4	Configuring Bonding Manually via Sysfs
 3.4	Configuring Bonding Manually via Sysfs
-3.5	Overriding Configuration for Special Cases
+3.5	Configuration with Interfaces Support
+3.6	Overriding Configuration for Special Cases
 
 
 4. Querying Bonding Configuration
 4. Querying Bonding Configuration
 4.1	Bonding Configuration
 4.1	Bonding Configuration
@@ -161,8 +162,8 @@ onwards) do not have /usr/include/linux symbolically linked to the
 default kernel source include directory.
 default kernel source include directory.
 
 
 SECOND IMPORTANT NOTE:
 SECOND IMPORTANT NOTE:
-	If you plan to configure bonding using sysfs, you do not need
-to use ifenslave.
+	If you plan to configure bonding using sysfs or using the
+/etc/network/interfaces file, you do not need to use ifenslave.
 
 
 2. Bonding Driver Options
 2. Bonding Driver Options
 =========================
 =========================
@@ -779,22 +780,26 @@ resend_igmp
 
 
 	You can configure bonding using either your distro's network
 	You can configure bonding using either your distro's network
 initialization scripts, or manually using either ifenslave or the
 initialization scripts, or manually using either ifenslave or the
-sysfs interface.  Distros generally use one of two packages for the
-network initialization scripts: initscripts or sysconfig.  Recent
-versions of these packages have support for bonding, while older
+sysfs interface.  Distros generally use one of three packages for the
+network initialization scripts: initscripts, sysconfig or interfaces.
+Recent versions of these packages have support for bonding, while older
 versions do not.
 versions do not.
 
 
 	We will first describe the options for configuring bonding for
 	We will first describe the options for configuring bonding for
-distros using versions of initscripts and sysconfig with full or
-partial support for bonding, then provide information on enabling
+distros using versions of initscripts, sysconfig and interfaces with full
+or partial support for bonding, then provide information on enabling
 bonding without support from the network initialization scripts (i.e.,
 bonding without support from the network initialization scripts (i.e.,
 older versions of initscripts or sysconfig).
 older versions of initscripts or sysconfig).
 
 
-	If you're unsure whether your distro uses sysconfig or
-initscripts, or don't know if it's new enough, have no fear.
+	If you're unsure whether your distro uses sysconfig,
+initscripts or interfaces, or don't know if it's new enough, have no fear.
 Determining this is fairly straightforward.
 Determining this is fairly straightforward.
 
 
-	First, issue the command:
+	First, look for a file called interfaces in /etc/network directory.
+If this file is present in your system, then your system use interfaces. See
+Configuration with Interfaces Support.
+
+	Else, issue the command:
 
 
 $ rpm -qf /sbin/ifup
 $ rpm -qf /sbin/ifup
 
 
@@ -1327,8 +1332,62 @@ echo 2000 > /sys/class/net/bond1/bonding/arp_interval
 echo +eth2 > /sys/class/net/bond1/bonding/slaves
 echo +eth2 > /sys/class/net/bond1/bonding/slaves
 echo +eth3 > /sys/class/net/bond1/bonding/slaves
 echo +eth3 > /sys/class/net/bond1/bonding/slaves
 
 
-3.5 Overriding Configuration for Special Cases
+3.5 Configuration with Interfaces Support
+-----------------------------------------
+
+        This section applies to distros which use /etc/network/interfaces file
+to describe network interface configuration, most notably Debian and it's
+derivatives.
+
+	The ifup and ifdown commands on Debian don't support bonding out of
+the box. The ifenslave-2.6 package should be installed to provide bonding
+support.  Once installed, this package will provide bond-* options to be used
+into /etc/network/interfaces.
+
+	Note that ifenslave-2.6 package will load the bonding module and use
+the ifenslave command when appropriate.
+
+Example Configurations
+----------------------
+
+In /etc/network/interfaces, the following stanza will configure bond0, in
+active-backup mode, with eth0 and eth1 as slaves.
+
+auto bond0
+iface bond0 inet dhcp
+	bond-slaves eth0 eth1
+	bond-mode active-backup
+	bond-miimon 100
+	bond-primary eth0 eth1
+
+If the above configuration doesn't work, you might have a system using
+upstart for system startup. This is most notably true for recent
+Ubuntu versions. The following stanza in /etc/network/interfaces will
+produce the same result on those systems.
+
+auto bond0
+iface bond0 inet dhcp
+	bond-slaves none
+	bond-mode active-backup
+	bond-miimon 100
+
+auto eth0
+iface eth0 inet manual
+	bond-master bond0
+	bond-primary eth0 eth1
+
+auto eth1
+iface eth1 inet manual
+	bond-master bond0
+	bond-primary eth0 eth1
+
+For a full list of bond-* supported options in /etc/network/interfaces and some
+more advanced examples tailored to you particular distros, see the files in
+/usr/share/doc/ifenslave-2.6.
+
+3.6 Overriding Configuration for Special Cases
 ----------------------------------------------
 ----------------------------------------------
+
 When using the bonding driver, the physical port which transmits a frame is
 When using the bonding driver, the physical port which transmits a frame is
 typically selected by the bonding driver, and is not relevant to the user or
 typically selected by the bonding driver, and is not relevant to the user or
 system administrator.  The output port is simply selected using the policies of
 system administrator.  The output port is simply selected using the policies of

+ 8 - 1
Documentation/networking/dns_resolver.txt

@@ -61,7 +61,6 @@ before the more general line given above as the first match is the one taken.
 	create	dns_resolver  	foo:*	*	/usr/sbin/dns.foo %k
 	create	dns_resolver  	foo:*	*	/usr/sbin/dns.foo %k
 
 
 
 
-
 =====
 =====
 USAGE
 USAGE
 =====
 =====
@@ -104,6 +103,14 @@ implemented in the module can be called after doing:
      returned also.
      returned also.
 
 
 
 
+===============================
+READING DNS KEYS FROM USERSPACE
+===============================
+
+Keys of dns_resolver type can be read from userspace using keyctl_read() or
+"keyctl read/print/pipe".
+
+
 =========
 =========
 MECHANISM
 MECHANISM
 =========
 =========

+ 1 - 1
Documentation/networking/ip-sysctl.txt

@@ -187,7 +187,7 @@ tcp_cookie_size - INTEGER
 tcp_dsack - BOOLEAN
 tcp_dsack - BOOLEAN
 	Allows TCP to send "duplicate" SACKs.
 	Allows TCP to send "duplicate" SACKs.
 
 
-tcp_ecn - BOOLEAN
+tcp_ecn - INTEGER
 	Enable Explicit Congestion Notification (ECN) in TCP. ECN is only
 	Enable Explicit Congestion Notification (ECN) in TCP. ECN is only
 	used when both ends of the TCP flow support it. It is useful to
 	used when both ends of the TCP flow support it. It is useful to
 	avoid losses due to congestion (when the bottleneck router supports
 	avoid losses due to congestion (when the bottleneck router supports

+ 15 - 18
Documentation/scheduler/sched-stats.txt

@@ -1,3 +1,7 @@
+Version 15 of schedstats dropped counters for some sched_yield:
+yld_exp_empty, yld_act_empty and yld_both_empty. Otherwise, it is
+identical to version 14.
+
 Version 14 of schedstats includes support for sched_domains, which hit the
 Version 14 of schedstats includes support for sched_domains, which hit the
 mainline kernel in 2.6.20 although it is identical to the stats from version
 mainline kernel in 2.6.20 although it is identical to the stats from version
 12 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel
 12 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel
@@ -28,32 +32,25 @@ to write their own scripts, the fields are described here.
 
 
 CPU statistics
 CPU statistics
 --------------
 --------------
-cpu<N> 1 2 3 4 5 6 7 8 9 10 11 12
-
-NOTE: In the sched_yield() statistics, the active queue is considered empty
-    if it has only one process in it, since obviously the process calling
-    sched_yield() is that process.
+cpu<N> 1 2 3 4 5 6 7 8 9
 
 
-First four fields are sched_yield() statistics:
-     1) # of times both the active and the expired queue were empty
-     2) # of times just the active queue was empty
-     3) # of times just the expired queue was empty
-     4) # of times sched_yield() was called
+First field is a sched_yield() statistic:
+     1) # of times sched_yield() was called
 
 
 Next three are schedule() statistics:
 Next three are schedule() statistics:
-     5) # of times we switched to the expired queue and reused it
-     6) # of times schedule() was called
-     7) # of times schedule() left the processor idle
+     2) # of times we switched to the expired queue and reused it
+     3) # of times schedule() was called
+     4) # of times schedule() left the processor idle
 
 
 Next two are try_to_wake_up() statistics:
 Next two are try_to_wake_up() statistics:
-     8) # of times try_to_wake_up() was called
-     9) # of times try_to_wake_up() was called to wake up the local cpu
+     5) # of times try_to_wake_up() was called
+     6) # of times try_to_wake_up() was called to wake up the local cpu
 
 
 Next three are statistics describing scheduling latency:
 Next three are statistics describing scheduling latency:
-    10) sum of all time spent running by tasks on this processor (in jiffies)
-    11) sum of all time spent waiting to run by tasks on this processor (in
+     7) sum of all time spent running by tasks on this processor (in jiffies)
+     8) sum of all time spent waiting to run by tasks on this processor (in
         jiffies)
         jiffies)
-    12) # of timeslices run on this cpu
+     9) # of timeslices run on this cpu
 
 
 
 
 Domain statistics
 Domain statistics

+ 1 - 0
Documentation/sound/alsa/HD-Audio-Models.txt

@@ -296,6 +296,7 @@ Conexant 5066
 =============
 =============
   laptop	Basic Laptop config (default)
   laptop	Basic Laptop config (default)
   hp-laptop	HP laptops, e g G60
   hp-laptop	HP laptops, e g G60
+  asus		Asus K52JU, Lenovo G560
   dell-laptop	Dell laptops
   dell-laptop	Dell laptops
   dell-vostro	Dell Vostro
   dell-vostro	Dell Vostro
   olpc-xo-1_5	OLPC XO 1.5
   olpc-xo-1_5	OLPC XO 1.5

+ 2 - 2
Documentation/workqueue.txt

@@ -190,9 +190,9 @@ resources, scheduled and executed.
 	* Long running CPU intensive workloads which can be better
 	* Long running CPU intensive workloads which can be better
 	  managed by the system scheduler.
 	  managed by the system scheduler.
 
 
-  WQ_FREEZEABLE
+  WQ_FREEZABLE
 
 
-	A freezeable wq participates in the freeze phase of the system
+	A freezable wq participates in the freeze phase of the system
 	suspend operations.  Work items on the wq are drained and no
 	suspend operations.  Work items on the wq are drained and no
 	new work item starts execution until thawed.
 	new work item starts execution until thawed.
 
 

+ 88 - 21
MAINTAINERS

@@ -885,7 +885,7 @@ S:	Supported
 
 
 ARM/QUALCOMM MSM MACHINE SUPPORT
 ARM/QUALCOMM MSM MACHINE SUPPORT
 M:	David Brown <davidb@codeaurora.org>
 M:	David Brown <davidb@codeaurora.org>
-M:	Daniel Walker <dwalker@codeaurora.org>
+M:	Daniel Walker <dwalker@fifo99.com>
 M:	Bryan Huntsman <bryanh@codeaurora.org>
 M:	Bryan Huntsman <bryanh@codeaurora.org>
 L:	linux-arm-msm@vger.kernel.org
 L:	linux-arm-msm@vger.kernel.org
 F:	arch/arm/mach-msm/
 F:	arch/arm/mach-msm/
@@ -978,6 +978,8 @@ S:	Maintained
 F:	arch/arm/plat-samsung/
 F:	arch/arm/plat-samsung/
 F:	arch/arm/plat-s3c24xx/
 F:	arch/arm/plat-s3c24xx/
 F:	arch/arm/plat-s5p/
 F:	arch/arm/plat-s5p/
+F:	drivers/*/*s3c2410*
+F:	drivers/*/*/*s3c2410*
 
 
 ARM/S3C2410 ARM ARCHITECTURE
 ARM/S3C2410 ARM ARCHITECTURE
 M:	Ben Dooks <ben-linux@fluff.org>
 M:	Ben Dooks <ben-linux@fluff.org>
@@ -1008,6 +1010,15 @@ L:	linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
 S:	Maintained
 S:	Maintained
 F:	arch/arm/mach-s5p*/
 F:	arch/arm/mach-s5p*/
 
 
+ARM/SAMSUNG MOBILE MACHINE SUPPORT
+M:	Kyungmin Park <kyungmin.park@samsung.com>
+L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+S:	Maintained
+F:	arch/arm/mach-s5pv210/mach-aquila.c
+F:	arch/arm/mach-s5pv210/mach-goni.c
+F:	arch/arm/mach-exynos4/mach-universal_c210.c
+F:	arch/arm/mach-exynos4/mach-nuri.c
+
 ARM/SAMSUNG S5P SERIES FIMC SUPPORT
 ARM/SAMSUNG S5P SERIES FIMC SUPPORT
 M:	Kyungmin Park <kyungmin.park@samsung.com>
 M:	Kyungmin Park <kyungmin.park@samsung.com>
 M:	Sylwester Nawrocki <s.nawrocki@samsung.com>
 M:	Sylwester Nawrocki <s.nawrocki@samsung.com>
@@ -1465,6 +1476,7 @@ F:	include/net/bluetooth/
 
 
 BONDING DRIVER
 BONDING DRIVER
 M:	Jay Vosburgh <fubar@us.ibm.com>
 M:	Jay Vosburgh <fubar@us.ibm.com>
+M:	Andy Gospodarek <andy@greyhouse.net>
 L:	netdev@vger.kernel.org
 L:	netdev@vger.kernel.org
 W:	http://sourceforge.net/projects/bonding/
 W:	http://sourceforge.net/projects/bonding/
 S:	Supported
 S:	Supported
@@ -1690,6 +1702,13 @@ M:	Andy Whitcroft <apw@canonical.com>
 S:	Supported
 S:	Supported
 F:	scripts/checkpatch.pl
 F:	scripts/checkpatch.pl
 
 
+CHINESE DOCUMENTATION
+M:	Harry Wei <harryxiyou@gmail.com>
+L:	xiyoulinuxkernelgroup@googlegroups.com
+L:	linux-kernel@zh-kernel.org (moderated for non-subscribers)
+S:	Maintained
+F:	Documentation/zh_CN/
+
 CISCO VIC ETHERNET NIC DRIVER
 CISCO VIC ETHERNET NIC DRIVER
 M:	Vasanthy Kolluri <vkolluri@cisco.com>
 M:	Vasanthy Kolluri <vkolluri@cisco.com>
 M:	Roopa Prabhu <roprabhu@cisco.com>
 M:	Roopa Prabhu <roprabhu@cisco.com>
@@ -2024,7 +2043,7 @@ F:	Documentation/scsi/dc395x.txt
 F:	drivers/scsi/dc395x.*
 F:	drivers/scsi/dc395x.*
 
 
 DCCP PROTOCOL
 DCCP PROTOCOL
-M:	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
+M:	Gerrit Renker <gerrit@erg.abdn.ac.uk>
 L:	dccp@vger.kernel.org
 L:	dccp@vger.kernel.org
 W:	http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp
 W:	http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp
 S:	Maintained
 S:	Maintained
@@ -2124,6 +2143,7 @@ S:	Supported
 F:	fs/dlm/
 F:	fs/dlm/
 
 
 DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
 DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
+M:	Vinod Koul <vinod.koul@intel.com>
 M:	Dan Williams <dan.j.williams@intel.com>
 M:	Dan Williams <dan.j.williams@intel.com>
 S:	Supported
 S:	Supported
 F:	drivers/dma/
 F:	drivers/dma/
@@ -2772,6 +2792,15 @@ F:	Documentation/isdn/README.gigaset
 F:	drivers/isdn/gigaset/
 F:	drivers/isdn/gigaset/
 F:	include/linux/gigaset_dev.h
 F:	include/linux/gigaset_dev.h
 
 
+GPIO SUBSYSTEM
+M:	Grant Likely <grant.likely@secretlab.ca>
+L:	linux-kernel@vger.kernel.org
+S:	Maintained
+T:	git git://git.secretlab.ca/git/linux-2.6.git
+F:	Documentation/gpio/gpio.txt
+F:	drivers/gpio/
+F:	include/linux/gpio*
+
 GRETH 10/100/1G Ethernet MAC device driver
 GRETH 10/100/1G Ethernet MAC device driver
 M:	Kristoffer Glembo <kristoffer@gaisler.com>
 M:	Kristoffer Glembo <kristoffer@gaisler.com>
 L:	netdev@vger.kernel.org
 L:	netdev@vger.kernel.org
@@ -2861,7 +2890,6 @@ M:	Guenter Roeck <guenter.roeck@ericsson.com>
 L:	lm-sensors@lm-sensors.org
 L:	lm-sensors@lm-sensors.org
 W:	http://www.lm-sensors.org/
 W:	http://www.lm-sensors.org/
 T:	quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-hwmon/
 T:	quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-hwmon/
-T:	quilt kernel.org/pub/linux/kernel/people/groeck/linux-staging/
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
 S:	Maintained
 S:	Maintained
 F:	Documentation/hwmon/
 F:	Documentation/hwmon/
@@ -3139,6 +3167,12 @@ S:	Maintained
 F:	net/ieee802154/
 F:	net/ieee802154/
 F:	drivers/ieee802154/
 F:	drivers/ieee802154/
 
 
+IKANOS/ADI EAGLE ADSL USB DRIVER
+M:	Matthieu Castet <castet.matthieu@free.fr>
+M:	Stanislaw Gruszka <stf_xl@wp.pl>
+S:	Maintained
+F:	drivers/usb/atm/ueagle-atm.c
+
 INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
 INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
 M:	Mimi Zohar <zohar@us.ibm.com>
 M:	Mimi Zohar <zohar@us.ibm.com>
 S:	Supported
 S:	Supported
@@ -3327,7 +3361,6 @@ F:	drivers/net/wimax/i2400m/
 F:	include/linux/wimax/i2400m.h
 F:	include/linux/wimax/i2400m.h
 
 
 INTEL WIRELESS WIFI LINK (iwlwifi)
 INTEL WIRELESS WIFI LINK (iwlwifi)
-M:	Reinette Chatre <reinette.chatre@intel.com>
 M:	Wey-Yi Guy <wey-yi.w.guy@intel.com>
 M:	Wey-Yi Guy <wey-yi.w.guy@intel.com>
 M:	Intel Linux Wireless <ilw@linux.intel.com>
 M:	Intel Linux Wireless <ilw@linux.intel.com>
 L:	linux-wireless@vger.kernel.org
 L:	linux-wireless@vger.kernel.org
@@ -3496,7 +3529,7 @@ F:	drivers/hwmon/jc42.c
 F:	Documentation/hwmon/jc42
 F:	Documentation/hwmon/jc42
 
 
 JFS FILESYSTEM
 JFS FILESYSTEM
-M:	Dave Kleikamp <shaggy@linux.vnet.ibm.com>
+M:	Dave Kleikamp <shaggy@kernel.org>
 L:	jfs-discussion@lists.sourceforge.net
 L:	jfs-discussion@lists.sourceforge.net
 W:	http://jfs.sourceforge.net/
 W:	http://jfs.sourceforge.net/
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6.git
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6.git
@@ -3674,6 +3707,28 @@ F:	include/linux/key-type.h
 F:	include/keys/
 F:	include/keys/
 F:	security/keys/
 F:	security/keys/
 
 
+KEYS-TRUSTED
+M:	David Safford <safford@watson.ibm.com>
+M:	Mimi Zohar <zohar@us.ibm.com>
+L:	linux-security-module@vger.kernel.org
+L:	keyrings@linux-nfs.org
+S:	Supported
+F:	Documentation/keys-trusted-encrypted.txt
+F:	include/keys/trusted-type.h
+F:	security/keys/trusted.c
+F:	security/keys/trusted.h
+
+KEYS-ENCRYPTED
+M:	Mimi Zohar <zohar@us.ibm.com>
+M:	David Safford <safford@watson.ibm.com>
+L:	linux-security-module@vger.kernel.org
+L:	keyrings@linux-nfs.org
+S:	Supported
+F:	Documentation/keys-trusted-encrypted.txt
+F:	include/keys/encrypted-type.h
+F:	security/keys/encrypted.c
+F:	security/keys/encrypted.h
+
 KGDB / KDB /debug_core
 KGDB / KDB /debug_core
 M:	Jason Wessel <jason.wessel@windriver.com>
 M:	Jason Wessel <jason.wessel@windriver.com>
 W:	http://kgdb.wiki.kernel.org/
 W:	http://kgdb.wiki.kernel.org/
@@ -4562,7 +4617,7 @@ F:	drivers/i2c/busses/i2c-ocores.c
 
 
 OPEN FIRMWARE AND FLATTENED DEVICE TREE
 OPEN FIRMWARE AND FLATTENED DEVICE TREE
 M:	Grant Likely <grant.likely@secretlab.ca>
 M:	Grant Likely <grant.likely@secretlab.ca>
-L:	devicetree-discuss@lists.ozlabs.org
+L:	devicetree-discuss@lists.ozlabs.org (moderated for non-subscribers)
 W:	http://fdt.secretlab.ca
 W:	http://fdt.secretlab.ca
 T:	git git://git.secretlab.ca/git/linux-2.6.git
 T:	git git://git.secretlab.ca/git/linux-2.6.git
 S:	Maintained
 S:	Maintained
@@ -5126,6 +5181,7 @@ F:	drivers/char/random.c
 
 
 RAPIDIO SUBSYSTEM
 RAPIDIO SUBSYSTEM
 M:	Matt Porter <mporter@kernel.crashing.org>
 M:	Matt Porter <mporter@kernel.crashing.org>
+M:	Alexandre Bounine <alexandre.bounine@idt.com>
 S:	Maintained
 S:	Maintained
 F:	drivers/rapidio/
 F:	drivers/rapidio/
 
 
@@ -5228,7 +5284,7 @@ S:	Maintained
 F:	drivers/net/wireless/rtl818x/rtl8180/
 F:	drivers/net/wireless/rtl818x/rtl8180/
 
 
 RTL8187 WIRELESS DRIVER
 RTL8187 WIRELESS DRIVER
-M:	Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+M:	Herton Ronaldo Krzesinski <herton@canonical.com>
 M:	Hin-Tak Leung <htl10@users.sourceforge.net>
 M:	Hin-Tak Leung <htl10@users.sourceforge.net>
 M:	Larry Finger <Larry.Finger@lwfinger.net>
 M:	Larry Finger <Larry.Finger@lwfinger.net>
 L:	linux-wireless@vger.kernel.org
 L:	linux-wireless@vger.kernel.org
@@ -5522,12 +5578,11 @@ S:	Supported
 F:	drivers/scsi/be2iscsi/
 F:	drivers/scsi/be2iscsi/
 
 
 SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
 SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
-M:	Sathya Perla <sathyap@serverengines.com>
-M:	Subbu Seetharaman <subbus@serverengines.com>
-M:	Sarveshwar Bandi <sarveshwarb@serverengines.com>
-M:	Ajit Khaparde <ajitk@serverengines.com>
+M:	Sathya Perla <sathya.perla@emulex.com>
+M:	Subbu Seetharaman <subbu.seetharaman@emulex.com>
+M:	Ajit Khaparde <ajit.khaparde@emulex.com>
 L:	netdev@vger.kernel.org
 L:	netdev@vger.kernel.org
-W:	http://www.serverengines.com
+W:	http://www.emulex.com
 S:	Supported
 S:	Supported
 F:	drivers/net/benet/
 F:	drivers/net/benet/
 
 
@@ -5587,18 +5642,20 @@ F:	include/linux/sfi*.h
 
 
 SIMTEC EB110ATX (Chalice CATS)
 SIMTEC EB110ATX (Chalice CATS)
 P:	Ben Dooks
 P:	Ben Dooks
-M:	Vincent Sanders <support@simtec.co.uk>
+P:	Vincent Sanders <vince@simtec.co.uk>
+M:	Simtec Linux Team <linux@simtec.co.uk>
 W:	http://www.simtec.co.uk/products/EB110ATX/
 W:	http://www.simtec.co.uk/products/EB110ATX/
 S:	Supported
 S:	Supported
 
 
 SIMTEC EB2410ITX (BAST)
 SIMTEC EB2410ITX (BAST)
 P:	Ben Dooks
 P:	Ben Dooks
-M:	Vincent Sanders <support@simtec.co.uk>
+P:	Vincent Sanders <vince@simtec.co.uk>
+M:	Simtec Linux Team <linux@simtec.co.uk>
 W:	http://www.simtec.co.uk/products/EB2410ITX/
 W:	http://www.simtec.co.uk/products/EB2410ITX/
 S:	Supported
 S:	Supported
-F:	arch/arm/mach-s3c2410/
-F:	drivers/*/*s3c2410*
-F:	drivers/*/*/*s3c2410*
+F:	arch/arm/mach-s3c2410/mach-bast.c
+F:	arch/arm/mach-s3c2410/bast-ide.c
+F:	arch/arm/mach-s3c2410/bast-irq.c
 
 
 TI DAVINCI MACHINE SUPPORT
 TI DAVINCI MACHINE SUPPORT
 M:	Kevin Hilman <khilman@deeprootsystems.com>
 M:	Kevin Hilman <khilman@deeprootsystems.com>
@@ -6065,7 +6122,7 @@ S:	Maintained
 F:	security/tomoyo/
 F:	security/tomoyo/
 
 
 TOPSTAR LAPTOP EXTRAS DRIVER
 TOPSTAR LAPTOP EXTRAS DRIVER
-M:	Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+M:	Herton Ronaldo Krzesinski <herton@canonical.com>
 L:	platform-driver-x86@vger.kernel.org
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
 S:	Maintained
 F:	drivers/platform/x86/topstar-laptop.c
 F:	drivers/platform/x86/topstar-laptop.c
@@ -6573,6 +6630,16 @@ S:	Maintained
 F:	drivers/char/virtio_console.c
 F:	drivers/char/virtio_console.c
 F:	include/linux/virtio_console.h
 F:	include/linux/virtio_console.h
 
 
+VIRTIO CORE, NET AND BLOCK DRIVERS
+M:	Rusty Russell <rusty@rustcorp.com.au>
+M:	"Michael S. Tsirkin" <mst@redhat.com>
+L:	virtualization@lists.linux-foundation.org
+S:	Maintained
+F:	drivers/virtio/
+F:	drivers/net/virtio_net.c
+F:	drivers/block/virtio_blk.c
+F:	include/linux/virtio_*.h
+
 VIRTIO HOST (VHOST)
 VIRTIO HOST (VHOST)
 M:	"Michael S. Tsirkin" <mst@redhat.com>
 M:	"Michael S. Tsirkin" <mst@redhat.com>
 L:	kvm@vger.kernel.org
 L:	kvm@vger.kernel.org
@@ -6746,12 +6813,12 @@ S:	Maintained
 F:	drivers/net/wireless/wl1251/*
 F:	drivers/net/wireless/wl1251/*
 
 
 WL1271 WIRELESS DRIVER
 WL1271 WIRELESS DRIVER
-M:	Luciano Coelho <luciano.coelho@nokia.com>
+M:	Luciano Coelho <coelho@ti.com>
 L:	linux-wireless@vger.kernel.org
 L:	linux-wireless@vger.kernel.org
-W:	http://wireless.kernel.org
+W:	http://wireless.kernel.org/en/users/Drivers/wl12xx
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
 S:	Maintained
 S:	Maintained
-F:	drivers/net/wireless/wl12xx/wl1271*
+F:	drivers/net/wireless/wl12xx/
 F:	include/linux/wl12xx.h
 F:	include/linux/wl12xx.h
 
 
 WL3501 WIRELESS PCMCIA CARD DRIVER
 WL3501 WIRELESS PCMCIA CARD DRIVER

+ 1 - 1
Makefile

@@ -1,7 +1,7 @@
 VERSION = 2
 VERSION = 2
 PATCHLEVEL = 6
 PATCHLEVEL = 6
 SUBLEVEL = 38
 SUBLEVEL = 38
-EXTRAVERSION = -rc2
+EXTRAVERSION = -rc8
 NAME = Flesh-Eating Bats with Fangs
 NAME = Flesh-Eating Bats with Fangs
 
 
 # *DOCUMENTATION*
 # *DOCUMENTATION*

+ 1 - 0
arch/alpha/Kconfig

@@ -11,6 +11,7 @@ config ALPHA
 	select HAVE_GENERIC_HARDIRQS
 	select HAVE_GENERIC_HARDIRQS
 	select GENERIC_IRQ_PROBE
 	select GENERIC_IRQ_PROBE
 	select AUTO_IRQ_AFFINITY if SMP
 	select AUTO_IRQ_AFFINITY if SMP
+	select GENERIC_HARDIRQS_NO_DEPRECATED
 	help
 	help
 	  The Alpha is a 64-bit general-purpose processor designed and
 	  The Alpha is a 64-bit general-purpose processor designed and
 	  marketed by the Digital Equipment Corporation of blessed memory,
 	  marketed by the Digital Equipment Corporation of blessed memory,

+ 9 - 4
arch/alpha/kernel/irq.c

@@ -44,11 +44,16 @@ static char irq_user_affinity[NR_IRQS];
 
 
 int irq_select_affinity(unsigned int irq)
 int irq_select_affinity(unsigned int irq)
 {
 {
-	struct irq_desc *desc = irq_to_desc[irq];
+	struct irq_data *data = irq_get_irq_data(irq);
+	struct irq_chip *chip;
 	static int last_cpu;
 	static int last_cpu;
 	int cpu = last_cpu + 1;
 	int cpu = last_cpu + 1;
 
 
-	if (!desc || !get_irq_desc_chip(desc)->set_affinity || irq_user_affinity[irq])
+	if (!data)
+		return 1;
+	chip = irq_data_get_irq_chip(data);
+
+	if (!chip->irq_set_affinity || irq_user_affinity[irq])
 		return 1;
 		return 1;
 
 
 	while (!cpu_possible(cpu) ||
 	while (!cpu_possible(cpu) ||
@@ -56,8 +61,8 @@ int irq_select_affinity(unsigned int irq)
 		cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
 		cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
 	last_cpu = cpu;
 	last_cpu = cpu;
 
 
-	cpumask_copy(desc->affinity, cpumask_of(cpu));
-	get_irq_desc_chip(desc)->set_affinity(irq, cpumask_of(cpu));
+	cpumask_copy(data->affinity, cpumask_of(cpu));
+	chip->irq_set_affinity(data, cpumask_of(cpu), false);
 	return 0;
 	return 0;
 }
 }
 #endif /* CONFIG_SMP */
 #endif /* CONFIG_SMP */

+ 3 - 8
arch/alpha/kernel/irq_alpha.c

@@ -228,14 +228,9 @@ struct irqaction timer_irqaction = {
 void __init
 void __init
 init_rtc_irq(void)
 init_rtc_irq(void)
 {
 {
-	struct irq_desc *desc = irq_to_desc(RTC_IRQ);
-
-	if (desc) {
-		desc->status |= IRQ_DISABLED;
-		set_irq_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
-			handle_simple_irq, "RTC");
-		setup_irq(RTC_IRQ, &timer_irqaction);
-	}
+	set_irq_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
+				      handle_simple_irq, "RTC");
+	setup_irq(RTC_IRQ, &timer_irqaction);
 }
 }
 
 
 /* Dummy irqactions.  */
 /* Dummy irqactions.  */

+ 10 - 8
arch/alpha/kernel/irq_i8259.c

@@ -33,10 +33,10 @@ i8259_update_irq_hw(unsigned int irq, unsigned long mask)
 }
 }
 
 
 inline void
 inline void
-i8259a_enable_irq(unsigned int irq)
+i8259a_enable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&i8259_irq_lock);
 	spin_lock(&i8259_irq_lock);
-	i8259_update_irq_hw(irq, cached_irq_mask &= ~(1 << irq));
+	i8259_update_irq_hw(d->irq, cached_irq_mask &= ~(1 << d->irq));
 	spin_unlock(&i8259_irq_lock);
 	spin_unlock(&i8259_irq_lock);
 }
 }
 
 
@@ -47,16 +47,18 @@ __i8259a_disable_irq(unsigned int irq)
 }
 }
 
 
 void
 void
-i8259a_disable_irq(unsigned int irq)
+i8259a_disable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&i8259_irq_lock);
 	spin_lock(&i8259_irq_lock);
-	__i8259a_disable_irq(irq);
+	__i8259a_disable_irq(d->irq);
 	spin_unlock(&i8259_irq_lock);
 	spin_unlock(&i8259_irq_lock);
 }
 }
 
 
 void
 void
-i8259a_mask_and_ack_irq(unsigned int irq)
+i8259a_mask_and_ack_irq(struct irq_data *d)
 {
 {
+	unsigned int irq = d->irq;
+
 	spin_lock(&i8259_irq_lock);
 	spin_lock(&i8259_irq_lock);
 	__i8259a_disable_irq(irq);
 	__i8259a_disable_irq(irq);
 
 
@@ -71,9 +73,9 @@ i8259a_mask_and_ack_irq(unsigned int irq)
 
 
 struct irq_chip i8259a_irq_type = {
 struct irq_chip i8259a_irq_type = {
 	.name		= "XT-PIC",
 	.name		= "XT-PIC",
-	.unmask		= i8259a_enable_irq,
-	.mask		= i8259a_disable_irq,
-	.mask_ack	= i8259a_mask_and_ack_irq,
+	.irq_unmask	= i8259a_enable_irq,
+	.irq_mask	= i8259a_disable_irq,
+	.irq_mask_ack	= i8259a_mask_and_ack_irq,
 };
 };
 
 
 void __init
 void __init

+ 3 - 5
arch/alpha/kernel/irq_impl.h

@@ -31,11 +31,9 @@ extern void init_rtc_irq(void);
 
 
 extern void common_init_isa_dma(void);
 extern void common_init_isa_dma(void);
 
 
-extern void i8259a_enable_irq(unsigned int);
-extern void i8259a_disable_irq(unsigned int);
-extern void i8259a_mask_and_ack_irq(unsigned int);
-extern unsigned int i8259a_startup_irq(unsigned int);
-extern void i8259a_end_irq(unsigned int);
+extern void i8259a_enable_irq(struct irq_data *d);
+extern void i8259a_disable_irq(struct irq_data *d);
+extern void i8259a_mask_and_ack_irq(struct irq_data *d);
 extern struct irq_chip i8259a_irq_type;
 extern struct irq_chip i8259a_irq_type;
 extern void init_i8259a_irqs(void);
 extern void init_i8259a_irqs(void);
 
 

+ 10 - 10
arch/alpha/kernel/irq_pyxis.c

@@ -29,21 +29,21 @@ pyxis_update_irq_hw(unsigned long mask)
 }
 }
 
 
 static inline void
 static inline void
-pyxis_enable_irq(unsigned int irq)
+pyxis_enable_irq(struct irq_data *d)
 {
 {
-	pyxis_update_irq_hw(cached_irq_mask |= 1UL << (irq - 16));
+	pyxis_update_irq_hw(cached_irq_mask |= 1UL << (d->irq - 16));
 }
 }
 
 
 static void
 static void
-pyxis_disable_irq(unsigned int irq)
+pyxis_disable_irq(struct irq_data *d)
 {
 {
-	pyxis_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
+	pyxis_update_irq_hw(cached_irq_mask &= ~(1UL << (d->irq - 16)));
 }
 }
 
 
 static void
 static void
-pyxis_mask_and_ack_irq(unsigned int irq)
+pyxis_mask_and_ack_irq(struct irq_data *d)
 {
 {
-	unsigned long bit = 1UL << (irq - 16);
+	unsigned long bit = 1UL << (d->irq - 16);
 	unsigned long mask = cached_irq_mask &= ~bit;
 	unsigned long mask = cached_irq_mask &= ~bit;
 
 
 	/* Disable the interrupt.  */
 	/* Disable the interrupt.  */
@@ -58,9 +58,9 @@ pyxis_mask_and_ack_irq(unsigned int irq)
 
 
 static struct irq_chip pyxis_irq_type = {
 static struct irq_chip pyxis_irq_type = {
 	.name		= "PYXIS",
 	.name		= "PYXIS",
-	.mask_ack	= pyxis_mask_and_ack_irq,
-	.mask		= pyxis_disable_irq,
-	.unmask		= pyxis_enable_irq,
+	.irq_mask_ack	= pyxis_mask_and_ack_irq,
+	.irq_mask	= pyxis_disable_irq,
+	.irq_unmask	= pyxis_enable_irq,
 };
 };
 
 
 void 
 void 
@@ -103,7 +103,7 @@ init_pyxis_irqs(unsigned long ignore_mask)
 		if ((ignore_mask >> i) & 1)
 		if ((ignore_mask >> i) & 1)
 			continue;
 			continue;
 		set_irq_chip_and_handler(i, &pyxis_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &pyxis_irq_type, handle_level_irq);
-		irq_to_desc(i)->status |= IRQ_LEVEL;
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	setup_irq(16+7, &isa_cascade_irqaction);
 	setup_irq(16+7, &isa_cascade_irqaction);

+ 8 - 8
arch/alpha/kernel/irq_srm.c

@@ -18,27 +18,27 @@
 DEFINE_SPINLOCK(srm_irq_lock);
 DEFINE_SPINLOCK(srm_irq_lock);
 
 
 static inline void
 static inline void
-srm_enable_irq(unsigned int irq)
+srm_enable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&srm_irq_lock);
 	spin_lock(&srm_irq_lock);
-	cserve_ena(irq - 16);
+	cserve_ena(d->irq - 16);
 	spin_unlock(&srm_irq_lock);
 	spin_unlock(&srm_irq_lock);
 }
 }
 
 
 static void
 static void
-srm_disable_irq(unsigned int irq)
+srm_disable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&srm_irq_lock);
 	spin_lock(&srm_irq_lock);
-	cserve_dis(irq - 16);
+	cserve_dis(d->irq - 16);
 	spin_unlock(&srm_irq_lock);
 	spin_unlock(&srm_irq_lock);
 }
 }
 
 
 /* Handle interrupts from the SRM, assuming no additional weirdness.  */
 /* Handle interrupts from the SRM, assuming no additional weirdness.  */
 static struct irq_chip srm_irq_type = {
 static struct irq_chip srm_irq_type = {
 	.name		= "SRM",
 	.name		= "SRM",
-	.unmask		= srm_enable_irq,
-	.mask		= srm_disable_irq,
-	.mask_ack	= srm_disable_irq,
+	.irq_unmask	= srm_enable_irq,
+	.irq_mask	= srm_disable_irq,
+	.irq_mask_ack	= srm_disable_irq,
 };
 };
 
 
 void __init
 void __init
@@ -52,7 +52,7 @@ init_srm_irqs(long max, unsigned long ignore_mask)
 		if (i < 64 && ((ignore_mask >> i) & 1))
 		if (i < 64 && ((ignore_mask >> i) & 1))
 			continue;
 			continue;
 		set_irq_chip_and_handler(i, &srm_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &srm_irq_type, handle_level_irq);
-		irq_to_desc(i)->status |= IRQ_LEVEL;
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 }
 }
 
 

+ 14 - 14
arch/alpha/kernel/sys_alcor.c

@@ -44,31 +44,31 @@ alcor_update_irq_hw(unsigned long mask)
 }
 }
 
 
 static inline void
 static inline void
-alcor_enable_irq(unsigned int irq)
+alcor_enable_irq(struct irq_data *d)
 {
 {
-	alcor_update_irq_hw(cached_irq_mask |= 1UL << (irq - 16));
+	alcor_update_irq_hw(cached_irq_mask |= 1UL << (d->irq - 16));
 }
 }
 
 
 static void
 static void
-alcor_disable_irq(unsigned int irq)
+alcor_disable_irq(struct irq_data *d)
 {
 {
-	alcor_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
+	alcor_update_irq_hw(cached_irq_mask &= ~(1UL << (d->irq - 16)));
 }
 }
 
 
 static void
 static void
-alcor_mask_and_ack_irq(unsigned int irq)
+alcor_mask_and_ack_irq(struct irq_data *d)
 {
 {
-	alcor_disable_irq(irq);
+	alcor_disable_irq(d);
 
 
 	/* On ALCOR/XLT, need to dismiss interrupt via GRU. */
 	/* On ALCOR/XLT, need to dismiss interrupt via GRU. */
-	*(vuip)GRU_INT_CLEAR = 1 << (irq - 16); mb();
+	*(vuip)GRU_INT_CLEAR = 1 << (d->irq - 16); mb();
 	*(vuip)GRU_INT_CLEAR = 0; mb();
 	*(vuip)GRU_INT_CLEAR = 0; mb();
 }
 }
 
 
 static void
 static void
-alcor_isa_mask_and_ack_irq(unsigned int irq)
+alcor_isa_mask_and_ack_irq(struct irq_data *d)
 {
 {
-	i8259a_mask_and_ack_irq(irq);
+	i8259a_mask_and_ack_irq(d);
 
 
 	/* On ALCOR/XLT, need to dismiss interrupt via GRU. */
 	/* On ALCOR/XLT, need to dismiss interrupt via GRU. */
 	*(vuip)GRU_INT_CLEAR = 0x80000000; mb();
 	*(vuip)GRU_INT_CLEAR = 0x80000000; mb();
@@ -77,9 +77,9 @@ alcor_isa_mask_and_ack_irq(unsigned int irq)
 
 
 static struct irq_chip alcor_irq_type = {
 static struct irq_chip alcor_irq_type = {
 	.name		= "ALCOR",
 	.name		= "ALCOR",
-	.unmask		= alcor_enable_irq,
-	.mask		= alcor_disable_irq,
-	.mask_ack	= alcor_mask_and_ack_irq,
+	.irq_unmask	= alcor_enable_irq,
+	.irq_mask	= alcor_disable_irq,
+	.irq_mask_ack	= alcor_mask_and_ack_irq,
 };
 };
 
 
 static void
 static void
@@ -126,9 +126,9 @@ alcor_init_irq(void)
 		if (i >= 16+20 && i <= 16+30)
 		if (i >= 16+20 && i <= 16+30)
 			continue;
 			continue;
 		set_irq_chip_and_handler(i, &alcor_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &alcor_irq_type, handle_level_irq);
-		irq_to_desc(i)->status |= IRQ_LEVEL;
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
-	i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq;
+	i8259a_irq_type.irq_ack = alcor_isa_mask_and_ack_irq;
 
 
 	init_i8259a_irqs();
 	init_i8259a_irqs();
 	common_init_isa_dma();
 	common_init_isa_dma();

+ 8 - 8
arch/alpha/kernel/sys_cabriolet.c

@@ -46,22 +46,22 @@ cabriolet_update_irq_hw(unsigned int irq, unsigned long mask)
 }
 }
 
 
 static inline void
 static inline void
-cabriolet_enable_irq(unsigned int irq)
+cabriolet_enable_irq(struct irq_data *d)
 {
 {
-	cabriolet_update_irq_hw(irq, cached_irq_mask &= ~(1UL << irq));
+	cabriolet_update_irq_hw(d->irq, cached_irq_mask &= ~(1UL << d->irq));
 }
 }
 
 
 static void
 static void
-cabriolet_disable_irq(unsigned int irq)
+cabriolet_disable_irq(struct irq_data *d)
 {
 {
-	cabriolet_update_irq_hw(irq, cached_irq_mask |= 1UL << irq);
+	cabriolet_update_irq_hw(d->irq, cached_irq_mask |= 1UL << d->irq);
 }
 }
 
 
 static struct irq_chip cabriolet_irq_type = {
 static struct irq_chip cabriolet_irq_type = {
 	.name		= "CABRIOLET",
 	.name		= "CABRIOLET",
-	.unmask		= cabriolet_enable_irq,
-	.mask		= cabriolet_disable_irq,
-	.mask_ack	= cabriolet_disable_irq,
+	.irq_unmask	= cabriolet_enable_irq,
+	.irq_mask	= cabriolet_disable_irq,
+	.irq_mask_ack	= cabriolet_disable_irq,
 };
 };
 
 
 static void 
 static void 
@@ -107,7 +107,7 @@ common_init_irq(void (*srm_dev_int)(unsigned long v))
 		for (i = 16; i < 35; ++i) {
 		for (i = 16; i < 35; ++i) {
 			set_irq_chip_and_handler(i, &cabriolet_irq_type,
 			set_irq_chip_and_handler(i, &cabriolet_irq_type,
 				handle_level_irq);
 				handle_level_irq);
-			irq_to_desc(i)->status |= IRQ_LEVEL;
+			irq_set_status_flags(i, IRQ_LEVEL);
 		}
 		}
 	}
 	}
 
 

+ 27 - 25
arch/alpha/kernel/sys_dp264.c

@@ -98,37 +98,37 @@ tsunami_update_irq_hw(unsigned long mask)
 }
 }
 
 
 static void
 static void
-dp264_enable_irq(unsigned int irq)
+dp264_enable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&dp264_irq_lock);
 	spin_lock(&dp264_irq_lock);
-	cached_irq_mask |= 1UL << irq;
+	cached_irq_mask |= 1UL << d->irq;
 	tsunami_update_irq_hw(cached_irq_mask);
 	tsunami_update_irq_hw(cached_irq_mask);
 	spin_unlock(&dp264_irq_lock);
 	spin_unlock(&dp264_irq_lock);
 }
 }
 
 
 static void
 static void
-dp264_disable_irq(unsigned int irq)
+dp264_disable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&dp264_irq_lock);
 	spin_lock(&dp264_irq_lock);
-	cached_irq_mask &= ~(1UL << irq);
+	cached_irq_mask &= ~(1UL << d->irq);
 	tsunami_update_irq_hw(cached_irq_mask);
 	tsunami_update_irq_hw(cached_irq_mask);
 	spin_unlock(&dp264_irq_lock);
 	spin_unlock(&dp264_irq_lock);
 }
 }
 
 
 static void
 static void
-clipper_enable_irq(unsigned int irq)
+clipper_enable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&dp264_irq_lock);
 	spin_lock(&dp264_irq_lock);
-	cached_irq_mask |= 1UL << (irq - 16);
+	cached_irq_mask |= 1UL << (d->irq - 16);
 	tsunami_update_irq_hw(cached_irq_mask);
 	tsunami_update_irq_hw(cached_irq_mask);
 	spin_unlock(&dp264_irq_lock);
 	spin_unlock(&dp264_irq_lock);
 }
 }
 
 
 static void
 static void
-clipper_disable_irq(unsigned int irq)
+clipper_disable_irq(struct irq_data *d)
 {
 {
 	spin_lock(&dp264_irq_lock);
 	spin_lock(&dp264_irq_lock);
-	cached_irq_mask &= ~(1UL << (irq - 16));
+	cached_irq_mask &= ~(1UL << (d->irq - 16));
 	tsunami_update_irq_hw(cached_irq_mask);
 	tsunami_update_irq_hw(cached_irq_mask);
 	spin_unlock(&dp264_irq_lock);
 	spin_unlock(&dp264_irq_lock);
 }
 }
@@ -149,10 +149,11 @@ cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity)
 }
 }
 
 
 static int
 static int
-dp264_set_affinity(unsigned int irq, const struct cpumask *affinity)
-{ 
+dp264_set_affinity(struct irq_data *d, const struct cpumask *affinity,
+		   bool force)
+{
 	spin_lock(&dp264_irq_lock);
 	spin_lock(&dp264_irq_lock);
-	cpu_set_irq_affinity(irq, *affinity);
+	cpu_set_irq_affinity(d->irq, *affinity);
 	tsunami_update_irq_hw(cached_irq_mask);
 	tsunami_update_irq_hw(cached_irq_mask);
 	spin_unlock(&dp264_irq_lock);
 	spin_unlock(&dp264_irq_lock);
 
 
@@ -160,10 +161,11 @@ dp264_set_affinity(unsigned int irq, const struct cpumask *affinity)
 }
 }
 
 
 static int
 static int
-clipper_set_affinity(unsigned int irq, const struct cpumask *affinity)
-{ 
+clipper_set_affinity(struct irq_data *d, const struct cpumask *affinity,
+		     bool force)
+{
 	spin_lock(&dp264_irq_lock);
 	spin_lock(&dp264_irq_lock);
-	cpu_set_irq_affinity(irq - 16, *affinity);
+	cpu_set_irq_affinity(d->irq - 16, *affinity);
 	tsunami_update_irq_hw(cached_irq_mask);
 	tsunami_update_irq_hw(cached_irq_mask);
 	spin_unlock(&dp264_irq_lock);
 	spin_unlock(&dp264_irq_lock);
 
 
@@ -171,19 +173,19 @@ clipper_set_affinity(unsigned int irq, const struct cpumask *affinity)
 }
 }
 
 
 static struct irq_chip dp264_irq_type = {
 static struct irq_chip dp264_irq_type = {
-	.name		= "DP264",
-	.unmask		= dp264_enable_irq,
-	.mask		= dp264_disable_irq,
-	.mask_ack	= dp264_disable_irq,
-	.set_affinity	= dp264_set_affinity,
+	.name			= "DP264",
+	.irq_unmask		= dp264_enable_irq,
+	.irq_mask		= dp264_disable_irq,
+	.irq_mask_ack		= dp264_disable_irq,
+	.irq_set_affinity	= dp264_set_affinity,
 };
 };
 
 
 static struct irq_chip clipper_irq_type = {
 static struct irq_chip clipper_irq_type = {
-	.name		= "CLIPPER",
-	.unmask		= clipper_enable_irq,
-	.mask		= clipper_disable_irq,
-	.mask_ack	= clipper_disable_irq,
-	.set_affinity	= clipper_set_affinity,
+	.name			= "CLIPPER",
+	.irq_unmask		= clipper_enable_irq,
+	.irq_mask		= clipper_disable_irq,
+	.irq_mask_ack		= clipper_disable_irq,
+	.irq_set_affinity	= clipper_set_affinity,
 };
 };
 
 
 static void
 static void
@@ -268,8 +270,8 @@ init_tsunami_irqs(struct irq_chip * ops, int imin, int imax)
 {
 {
 	long i;
 	long i;
 	for (i = imin; i <= imax; ++i) {
 	for (i = imin; i <= imax; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, ops, handle_level_irq);
 		set_irq_chip_and_handler(i, ops, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 }
 }
 
 

+ 9 - 9
arch/alpha/kernel/sys_eb64p.c

@@ -44,22 +44,22 @@ eb64p_update_irq_hw(unsigned int irq, unsigned long mask)
 }
 }
 
 
 static inline void
 static inline void
-eb64p_enable_irq(unsigned int irq)
+eb64p_enable_irq(struct irq_data *d)
 {
 {
-	eb64p_update_irq_hw(irq, cached_irq_mask &= ~(1 << irq));
+	eb64p_update_irq_hw(d->irq, cached_irq_mask &= ~(1 << d->irq));
 }
 }
 
 
 static void
 static void
-eb64p_disable_irq(unsigned int irq)
+eb64p_disable_irq(struct irq_data *d)
 {
 {
-	eb64p_update_irq_hw(irq, cached_irq_mask |= 1 << irq);
+	eb64p_update_irq_hw(d->irq, cached_irq_mask |= 1 << d->irq);
 }
 }
 
 
 static struct irq_chip eb64p_irq_type = {
 static struct irq_chip eb64p_irq_type = {
 	.name		= "EB64P",
 	.name		= "EB64P",
-	.unmask		= eb64p_enable_irq,
-	.mask		= eb64p_disable_irq,
-	.mask_ack	= eb64p_disable_irq,
+	.irq_unmask	= eb64p_enable_irq,
+	.irq_mask	= eb64p_disable_irq,
+	.irq_mask_ack	= eb64p_disable_irq,
 };
 };
 
 
 static void 
 static void 
@@ -118,9 +118,9 @@ eb64p_init_irq(void)
 	init_i8259a_irqs();
 	init_i8259a_irqs();
 
 
 	for (i = 16; i < 32; ++i) {
 	for (i = 16; i < 32; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, &eb64p_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &eb64p_irq_type, handle_level_irq);
-	}		
+		irq_set_status_flags(i, IRQ_LEVEL);
+	}
 
 
 	common_init_isa_dma();
 	common_init_isa_dma();
 	setup_irq(16+5, &isa_cascade_irqaction);
 	setup_irq(16+5, &isa_cascade_irqaction);

+ 8 - 6
arch/alpha/kernel/sys_eiger.c

@@ -51,16 +51,18 @@ eiger_update_irq_hw(unsigned long irq, unsigned long mask)
 }
 }
 
 
 static inline void
 static inline void
-eiger_enable_irq(unsigned int irq)
+eiger_enable_irq(struct irq_data *d)
 {
 {
+	unsigned int irq = d->irq;
 	unsigned long mask;
 	unsigned long mask;
 	mask = (cached_irq_mask[irq >= 64] &= ~(1UL << (irq & 63)));
 	mask = (cached_irq_mask[irq >= 64] &= ~(1UL << (irq & 63)));
 	eiger_update_irq_hw(irq, mask);
 	eiger_update_irq_hw(irq, mask);
 }
 }
 
 
 static void
 static void
-eiger_disable_irq(unsigned int irq)
+eiger_disable_irq(struct irq_data *d)
 {
 {
+	unsigned int irq = d->irq;
 	unsigned long mask;
 	unsigned long mask;
 	mask = (cached_irq_mask[irq >= 64] |= 1UL << (irq & 63));
 	mask = (cached_irq_mask[irq >= 64] |= 1UL << (irq & 63));
 	eiger_update_irq_hw(irq, mask);
 	eiger_update_irq_hw(irq, mask);
@@ -68,9 +70,9 @@ eiger_disable_irq(unsigned int irq)
 
 
 static struct irq_chip eiger_irq_type = {
 static struct irq_chip eiger_irq_type = {
 	.name		= "EIGER",
 	.name		= "EIGER",
-	.unmask		= eiger_enable_irq,
-	.mask		= eiger_disable_irq,
-	.mask_ack	= eiger_disable_irq,
+	.irq_unmask	= eiger_enable_irq,
+	.irq_mask	= eiger_disable_irq,
+	.irq_mask_ack	= eiger_disable_irq,
 };
 };
 
 
 static void
 static void
@@ -136,8 +138,8 @@ eiger_init_irq(void)
 	init_i8259a_irqs();
 	init_i8259a_irqs();
 
 
 	for (i = 16; i < 128; ++i) {
 	for (i = 16; i < 128; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, &eiger_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &eiger_irq_type, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 }
 }
 
 

+ 12 - 12
arch/alpha/kernel/sys_jensen.c

@@ -63,34 +63,34 @@
  */
  */
 
 
 static void
 static void
-jensen_local_enable(unsigned int irq)
+jensen_local_enable(struct irq_data *d)
 {
 {
 	/* the parport is really hw IRQ 1, silly Jensen.  */
 	/* the parport is really hw IRQ 1, silly Jensen.  */
-	if (irq == 7)
-		i8259a_enable_irq(1);
+	if (d->irq == 7)
+		i8259a_enable_irq(d);
 }
 }
 
 
 static void
 static void
-jensen_local_disable(unsigned int irq)
+jensen_local_disable(struct irq_data *d)
 {
 {
 	/* the parport is really hw IRQ 1, silly Jensen.  */
 	/* the parport is really hw IRQ 1, silly Jensen.  */
-	if (irq == 7)
-		i8259a_disable_irq(1);
+	if (d->irq == 7)
+		i8259a_disable_irq(d);
 }
 }
 
 
 static void
 static void
-jensen_local_mask_ack(unsigned int irq)
+jensen_local_mask_ack(struct irq_data *d)
 {
 {
 	/* the parport is really hw IRQ 1, silly Jensen.  */
 	/* the parport is really hw IRQ 1, silly Jensen.  */
-	if (irq == 7)
-		i8259a_mask_and_ack_irq(1);
+	if (d->irq == 7)
+		i8259a_mask_and_ack_irq(d);
 }
 }
 
 
 static struct irq_chip jensen_local_irq_type = {
 static struct irq_chip jensen_local_irq_type = {
 	.name		= "LOCAL",
 	.name		= "LOCAL",
-	.unmask		= jensen_local_enable,
-	.mask		= jensen_local_disable,
-	.mask_ack	= jensen_local_mask_ack,
+	.irq_unmask	= jensen_local_enable,
+	.irq_mask	= jensen_local_disable,
+	.irq_mask_ack	= jensen_local_mask_ack,
 };
 };
 
 
 static void 
 static void 

+ 19 - 23
arch/alpha/kernel/sys_marvel.c

@@ -104,9 +104,10 @@ io7_get_irq_ctl(unsigned int irq, struct io7 **pio7)
 }
 }
 
 
 static void
 static void
-io7_enable_irq(unsigned int irq)
+io7_enable_irq(struct irq_data *d)
 {
 {
 	volatile unsigned long *ctl;
 	volatile unsigned long *ctl;
+	unsigned int irq = d->irq;
 	struct io7 *io7;
 	struct io7 *io7;
 
 
 	ctl = io7_get_irq_ctl(irq, &io7);
 	ctl = io7_get_irq_ctl(irq, &io7);
@@ -115,7 +116,7 @@ io7_enable_irq(unsigned int irq)
 		       __func__, irq);
 		       __func__, irq);
 		return;
 		return;
 	}
 	}
-		
+
 	spin_lock(&io7->irq_lock);
 	spin_lock(&io7->irq_lock);
 	*ctl |= 1UL << 24;
 	*ctl |= 1UL << 24;
 	mb();
 	mb();
@@ -124,9 +125,10 @@ io7_enable_irq(unsigned int irq)
 }
 }
 
 
 static void
 static void
-io7_disable_irq(unsigned int irq)
+io7_disable_irq(struct irq_data *d)
 {
 {
 	volatile unsigned long *ctl;
 	volatile unsigned long *ctl;
+	unsigned int irq = d->irq;
 	struct io7 *io7;
 	struct io7 *io7;
 
 
 	ctl = io7_get_irq_ctl(irq, &io7);
 	ctl = io7_get_irq_ctl(irq, &io7);
@@ -135,7 +137,7 @@ io7_disable_irq(unsigned int irq)
 		       __func__, irq);
 		       __func__, irq);
 		return;
 		return;
 	}
 	}
-		
+
 	spin_lock(&io7->irq_lock);
 	spin_lock(&io7->irq_lock);
 	*ctl &= ~(1UL << 24);
 	*ctl &= ~(1UL << 24);
 	mb();
 	mb();
@@ -144,35 +146,29 @@ io7_disable_irq(unsigned int irq)
 }
 }
 
 
 static void
 static void
-marvel_irq_noop(unsigned int irq) 
-{ 
-	return; 
-}
-
-static unsigned int
-marvel_irq_noop_return(unsigned int irq) 
-{ 
-	return 0; 
+marvel_irq_noop(struct irq_data *d)
+{
+	return;
 }
 }
 
 
 static struct irq_chip marvel_legacy_irq_type = {
 static struct irq_chip marvel_legacy_irq_type = {
 	.name		= "LEGACY",
 	.name		= "LEGACY",
-	.mask		= marvel_irq_noop,
-	.unmask		= marvel_irq_noop,
+	.irq_mask	= marvel_irq_noop,
+	.irq_unmask	= marvel_irq_noop,
 };
 };
 
 
 static struct irq_chip io7_lsi_irq_type = {
 static struct irq_chip io7_lsi_irq_type = {
 	.name		= "LSI",
 	.name		= "LSI",
-	.unmask		= io7_enable_irq,
-	.mask		= io7_disable_irq,
-	.mask_ack	= io7_disable_irq,
+	.irq_unmask	= io7_enable_irq,
+	.irq_mask	= io7_disable_irq,
+	.irq_mask_ack	= io7_disable_irq,
 };
 };
 
 
 static struct irq_chip io7_msi_irq_type = {
 static struct irq_chip io7_msi_irq_type = {
 	.name		= "MSI",
 	.name		= "MSI",
-	.unmask		= io7_enable_irq,
-	.mask		= io7_disable_irq,
-	.ack		= marvel_irq_noop,
+	.irq_unmask	= io7_enable_irq,
+	.irq_mask	= io7_disable_irq,
+	.irq_ack	= marvel_irq_noop,
 };
 };
 
 
 static void
 static void
@@ -280,8 +276,8 @@ init_io7_irqs(struct io7 *io7,
 
 
 	/* Set up the lsi irqs.  */
 	/* Set up the lsi irqs.  */
 	for (i = 0; i < 128; ++i) {
 	for (i = 0; i < 128; ++i) {
-		irq_to_desc(base + i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(base + i, lsi_ops, handle_level_irq);
 		set_irq_chip_and_handler(base + i, lsi_ops, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	/* Disable the implemented irqs in hardware.  */
 	/* Disable the implemented irqs in hardware.  */
@@ -294,8 +290,8 @@ init_io7_irqs(struct io7 *io7,
 
 
 	/* Set up the msi irqs.  */
 	/* Set up the msi irqs.  */
 	for (i = 128; i < (128 + 512); ++i) {
 	for (i = 128; i < (128 + 512); ++i) {
-		irq_to_desc(base + i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(base + i, msi_ops, handle_level_irq);
 		set_irq_chip_and_handler(base + i, msi_ops, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	for (i = 0; i < 16; ++i)
 	for (i = 0; i < 16; ++i)

+ 8 - 8
arch/alpha/kernel/sys_mikasa.c

@@ -43,22 +43,22 @@ mikasa_update_irq_hw(int mask)
 }
 }
 
 
 static inline void
 static inline void
-mikasa_enable_irq(unsigned int irq)
+mikasa_enable_irq(struct irq_data *d)
 {
 {
-	mikasa_update_irq_hw(cached_irq_mask |= 1 << (irq - 16));
+	mikasa_update_irq_hw(cached_irq_mask |= 1 << (d->irq - 16));
 }
 }
 
 
 static void
 static void
-mikasa_disable_irq(unsigned int irq)
+mikasa_disable_irq(struct irq_data *d)
 {
 {
-	mikasa_update_irq_hw(cached_irq_mask &= ~(1 << (irq - 16)));
+	mikasa_update_irq_hw(cached_irq_mask &= ~(1 << (d->irq - 16)));
 }
 }
 
 
 static struct irq_chip mikasa_irq_type = {
 static struct irq_chip mikasa_irq_type = {
 	.name		= "MIKASA",
 	.name		= "MIKASA",
-	.unmask		= mikasa_enable_irq,
-	.mask		= mikasa_disable_irq,
-	.mask_ack	= mikasa_disable_irq,
+	.irq_unmask	= mikasa_enable_irq,
+	.irq_mask	= mikasa_disable_irq,
+	.irq_mask_ack	= mikasa_disable_irq,
 };
 };
 
 
 static void 
 static void 
@@ -98,8 +98,8 @@ mikasa_init_irq(void)
 	mikasa_update_irq_hw(0);
 	mikasa_update_irq_hw(0);
 
 
 	for (i = 16; i < 32; ++i) {
 	for (i = 16; i < 32; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, &mikasa_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &mikasa_irq_type, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	init_i8259a_irqs();
 	init_i8259a_irqs();

+ 8 - 8
arch/alpha/kernel/sys_noritake.c

@@ -48,22 +48,22 @@ noritake_update_irq_hw(int irq, int mask)
 }
 }
 
 
 static void
 static void
-noritake_enable_irq(unsigned int irq)
+noritake_enable_irq(struct irq_data *d)
 {
 {
-	noritake_update_irq_hw(irq, cached_irq_mask |= 1 << (irq - 16));
+	noritake_update_irq_hw(d->irq, cached_irq_mask |= 1 << (d->irq - 16));
 }
 }
 
 
 static void
 static void
-noritake_disable_irq(unsigned int irq)
+noritake_disable_irq(struct irq_data *d)
 {
 {
-	noritake_update_irq_hw(irq, cached_irq_mask &= ~(1 << (irq - 16)));
+	noritake_update_irq_hw(d->irq, cached_irq_mask &= ~(1 << (d->irq - 16)));
 }
 }
 
 
 static struct irq_chip noritake_irq_type = {
 static struct irq_chip noritake_irq_type = {
 	.name		= "NORITAKE",
 	.name		= "NORITAKE",
-	.unmask		= noritake_enable_irq,
-	.mask		= noritake_disable_irq,
-	.mask_ack	= noritake_disable_irq,
+	.irq_unmask	= noritake_enable_irq,
+	.irq_mask	= noritake_disable_irq,
+	.irq_mask_ack	= noritake_disable_irq,
 };
 };
 
 
 static void 
 static void 
@@ -127,8 +127,8 @@ noritake_init_irq(void)
 	outw(0, 0x54c);
 	outw(0, 0x54c);
 
 
 	for (i = 16; i < 48; ++i) {
 	for (i = 16; i < 48; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, &noritake_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &noritake_irq_type, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	init_i8259a_irqs();
 	init_i8259a_irqs();

+ 10 - 7
arch/alpha/kernel/sys_rawhide.c

@@ -56,9 +56,10 @@ rawhide_update_irq_hw(int hose, int mask)
   (((h) < MCPCIA_MAX_HOSES) && (cached_irq_masks[(h)] != 0))
   (((h) < MCPCIA_MAX_HOSES) && (cached_irq_masks[(h)] != 0))
 
 
 static inline void 
 static inline void 
-rawhide_enable_irq(unsigned int irq)
+rawhide_enable_irq(struct irq_data *d)
 {
 {
 	unsigned int mask, hose;
 	unsigned int mask, hose;
+	unsigned int irq = d->irq;
 
 
 	irq -= 16;
 	irq -= 16;
 	hose = irq / 24;
 	hose = irq / 24;
@@ -76,9 +77,10 @@ rawhide_enable_irq(unsigned int irq)
 }
 }
 
 
 static void 
 static void 
-rawhide_disable_irq(unsigned int irq)
+rawhide_disable_irq(struct irq_data *d)
 {
 {
 	unsigned int mask, hose;
 	unsigned int mask, hose;
+	unsigned int irq = d->irq;
 
 
 	irq -= 16;
 	irq -= 16;
 	hose = irq / 24;
 	hose = irq / 24;
@@ -96,9 +98,10 @@ rawhide_disable_irq(unsigned int irq)
 }
 }
 
 
 static void
 static void
-rawhide_mask_and_ack_irq(unsigned int irq)
+rawhide_mask_and_ack_irq(struct irq_data *d)
 {
 {
 	unsigned int mask, mask1, hose;
 	unsigned int mask, mask1, hose;
+	unsigned int irq = d->irq;
 
 
 	irq -= 16;
 	irq -= 16;
 	hose = irq / 24;
 	hose = irq / 24;
@@ -123,9 +126,9 @@ rawhide_mask_and_ack_irq(unsigned int irq)
 
 
 static struct irq_chip rawhide_irq_type = {
 static struct irq_chip rawhide_irq_type = {
 	.name		= "RAWHIDE",
 	.name		= "RAWHIDE",
-	.unmask		= rawhide_enable_irq,
-	.mask		= rawhide_disable_irq,
-	.mask_ack	= rawhide_mask_and_ack_irq,
+	.irq_unmask	= rawhide_enable_irq,
+	.irq_mask	= rawhide_disable_irq,
+	.irq_mask_ack	= rawhide_mask_and_ack_irq,
 };
 };
 
 
 static void 
 static void 
@@ -177,8 +180,8 @@ rawhide_init_irq(void)
 	}
 	}
 
 
 	for (i = 16; i < 128; ++i) {
 	for (i = 16; i < 128; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, &rawhide_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &rawhide_irq_type, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	init_i8259a_irqs();
 	init_i8259a_irqs();

+ 8 - 8
arch/alpha/kernel/sys_rx164.c

@@ -47,22 +47,22 @@ rx164_update_irq_hw(unsigned long mask)
 }
 }
 
 
 static inline void
 static inline void
-rx164_enable_irq(unsigned int irq)
+rx164_enable_irq(struct irq_data *d)
 {
 {
-	rx164_update_irq_hw(cached_irq_mask |= 1UL << (irq - 16));
+	rx164_update_irq_hw(cached_irq_mask |= 1UL << (d->irq - 16));
 }
 }
 
 
 static void
 static void
-rx164_disable_irq(unsigned int irq)
+rx164_disable_irq(struct irq_data *d)
 {
 {
-	rx164_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
+	rx164_update_irq_hw(cached_irq_mask &= ~(1UL << (d->irq - 16)));
 }
 }
 
 
 static struct irq_chip rx164_irq_type = {
 static struct irq_chip rx164_irq_type = {
 	.name		= "RX164",
 	.name		= "RX164",
-	.unmask		= rx164_enable_irq,
-	.mask		= rx164_disable_irq,
-	.mask_ack	= rx164_disable_irq,
+	.irq_unmask	= rx164_enable_irq,
+	.irq_mask	= rx164_disable_irq,
+	.irq_mask_ack	= rx164_disable_irq,
 };
 };
 
 
 static void 
 static void 
@@ -99,8 +99,8 @@ rx164_init_irq(void)
 
 
 	rx164_update_irq_hw(0);
 	rx164_update_irq_hw(0);
 	for (i = 16; i < 40; ++i) {
 	for (i = 16; i < 40; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, &rx164_irq_type, handle_level_irq);
 		set_irq_chip_and_handler(i, &rx164_irq_type, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	init_i8259a_irqs();
 	init_i8259a_irqs();

+ 10 - 10
arch/alpha/kernel/sys_sable.c

@@ -443,11 +443,11 @@ lynx_swizzle(struct pci_dev *dev, u8 *pinp)
 /* GENERIC irq routines */
 /* GENERIC irq routines */
 
 
 static inline void
 static inline void
-sable_lynx_enable_irq(unsigned int irq)
+sable_lynx_enable_irq(struct irq_data *d)
 {
 {
 	unsigned long bit, mask;
 	unsigned long bit, mask;
 
 
-	bit = sable_lynx_irq_swizzle->irq_to_mask[irq];
+	bit = sable_lynx_irq_swizzle->irq_to_mask[d->irq];
 	spin_lock(&sable_lynx_irq_lock);
 	spin_lock(&sable_lynx_irq_lock);
 	mask = sable_lynx_irq_swizzle->shadow_mask &= ~(1UL << bit);
 	mask = sable_lynx_irq_swizzle->shadow_mask &= ~(1UL << bit);
 	sable_lynx_irq_swizzle->update_irq_hw(bit, mask);
 	sable_lynx_irq_swizzle->update_irq_hw(bit, mask);
@@ -459,11 +459,11 @@ sable_lynx_enable_irq(unsigned int irq)
 }
 }
 
 
 static void
 static void
-sable_lynx_disable_irq(unsigned int irq)
+sable_lynx_disable_irq(struct irq_data *d)
 {
 {
 	unsigned long bit, mask;
 	unsigned long bit, mask;
 
 
-	bit = sable_lynx_irq_swizzle->irq_to_mask[irq];
+	bit = sable_lynx_irq_swizzle->irq_to_mask[d->irq];
 	spin_lock(&sable_lynx_irq_lock);
 	spin_lock(&sable_lynx_irq_lock);
 	mask = sable_lynx_irq_swizzle->shadow_mask |= 1UL << bit;
 	mask = sable_lynx_irq_swizzle->shadow_mask |= 1UL << bit;
 	sable_lynx_irq_swizzle->update_irq_hw(bit, mask);
 	sable_lynx_irq_swizzle->update_irq_hw(bit, mask);
@@ -475,11 +475,11 @@ sable_lynx_disable_irq(unsigned int irq)
 }
 }
 
 
 static void
 static void
-sable_lynx_mask_and_ack_irq(unsigned int irq)
+sable_lynx_mask_and_ack_irq(struct irq_data *d)
 {
 {
 	unsigned long bit, mask;
 	unsigned long bit, mask;
 
 
-	bit = sable_lynx_irq_swizzle->irq_to_mask[irq];
+	bit = sable_lynx_irq_swizzle->irq_to_mask[d->irq];
 	spin_lock(&sable_lynx_irq_lock);
 	spin_lock(&sable_lynx_irq_lock);
 	mask = sable_lynx_irq_swizzle->shadow_mask |= 1UL << bit;
 	mask = sable_lynx_irq_swizzle->shadow_mask |= 1UL << bit;
 	sable_lynx_irq_swizzle->update_irq_hw(bit, mask);
 	sable_lynx_irq_swizzle->update_irq_hw(bit, mask);
@@ -489,9 +489,9 @@ sable_lynx_mask_and_ack_irq(unsigned int irq)
 
 
 static struct irq_chip sable_lynx_irq_type = {
 static struct irq_chip sable_lynx_irq_type = {
 	.name		= "SABLE/LYNX",
 	.name		= "SABLE/LYNX",
-	.unmask		= sable_lynx_enable_irq,
-	.mask		= sable_lynx_disable_irq,
-	.mask_ack	= sable_lynx_mask_and_ack_irq,
+	.irq_unmask	= sable_lynx_enable_irq,
+	.irq_mask	= sable_lynx_disable_irq,
+	.irq_mask_ack	= sable_lynx_mask_and_ack_irq,
 };
 };
 
 
 static void 
 static void 
@@ -518,9 +518,9 @@ sable_lynx_init_irq(int nr_of_irqs)
 	long i;
 	long i;
 
 
 	for (i = 0; i < nr_of_irqs; ++i) {
 	for (i = 0; i < nr_of_irqs; ++i) {
-		irq_to_desc(i)->status |= IRQ_LEVEL;
 		set_irq_chip_and_handler(i, &sable_lynx_irq_type,
 		set_irq_chip_and_handler(i, &sable_lynx_irq_type,
 			handle_level_irq);
 			handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 	}
 
 
 	common_init_isa_dma();
 	common_init_isa_dma();

部分文件因为文件数量过多而无法显示