]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
11 years agoMerge branch 'jdelvare-hwmon/master'
Stephen Rothwell [Thu, 15 Nov 2012 00:40:46 +0000 (11:40 +1100)]
Merge branch 'jdelvare-hwmon/master'

11 years agoMerge remote-tracking branch 'i2c-embedded/i2c-embedded/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:39:18 +0000 (11:39 +1100)]
Merge remote-tracking branch 'i2c-embedded/i2c-embedded/for-next'

11 years agoMerge branch 'i2c/master'
Stephen Rothwell [Thu, 15 Nov 2012 00:37:49 +0000 (11:37 +1100)]
Merge branch 'i2c/master'

11 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:36:10 +0000 (11:36 +1100)]
Merge remote-tracking branch 'hid/for-next'

11 years agoMerge remote-tracking branch 'pci/next'
Stephen Rothwell [Thu, 15 Nov 2012 00:32:44 +0000 (11:32 +1100)]
Merge remote-tracking branch 'pci/next'

11 years agoMerge remote-tracking branch 'vfs/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:31:13 +0000 (11:31 +1100)]
Merge remote-tracking branch 'vfs/for-next'

11 years agoMerge remote-tracking branch 'xfs/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:29:37 +0000 (11:29 +1100)]
Merge remote-tracking branch 'xfs/for-next'

11 years agoMerge remote-tracking branch 'ubifs/linux-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:28:00 +0000 (11:28 +1100)]
Merge remote-tracking branch 'ubifs/linux-next'

11 years agoMerge remote-tracking branch 'v9fs/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:27:53 +0000 (11:27 +1100)]
Merge remote-tracking branch 'v9fs/for-next'

11 years agoMerge remote-tracking branch 'ocfs2/linux-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:26:01 +0000 (11:26 +1100)]
Merge remote-tracking branch 'ocfs2/linux-next'

11 years agoMerge remote-tracking branch 'nfsd/nfsd-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:24:20 +0000 (11:24 +1100)]
Merge remote-tracking branch 'nfsd/nfsd-next'

11 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:22:45 +0000 (11:22 +1100)]
Merge remote-tracking branch 'nfs/linux-next'

11 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Thu, 15 Nov 2012 00:21:09 +0000 (11:21 +1100)]
Merge remote-tracking branch 'logfs/master'

11 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Thu, 15 Nov 2012 00:19:37 +0000 (11:19 +1100)]
Merge remote-tracking branch 'gfs2/master'

11 years agoMerge remote-tracking branch 'fuse/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:13:03 +0000 (11:13 +1100)]
Merge remote-tracking branch 'fuse/for-next'

11 years agoMerge remote-tracking branch 'ext4/dev'
Stephen Rothwell [Thu, 15 Nov 2012 00:11:25 +0000 (11:11 +1100)]
Merge remote-tracking branch 'ext4/dev'

11 years agoMerge remote-tracking branch 'ecryptfs/next'
Stephen Rothwell [Thu, 15 Nov 2012 00:09:58 +0000 (11:09 +1100)]
Merge remote-tracking branch 'ecryptfs/next'

11 years agoMerge remote-tracking branch 'cifs/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:08:25 +0000 (11:08 +1100)]
Merge remote-tracking branch 'cifs/for-next'

11 years agoMerge remote-tracking branch 'ceph/master'
Stephen Rothwell [Thu, 15 Nov 2012 00:06:48 +0000 (11:06 +1100)]
Merge remote-tracking branch 'ceph/master'

11 years agoMerge remote-tracking branch 'xtensa/for_next'
Stephen Rothwell [Thu, 15 Nov 2012 00:05:12 +0000 (11:05 +1100)]
Merge remote-tracking branch 'xtensa/for_next'

11 years agoMerge remote-tracking branch 'unicore32/unicore32'
Stephen Rothwell [Thu, 15 Nov 2012 00:03:43 +0000 (11:03 +1100)]
Merge remote-tracking branch 'unicore32/unicore32'

11 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Thu, 15 Nov 2012 00:02:10 +0000 (11:02 +1100)]
Merge remote-tracking branch 's390/features'

11 years agoMerge remote-tracking branch 'parisc/for-next'
Stephen Rothwell [Thu, 15 Nov 2012 00:02:09 +0000 (11:02 +1100)]
Merge remote-tracking branch 'parisc/for-next'

11 years agoMerge remote-tracking branch 'openrisc/for-upstream'
Stephen Rothwell [Thu, 15 Nov 2012 00:00:39 +0000 (11:00 +1100)]
Merge remote-tracking branch 'openrisc/for-upstream'

11 years agoMerge remote-tracking branch 'mips/mips-for-linux-next'
Stephen Rothwell [Wed, 14 Nov 2012 23:59:11 +0000 (10:59 +1100)]
Merge remote-tracking branch 'mips/mips-for-linux-next'

11 years agoMerge remote-tracking branch 'microblaze/next'
Stephen Rothwell [Wed, 14 Nov 2012 23:57:37 +0000 (10:57 +1100)]
Merge remote-tracking branch 'microblaze/next'

11 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Wed, 14 Nov 2012 23:56:06 +0000 (10:56 +1100)]
Merge remote-tracking branch 'm68knommu/for-next'

11 years agoMerge remote-tracking branch 'm68k/for-next'
Stephen Rothwell [Wed, 14 Nov 2012 23:54:39 +0000 (10:54 +1100)]
Merge remote-tracking branch 'm68k/for-next'

11 years agoMerge remote-tracking branch 'ia64/next'
Stephen Rothwell [Wed, 14 Nov 2012 23:53:09 +0000 (10:53 +1100)]
Merge remote-tracking branch 'ia64/next'

11 years agoMerge remote-tracking branch 'cris/for-next'
Stephen Rothwell [Wed, 14 Nov 2012 23:51:39 +0000 (10:51 +1100)]
Merge remote-tracking branch 'cris/for-next'

11 years agoMerge remote-tracking branch 'blackfin/for-linus'
Stephen Rothwell [Wed, 14 Nov 2012 23:50:12 +0000 (10:50 +1100)]
Merge remote-tracking branch 'blackfin/for-linus'

11 years agoMerge remote-tracking branch 'arm64/upstream'
Stephen Rothwell [Wed, 14 Nov 2012 23:48:46 +0000 (10:48 +1100)]
Merge remote-tracking branch 'arm64/upstream'

11 years agoMerge remote-tracking branch 'xilinx/arm-next'
Stephen Rothwell [Wed, 14 Nov 2012 23:47:15 +0000 (10:47 +1100)]
Merge remote-tracking branch 'xilinx/arm-next'

11 years agoMerge remote-tracking branch 'arm-perf/for-next/perf'
Stephen Rothwell [Wed, 14 Nov 2012 23:45:46 +0000 (10:45 +1100)]
Merge remote-tracking branch 'arm-perf/for-next/perf'

11 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Wed, 14 Nov 2012 23:43:50 +0000 (10:43 +1100)]
Merge remote-tracking branch 'arm/for-next'

11 years agoMerge remote-tracking branch 'asm-generic/master'
Stephen Rothwell [Wed, 14 Nov 2012 23:42:22 +0000 (10:42 +1100)]
Merge remote-tracking branch 'asm-generic/master'

11 years agoMerge remote-tracking branch 'spi-current/spi/merge'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:36 +0000 (10:40 +1100)]
Merge remote-tracking branch 'spi-current/spi/merge'

11 years agoMerge remote-tracking branch 'devicetree-current/devicetree/merge'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:25 +0000 (10:40 +1100)]
Merge remote-tracking branch 'devicetree-current/devicetree/merge'

11 years agoMerge remote-tracking branch 'input-current/for-linus'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:13 +0000 (10:40 +1100)]
Merge remote-tracking branch 'input-current/for-linus'

11 years agoMerge remote-tracking branch 'staging.current/staging-linus'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:12 +0000 (10:40 +1100)]
Merge remote-tracking branch 'staging.current/staging-linus'

11 years agoMerge remote-tracking branch 'usb.current/usb-linus'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:12 +0000 (10:40 +1100)]
Merge remote-tracking branch 'usb.current/usb-linus'

11 years agoMerge remote-tracking branch 'tty.current/tty-linus'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:11 +0000 (10:40 +1100)]
Merge remote-tracking branch 'tty.current/tty-linus'

11 years agoMerge remote-tracking branch 'wireless/master'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:10 +0000 (10:40 +1100)]
Merge remote-tracking branch 'wireless/master'

11 years agoMerge remote-tracking branch 'sound-current/for-linus'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:09 +0000 (10:40 +1100)]
Merge remote-tracking branch 'sound-current/for-linus'

11 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:09 +0000 (10:40 +1100)]
Merge remote-tracking branch 'net/master'

11 years agoMerge remote-tracking branch 'arm-current/fixes'
Stephen Rothwell [Wed, 14 Nov 2012 23:40:07 +0000 (10:40 +1100)]
Merge remote-tracking branch 'arm-current/fixes'

11 years agotty: serial: max310x: Add terminating entry for spi_device_id table
Axel Lin [Sun, 4 Nov 2012 15:34:18 +0000 (23:34 +0800)]
tty: serial: max310x: Add terminating entry for spi_device_id table

The spi_device_id table is supposed to be zero-terminated.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoMerge branch 'pstore-mevent' into next
Tony Luck [Wed, 14 Nov 2012 22:35:24 +0000 (14:35 -0800)]
Merge branch 'pstore-mevent' into next

11 years agoefi_pstore: Add a format check for an existing variable name at erasing time
Seiji Aguchi [Wed, 14 Nov 2012 20:29:21 +0000 (20:29 +0000)]
efi_pstore: Add a format check for an existing variable name at erasing time

[Issue]

a format of variable name has been updated to type, id, count and ctime
to support holding multiple logs.

Format of current variable name
  dump-type0-1-2-12345678

  type:0
  id:1
  count:2
  ctime:12345678

On the other hand, if an old variable name before being updated
remains, users can't erase it via /dev/pstore.

Format of old variable name
  dump-type0-1-12345678

  type:0
  id:1
  ctime:12345678

[Solution]

This patch add a format check for the old variable name in a erase callback to make it erasable.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
11 years agoefi_pstore: Add a format check for an existing variable name at reading time
Seiji Aguchi [Wed, 14 Nov 2012 20:28:50 +0000 (20:28 +0000)]
efi_pstore: Add a format check for an existing variable name at reading time

[Issue]

a format of variable name has been updated to type, id, count and ctime
to support holding multiple logs.

Format of current variable name
  dump-type0-1-2-12345678

  type:0
  id:1
  count:2
  ctime:12345678

On the other hand, if an old variable name before being updated
remains, users can't read it via /dev/pstore.

Format of old variable name
  dump-type0-1-12345678

  type:0
  id:1
  ctime:12345678

[Solution]

This patch add a format check for the old variable name in a read callback
to make it readable.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
11 years agoefi_pstore: Add a sequence counter to a variable name
Seiji Aguchi [Wed, 14 Nov 2012 20:28:18 +0000 (20:28 +0000)]
efi_pstore: Add a sequence counter to a variable name

[Issue]

Currently, a variable name, which identifies each entry, consists of type, id and ctime.
But if multiple events happens in a short time, a second/third event may fail to log because
efi_pstore can't distinguish each event with current variable name.

[Solution]

A reasonable way to identify all events precisely is introducing a sequence counter to
the variable name.

The sequence counter has already supported in a pstore layer with "oopscount".
So, this patch adds it to a variable name.
Also, it is passed to read/erase callbacks of platform drivers in accordance with
the modification of the variable name.

  <before applying this patch>
 a variable name of first event: dump-type0-1-12345678
 a variable name of second event: dump-type0-1-12345678

  type:0
  id:1
  ctime:12345678

 If multiple events happen in a short time, efi_pstore can't distinguish them because
 variable names are same among them.

  <after applying this patch>

 it can be distinguishable by adding a sequence counter as follows.

 a variable name of first event: dump-type0-1-1-12345678
 a variable name of Second event: dump-type0-1-2-12345678

  type:0
  id:1
  sequence counter: 1(first event), 2(second event)
  ctime:12345678

In case of a write callback executed in pstore_console_write(), "0" is added to
an argument of the write callback because it just logs all kernel messages and
doesn't need to care about multiple events.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
11 years agoefi_pstore: Add ctime to argument of erase callback
Seiji Aguchi [Wed, 14 Nov 2012 20:27:28 +0000 (20:27 +0000)]
efi_pstore: Add ctime to argument of erase callback

[Issue]

Currently, a variable name, which is used to identify each log entry, consists of type,
id and ctime. But an erase callback does not use ctime.

If efi_pstore supported just one log, type and id were enough.
However, in case of supporting multiple logs, it doesn't work because
it can't distinguish each entry without ctime at erasing time.

 <Example>

 As you can see below, efi_pstore can't differentiate first event from second one without ctime.

 a variable name of first event: dump-type0-1-12345678
 a variable name of second event: dump-type0-1-23456789

  type:0
  id:1
  ctime:1234567823456789

[Solution]

This patch adds ctime to an argument of an erase callback.

It works across reboots because ctime of pstore means the date that the record was originally stored.
To do this, efi_pstore saves the ctime to variable name at writing time and passes it to pstore
at reading time.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
11 years agoefi_pstore: Remove a logic erasing entries from a write callback to hold multiple...
Seiji Aguchi [Wed, 14 Nov 2012 20:26:46 +0000 (20:26 +0000)]
efi_pstore: Remove a logic erasing entries from a write callback to hold multiple logs

[Issue]

Currently, efi_pstore driver simply overwrites existing panic messages in NVRAM.
So, in the following scenario, we will lose 1st panic messages.

1. kernel panics.
2. efi_pstore is kicked and writes panic messages to NVRAM.
3. system reboots.
4. kernel panics again before a user checks the 1st panic messages in NVRAM.

[Solution]

A reasonable solution to fix the issue is just holding multiple logs without erasing
existing entries.
This patch removes a logic erasing existing entries in a write callback
because the logic is not needed in the write callback to support holding multiple logs.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
11 years agoefi_pstore: Add a logic erasing entries to an erase callback
Seiji Aguchi [Wed, 14 Nov 2012 20:26:21 +0000 (20:26 +0000)]
efi_pstore: Add a logic erasing entries to an erase callback

[Issue]

Currently, efi_pstore driver simply overwrites existing panic messages in NVRAM.
So, in the following scenario, we will lose 1st panic messages.

 1. kernel panics.
 2. efi_pstore is kicked and writes panic messages to NVRAM.
 3. system reboots.
 4. kernel panics again before a user checks the 1st panic messages in NVRAM.

[Solution]

A reasonable solution to fix the issue is just holding multiple logs without erasing
existing entries.

This patch freshly adds a logic erasing existing entries, which shared with a write callback,
to an erase callback.
To support holding multiple logs, the write callback doesn't need to erase any entries and
it will be removed in a subsequent patch.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
11 years agoefi_pstore: Check remaining space with QueryVariableInfo() before writing data
Seiji Aguchi [Wed, 14 Nov 2012 20:25:37 +0000 (20:25 +0000)]
efi_pstore: Check remaining space with QueryVariableInfo() before writing data

[Issue]

As discussed in a thread below, Running out of space in EFI isn't a well-tested scenario.
And we wouldn't expect all firmware to handle it gracefully.
http://marc.info/?l=linux-kernel&m=134305325801789&w=2

On the other hand, current efi_pstore doesn't check a remaining space of storage at writing time.
Therefore, efi_pstore may not work if it tries to write a large amount of data.

[Patch Description]

To avoid handling the situation above, this patch checks if there is a space enough to log with
QueryVariableInfo() before writing data.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
11 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
Linus Torvalds [Wed, 14 Nov 2012 21:46:40 +0000 (13:46 -0800)]
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux

Pull power tools fixes from Len Brown:
 "A pair of power tools patches -- a 3.7 regression fix plus a bug fix."

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
  tools/power turbostat: graceful fail on garbage input
  tools/power turbostat: Repair Segmentation fault when using -i option

11 years agoMerge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Linus Torvalds [Wed, 14 Nov 2012 21:45:23 +0000 (13:45 -0800)]
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus

Pull MIPS update from Ralf Baechle:
 "To avoid unnecessary risk and work the preemption fixes are combined
  with some preparatory work that isn't strictly required.  So it's
  really just 3 fixes:

   - Get is_compat_task() to do the right thing while simplifying it.
     The unnecessary complexity hid a rarely striking bug which could be
     triggered by ext3/ext4 under certain circumstances.
   - Resolve a preemption issue in the irqflags.h functions for kernels
     built to support pre-MIPS32 / pre-MIPS64 Release 2 processors.
   - Fix the interrupt number of the MIPS Malta's CBUS UART."

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
  MIPS: Malta: Fix interupt number of CBUS UART.
  MIPS: Make irqflags.h functions preempt-safe for non-mipsr2 cpus
  MIPS: Remove irqflags.h dependency from bitops.h
  MIPS: bitops.h: Change use of 'unsigned short' to 'int'
  MIPS: compat: Delete now unused TIF_32BIT.
  MIPS: compat: Implement is_compat_task() by testing for 32-bit address space.
  MIPS: compat: Fix use of TIF_32BIT_ADDR vs _TIF_32BIT_ADDR

11 years agoMerge branch 'for-3.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj...
Linus Torvalds [Wed, 14 Nov 2012 21:44:04 +0000 (13:44 -0800)]
Merge branch 'for-3.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup

Pull cgroup fixes from Tejun Heo:
 "This contains two fix patches for device_cgroup.  One fixes a
  regression introduced earlier in 3.7 cycle where device_cgroup could
  try to dereference the NULL parent of the root cgroup.  The other one
  is RCU usage fix."

* 'for-3.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  device_cgroup: fix RCU usage
  device_cgroup: fix unchecked cgroup parent usage

11 years agoxfs: remove xfs_flushinval_pages
Dave Chinner [Mon, 12 Nov 2012 11:53:57 +0000 (22:53 +1100)]
xfs: remove xfs_flushinval_pages

It's just a simple wrapper around VFS functionality, and is actually
bugging in that it doesn't remove mappings before invalidating the
page cache. Remove it and replace it with the correct VFS
functionality.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Andrew Dahl <adahl@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
11 years agoxfs: remove xfs_flush_pages
Dave Chinner [Mon, 12 Nov 2012 11:53:56 +0000 (22:53 +1100)]
xfs: remove xfs_flush_pages

It is a complex wrapper around VFS functions, but there are VFS
functions that provide exactly the same functionality. Call the VFS
functions directly and remove the unnecessary indirection and
complexity.

We don't need to care about clearing the XFS_ITRUNCATED flag, as
that is done during .writepages. Hence is cleared by the VFS
writeback path if there is anything to write back during the flush.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Andrew Dahl <adahl@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
11 years agoxfs: remove xfs_wait_on_pages()
Dave Chinner [Mon, 12 Nov 2012 11:53:55 +0000 (22:53 +1100)]
xfs: remove xfs_wait_on_pages()

It's just a simple wrapper around a VFS function that is only called
by another function in xfs_fs_subr.c. Remove it and call the VFS
function directly.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Andrew Dahl <adahl@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
11 years agoxfs: reverse the check on XFS_IOC_ZERO_RANGE
Andrew Dahl [Wed, 14 Nov 2012 18:52:26 +0000 (12:52 -0600)]
xfs: reverse the check on XFS_IOC_ZERO_RANGE

Reversing the check on XFS_IOC_ZERO_RANGE.

Range should be zeroed if the start is less than or equal to the end.

Signed-off-by: Andrew Dahl <adahl@sgi.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
11 years agoxfs: remove xfs_tosspages
Dave Chinner [Wed, 14 Nov 2012 06:42:47 +0000 (17:42 +1100)]
xfs: remove xfs_tosspages

It's a buggy, unnecessary wrapper that is duplicating
truncate_pagecache_range().

When replacing the call in xfs_change_file_space(), also ensure that
the length being allocated/freed is always positive before making
any changes. These checks are done in the lower extent manipulation
functions, too, but we need to do them before any page cache
operations.

Reported-by: Andrew Dahl <adahl@sgi.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-By: Andrew Dahl <adahl@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
11 years agoTTY: hvc_console, fix port reference count going to zero prematurely
Paul Mackerras [Wed, 14 Nov 2012 08:15:47 +0000 (19:15 +1100)]
TTY: hvc_console, fix port reference count going to zero prematurely

Commit bdb498c20040 "TTY: hvc_console, add tty install" took the port
refcounting out of hvc_open()/hvc_close(), but failed to remove the
kref_put() and tty_kref_put() calls in hvc_hangup() that were there to
remove the extra references that hvc_open() had taken.

The result was that doing a vhangup() when the current terminal was
a hvc_console, then closing the current terminal, would end up calling
destroy_hvc_struct() and making the port disappear entirely.  This
meant that Fedora 17 systems would boot up but then not display the
login prompt on the console, and attempts to open /dev/hvc0 would
give a "No such device" error.

This fixes it by removing the extra kref_put() and tty_kref_put() calls.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agobrcmfmac: fix typo in CONFIG_BRCMISCAN
Hauke Mehrtens [Sun, 4 Nov 2012 22:13:09 +0000 (23:13 +0100)]
brcmfmac: fix typo in CONFIG_BRCMISCAN

The old ifdef CONFIG_BRCMFISCAN looks wrong to me and it makes more
sense when CONFIG_BRCMISCAN is used.
This patch was just compile tested by me, but not runtime tested.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
11 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth...
John W. Linville [Wed, 14 Nov 2012 19:17:58 +0000 (14:17 -0500)]
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth

11 years agoMerge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
John W. Linville [Wed, 14 Nov 2012 19:16:54 +0000 (14:16 -0500)]
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes

11 years agoMerge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
John W. Linville [Wed, 14 Nov 2012 19:15:43 +0000 (14:15 -0500)]
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211

11 years agoi2c: omap: cleanup the sysc write
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:43 +0000 (17:53 +0530)]
i2c: omap: cleanup the sysc write

Currently after the reset the sysc is written with hardcoded values.
The patch reads the sysc register and writes back the same value
after reset.

- Some unnecessary rev checks can be optimised.
- Also due to whatever reason the hwmod flags are changed
we will not reset the values.
- In some of the cases the minor values of the 2430 register
is different(0x37) in that case the autoidle setting may be missed.

Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: Restore i2c context always
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:42 +0000 (17:53 +0530)]
i2c: omap: Restore i2c context always

Currently the restore is done based on the flag
OMAP_I2C_FLAG_RESET_REGS_POSTIDLE.

This helps the following
- The driver is always capable of restoring regardless
of the off mode support being there or not.

- While testing omap2430 it is found that in case of certain
error paths (timeout) a reset is done. However the restore
never happens as it is dependent on the POSTIDLE flag.
The other option would be to call a restore in the reset
case. As there are only a few registers to be restored
the penalty in the idle case should not be much.

Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: make reset a seperate function
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:41 +0000 (17:53 +0530)]
i2c: omap: make reset a seperate function

Implement reset as a separate function.
This will enable us to make sure that we don't do the
calculation again on every transfer.
Also at probe the reset is not added as the hwmod is doing that
for us.

Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: re-factor omap_i2c_init function
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:40 +0000 (17:53 +0530)]
i2c: omap: re-factor omap_i2c_init function

re-factor omap_i2c_init() so that we can re-use it for resume.
While at it also remove the bufstate variable as we write it
in omap_i2c_resize_fifo for every transfer.

Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoARM: i2c: omap: Remove the i207 errata flag
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:39 +0000 (17:53 +0530)]
ARM: i2c: omap: Remove the i207 errata flag

The commit [i2c: omap: use revision check for OMAP_I2C_FLAG_APPLY_ERRATA_I207]
uses the revision id instead of the flag. So the flag can be safely removed.

Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: remove the dtrev
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:38 +0000 (17:53 +0530)]
i2c: omap: remove the dtrev

The dtrev is used only for the comments. Remove the same and use
the scheme instead to know if it is version2.

Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: use revision check for OMAP_I2C_FLAG_APPLY_ERRATA_I207
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:37 +0000 (17:53 +0530)]
i2c: omap: use revision check for OMAP_I2C_FLAG_APPLY_ERRATA_I207

The errata i207 is enabled for 2430 and 3xxx. Use the revision check
to enable the erratum instead.

Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: Fix the revision register read
Shubhrajyoti D [Mon, 5 Nov 2012 12:23:36 +0000 (17:53 +0530)]
i2c: omap: Fix the revision register read

The revision register on OMAP4 is a 16-bit lo and a 16-bit
hi. Currently the driver reads only the lower 8-bits.
Fix the same by preventing the truncating of the rev register
for OMAP4.

Also use the scheme bit ie bit-14 of the hi register to know if it
is OMAP_I2C_IP_VERSION_2.

On platforms previous to OMAP4 the offset 0x04 is IE register whose
bit-14 reset value is 0, the code uses the same to its advantage.

Also since the omap_i2c_read_reg uses reg_map_ip_* a raw_readw is done
to fetch the revision register.

The dev->regs is populated after reading the rev_hi. A NULL check
has been added in the resume handler to prevent the access before
the setting of the regs.

Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: adopt pinctrl support
Sebastien Guiriec [Tue, 16 Oct 2012 15:23:20 +0000 (15:23 +0000)]
i2c: omap: adopt pinctrl support

Some GPIO expanders need some early pin control muxing. Due to
legacy boards sometimes the driver uses subsys_initcall instead of
module_init. This patch takes advantage of defer probe feature
and pin control in order to wait until pin control probing before
GPIO driver probing. It has been tested on OMAP5 board with TCA6424
driver.

Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
Acked-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: omap: ensure writes to dev->buf_len are ordered
Felipe Balbi [Wed, 14 Nov 2012 14:22:45 +0000 (16:22 +0200)]
i2c: omap: ensure writes to dev->buf_len are ordered

if we allow compiler reorder our writes, we could
fall into a situation where dev->buf_len is reset
for no apparent reason.

This bug was found with a simple script which would
transfer data to an i2c client from 1 to 1024 bytes
(a simple for loop), when we got to transfer sizes
bigger than the fifo size, dev->buf_len was reset
to zero before we had an oportunity to handle XDR
Interrupt. Because dev->buf_len was zero, we entered
omap_i2c_transmit_data() to transfer zero bytes,
which would mean we would just silently exit
omap_i2c_transmit_data() without actually writing
anything to DATA register. That would cause XDR
IRQ to trigger forever and we would never transfer
the remaining bytes.

After adding the memory barrier, we also drop resetting
dev->buf_len to zero in omap_i2c_xfer_msg() because
both omap_i2c_transmit_data() and omap_i2c_receive_data()
will act until dev->buf_len reaches zero, rendering the
other write in omap_i2c_xfer_msg() redundant.

This patch has been tested with pandaboard for a few
iterations of the script mentioned above.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agonfsd4: get_backchannel_cred should be static
Fengguang Wu [Tue, 13 Nov 2012 20:41:27 +0000 (15:41 -0500)]
nfsd4: get_backchannel_cred should be static

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
11 years agonfsd4: init_session should be declared static
Fengguang Wu [Sat, 10 Nov 2012 12:20:25 +0000 (07:20 -0500)]
nfsd4: init_session should be declared static

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
11 years agoARM: zynq: add clk binding support to the ttc
Josh Cartwright [Wed, 31 Oct 2012 19:56:14 +0000 (13:56 -0600)]
ARM: zynq: add clk binding support to the ttc

Add support for retrieving TTC configuration from device tree.  This
includes the ability to pull information about the driving clocks from
the of_clk bindings.

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
11 years agoARM: zynq: use zynq clk bindings
Josh Cartwright [Thu, 8 Nov 2012 18:04:26 +0000 (12:04 -0600)]
ARM: zynq: use zynq clk bindings

Make the Zynq platform use the newly created zynq clk bindings.

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
11 years agoclk: Add support for fundamental zynq clks
Josh Cartwright [Tue, 13 Nov 2012 23:26:48 +0000 (17:26 -0600)]
clk: Add support for fundamental zynq clks

Provide simplified models for the necessary clocks on the zynq-7000
platform.  Currently, the PLLs, the CPU clock network, and the basic
peripheral clock networks (for SDIO, SMC, SPI, QSPI, UART) are modelled.

OF bindings are also provided and documented.

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Mike Turquette <mturquette@linaro.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
11 years agoALSA: usb-audio: Fix mutex deadlock at disconnection
Takashi Iwai [Tue, 13 Nov 2012 10:22:48 +0000 (11:22 +0100)]
ALSA: usb-audio: Fix mutex deadlock at disconnection

The recent change for USB-audio disconnection race fixes introduced a
mutex deadlock again.  There is a circular dependency between
chip->shutdown_rwsem and pcm->open_mutex, depicted like below, when a
device is opened during the disconnection operation:

A. snd_usb_audio_disconnect() ->
     card.c::register_mutex ->
       chip->shutdown_rwsem (write) ->
         snd_card_disconnect() ->
           pcm.c::register_mutex ->
             pcm->open_mutex

B. snd_pcm_open() ->
     pcm->open_mutex ->
       snd_usb_pcm_open() ->
         chip->shutdown_rwsem (read)

Since the chip->shutdown_rwsem protection in the case A is required
only for turning on the chip->shutdown flag and it doesn't have to be
taken for the whole operation, we can reduce its window in
snd_usb_audio_disconnect().

Reported-by: Jiri Slaby <jslaby@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
11 years agoRevert "ARM: OMAP: convert I2C driver to PM QoS for MPU latency constraints"
Paul Walmsley [Tue, 6 Nov 2012 16:31:32 +0000 (16:31 +0000)]
Revert "ARM: OMAP: convert I2C driver to PM QoS for MPU latency constraints"

This reverts commit 3db11feffc1ad2ab9dea27789e6b5b3032827adc
(ARM: OMAP: convert I2C driver to PM QoS for MPU latency constraints).
This commit causes I2C timeouts to appear on several OMAP3430/3530-based
boards:

  http://marc.info/?l=linux-arm-kernel&m=135071372426971&w=2
  http://marc.info/?l=linux-arm-kernel&m=135067558415214&w=2
  http://marc.info/?l=linux-arm-kernel&m=135216013608196&w=2

and appears to have been sent for merging before one of its prerequisites
was merged:

  http://marc.info/?l=linux-arm-kernel&m=135219411617621&w=2

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoMerge branch 'execve' into upstream
Catalin Marinas [Wed, 14 Nov 2012 10:12:54 +0000 (10:12 +0000)]
Merge branch 'execve' into upstream

* execve:
  arm64: Use generic sys_execve() implementation
  arm64: Use generic kernel_execve() implementation
  arm64: Use generic kernel_thread() implementation

11 years agoarm64: mm: update max_dma32 before calculating size of NORMAL zone
Will Deacon [Mon, 12 Nov 2012 19:19:35 +0000 (19:19 +0000)]
arm64: mm: update max_dma32 before calculating size of NORMAL zone

Commit f483a853b0b9 ("arm64: mm: fix booting on systems with no memory
below 4GB") sets max_dma32 to the minimum of the maximum pfn and
MAX_DMA32_PFN. This value is later used as the base of the NORMAL zone,
which is incorrect when MAX_DMA32_PFN is below the minimum pfn (i.e. all
memory is above 4GB).

This patch fixes the problem by ensuring that max_dma32 is always set to
the end of the DMA32 zone.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
11 years agoarm64: Make the user fault reporting more specific
Catalin Marinas [Wed, 24 Oct 2012 15:34:02 +0000 (16:34 +0100)]
arm64: Make the user fault reporting more specific

For user space faults the kernel reports "unhandled page fault" and it
gives the ESR value. With this patch the error message looked up in the
fault info array to give a better description.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
11 years agoGFS2: skip dlm_unlock calls in unmount
David Teigland [Tue, 13 Nov 2012 15:58:56 +0000 (10:58 -0500)]
GFS2: skip dlm_unlock calls in unmount

When unmounting, gfs2 does a full dlm_unlock operation on every
cached lock.  This can create a very large amount of work and can
take a long time to complete.  However, the vast majority of these
dlm unlock operations are unnecessary because after all the unlocks
are done, gfs2 leaves the dlm lockspace, which automatically clears
the locks of the leaving node, without unlocking each one individually.
So, gfs2 can skip explicit dlm unlocks, and use dlm_release_lockspace to
remove the locks implicitly.  The one exception is when the lock's lvb is
being used.  In this case, dlm_unlock is called because it may update the
lvb of the resource.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
11 years agoi2c: at91: fix SMBus quick command
Ludovic Desroches [Tue, 13 Nov 2012 15:43:21 +0000 (16:43 +0100)]
i2c: at91: fix SMBus quick command

The driver claims to support SMBus quick command but it was not the
case. This patch fixes this issue. Without it, i2cdetect finds imaginary
devices. And with some IP versions, trying to send 0 byte can cause
issue when writing data to an EEPROM.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
[wsa: improved the commit message]

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoi2c: i2c-gpio: fix name issue with multiple i2c gpio nodes
Bo Shen [Mon, 15 Oct 2012 07:51:17 +0000 (15:51 +0800)]
i2c: i2c-gpio: fix name issue with multiple i2c gpio nodes

When having multiple i2c-gpio nodes, the name for each is same.
So add the patch to fix it.

The adap->name printing information was added by myself

without this patch the log information is as following
---<8---
adap->name = i2c-gpio-1
i2c-gpio i2c.2: using pins 30 (SDA) and 31 (SCL)
adap->name = i2c-gpio-1
i2c-gpio i2c.3: using pins 64 (SDA) and 65 (SCL)
--->8---

with this patch, the log information is as following
---<8---
adap->name = i2c.2
i2c-gpio i2c.2: using pins 30 (SDA) and 31 (SCL)
adap->name = i2c.3
i2c-gpio i2c.3: using pins 64 (SDA) and 65 (SCL)
--->8---

Signed-off-by: Bo Shen <voice.shen@atmel.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
[wsa: minor fixes to the commit mesage]

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
11 years agoALSA: fm801: precedence bug in snd_fm801_tea575x_get_pins()
Dan Carpenter [Wed, 14 Nov 2012 08:23:54 +0000 (11:23 +0300)]
ALSA: fm801: precedence bug in snd_fm801_tea575x_get_pins()

There is a precedence bug because | has higher precedence than ?:.  This
code was cut and pasted and I fixed a similar bug a few days ago.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
11 years agom68k/sun3: Fix instruction faults
Thomas Bogendoerfer [Sun, 11 Nov 2012 12:28:37 +0000 (13:28 +0100)]
m68k/sun3: Fix instruction faults

We need to bring in the page where the instruction fault happened.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agom68k/sun3: Get interrupts working again
Thomas Bogendoerfer [Sun, 11 Nov 2012 12:28:33 +0000 (13:28 +0100)]
m68k/sun3: Get interrupts working again

SUN3 Intregister is not for enabling individual interrupts, but to enable
special interrupts. So using it for interrupt enable/disable was wrong.
The clock interrupt needs some special treatment to keep ticking.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agom68k: move to a single instance of free_initmem()
Greg Ungerer [Tue, 23 Oct 2012 03:40:36 +0000 (13:40 +1000)]
m68k: move to a single instance of free_initmem()

Currently each sub-architecture has its own implementation if init_freemem().
There is two different cases that the various implementations deal with.
They either free the init memory, or they don't. We only need a single instance
to cover all cases.

The non-MMU version did some page alignment twidling, but this is not
neccessary. The current linker script enforces page alignment. It also
checked for CONFIG_RAMKERNEL, but this also is not necessary, the linker
script always keeps the init sections in RAM.

The MMU ColdFire version of free_initmem() was empty. There is no reason it
can't carry out the freeing of the init memory. So it is now changed and
tested to do this.

For the other MMU cases the code is the same. For the general Motorola MMU
case we free the init memory. For the SUN3 case we do nothing (though I
think it could safely free the init memory as well).

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agom68k: merge MMU and non-MMU versions of mm/init.c
Greg Ungerer [Wed, 24 Oct 2012 12:36:27 +0000 (22:36 +1000)]
m68k: merge MMU and non-MMU versions of mm/init.c

Some of the code in the existing mm/init_mm.c and mm/init_no.c files is
the same, and if we merge them back to a single file we can save some code
duplication.

Although the old mem_init() code for non-MMU was a little different than
the MMU version, it turns out we can use the same code. So I now we just
use the MMU mem_init() code for all. It also means we now get identical
console info messages for this code on kernel boot up.

So merge the two files back into a single file.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agom68k: switch to using the asm-generic termios.h
Greg Ungerer [Tue, 30 Oct 2012 06:24:37 +0000 (16:24 +1000)]
m68k: switch to using the asm-generic termios.h

We don't need a local termios.h, switch to using the asm-generic versions.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agom68k: switch to using the asm-generic termbits.h
Greg Ungerer [Tue, 30 Oct 2012 06:24:36 +0000 (16:24 +1000)]
m68k: switch to using the asm-generic termbits.h

We don't need a local termbits.h, switch to using the asm-generic version.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agom68k: switch to using the asm-generic sockios.h
Greg Ungerer [Tue, 30 Oct 2012 06:24:35 +0000 (16:24 +1000)]
m68k: switch to using the asm-generic sockios.h

We don't need a local sockios.h, switch to using the asm-generic version.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agom68k: switch to using the asm-generic socket.h
Greg Ungerer [Tue, 30 Oct 2012 06:24:34 +0000 (16:24 +1000)]
m68k: switch to using the asm-generic socket.h

We don't need a local socket.h, switch to using the asm-generic version.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>