openwrt/staging/blogic.git
13 years agoxfs: use proper interfaces for on-stack plugging
Christoph Hellwig [Wed, 30 Mar 2011 11:05:09 +0000 (11:05 +0000)]
xfs: use proper interfaces for on-stack plugging

Add proper blk_start_plug/blk_finish_plug pairs for the two places where
we issue buffer I/O, and remove the blk_flush_plug in xfs_buf_lock and
xfs_buf_iowait, given that context switches already flush the per-process
plugging lists.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: fix xfs_debug warnings
Christoph Hellwig [Sat, 2 Apr 2011 18:13:40 +0000 (18:13 +0000)]
xfs: fix xfs_debug warnings

For a CONFIG_XFS_DEBUG=n build gcc complains about statements with no
effect in xfs_debug:

fs/xfs/quota/xfs_qm_syscalls.c: In function 'xfs_qm_scall_trunc_qfiles':
fs/xfs/quota/xfs_qm_syscalls.c:291:3: warning: statement with no effect

The reason for that is that the various new xfs message functions have a
return value which is never used, and in case of the non-debug build
xfs_debug the macro evaluates to a plain 0 which produces the above
warnings.  This can be fixed by turning xfs_debug into an inline function
instead of a macro, but in addition to that I've also changed all the
message helpers to return void as we never use their return values.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: fix variable set but not used warnings
Christoph Hellwig [Mon, 4 Apr 2011 12:55:44 +0000 (12:55 +0000)]
xfs: fix variable set but not used warnings

GCC 4.6 now warnings about variables set but not used.  Fix the trivially
fixable warnings of this sort.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: convert log tail checking to a warning
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: convert log tail checking to a warning

On the Power platform, the log tail debug checks fire excessively
causing the system to panic early in testing. The debug checks are
known to be racy, though on x86_64 there is no evidence that they
trigger at all.

We want to keep the checks active on debug systems to alert us to
problems with log space accounting, but we need to reduce the impact
of a racy check on testing on the Power platform.

As a result, convert the ASSERT conditions to warnings, and
allow them to fire only once per filesystem mount. This will prevent
false positives from interfering with testing, whilst still
providing us with the indication that they may be a problem with log
space accounting should that occur.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: catch bad block numbers freeing extents.
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: catch bad block numbers freeing extents.

A fuzzed filesystem crashed a kernel when freeing an extent with a
block number beyond the end of the filesystem. Convert all the debug
asserts in xfs_free_extent() to active checks so that we catch bad
extents and return that the filesytsem is corrupted rather than
crashing.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: push the AIL from memory reclaim and periodic sync
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: push the AIL from memory reclaim and periodic sync

When we are short on memory, we want to expedite the cleaning of
dirty objects.  Hence when we run short on memory, we need to kick
the AIL flushing into action to clean as many dirty objects as
quickly as possible.  To implement this, sample the lsn of the log
item at the head of the AIL and use that as the push target for the
AIL flush.

Further, we keep items in the AIL that are dirty that are not
tracked any other way, so we can get objects sitting in the AIL that
don't get written back until the AIL is pushed. Hence to get the
filesystem to the idle state, we might need to push the AIL to flush
out any remaining dirty objects sitting in the AIL. This requires
the same push mechanism as the reclaim push.

This patch also renames xfs_trans_ail_tail() to xfs_ail_min_lsn() to
match the new xfs_ail_max_lsn() function introduced in this patch.
Similarly for xfs_trans_ail_push -> xfs_ail_push.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: clean up code layout in xfs_trans_ail.c
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: clean up code layout in xfs_trans_ail.c

This patch rearranges the location of functions in xfs_trans_ail.c
to remove the need for forward declarations of those functions in
preparation for adding new functions without the need for forward
declarations.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: convert the xfsaild threads to a workqueue
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: convert the xfsaild threads to a workqueue

Similar to the xfssyncd, the per-filesystem xfsaild threads can be
converted to a global workqueue and run periodically by delayed
works. This makes sense for the AIL pushing because it uses
variable timeouts depending on the work that needs to be done.

By removing the xfsaild, we simplify the AIL pushing code and
remove the need to spread the code to implement the threading
and pushing across multiple files.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: introduce background inode reclaim work
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: introduce background inode reclaim work

Background inode reclaim needs to run more frequently that the XFS
syncd work is run as 30s is too long between optimal reclaim runs.
Add a new periodic work item to the xfs syncd workqueue to run a
fast, non-blocking inode reclaim scan.

Background inode reclaim is kicked by the act of marking inodes for
reclaim.  When an AG is first marked as having reclaimable inodes,
the background reclaim work is kicked. It will continue to run
periodically untill it detects that there are no more reclaimable
inodes. It will be kicked again when the first inode is queued for
reclaim.

To ensure shrinker based inode reclaim throttles to the inode
cleaning and reclaim rate but still reclaim inodes efficiently, make it kick the
background inode reclaim so that when we are low on memory we are
trying to reclaim inodes as efficiently as possible. This kick shoul
d not be necessary, but it will protect against failures to kick the
background reclaim when inodes are first dirtied.

To provide the rate throttling, make the shrinker pass do
synchronous inode reclaim so that it blocks on inodes under IO. This
means that the shrinker will reclaim inodes rather than just
skipping over them, but it does not adversely affect the rate of
reclaim because most dirty inodes are already under IO due to the
background reclaim work the shrinker kicked.

These two modifications solve one of the two OOM killer invocations
Chris Mason reported recently when running a stress testing script.
The particular workload trigger for the OOM killer invocation is
where there are more threads than CPUs all unlinking files in an
extremely memory constrained environment. Unlike other solutions,
this one does not have a performance impact on performance when
memory is not constrained or the number of concurrent threads
operating is <= to the number of CPUs.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: convert ENOSPC inode flushing to use new syncd workqueue
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: convert ENOSPC inode flushing to use new syncd workqueue

On of the problems with the current inode flush at ENOSPC is that we
queue a flush per ENOSPC event, regardless of how many are already
queued. Thi can result in    hundreds of queued flushes, most of
which simply burn CPU scanned and do no real work. This simply slows
down allocation at ENOSPC.

We really only need one active flush at a time, and we can easily
implement that via the new xfs_syncd_wq. All we need to do is queue
a flush if one is not already active, then block waiting for the
currently active flush to complete. The result is that we only ever
have a single ENOSPC inode flush active at a time and this greatly
reduces the overhead of ENOSPC processing.

On my 2p test machine, this results in tests exercising ENOSPC
conditions running significantly faster - 042 halves execution time,
083 drops from 60s to 5s, etc - while not introducing test
regressions.

This allows us to remove the old xfssyncd threads and infrastructure
as they are no longer used.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: introduce a xfssyncd workqueue
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: introduce a xfssyncd workqueue

All of the work xfssyncd does is background functionality. There is
no need for a thread per filesystem to do this work - it can al be
managed by a global workqueue now they manage concurrency
effectively.

Introduce a new gglobal xfssyncd workqueue, and convert the periodic
work to use this new functionality. To do this, use a delayed work
construct to schedule the next running of the periodic sync work
for the filesystem. When the sync work is complete, queue a new
delayed work for the next running of the sync work.

For laptop mode, we wait on completion for the sync works, so ensure
that the sync work queuing interface can flush and wait for work to
complete to enable the work queue infrastructure to replace the
current sequence number and wakeup that is used.

Because the sync work does non-trivial amounts of work, mark the
new work queue as CPU intensive.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: fix extent format buffer allocation size
Dave Chinner [Fri, 8 Apr 2011 02:45:07 +0000 (12:45 +1000)]
xfs: fix extent format buffer allocation size

When formatting an inode item, we have to allocate a separate buffer
to hold extents when there are delayed allocation extents on the
inode and it is in extent format. The allocation size is derived
from the in-core data fork representation, which accounts for
delayed allocation extents, while the on-disk representation does
not contain any delalloc extents.

As a result of this mismatch, the allocated buffer can be far larger
than needed to hold the real extent list which, due to the fact the
inode is in extent format, is limited to the size of the literal
area of the inode. However, we can have thousands of delalloc
extents, resulting in an allocation size orders of magnitude larger
than is needed to hold all the real extents.

Fix this by limiting the size of the buffer being allocated to the
size of the literal area of the inodes in the filesystem (i.e. the
maximum size an inode fork can grow to).

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Alex Elder <aelder@sgi.com>
13 years agoxfs: fix unreferenced var error in xfs_buf.c
Dave Chinner [Tue, 29 Mar 2011 07:09:20 +0000 (07:09 +0000)]
xfs: fix unreferenced var error in xfs_buf.c

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
13 years agoLinux 2.6.39-rc1
Linus Torvalds [Tue, 29 Mar 2011 19:09:47 +0000 (12:09 -0700)]
Linux 2.6.39-rc1

13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc
Linus Torvalds [Tue, 29 Mar 2011 19:09:30 +0000 (12:09 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/cjb/mmc

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (26 commits)
  mmc: SDHI should depend on SUPERH || ARCH_SHMOBILE
  mmc: tmio_mmc: Move some defines into a shared header
  mmc: tmio: support aggressive clock gating
  mmc: tmio: fix power-mode interpretation
  mmc: tmio: remove work-around for unmasked SDIO interrupts
  sh: fix SDHI IO address-range
  ARM: mach-shmobile: fix SDHI IO address-range
  mmc: tmio: only access registers above 0xff, if available
  mfd: remove now redundant sh_mobile_sdhi.h header
  sh: convert boards to use linux/mmc/sh_mobile_sdhi.h
  ARM: mach-shmobile: convert boards to use linux/mmc/sh_mobile_sdhi.h
  mmc: tmio: convert the SDHI MMC driver from MFD to a platform driver
  sh: ecovec: use the CONFIG_MMC_TMIO symbols instead of MFD
  mmc: tmio: split core functionality, DMA and MFD glue
  mmc: tmio: use PIO for short transfers
  mmc: tmio-mmc: Improve DMA stability on sh-mobile
  mmc: fix mmc_app_send_scr() for dma transfer
  mmc: sdhci-esdhc: enable esdhc on imx53
  mmc: sdhci-esdhc: use writel/readl as general APIs
  mmc: sdhci: add the abort CMDTYPE bits definition
  ...

13 years agoMerge branch 'frv' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux...
Linus Torvalds [Tue, 29 Mar 2011 18:43:30 +0000 (11:43 -0700)]
Merge branch 'frv' of git://git./linux/kernel/git/dhowells/linux-2.6-frv

* 'frv' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-frv:
  FRV: Use generic show_interrupts()
  FRV: Convert genirq namespace
  frv: Select GENERIC_HARDIRQS_NO_DEPRECATED
  frv: Convert cpu irq_chip to new functions
  frv: Convert mb93493 irq_chip to new functions
  frv: Convert mb93093 irq_chip to new function
  frv: Convert mb93091 irq_chip to new functions
  frv: Fix typo from __do_IRQ overhaul
  frv: Remove stale irq_chip.end
  FRV: Do some cleanups
  FRV: Missing node arg in alloc_thread_info_node() macro
  NOMMU: implement access_remote_vm
  NOMMU: support SMP dynamic percpu_alloc
  NOMMU: percpu should use is_vmalloc_addr().

13 years agoMerge branch 'stable/bug-fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Tue, 29 Mar 2011 18:36:52 +0000 (11:36 -0700)]
Merge branch 'stable/bug-fixes-rc1' of git://git./linux/kernel/git/konrad/xen

* 'stable/bug-fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
  xen: Use new irq_move functions
  xen: Convert genirq namespace
  xen: fix p2m section mismatches
  xen/p2m: Allocate p2m tracking pages on override
  xen-gntdev: unlock on error path in gntdev_mmap()
  xen-gntdev: return -EFAULT on copy_to_user failure

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
Linus Torvalds [Tue, 29 Mar 2011 18:20:09 +0000 (11:20 -0700)]
Merge git://git./linux/kernel/git/wim/linux-2.6-watchdog

* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
  watchdog: softdog.c: enhancement to optionally invoke panic instead of reboot on timer expiry
  watchdog: fix nv_tco section mismatch
  watchdog: sp5100_tco.c: Check if firmware has set correct value in tcobase.
  watchdog: Convert release_resource to release_region/release_mem_region
  watchdog: s3c2410_wdt.c: Convert release_resource to release_region/release_mem_region

13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
Linus Torvalds [Tue, 29 Mar 2011 18:11:18 +0000 (11:11 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/bp/bp

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
  amd64_edac: Fix potential memleak

13 years agoMerge branch 'irq-final-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Tue, 29 Mar 2011 17:46:15 +0000 (10:46 -0700)]
Merge branch 'irq-final-for-linus-v2' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'irq-final-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (111 commits)
  gpio: ab8500: Mark broken
  genirq: Remove move_*irq leftovers
  genirq: Remove compat code
  drivers: Final irq namespace conversion
  mn10300: Use generic show_interrupts()
  mn10300: Cleanup irq_desc access
  mn10300: Convert genirq namespace
  frv: Use generic show_interrupts()
  frv: Convert genirq namespace
  frv: Select GENERIC_HARDIRQS_NO_DEPRECATED
  frv: Convert cpu irq_chip to new functions
  frv: Convert mb93493 irq_chip to new functions
  frv: Convert mb93093 irq_chip to new function
  frv: Convert mb93091 irq_chip to new functions
  frv: Fix typo from __do_IRQ overhaul
  frv: Remove stale irq_chip.end
  m68k: Convert irq function namespace
  xen: Use new irq_move functions
  xen: Cleanup genirq namespace
  unicore32: Use generic show_interrupts()
  ...

13 years agochar/tpm: Fix unitialized usage of data buffer
Peter Huewe [Tue, 29 Mar 2011 11:31:25 +0000 (13:31 +0200)]
char/tpm: Fix unitialized usage of data buffer

This patch fixes information leakage to the userspace by initializing
the data buffer to zero.

Reported-by: Peter Huewe <huewe.external@infineon.com>
Signed-off-by: Peter Huewe <huewe.external@infineon.com>
Signed-off-by: Marcel Selhorst <m.selhorst@sirrix.com>
[ Also removed the silly "* sizeof(u8)".  If that isn't 1, we have way
  deeper problems than a simple multiplication can fix.   - Linus ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoamd64_edac: Fix potential memleak
Borislav Petkov [Tue, 29 Mar 2011 16:10:53 +0000 (18:10 +0200)]
amd64_edac: Fix potential memleak

We check the pointers together but at least one of them could be invalid
due to failed allocation. Since we cannot continue if either of the two
allocations has failed, exit early by freeing them both.

Cc: <stable@kernel.org> # 38.x
Reported-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
13 years agofs: don't use igrab() while holding i_lock
Dave Chinner [Tue, 29 Mar 2011 07:08:50 +0000 (18:08 +1100)]
fs: don't use igrab() while holding i_lock

Fix the incorrect use of igrab() inside the i_lock in NFS and Ceph‥

If we are already holding the i_lock, we have a reference to the
inode so we can safely use ihold() to gain an extra reference. This
avoids hangs due to lock recursion on the i_lock now that the
inode_lock is gone and igrab() uses the i_lock itself.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: linux-fsdevel@vger.kernel.org
Cc: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Tue, 29 Mar 2011 14:41:33 +0000 (07:41 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)
  xfrm: Restrict extended sequence numbers to esp
  xfrm: Check for esn buffer len in xfrm_new_ae
  xfrm: Assign esn pointers when cloning a state
  xfrm: Move the test on replay window size into the replay check functions
  netdev: bfin_mac: document TE setting in RMII modes
  drivers net: Fix declaration ordering in inline functions.
  cxgb3: Apply interrupt coalescing settings to all queues
  net: Always allocate at least 16 skb frags regardless of page size
  ipv4: Don't ip_rt_put() an error pointer in RAW sockets.
  net: fix ethtool->set_flags not intended -EINVAL return value
  mlx4_en: Fix loss of promiscuity
  tg3: Fix inline keyword usage
  tg3: use <linux/io.h> and <linux/uaccess.h> instead <asm/io.h> and <asm/uaccess.h>
  net: use CHECKSUM_NONE instead of magic number
  Net / jme: Do not use legacy PCI power management
  myri10ge: small rx_done refactoring
  bridge: notify applications if address of bridge device changes
  ipv4: Fix IP timestamp option (IPOPT_TS_PRESPEC) handling in ip_options_echo()
  can: c_can: Fix tx_bytes accounting
  can: c_can_platform: fix irq check in probe
  ...

13 years agoxen: Use new irq_move functions
Thomas Gleixner [Thu, 24 Mar 2011 20:37:31 +0000 (21:37 +0100)]
xen: Use new irq_move functions

These functions take irq_data as an argument and avoid a redundant
lookup in the sparse irq case.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
13 years agoxen: Convert genirq namespace
Thomas Gleixner [Fri, 25 Mar 2011 10:01:39 +0000 (11:01 +0100)]
xen: Convert genirq namespace

Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
13 years agoxen: fix p2m section mismatches
Randy Dunlap [Thu, 24 Mar 2011 20:34:32 +0000 (13:34 -0700)]
xen: fix p2m section mismatches

Fix section mismatch warnings:
set_phys_range_identity() is called by __init xen_set_identity(),
so also mark set_phys_range_identity() as __init.
then:
__early_alloc_p2m() is called set_phys_range_identity(), so also mark
__early_alloc_p2m() as __init.

WARNING: arch/x86/built-in.o(.text+0x7856): Section mismatch in reference from the function __early_alloc_p2m() to the function .init.text:extend_brk()
The function __early_alloc_p2m() references
the function __init extend_brk().
This is often because __early_alloc_p2m lacks a __init
annotation or the annotation of extend_brk is wrong.

WARNING: arch/x86/built-in.o(.text+0x7967): Section mismatch in reference from the function set_phys_range_identity() to the function .init.text:extend_brk()
The function set_phys_range_identity() references
the function __init extend_brk().
This is often because set_phys_range_identity lacks a __init
annotation or the annotation of extend_brk is wrong.

[v2: Per Stephen Hemming recommonedation made __early_alloc_p2m static]
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
13 years agoFRV: Use generic show_interrupts()
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
FRV: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agoFRV: Convert genirq namespace
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
FRV: Convert genirq namespace

Convert to new function names.  Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agofrv: Select GENERIC_HARDIRQS_NO_DEPRECATED
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
frv: Select GENERIC_HARDIRQS_NO_DEPRECATED

All chips converted

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agofrv: Convert cpu irq_chip to new functions
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
frv: Convert cpu irq_chip to new functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agofrv: Convert mb93493 irq_chip to new functions
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
frv: Convert mb93493 irq_chip to new functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agofrv: Convert mb93093 irq_chip to new function
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
frv: Convert mb93093 irq_chip to new function

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agofrv: Convert mb93091 irq_chip to new functions
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
frv: Convert mb93091 irq_chip to new functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agofrv: Fix typo from __do_IRQ overhaul
Thomas Gleixner [Tue, 29 Mar 2011 13:05:13 +0000 (14:05 +0100)]
frv: Fix typo from __do_IRQ overhaul

Compiles way better.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agofrv: Remove stale irq_chip.end
Thomas Gleixner [Tue, 29 Mar 2011 13:05:12 +0000 (14:05 +0100)]
frv: Remove stale irq_chip.end

irq_chip.end got obsolete with the removal of __do_IRQ().

irq-mb93093.c even lacks an implementation, but nobody noticed that
it's broken since commit 88d6e1 in 2006.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agoFRV: Do some cleanups
Amerigo Wang [Tue, 29 Mar 2011 13:05:12 +0000 (14:05 +0100)]
FRV: Do some cleanups

1. frv doesn't support SMP, remove the useless SMP bits.

2. frv has its own alloc_task_struct, so define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
   (I am not sure if frv should use generic alloc_task_struct().)

Signed-off-by: WANG Cong <amwang@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
13 years agoFRV: Missing node arg in alloc_thread_info_node() macro
David Howells [Tue, 29 Mar 2011 13:05:12 +0000 (14:05 +0100)]
FRV: Missing node arg in alloc_thread_info_node() macro

There are two alloc_thread_info_node() macros defined (one for debugging and
one for normal).  The commit that changed them most recently:

commit b6a84016bd2598e35ead635147fa53619982648d
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Tue Mar 22 16:30:42 2011 -0700
Subject: mm: NUMA aware alloc_thread_info_node()

didn't add the node argument into the macro argument list for the normal macro.
This results in the following error:

kernel/fork.c:267:39: error: macro "alloc_thread_info_node" passed 2 arguments, but takes just 1
kernel/fork.c: In function 'dup_task_struct':
kernel/fork.c:267: error: 'alloc_thread_info_node' undeclared (first use in this function)
kernel/fork.c:267: error: (Each undeclared identifier is reported only once
kernel/fork.c:267: error: for each function it appears in.)

Signed-off-by: David Howells <dhowells@redhat.com>
13 years agoNOMMU: implement access_remote_vm
Mike Frysinger [Tue, 29 Mar 2011 13:05:12 +0000 (14:05 +0100)]
NOMMU: implement access_remote_vm

Recent vm changes brought in a new function which the core procfs code
utilizes.  So implement it for nommu systems too to avoid link failures.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Simon Horman <horms@verge.net.au>
Tested-by: Ithamar Adema <ithamar.adema@team-embedded.nl>
Acked-by: Greg Ungerer <gerg@uclinux.org>
13 years agogpio: ab8500: Mark broken
Thomas Gleixner [Tue, 29 Mar 2011 02:02:50 +0000 (04:02 +0200)]
gpio: ab8500: Mark broken

This driver is broken in several aspects.

 1) old style irq_chip functions. Sigh

 2) Abuse of the unlock callback. That's not supposed to be a state
    machine for evrything and some more.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agogenirq: Remove move_*irq leftovers
Thomas Gleixner [Tue, 29 Mar 2011 00:51:13 +0000 (02:51 +0200)]
genirq: Remove move_*irq leftovers

All users converted to new interface.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agogenirq: Remove compat code
Thomas Gleixner [Mon, 28 Mar 2011 11:32:20 +0000 (13:32 +0200)]
genirq: Remove compat code

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agodrivers: Final irq namespace conversion
Thomas Gleixner [Mon, 28 Mar 2011 15:49:12 +0000 (17:49 +0200)]
drivers: Final irq namespace conversion

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agomn10300: Use generic show_interrupts()
Thomas Gleixner [Thu, 24 Mar 2011 17:54:24 +0000 (18:54 +0100)]
mn10300: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agomn10300: Cleanup irq_desc access
Thomas Gleixner [Thu, 24 Mar 2011 16:36:37 +0000 (17:36 +0100)]
mn10300: Cleanup irq_desc access

The migration needs only access to irq_data.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agomn10300: Convert genirq namespace
Thomas Gleixner [Thu, 24 Mar 2011 16:35:56 +0000 (17:35 +0100)]
mn10300: Convert genirq namespace

Convert to new function names. Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Use generic show_interrupts()
Thomas Gleixner [Thu, 24 Mar 2011 17:48:36 +0000 (18:48 +0100)]
frv: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Convert genirq namespace
Thomas Gleixner [Thu, 24 Mar 2011 15:38:49 +0000 (16:38 +0100)]
frv: Convert genirq namespace

Convert to new function names. Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Select GENERIC_HARDIRQS_NO_DEPRECATED
Thomas Gleixner [Sun, 6 Feb 2011 19:20:39 +0000 (20:20 +0100)]
frv: Select GENERIC_HARDIRQS_NO_DEPRECATED

All chips converted

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
LKML-Reference: <20110206192106.601290592@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Convert cpu irq_chip to new functions
Thomas Gleixner [Sun, 6 Feb 2011 19:20:38 +0000 (20:20 +0100)]
frv: Convert cpu irq_chip to new functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
LKML-Reference: <20110206192106.501651128@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Convert mb93493 irq_chip to new functions
Thomas Gleixner [Sun, 6 Feb 2011 19:20:37 +0000 (20:20 +0100)]
frv: Convert mb93493 irq_chip to new functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
LKML-Reference: <20110206192106.401266547@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Convert mb93093 irq_chip to new function
Thomas Gleixner [Sun, 6 Feb 2011 19:20:36 +0000 (20:20 +0100)]
frv: Convert mb93093 irq_chip to new function

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
LKML-Reference: <20110206192106.300303769@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Convert mb93091 irq_chip to new functions
Thomas Gleixner [Sun, 6 Feb 2011 19:20:35 +0000 (20:20 +0100)]
frv: Convert mb93091 irq_chip to new functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
LKML-Reference: <20110206192106.203431646@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Fix typo from __do_IRQ overhaul
Thomas Gleixner [Sun, 6 Feb 2011 19:20:34 +0000 (20:20 +0100)]
frv: Fix typo from __do_IRQ overhaul

Compiles way better.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
LKML-Reference: <20110206192106.109992056@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agofrv: Remove stale irq_chip.end
Thomas Gleixner [Sun, 6 Feb 2011 19:20:33 +0000 (20:20 +0100)]
frv: Remove stale irq_chip.end

irq_chip.end got obsolete with the removal of __do_IRQ().

irq-mb93093.c even lacks an implementation, but nobody noticed that
it's broken since commit 88d6e1 in 2006.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
LKML-Reference: <20110206192106.011224503@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agom68k: Convert irq function namespace
Thomas Gleixner [Mon, 28 Mar 2011 11:31:17 +0000 (13:31 +0200)]
m68k: Convert irq function namespace

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoxen: Use new irq_move functions
Thomas Gleixner [Thu, 24 Mar 2011 20:31:25 +0000 (21:31 +0100)]
xen: Use new irq_move functions

These functions take irq_data as an argument and avoid a redundant
lookup in the sparse irq case.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
13 years agoxen: Cleanup genirq namespace
Thomas Gleixner [Fri, 25 Mar 2011 09:58:06 +0000 (10:58 +0100)]
xen: Cleanup genirq namespace

Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agounicore32: Use generic show_interrupts()
Thomas Gleixner [Thu, 24 Mar 2011 17:26:42 +0000 (18:26 +0100)]
unicore32: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agounicore32: Convert to new irq function names
Thomas Gleixner [Thu, 24 Mar 2011 17:26:16 +0000 (18:26 +0100)]
unicore32: Convert to new irq function names

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agosparc: Use generic show_interrupts()
Thomas Gleixner [Thu, 24 Mar 2011 17:03:13 +0000 (18:03 +0100)]
sparc: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: sparclinux@vger.kernel.org
13 years agosparc: Convert to new irq function names
Thomas Gleixner [Thu, 24 Mar 2011 16:52:54 +0000 (17:52 +0100)]
sparc: Convert to new irq function names

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: sparclinux@vger.kernel.org
13 years agosparc: Cleanup direct irq_desc access
Thomas Gleixner [Thu, 24 Mar 2011 16:57:12 +0000 (17:57 +0100)]
sparc: Cleanup direct irq_desc access

Use the proper wrapper functions.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: sparclinux@vger.kernel.org
13 years agosparc: Use the new genirq functionality
Thomas Gleixner [Thu, 24 Mar 2011 08:03:45 +0000 (09:03 +0100)]
sparc: Use the new genirq functionality

Make use of the new features in genirq:

1) Set the chip flag IRCHIP_EOI_IF_HANDLED, which ensures in the
   core code that irq_eoi() is only called when the interrupt was
   handled. That removes the extra status check in the callback.

2) Use the preflow handler, which is called from the fasteoi core code
   before the device handler. That avoids another status check and the
   open coded handler redirection.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: sparclinux@vger.kernel.org
13 years agosh: Convert to new function names
Thomas Gleixner [Thu, 24 Mar 2011 15:31:17 +0000 (16:31 +0100)]
sh: Convert to new function names

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agosh: Use the proper accessor functions
Thomas Gleixner [Thu, 24 Mar 2011 13:47:46 +0000 (14:47 +0100)]
sh: Use the proper accessor functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: Use generic show_interrupts()
Thomas Gleixner [Fri, 25 Mar 2011 16:04:59 +0000 (17:04 +0100)]
powerpc: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: Convert to new irq_* function names
Thomas Gleixner [Fri, 25 Mar 2011 15:45:20 +0000 (16:45 +0100)]
powerpc: Convert to new irq_* function names

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: irq: Use irqdata based information
Thomas Gleixner [Fri, 25 Mar 2011 15:36:35 +0000 (16:36 +0100)]
powerpc: irq: Use irqdata based information

We want to tighten the irq_desc access. So use the new accessors for
the same information.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc-fsl-msi-use-irqd.patch
Thomas Gleixner [Mon, 28 Mar 2011 14:46:02 +0000 (16:46 +0200)]
powerpc-fsl-msi-use-irqd.patch

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: xilinx: Cleanup flow type handling
Thomas Gleixner [Fri, 25 Mar 2011 15:26:01 +0000 (16:26 +0100)]
powerpc: xilinx: Cleanup flow type handling

The core irq_set_type() function updates the flow type when the chip
callback returns 0. So setting the type is bogus. The core also
updates the LEVEL flag.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: uic: Cleanup flow type handling
Thomas Gleixner [Fri, 25 Mar 2011 15:23:57 +0000 (16:23 +0100)]
powerpc: uic: Cleanup flow type handling

The core irq_set_type() function updates the flow type when the chip
callback returns 0. So setting the type is bogus. The core also
updates IRQ_LEVEL.

Use irq_data to get the level type information in the chip functions.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: mpic: Cleanup flow type handling
Thomas Gleixner [Fri, 25 Mar 2011 15:20:15 +0000 (16:20 +0100)]
powerpc: mpic: Cleanup flow type handling

The core irq_set_type() function updates the flow type when the chip
callback returns 0. So setting the type is bogus.

The new core code allows to update the type in irq_data and return
IRQ_SET_MASK_OK_NOCOPY, so the core code will not touch it, except for
setting the IRQ_LEVEL flag.

Retrieve the IRQ_LEVEL information from irq_data which avoids a
redundant sparse irq lookup as well.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: mpc8xx_pic: Cleanup flow type handling
Thomas Gleixner [Fri, 25 Mar 2011 15:18:32 +0000 (16:18 +0100)]
powerpc: mpc8xx_pic: Cleanup flow type handling

The core irq_set_type() function updates the flow type when the chip
callback returns 0. So setting the type is bogus. The level flag is
updated in the core as well.

Use the proper accessors for setting the irq handlers.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: ipic: Cleanup flow type handling
Thomas Gleixner [Fri, 25 Mar 2011 15:16:30 +0000 (16:16 +0100)]
powerpc: ipic: Cleanup flow type handling

The core irq_set_type() function updates the flow type when the chip
callback returns 0. So setting the type is bogus.

The new core code allows to update the type in irq_data and return
IRQ_SET_MASK_OK_NOCOPY, so the core code will not touch it, except for
setting the IRQ_LEVEL flag.

Use the proper accessors for setting the irq handlers.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: cpm2_pic: Use IRQCHIP_EOI_IF_HANDLED
Thomas Gleixner [Fri, 25 Mar 2011 15:13:38 +0000 (16:13 +0100)]
powerpc: cpm2_pic: Use IRQCHIP_EOI_IF_HANDLED

The core code provides the same functionality when the
IRQCHIP_EOI_IF_HANDLED flag is set for the irq chip.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: cpm2_pic: Cleanup flow type handling
Thomas Gleixner [Fri, 25 Mar 2011 15:07:51 +0000 (16:07 +0100)]
powerpc: cpm2_pic: Cleanup flow type handling

The core irq_set_type() function updates the flow type when the chip
callback returns 0. So setting the type is bogus.

The new core code allows to update the type in irq_data and return
IRQ_SET_MASK_OK_NOCOPY, so the core code will not touch it, except for
setting the IRQ_LEVEL flag.

Use the proper accessors for setting the irq handlers.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: cell: Fix the irq_desc access
Thomas Gleixner [Fri, 25 Mar 2011 15:04:41 +0000 (16:04 +0100)]
powerpc: cell: Fix the irq_desc access

The core irq_set_type() function updates the flow type when the chip
callback returns 0. It also updates irq_data, so this can be used in
irq_ack() to check for the level bit. That avoids a redundant sparse
irq lookup.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: mac: pic: Use irqd_is_level_type()
Thomas Gleixner [Fri, 25 Mar 2011 15:03:07 +0000 (16:03 +0100)]
powerpc: mac: pic: Use irqd_is_level_type()

No need for a redundant sparse irq lookup. irqdata provides the same
information.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: media5200: Remove pointless set_irq_type()
Thomas Gleixner [Fri, 25 Mar 2011 14:54:03 +0000 (15:54 +0100)]
powerpc: media5200: Remove pointless set_irq_type()

The irq chip has no irq_set_type() callback. So calling the call is
pointless. Set IRQ_LEVEL via the proper accessor.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agopowerpc: Use proper accessors for IRQ_* flags
Thomas Gleixner [Fri, 25 Mar 2011 14:43:57 +0000 (15:43 +0100)]
powerpc: Use proper accessors for IRQ_* flags

Use the proper accessors instead of open access to irq_desc.
Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoparisc: Use irq_to_desc() in show_interrupts()
Thomas Gleixner [Mon, 28 Mar 2011 11:47:54 +0000 (13:47 +0200)]
parisc: Use irq_to_desc() in show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoparisc: Convert irq namespace
Thomas Gleixner [Thu, 24 Mar 2011 16:41:44 +0000 (17:41 +0100)]
parisc: Convert irq namespace

Convert to the new function names. Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: linux-parisc@vger.kernel.org
13 years agoparisc: Convert the final irq bits
Thomas Gleixner [Thu, 24 Mar 2011 16:48:47 +0000 (17:48 +0100)]
parisc: Convert the final irq bits

1) As promised in the comment, the core does not copy cpumask anymore
   when the arch code returns -EINVAL

2) Get the per cpu information from irq_data

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: linux-parisc@vger.kernel.org
13 years agomips: vr41xx: Use irdq_irq_disabled()
Thomas Gleixner [Mon, 28 Mar 2011 11:59:54 +0000 (13:59 +0200)]
mips: vr41xx: Use irdq_irq_disabled()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoMIPS: Convert the irq functions to the new names
Thomas Gleixner [Sun, 27 Mar 2011 13:19:28 +0000 (15:19 +0200)]
MIPS: Convert the irq functions to the new names

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoMIPS: alchemy: Use proper irq accessors
Thomas Gleixner [Sun, 27 Mar 2011 13:11:13 +0000 (15:11 +0200)]
MIPS: alchemy: Use proper irq accessors

This really starts to be a sysiphean task.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoMIPS: Octeon: Simplify irq_cpu_on/offline irq chip functions
Thomas Gleixner [Sun, 27 Mar 2011 14:04:30 +0000 (16:04 +0200)]
MIPS: Octeon: Simplify irq_cpu_on/offline irq chip functions

Make use of the IRQCHIP_ONOFFLINE_ENABLED flag and remove the
wrappers. Use irqd_irq_disabled() instead of desc->status, which will
go away.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: David Daney <ddaney@caviumnetworks.com>
13 years agoMIPS: Octeon: Rewrite interrupt handling code.
David Daney [Fri, 25 Mar 2011 19:38:51 +0000 (12:38 -0700)]
MIPS: Octeon: Rewrite interrupt handling code.

This includes conversion to new style irq_chip functions, and
correctly enabling/disabling per-CPU interrupts.

The hardware interrupt bit to irq number mapping is now done with a
flexible map, instead of by bit twiddling the irq number.

[ tglx: Adjusted to new irq_cpu_on/offline callbacks and
        __irq_set_affinity_lock ]

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Cc: ralf@linux-mips.org
LKML-Reference: <1301081931-11240-5-git-send-email-ddaney@caviumnetworks.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoMIPS: Fix syncfs syscall copy and paste failure
Thomas Gleixner [Sun, 27 Mar 2011 14:54:26 +0000 (16:54 +0200)]
MIPS: Fix syncfs syscall copy and paste failure

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agomicroblaze: Use generic show_interrupts()
Thomas Gleixner [Thu, 24 Mar 2011 13:55:52 +0000 (14:55 +0100)]
microblaze: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agomicroblaze: Convert to new irq function names
Thomas Gleixner [Thu, 24 Mar 2011 13:52:04 +0000 (14:52 +0100)]
microblaze: Convert to new irq function names

Namespace conversion scripted with coccinelle.

Also retrieve the irq type from irq_data in intc_enable_or_unmask()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: Remove redundant declaration of irq_desc[]
Thomas Gleixner [Mon, 28 Mar 2011 11:50:08 +0000 (13:50 +0200)]
ia64: Remove redundant declaration of irq_desc[]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: Convert to the new irq_* function names
Thomas Gleixner [Fri, 25 Mar 2011 20:06:09 +0000 (21:06 +0100)]
ia64: Convert to the new irq_* function names

Scripted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: Use generic show_interrupts()
Thomas Gleixner [Fri, 25 Mar 2011 20:04:38 +0000 (21:04 +0100)]
ia64: Use generic show_interrupts()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: Use irqd_irq_disabled() instead of desc->status access
Thomas Gleixner [Fri, 25 Mar 2011 19:50:49 +0000 (20:50 +0100)]
ia64: Use irqd_irq_disabled() instead of desc->status access

Remove the last open coded access to irq_desc.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: sn: Use irqd_mark_affinity_set() helper
Thomas Gleixner [Fri, 25 Mar 2011 19:43:34 +0000 (20:43 +0100)]
ia64: sn: Use irqd_mark_affinity_set() helper

irq_desc->status is going to be restricted. Provide a helper to set
that information in irq_data, where it belongs.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: msi: Use irq_move_irq()
Thomas Gleixner [Fri, 25 Mar 2011 19:36:55 +0000 (20:36 +0100)]
ia64: msi: Use irq_move_irq()

This replaces the old move_native_irq() function which is going away.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: sn: Use irq_move_irq()
Thomas Gleixner [Fri, 25 Mar 2011 19:35:17 +0000 (20:35 +0100)]
ia64: sn: Use irq_move_irq()

This replaces the old move_native_irq() function which is going away.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
13 years agoia64: iosapic: Use new irq_move_* functions
Thomas Gleixner [Fri, 25 Mar 2011 19:30:53 +0000 (20:30 +0100)]
ia64: iosapic: Use new irq_move_* functions

The current functions are going away.

Also use the accessor for pending setaffinity in irq_data instead of
the open coded irq_desc access.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>