Commit graph

311,469 commits

Author SHA1 Message Date
Linus Torvalds
f4c16c5817 OpenRISC updates for 3.5
A couple of cleanups for the OpenRISC architecture:
 
 * Implement IRQ domains
 * Use DMA mapping framework completely and catch up with recent
   changes to dma_map_ops
 * One bug fix to the "or1k_atomic" syscall to not clobber call-saved
   registers
 * OOM killer patches to the pagefault handler ported from the X86 arch
 * ...and a couple of header file cleanups
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iEYEABECAAYFAk+6o7MACgkQ70gcjN2673OpcACeIwRxhw1ZgtgMSLcR2/t8Twsn
 Ct0AoMDLvEW7BW+5E7ZgaAlIwNkGmcZQ
 =TG1P
 -----END PGP SIGNATURE-----

Merge tag 'for-3.5' of git://openrisc.net/jonas/linux

Pull OpenRISC updates from Jonas Bonn:
 "A couple of cleanups for the OpenRISC architecture:

   - Implement IRQ domains
   - Use DMA mapping framework completely and catch up with recent
     changes to dma_map_ops
   - One bug fix to the "or1k_atomic" syscall to not clobber call-saved
     registers
   - OOM killer patches to the pagefault handler ported from the X86
     arch
   - ...and a couple of header file cleanups"

* tag 'for-3.5' of git://openrisc.net/jonas/linux:
  openrisc: use scratch regs in atomic syscall
  openrisc: provide dma_map_ops
  openrisc: header file cleanups
  openrisc/mm/fault.c: Port OOM changes to do_page_fault
  openrisc: remove unnecessary includes
  openrisc: implement irqdomains
2012-05-21 17:01:56 -07:00
Linus Torvalds
3d1482fe7a Pin control subsystem changes for kernel 3.5:
- Generic Device Tree bindings and hooks for drivers so we can
  move over modern drivers to using this.
 - Device Tree bindings for Tegra SoCs.
 - Funneling some devicetree helper code for the drivers/of
  subsystem.
 - New pin control drivers for:
  - Freescale MXS
  - Freescale i.MX51
  - Freescale i.MX53
  - All of these use Device Tree bindings.
 - Dummy pinctrl handles for stepwise migration to pinctrl, akin
  to dummy regulators.
 - Minor non-urgent fixes and improvments.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJPuiZMAAoJEEEQszewGV1zMK4P/RP+RvKs3KnFaAUF/tM2QSll
 /65BW8SJlaXrbMv5IC4iBvUx1sH/fDNtNjTHIwwlNBlrxPl6TVecvZZq+yBnl7yp
 Wue0A/xdD0nsD7O/85khVE4WnDJbWpgOdX/9CTVbc6tmTAsb9pGBH2120dtLdcLe
 X+GRKnf5D05ySHaGKO8j0PB1MLjF/SV3GhGfrYpn0dtW/XVWNmRczLgm0p11qhMd
 kOLoqjcJUp/p3HYtUjKKnwj/3z0d88YjegsiSelTp9Gdnjp/3c2LrRN91mXdIiMc
 IGZrp+AQWQ0zg3QrH91gAD7V+f+URrd+IK2EU5PdBO1fqNXgaotGujsX0lqnwycN
 8PbXnrUhMhtM4oVjUdLioTP98wIN8Y5tTDoPoVUPtA3921aCVQoE/Pf9/VXBwzEZ
 O/nmW0hz7e1OraEq4a/vsD715iuxV92lQzJpzMWYjySFyIGur/VCLLWQo95WWK5d
 Foiif1FTuN+1ueONlI5JHqhFp1HZs0ldVDxR/V8G+ueUNlgQmlypgC3lI++WjXnt
 uaQS6Hq0NlOKivhlu/uJ098ft7gf2utJLSBOfKPoILgyfksvEGfegJ8tql2YW/vS
 42d0jQGrnhi4nctxzGN3zmr4Ys0BU97JP/9Rq+ZbPUL+SDF7e3y4pv+uTLI4ip6v
 fyHZTFW6CTXbBD3k1qy9
 =RgIp
 -----END PGP SIGNATURE-----

Merge tag 'pinctrl-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control subsystem changes from Linus Walleij:

 - Generic Device Tree bindings and hooks for drivers so we can move
   over modern drivers to using this.

 - Device Tree bindings for Tegra SoCs.

 - Funneling some devicetree helper code for the drivers/of subsystem.

 - New pin control drivers for:
   * Freescale MXS
   * Freescale i.MX51
   * Freescale i.MX53
     All of these use Device Tree bindings.

 - Dummy pinctrl handles for stepwise migration to pinctrl, akin to
   dummy regulators.
 - Minor non-urgent fixes and improvments.

Fix up trivial conflicts in Documentation/driver-model/devres.txt and
drivers/pinctrl/core.c,

* tag 'pinctrl-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (46 commits)
  pinctrl: pinctrl-imx: add imx51 pinctrl driver
  pinctrl: pinctrl-imx: add imx53 pinctrl driver
  pinctrl: pinctrl-pxa3xx: remove empty pinmux disable function
  pinctrl: pinctrl-mxs: remove empty pinmux disable function
  pinctrl: pinctrl-imx: remove empty pinmux disable function
  pinctrl: make pinmux disable function optional
  pinctrl: a minor error checking improvement for pinconf
  pinctrl: mxs: skip gpio nodes for group creation
  pinctrl: mxs: create group for pin config node
  pinctrl: (cosmetic) fix two entries in DocBook comments
  pinctrl: add more info to error msgs in pin_request
  pinctrl: add pinctrl-mxs support
  pinctrl: pinctrl-imx: add imx6q pinctrl driver
  pinctrl: pinctrl-imx: add imx pinctrl core driver
  dt: add of_get_child_count helper function
  pinctrl: support gpio request deferred probing
  pinctrl: add pinctrl_provide_dummies interface for platforms to use
  pinctrl: enhance reporting of errors when loading from DT
  pinctrl: add kerneldoc for pinctrl_ops device tree functions
  pinctrl: propagate map validation errors
  ...
2012-05-21 16:58:23 -07:00
Linus Torvalds
ac1806572d regulator updates for 3.5
The major thing here is the addition of some helpers to factor code out
 of drivers, making a fair proportion of regulators much more just data
 rather than code which is nice.
 
 - Helpers in the core for regulators using regmap, providing generic
   implementations of the enable and voltage selection operations which
   just need data to describe them in the drivers.
 - Split out voltage mapping and voltage setting, allowing many more
   drivers to take advantage of the infrastructure for selectors.
 - Loads and loads of cleanups from Axel Lin once again, including many
   changes to take advantage of the above new framework features
 - New drivers for Ricoh RC5T583, TI TPS62362, TI TPS62363, TI TPS65913,
   TI TWL6035 and TI TWL6037.
 
 Some of the registration changes to support the core refactoring caused
 so many conflicts that eventually topic branches were abandoned for this
 release.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJPuhn4AAoJEBus8iNuMP3d6m4P/0gNiGbTwDlOgU/mPDyW2jJc
 xqvABzlOIQbI28/dgFYO/nA9YWW7VxpEaAPlkg4auk4wQ9tEyEjEqlOCfzymMetY
 0k6L4n8LqFsbMAeNQbFPbW7PpWp59oI97J9afJI4kEJmHmOlmlL9U82/TzUFfGrA
 yiPlzue+DotKB7FjsymLMbLyeFoiMSOIjVDk8OTs0u1EqeOo4nJG2ODLa+yGo+QW
 0yqQExEdIp28WXbkZQtmsOmj2V/uhkKAv2i2PDT2TmlduhNdCGxJsgZIiZCl1R4c
 vwirbfb+v93HAxvADdgj8eVdLJXQ0oItxr2ohKt8AgXIBrUJBsMkCQGvulZjRb+a
 /A/7Ea3o7HI+PQx4aIP0yGA/eBwbzo/cmBxU+KGzTA9Mov0fnK1kkUs6gfrYBdli
 U/TcMizDa1539BrKBIF2gmlRCKx8YD9ic27Zl1x4i5cgAP1gdYgdBYBybKHMpo2+
 9Xp1R9C8FvvgytIqJ3QQ34tRomZyQ5iUaIuIuAosoQ6iuF33EQ6I0FvHcIe74iOi
 zcu62ZPiuSwg1di9PrTERLcbrS81lvXpOWt5+EorzqoGXWzVIGoTh1F2kWEEMhaD
 Q6V5iE03VC0k3tj/MmtTiVkyhNkRElQDtekE9sfm15pdVnpu/+b+iicWJa7QFbZQ
 MybS0BBFQKhJXUDttKtS
 =UR7s
 -----END PGP SIGNATURE-----

Merge tag 'regulator-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator

Pull regulator updates from Mark Brown:
 "The major thing here is the addition of some helpers to factor code
  out of drivers, making a fair proportion of regulators much more just
  data rather than code which is nice.

  - Helpers in the core for regulators using regmap, providing generic
    implementations of the enable and voltage selection operations which
    just need data to describe them in the drivers.
  - Split out voltage mapping and voltage setting, allowing many more
    drivers to take advantage of the infrastructure for selectors.
  - Loads and loads of cleanups from Axel Lin once again, including many
    changes to take advantage of the above new framework features
  - New drivers for Ricoh RC5T583, TI TPS62362, TI TPS62363, TI
    TPS65913, TI TWL6035 and TI TWL6037.

  Some of the registration changes to support the core refactoring
  caused so many conflicts that eventually topic branches were abandoned
  for this release."

* tag 'regulator-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (227 commits)
  regulator: tps65910: use of_node of matched regulator being register
  regulator: tps65910: dt: support when "regulators" node found
  regulator: tps65910: add error message in case of failure
  regulator: tps62360: dt: initialize of_node param for regulator register.
  regulator: tps65910: use devm_* for memory allocation
  regulator: tps65910: use small letter for regulator names
  mfd: tpx6586x:  Depend on regulator
  regulator: regulator for Palmas Kconfig
  regulator: regulator driver for Palmas series chips
  regulator: Enable Device Tree for the db8500-prcmu regulator driver
  regulator: db8500-prcmu: Separate regulator registration from probe
  regulator: ab3100: Use regulator_map_voltage_iterate()
  regulator: tps65217: Convert to set_voltage_sel and map_voltage
  regulator: Enable the ab8500 for Device Tree
  regulator: ab8500: Split up probe() into manageable pieces
  regulator: max8925: Remove check_range function and max_uV from struct rc5t583_regulator_info
  regulator: max8649: Remove unused check_range() function
  regulator: rc5t583: Remove max_uV from struct rc5t583_regulator_info
  regulator: da9052: Convert to set_voltage_sel and map_voltage
  regulator: max8952: Use devm_kzalloc
  ...
2012-05-21 16:49:16 -07:00
Linus Torvalds
ae82a82820 regmap: Updates for 3.5
A surprisingly large series of updates for regmap this time, mostly due
 to all the work Stephen Warren has done to add support for MMIO buses.
 This wasn't really the target for the framework but it turns out that
 there's a reasonable number of cases where it's very helpful to use the
 register cache support to allow the register map to remain available
 while the device is suspended.
 
 - A MMIO bus implementation, contributed by Stephen Warren. Currently this
   is limited to 32 bit systems and native endian registers.
 - Support for naming register maps, mainly intended for MMIO devices with
   multiple register banks. This was also contributed by Stephen Warren.
 - Support for register striding, again contributed by Stephen Warren and
   mainly intended for use with MMIO as typically the registers will be a
   fixed size but byte addressed.
 - irqdomain support for the generic regmap irq_chip, including support
   for dynamically allocate interrupt numbers.
 - A function dev_get_regmap() which allows frameworks using regmap to
   obtain the regmap for a device from the struct device, making life a
   little simpler for them.
 - Updates to regmap-irq to support more chips (contributed by Graeme
   Gregory) and to use irqdomains.
 - Support for devices with 24 bit register addresses.
 
 The striding support collided with all the topic branches so the
 branches look a bit messy and eventually I just gave up.  There's also
 the TI Palmas driver and a couple of other isolated MFD patches that
 all depend on new regmap features so are being merged here.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJPtnhRAAoJEBus8iNuMP3d5yUQAJOHY+V9czTi87j6wRSOPJp+
 JhTIpn5dgpe38gScGVxNXW9kvb+W/m9iVySvkWY4r79tGED8YjYQbof53mdilxww
 JhinDpUU4bSysgMCHJiVonOYwfeehBCuQhyk1DG4Fp7v8sc8sCFXo5HpdNMNDU+G
 QC0Dlo5kqceJY/miOdiprjKGcOLwZYtXb/c++CCfYbrQlg7+XdyDUcegQrDn3Tg9
 ZIzl/cTuZJQ8FhewVR19ScmMA3pHaXXBWxuvdscEVPLIHoFi0Vbc/qFUUddEfA6Q
 g7wa5/hCOUnBTmCPdlt4fveXQllZSq5hj6cvLRuMtUFX9A1nqcYNUroLAnoJ9QVO
 6JrCmvW6A8GxgMklf1aFvcOf3xoM0yQaTOy/bFzO52LHFV28bxcwG2572gLiMmn3
 u8+z4voWy36kLDyUzwNzJ4vI1GjuyedPWSgXOX8D8S1UV1I0DeTrBEQEiVutJCP5
 KsuGaYtmrXF20H7KnSufDYLTXMU/7hLMZhroNcglRKaYMf34A/kNGYHLb00JhrnC
 rWqPjGA+Wplj8IJXrZcALZqBODGcBL/jZR0+Uc1K03rnm5G/8O0IZqbwFIam0c/+
 UDj/IrvoYliI2U3FdRS+MO+lN3+SK7OVvwP1qYROcmCsKt4R3FLLaPzLRXizrfHk
 JmlwCGWFIHu7jDtnUA6W
 =pjN4
 -----END PGP SIGNATURE-----

Merge tag 'regmap-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap

Pull regmap updates from Mark Brown:
 "A surprisingly large series of updates for regmap this time, mostly
  due to all the work Stephen Warren has done to add support for MMIO
  buses.  This wasn't really the target for the framework but it turns
  out that there's a reasonable number of cases where it's very helpful
  to use the register cache support to allow the register map to remain
  available while the device is suspended.

  - A MMIO bus implementation, contributed by Stephen Warren.  Currently
    this is limited to 32 bit systems and native endian registers.
  - Support for naming register maps, mainly intended for MMIO devices
    with multiple register banks.  This was also contributed by Stephen
    Warren.
  - Support for register striding, again contributed by Stephen Warren
    and mainly intended for use with MMIO as typically the registers
    will be a fixed size but byte addressed.
  - irqdomain support for the generic regmap irq_chip, including support
    for dynamically allocate interrupt numbers.
  - A function dev_get_regmap() which allows frameworks using regmap to
    obtain the regmap for a device from the struct device, making life a
    little simpler for them.
  - Updates to regmap-irq to support more chips (contributed by Graeme
    Gregory) and to use irqdomains.
  - Support for devices with 24 bit register addresses.

  The striding support collided with all the topic branches so the
  branches look a bit messy and eventually I just gave up.  There's also
  the TI Palmas driver and a couple of other isolated MFD patches that
  all depend on new regmap features so are being merged here."

* tag 'regmap-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (24 commits)
  mfd: palmas PMIC device support Kconfig
  mfd: palmas PMIC device support
  regmap: Fix typo in IRQ register striding
  mfd: wm8994: Update to fully use irq_domain
  regmap: add support for non contiguous status to regmap-irq
  regmap: Convert regmap_irq to use irq_domain
  regmap: Pass back the allocated regmap IRQ controller data
  mfd: da9052: Fix genirq abuse
  regmap: Implement dev_get_regmap()
  regmap: Devices using format_write don't support bulk operations
  regmap: Converts group operation into single read write operations
  regmap: Cache single values read from the chip
  regmap: fix compile errors in regmap-irq.c due to stride changes
  regmap: implement register striding
  regmap: fix compilation when !CONFIG_DEBUG_FS
  regmap: allow regmap instances to be named
  regmap: validate regmap_raw_read/write val_len
  regmap: mmio: remove some error checks now in the core
  regmap: mmio: convert some error returns to BUG()
  regmap: add MMIO bus support
  ...
2012-05-21 16:32:44 -07:00
Linus Torvalds
3bb07f1b73 PCI changes for the 3.5 merge window:
- Host bridge cleanups from Yinghai
   - Disable Bus Master bit on PCI device shutdown (kexec-related)
   - Stratus ftServer fix
   - pci_dev_reset() locking fix
   - IvyBridge graphics erratum workaround
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.10 (GNU/Linux)
 
 iQIcBAABAgAGBQJPumymAAoJEPGMOI97Hn6z9JUQALVh5UE/X+kg9CU63FGSwrRQ
 nMiQiOv4uX3K+QV7LJsx/wKlOu2AQuZvHbiDNn100865LlLvMfPLOhYxzitjQ9fb
 38j9GsXBgMxPQZOdvWT9F6XUTONR84w3xoxGFZb1sLAmAxkWhsHBCGSfNwJXzQhG
 7AENGhby/AisYpHT915KJ3ZshSIiqHEo34DFyQtEkjaJRWIC643TMQoBhURb+aIn
 K/rjaWxS4AaXue3npkpBTyd2ngMiDz65+FTUJXxy+F0sIZ5w44ZZCdBk59UCLVYU
 LynjXeHWYzvC6YKOF47PY/vkToVcX3mtZ06KpW8kuesZDAO+qAdPnVOlY/O21NCI
 6KKCn3bkGEOldHLsw5mtUU5Pwf1WixfURiDi5bd/X1k5NeFJNjyvWJ/HArJS8OAh
 CvJO9UNsgaqAcx4fnrJ+CY2PcX1W44m1IsqpCMbxbSRXPEN+JLBrW7oeRrk0hyIa
 dhUZXt7wancda8iK5XYFPhFwaMRnsAibdsUOBecSK6XhVtmd6hflo3p6DWRQdpXL
 R3pECiI4j3lBCByQCMbSSk6TOCj4J2spRSZOE38n0nNAoR4Vxldw1m1uyE2swP0v
 n+KYd5w3O3VwLAFGMYI7LYtwWlTBX7ith/NAnsn1YEtiBBm9Ft51c38jI1QtzjOU
 lrzViloqYnYGJctJ4ojo
 =gHTG
 -----END PGP SIGNATURE-----

Merge tag 'pci-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI changes from Bjorn Helgaas:
 - Host bridge cleanups from Yinghai
 - Disable Bus Master bit on PCI device shutdown (kexec-related)
 - Stratus ftServer fix
 - pci_dev_reset() locking fix
 - IvyBridge graphics erratum workaround

* tag 'pci-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (21 commits)
  microblaze/PCI: fix "io_offset undeclared" error
  x86/PCI: only check for spinlock being held in SMP kernels
  resources: add resource_overlaps()
  PCI: fix uninitialized variable 'cap_mask'
  MAINTAINERS: update PCI git tree and patchwork
  PCI: disable Bus Master on PCI device shutdown
  PCI: work around IvyBridge internal graphics FLR erratum
  x86/PCI: fix unused variable warning in amd_bus.c
  PCI: move mutex locking out of pci_dev_reset function
  PCI: work around Stratus ftServer broken PCIe hierarchy
  x86/PCI: merge pcibios_scan_root() and pci_scan_bus_on_node()
  x86/PCI: dynamically allocate pci_root_info for native host bridge drivers
  x86/PCI: embed pci_sysdata into pci_root_info on ACPI path
  x86/PCI: embed name into pci_root_info struct
  x86/PCI: add host bridge resource release for _CRS path
  x86/PCI: refactor get_current_resources()
  PCI: add host bridge release support
  PCI: add generic device into pci_host_bridge struct
  PCI: rename pci_host_bridge() to find_pci_root_bridge()
  x86/PCI: fix memleak with get_current_resources()
  ...
2012-05-21 16:24:54 -07:00
Richard Cochran
d239f49d77 timekeeping: Fix a few minor newline issues.
Fix a few minor newline issues.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2012-05-21 16:20:32 -07:00
Richard Cochran
190d3b6b4a time: remove obsolete declaration
The function, timekeeping_leap_insert, was removed in commit
6b43ae8a61

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2012-05-21 16:16:58 -07:00
Richard Cochran
cd5398bed9 ntp: Fix a stale comment and a few stray newlines.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2012-05-21 16:16:56 -07:00
Richard Cochran
dd48d708ff ntp: Correct TAI offset during leap second
When repeating a UTC time value during a leap second (when the UTC
time should be 23:59:60), the TAI timescale should not stop. The kernel
NTP code increments the TAI offset one second too late. This patch fixes
the issue by incrementing the offset during the leap second itself.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2012-05-21 16:16:54 -07:00
Linus Torvalds
6326c71fd2 vfs: be even more careful about dentry RCU name lookups
Miklos Szeredi points out that we need to also worry about memory
odering when doing the dentry name comparison asynchronously with RCU.

In particular, doing a rename can do a memcpy() of one dentry name over
another, and we want to make sure that any unlocked reader will always
see the proper terminating NUL character, so that it won't ever run off
the allocation.

Rather than having to be extra careful with the name copy or at lookup
time for each character, this resolves the issue by making sure that all
names that are inlined in the dentry always have a NUL character at the
end of the name allocation.  If we do that at dentry allocation time, we
know that no future name copy will ever change that final NUL to
anything else, so there are no memory ordering issues.

So even if a concurrent rename ends up overwriting the NUL character
that terminates the original name, we always know that there is one
final NUL at the end, and there is no worry about the lockless RCU
lookup traversing the name too far.

The out-of-line allocations are never copied over, so we can just make
sure that we write the name (with terminating NULL) and do a write
barrier before we expose the name to anything else by setting it in the
dentry.

Reported-by: Miklos Szeredi <mszeredi@suse.cz>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Nick Piggin <npiggin@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-21 16:14:04 -07:00
Linus Torvalds
a70b52ec1a vfs: make AIO use the proper rw_verify_area() area helpers
We had for some reason overlooked the AIO interface, and it didn't use
the proper rw_verify_area() helper function that checks (for example)
mandatory locking on the file, and that the size of the access doesn't
cause us to overflow the provided offset limits etc.

Instead, AIO did just the security_file_permission() thing (that
rw_verify_area() also does) directly.

This fixes it to do all the proper helper functions, which not only
means that now mandatory file locking works with AIO too, we can
actually remove lines of code.

Reported-by: Manish Honap <manish_honap_vit@yahoo.co.in>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-21 16:06:20 -07:00
Linus Torvalds
ff8ce5f67d Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
Pull core ARM updates from Russell King:
 "This is the bulk of the core ARM updates for this merge window.
  Included in here is a different way to handle the VIVT cache flushing
  on context switch, which should allow scheduler folk to remove a
  special case in their core code.

  We have architectured timer support here, which is a set of timers
  specified by the ARM architecture for future SoCs.  So we should see
  less variability in timer design going forward.

  The last big thing here is my cleanup to the way we handle PCI across
  ARM, fixing some oddities in some platforms which hadn't realised
  there was a way to deal with their private data already built in to
  our PCI backend.

  I've also removed support for the ARMv3 architecture; it hasn't worked
  properly for years so it seems pointless to keep it around."

* 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (47 commits)
  ARM: PCI: remove per-pci_hw list of buses
  ARM: PCI: dove/kirkwood/mv78xx0: use sys->private_data
  ARM: PCI: provide a default bus scan implementation
  ARM: PCI: get rid of pci_std_swizzle()
  ARM: PCI: versatile: fix PCI interrupt setup
  ARM: PCI: integrator: use common PCI swizzle
  ARM: 7416/1: LPAE: Remove unused L_PTE_(BUFFERABLE|CACHEABLE) macros
  ARM: 7415/1: vfp: convert printk's to pr_*'s
  ARM: decompressor: avoid speculative prefetch from non-RAM areas
  ARM: Remove ARMv3 support from decompressor
  ARM: 7413/1: move read_{boot,persistent}_clock to the architecture level
  ARM: Remove support for ARMv3 ARM610 and ARM710 CPUs
  ARM: 7363/1: DEBUG_LL: limit early mapping to the minimum
  ARM: 7391/1: versatile: add some auxdata for device trees
  ARM: 7389/2: plat-versatile: modernize FPGA IRQ controller
  AMBA: get rid of last two uses of NO_IRQ
  ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails
  ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held
  ARM: 7404/1: cmpxchg64: use atomic64 and local64 routines for cmpxchg64
  ARM: 7347/1: SCU: use cpu_logical_map for per-CPU low power mode
  ...
2012-05-21 16:01:50 -07:00
Linus Torvalds
4f6ade9153 Merge branch 'clkdev' of git://git.linaro.org/people/rmk/linux-arm
Pull clkdev updates from Russell King:
 "This supplements clkdev with a device-managed API, allowing drivers
  cleanup paths to be simplified.  We also optimize clk_find() so that
  it exits as soon as it finds a perfect match, and we provide a way to
  minimise the amount of code platforms need to register clkdev entries.

  Some of the code in arm-soc depends on these changes."

* 'clkdev' of git://git.linaro.org/people/rmk/linux-arm:
  CLKDEV: provide helpers for common clock framework
  ARM: 7392/1: CLKDEV: Optimize clk_find()
  ARM: 7376/1: clkdev: Implement managed clk_get()
2012-05-21 15:59:46 -07:00
Thomas Gleixner
764e0da14f timers: Fixup the Kconfig consolidation fallout
Sigh, I missed to check which architecture Kconfig files actually
include the core Kconfig file. There are a few which did not. So we
broke them.

Instead of adding the includes to those, we are better off to move the
include to init/Kconfig like we did already with irqs and others.

This does not change anything for the architectures using the old
style periodic timer mode. It just solves the build wreckage there.

For those architectures which use the clock events infrastructure it
moves the include of the core Kconfig file to "General setup" which is
a way more logical place than having it at random locations specified
by the architecture specific Kconfigs.

Reported-by: Ingo Molnar <mingo@kernel.org>
Cc: Anna-Maria Gleixner <anna-maria@glx-um.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2012-05-21 23:43:46 +02:00
Richard Weinberger
2ccf62b360 Merge branch 'for-um' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal into for-3.5 2012-05-21 23:25:37 +02:00
Steven Rostedt
ccc513b688 ktest: Add MIN_CONFIG_TYPE to allow making a minum .config that has network
Add a MIN_CONFIG_TYPE that can be set to 'test' or 'boot'. The default
is 'boot' which is what make_min_config has done previously: makes a
config file that is the minimum needed to boot the target.

But when MIN_CONFIG_TYPE is set to 'test', not only must the target
boot, but it must also successfully run the TEST. This allows the
creation of a config file that is the minimum to boot and also
perform ssh to the target, or anything else a developer wants.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2012-05-21 17:13:40 -04:00
Al Viro
ffc51be82b um: missing checks of __put_user()/__get_user() return values
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 16:29:02 -04:00
Al Viro
0088b6ec8f um: stub_rt_sigsuspend isn't needed these days anymore
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 16:29:01 -04:00
Al Viro
243412be9c um/x86: merge (and trim) 32- and 64-bit variants of ptrace.h
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 16:28:34 -04:00
Linus Torvalds
31a67102f4 Fix blocking allocations called very early during bootup
During early boot, when the scheduler hasn't really been fully set up,
we really can't do blocking allocations because with certain (dubious)
configurations the "might_resched()" calls can actually result in
scheduling events.

We could just make such users always use GFP_ATOMIC, but quite often the
code that does the allocation isn't really aware of the fact that the
scheduler isn't up yet, and forcing that kind of random knowledge on the
initialization code is just annoying and not good for anybody.

And we actually have a the 'gfp_allowed_mask' exactly for this reason:
it's just that the kernel init sequence happens to set it to allow
blocking allocations much too early.

So move the 'gfp_allowed_mask' initialization from 'start_kernel()'
(which is some of the earliest init code, and runs with preemption
disabled for good reasons) into 'kernel_init()'.  kernel_init() is run
in the newly created thread that will become the 'init' process, as
opposed to the early startup code that runs within the context of what
will be the first idle thread.

So by the time we reach 'kernel_init()', we know that the scheduler must
be at least limping along, because we've already scheduled from the idle
thread into the init thread.

Reported-by: Steven Rostedt <rostedt@goodmis.org>
Cc: David Rientjes <rientjes@google.com>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-21 12:52:42 -07:00
Sam Ravnborg
e47b65b032 net: drop NET dependency from HAVE_BPF_JIT
There is no point having the NET dependency on the select target, as it
forces all users to depend on NET to tell they support BPF_JIT.  Move
the config option to the bottom of the file - this could be a nice place
also for future "selectable" config symbols.

Fix up all users to drop the dependency on NET now that it is not
required to supress warnings for non-NET builds.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-21 12:50:12 -07:00
Clemens Ladisch
26c72e22c9 firewire: sbp2: document the absence of alignment requirements
The SBP-2/3 specifications do not require any alignment of data
buffers; only their own data structures need to be quadlet-aligned
[SR: or octlet-aligned].

Fix the comments to reflect this, but leave the actual alignment at
32 bits to avoid theoretical problems with target implementations
that might handle this incorrectly.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-05-21 21:49:44 +02:00
Linus Torvalds
8e95a53ba4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin
Pull blackfin changes from Bob Liu:
 "The biggest change was added an new processor(bf60x series).

  Bf60x series processor of blackfin can up to 1GHz with Hardware
  Support for HD Video Analytics, it use the same blackfin ISA but with
  some changes on system buses, interrupt controller and peripheral
  devices.

  Added dir arch/blackfin/mach-bf609/ and did some changes to the
  framework made linux working fine on the reference board bf609-ezkit
  now."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin: (41 commits)
  blackfin: fix build after add bf60x mach/pm.h
  blackfin: twi: include linux/i2c.h
  blackfin: bf60x: add head file for crc controller
  blackfin: bf60x: twi: work around temporary anomaly 0501001
  blackfin: twi: Move TWI MMR access macro to twi head file
  blackfin: twi: Move TWI peripheral pin request array to platform data
  blackfin: bf60x: anomaly: Add a temporary anomaly 0501001
  blackfin: bf60x: Rename the DDR controller macro
  blackfin: mach-bf609: pm: cleanup bfin_deepsleep
  blackfin: bf60x: cleanup get clock code
  blackfin: bf60x: pm: Add a debug option to calculate kernel wakeup time.
  blackfin: bf60x: add wakeup source select
  blackfin: bf60x: make clock changeable in kernel menuconfig
  blackfin:mach-bf609: fix norflash for bf609-ezkit
  blackfin: mach-bf609: add can_wakeup to ethernet device
  blackfin: remove redundant CONFIG_BF60x macro
  blackfin: rotary: Add pm_wakeup flag to platform data structure.
  bfin_gpio: fix bf548-ezkit kernel fail to boot
  bfin_dma: fix initcall return error in proc_dma_init()
  Blackfin: delete fork func
  ...
2012-05-21 12:47:53 -07:00
Linus Torvalds
cd975ae0ce Clean up some c6x Kconfig items and add support for Elf FDPIC loader.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJPunCjAAoJEOiN4VijXeFPR3cP+gLDhWJGWC/xnI+vr1WJJxZU
 xJQbaopEyqJa7GBT+3BasCCLUCU7MVIrYaqubzEI4dzVCMDxwuJYPT7m/N3Avssg
 bm1ZaLUnanc8ZLfLHlnsG02xtBtEYI4mUM7ggCfcDJJC0b7tDGcz0kiM2WDGK0fq
 LRbZmlC57qK0UTx2IEvl0DoMuH7pq7N1sSXFr6keBm/lqN7Qj3VtAf/ASVQdIgN8
 TfQiWbu40v8EEcKAZSkVKvhS3kSiPI9Dr1DGeR1JIhjFqFYUaw52aOzNTJyC9k1g
 4oPIoDh0xnSzYrYpetP1gN5bT/FMRcVXLvKM7cIbeUzoAlgnQsBDAGA7x205X8Bf
 ChrQEpm/yKZnwEBtp9uIEQY3rRT7iecqVgeVO5LXskg+/OX0+gO5CtCDPopWzqJN
 wSOCsP9va0G9W0a8G5hKqEGYhbCXDkzU6KzmcgxbxIeF+CvJ+72mWgqxJkF0GtuU
 KCoLQT7Necq+4p/SaiXL7KogS9m2rClbszManceyAYSGwqAPIfU3RzUw+Fz6NcIh
 DrYXNTZelrVN2wrVrlhn3B6GdgfyVabhQ1e3CftmAtbY/i+i/ArHCT9JxjyAHTuV
 ekTnpVVDBZUCUluJXFJKzrvRuSUt9X18AxK0NfJ+xglOPQnPh026K/sCuvmn6mAq
 U1f1XmCqG2l2TDtkZ6Wu
 =q4Z6
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming

Pull c6x updates from Mark Salter:
 "Clean up some c6x Kconfig items and add support for Elf FDPIC loader."

* tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
  C6X: remove unused config items
  C6X: add support to build with BINFMT_ELF_FDPIC
  C6X: change main arch kbuild symbol
2012-05-21 12:46:48 -07:00
Linus Torvalds
881bcabbde Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
Pull m68k updates from Geert Uytterhoeven.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k: Setup CROSS_COMPILE at the top
  m68k: Correct the Atari ALLOWINT definition
  m68k/video: Create <asm/vga.h>
  m68k: Make sure {read,write}s[bwl]() are always defined
  m68k/mm: Port OOM changes to do_page_fault()
  scsi/atari: Make more functions static
  scsi/atari: Revive "atascsi=" setup option
  net/ariadne: Improve debug prints
  m68k/atari: Change VME irq numbers from unsigned long to unsigned int
  m68k/amiga: Use arch_initcall() for registering platform devices
  m68k/amiga: Add error checks when registering platform devices
  m68k/amiga: Mark z_dev_present() __init
  m68k: Remove unused MAX_NOINT_IPL definition
2012-05-21 12:43:54 -07:00
Clemens Ladisch
935f672e02 firewire: sbp2: remove superfluous blk_queue_max_segment_size() call
The SCSI framework automatically initializes the block queue's segment
size with the DMA device's segment size.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-05-21 21:42:51 +02:00
Clemens Ladisch
f203022353 firewire: sbp2: use scsi_dma_(un)map
Use the scsi_dma_map/scsi_dma_unmap helper to simplify the code
a little.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-05-21 21:42:51 +02:00
Clemens Ladisch
473ffe6560 firewire: sbp2: give correct DMA device to scsi framework
The sbp2 driver does DMA not on the unit but on the card device.

The driver worked even with the wrong device because at the moment, it
happens to reimplement the DMA functions of the SCSI framework.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-05-21 21:42:51 +02:00
Linus Torvalds
e60b9a0346 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 updates from Martin Schwidefsky:
 "Just a random collection of bug-fixes and cleanups, nothing new in
  this merge request."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (46 commits)
  s390/ap: Fix wrong or missing comments
  s390/ap: move receive callback to message struct
  s390/dasd: re-prioritize partition detection message
  s390/qeth: reshuffle initialization
  s390/qeth: cleanup drv attr usage
  s390/claw: cleanup drv attr usage
  s390/lcs: cleanup drv attr usage
  s390/ctc: cleanup drv attr usage
  s390/ccwgroup: remove ccwgroup_create_from_string
  s390/qeth: stop using struct ccwgroup driver for discipline callbacks
  s390/qeth: switch to ccwgroup_create_dev
  s390/claw: switch to ccwgroup_create_dev
  s390/lcs: switch to ccwgroup_create_dev
  s390/ctcm: switch to ccwgroup_create_dev
  s390/ccwgroup: exploit ccwdev_by_dev_id
  s390/ccwgroup: introduce ccwgroup_create_dev
  s390: fix race on TIF_MCCK_PENDING
  s390/barrier: make use of fast-bcr facility
  s390/barrier: cleanup barrier functions
  s390/claw: remove "eieio" calls
  ...
2012-05-21 12:41:17 -07:00
Stefan Richter
0ad8c6a22d Linux 3.4
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
 iQEcBAABAgAGBQJPuXBKAAoJEHm+PkMAQRiGzgwH/2F+JOth4pkcGvw0S2Sf1+MS
 iNgYK08xOp/f5VbP8lOfTFjPhCwggSQrq+B2TF2bWYz6vmsQq1e5X319Lcy7cb9h
 GV3HJRKuC38fxT1unXxY+oQYvIRNmNSGD2H1jrb6Ee3gd8tYZ77qxFGskx6sXos2
 74fRiqXQ1AiEj9Sh+6XSYtRwxBfwdGu1RAtpykoZiPfD3+eq07Rhy+r75AtRLKue
 lwHK03hMsRtevGftAFC2q76VVhOFa9EsZ3dMa2Fj1iOcRYEnGy7UnLrgqqyFk1he
 l5ULsg8RPCUunBJuKdmYeIMAKc3ucSv+MuOWzGcYGsja3U6sJbdE+3TUPI3/OWE=
 =8Z08
 -----END PGP SIGNATURE-----

Merge tag 'v3.4' with SCSI updates, needed for subsequent firewire-sbp2 changes

Linux 3.4
2012-05-21 21:39:42 +02:00
Jarkko Sakkinen
b2d668da93 x86, relocs: Build clean fix
relocs was not cleaned up when "make clean" is issued. This
patch fixes the issue.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com>
Link: http://lkml.kernel.org/r/1337622684-6834-1-git-send-email-jarkko.sakkinen@intel.com
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: <stable@vger.kernel.org> v3.4
2012-05-21 12:19:37 -07:00
H. Peter Anvin
d13a822e6d Merge commit 'v3.4' into x86/urgent 2012-05-21 12:17:50 -07:00
Richard Weinberger
875682648b irq: Remove irq_chip->release()
As it's only user (UML) does no longer need it we can get
rid of it.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
2012-05-21 21:09:38 +02:00
Richard Weinberger
985a94a96d um: Remove CONFIG_IRQ_RELEASE_METHOD
UML does no longer need CONFIG_IRQ_RELEASE_METHOD.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
2012-05-21 21:09:37 +02:00
Richard Weinberger
8e514b2a81 um: Remove usage of irq_chip->release()
UML does no longer need irq_chip->release().

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
2012-05-21 21:09:36 +02:00
Richard Weinberger
fa7a0449e0 um: Implement um_free_irq()
Instead of using chip->release() we can achieve the same
using a simple wrapper for free_irq().
We have already um_request_irq(), so um_free_irq() is the perfect
counterpart.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
2012-05-21 21:09:36 +02:00
Richard Weinberger
2b76ebaa72 um: Fix __swp_type()
The current __swp_type() function uses a too small bitshift.
Using more than one swap files causes bad pages because
the type bits clash with other page flags.

CC: stable@kernel.org
Analyzed-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2012-05-21 21:09:35 +02:00
Richard Weinberger
f15b9000eb um: Implement a custom pte_same() function
UML uses the _PAGE_NEWPAGE flag to mark pages which are not jet
installed on the host side using mmap().
pte_same() has to ignore this flag, otherwise unuse_pte_range()
is unable to unuse the page because two identical
page tables entries with different _PAGE_NEWPAGE flags would not
match and swapoff() would never return.

CC: stable@kernel.org
Analyzed-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2012-05-21 21:09:34 +02:00
Richard Weinberger
62179d47c2 um: Add BUG() to do_ops()'s error path
In case we encounter a bad operation in do_ops() something is really
broken and it's better to BUG().

Signed-off-by: Richard Weinberger <richard@nod.at>
2012-05-21 21:09:33 +02:00
Richard Weinberger
54ce9256ad um: Remove unused variables
Signed-off-by: Richard Weinberger <richard@nod.at>
2012-05-21 21:09:32 +02:00
Daniel Vetter
65e8186602 drm/i915: be more careful when returning -ENXIO in gmbus transfer
... flaky ddc hardware can cause a spurious NAK, resulting in the i2c
core and drm edid functions not trying to retry the edid transfer.

Luckily the gmbus quiescenting also times out for these cases, so we
can get out of this mess by returning -ETIMEDOUT for this specific
case. This way we keep the fast-fail of returning -ENXIO if there is
no device present, speeding up the boot process.

This regression has been introduced in

commit e646d57735
Author: Daniel Kurtz <djkurtz@chromium.org>
Date:   Fri Mar 30 19:46:38 2012 +0800

    drm/i915/intel_i2c: always wait for IDLE before clearing NAK

v2: Return -ETIMEDOUT for this case and keep the -ENXIO for real NAKs,
suggested by Daniel Kurtz.

Cc: Daniel Kurtz <djkurtz@chromium.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49518
Reported-and-Tested-by: Julian Simioni <julian.simioni@gmail.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-05-21 21:04:21 +02:00
Al Viro
70b58d896b arm: don't open-code ptrace_report_syscall()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:40:44 -04:00
Al Viro
7d181b9626 arm: bury unused _TIF_RESTORE_SIGMASK
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:40:20 -04:00
Al Viro
fa18484d09 arm: remove unused restart trampoline
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:39:44 -04:00
Al Viro
6b5c8045ec arm: new way of handling ERESTART_RESTARTBLOCK
new "syscall start" flag; handled in syscall_trace() by switching
syscall number to that of syscall_restart(2).  Restarts of that
kind (ERESTART_RESTARTBLOCK) are handled by setting that bit;
syscall number is not modified until the actual call.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:39:11 -04:00
Al Viro
21c1176a72 arm: if we get into work_pending while returning to kernel mode, just go away
checking in do_signal() is pointless - if we get there with !user_mode(regs)
(and we might), we'll end up looping indefinitely.  Check in work_pending
and break out of the loop if so.

Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:38:24 -04:00
Al Viro
d9be5ea6f9 arm: don't call try_to_freeze() from do_signal()
get_signal_to_deliver() will handle it itself

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:37:56 -04:00
Al Viro
7dfae72027 arm: if there's no handler we need to restore sigmask, syscall or no syscall
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:36:45 -04:00
Al Viro
84849b3ed8 arm: trim _TIF_WORK_MASK, get rid of useless test and branch...
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:36:32 -04:00
Al Viro
7f1b5a9966 arm: missing checks of __get_user()/__put_user() return values
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2012-05-21 14:36:30 -04:00