12 years agosh: rework ipr code
Magnus Damm [Fri, 15 Jun 2007 09:56:19 +0000]
sh: rework ipr code

This patch reworks the ipr code by grouping the offset array together
with the ipr_data structure in a new data structure called ipr_desc.
This new structure also contains the name of the controller in struct
irq_chip. The idea behind putting struct irq_chip in there is that we
can use offsetof() to locate the base addresses in the irq_chip
callbacks. This strategy has much in common with the recently merged
intc2 code.

One logic change has been made - the original ipr code enabled the
interrupts by default but with this patch they are all disabled by
default.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Only support PMB for SH-X cores.
Paul Mundt [Fri, 15 Jun 2007 09:30:42 +0000]
sh: Only support PMB for SH-X cores.

We don't have a PMB for SH-X2 or later, so only enable it for
the few CPUs that support it. Fixes up the boot for SH4AL-DSP.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: rework intc2 code
Magnus Damm [Fri, 15 Jun 2007 01:41:54 +0000]
sh: rework intc2 code

The shared intc2 code currently contains cpu-specific #ifdefs.
This is a tad unclean and it prevents us from using the shared code
to drive board-specific irqs on the se7780 board.

This patch reworks the intc2 code by moving the base addresses of
the intc2 registers into struct intc2_desc. This new structure also
contains the name of the controller in struct irq_chip. The idea
behind putting struct irq_chip in there is that we can use offsetof()
to locate the base addresses in the irq_chip callbacks.

One logic change has been made - the original shared intc2 code
enabled the interrupts by default but with this patch they are all
disabled by default.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fix up the math-emu build.
Paul Mundt [Mon, 11 Jun 2007 06:57:42 +0000]
sh: Fix up the math-emu build.

math-emu wasn't converted for the trap_no/errno_code changes,
get it building again.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Kill off broken dma page ops.
Paul Mundt [Mon, 11 Jun 2007 06:56:31 +0000]
sh: Kill off broken dma page ops.

There's no point in keeping these around, they've been broken
for some time, and the dmaenging/async_tx framework provides a
far more reasonable interface.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agofs: hugetlbfs: Disable for shnommu.
Paul Mundt [Mon, 11 Jun 2007 06:35:34 +0000]
fs: hugetlbfs: Disable for shnommu.

SH can turn CONFIG_MMU on and off, don't let us get to a state
where hugetlbfs/hugetlbpage gets built when building for nommu.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fixup misaligned data for sh2 lockdep.
Paul Mundt [Mon, 11 Jun 2007 06:33:44 +0000]
sh: Fixup misaligned data for sh2 lockdep.

lockdep/irqflags tracing on SH-2 ends up with a misaligned
branch, fix it.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Tidy up dependencies for SH-2 build.
Paul Mundt [Mon, 11 Jun 2007 06:32:07 +0000]
sh: Tidy up dependencies for SH-2 build.

SH-2 can presently get in to some pretty bogus states, so
we tidy up the dependencies a bit and get it all building
again.

This gets us a bit closer to a functional allyesconfig
and allmodconfig, though there are still a few things to
fix up.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Provide a defconfig for R7780MP.
Yoshihiro Shimoda [Mon, 11 Jun 2007 01:26:56 +0000]
sh: Provide a defconfig for R7780MP.

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Compile fix for SH7604 removal.
Paul Mundt [Mon, 11 Jun 2007 01:18:45 +0000]
sh: Compile fix for SH7604 removal.

There was a last remaining reference to CPU_SH7604 that broke
the build, kill that off too.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Warn against direct inclusion of <asm/rwsem.h>.
Robert P. J. Day [Fri, 8 Jun 2007 02:56:31 +0000]
sh: Warn against direct inclusion of <asm/rwsem.h>.

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Kill off dead SH7604 support.
Paul Mundt [Fri, 8 Jun 2007 02:55:28 +0000]
sh: Kill off dead SH7604 support.

This was added during 2.5.x, but was never moved along. This
can easily be resurrected if someone has one they wish to work
with, but it's not worth keeping around in its current form.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: memory hot-add for sparsemem users support.
Paul Mundt [Thu, 7 Jun 2007 02:32:52 +0000]
sh: memory hot-add for sparsemem users support.

This enables simple hotplug support for sparsemem users. Presently
this only permits memory being added in to node 0 on ZONE_NORMAL.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fix up cpu to node mapping in sysfs.
Paul Mundt [Thu, 7 Jun 2007 02:29:37 +0000]
sh: Fix up cpu to node mapping in sysfs.

Currently cpu_to_node() is always 0 in the UP case, though
we do want to have the CPU association linked in under sysfs
even in the cases where we're only on a single CPU.

Fix this up, so we have the cpu0 link on all of the available
nodes that don't already have a CPU link of their own.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fix the SH7722 flatmem build.
Paul Mundt [Wed, 6 Jun 2007 10:05:11 +0000]
sh: Fix the SH7722 flatmem build.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Make NUMA depend on sparsemem.
Paul Mundt [Wed, 6 Jun 2007 10:04:22 +0000]
sh: Make NUMA depend on sparsemem.

The only platforms that are supporting NUMA are doing so via
sparsemem, so update the dependency.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: URAM node support for SH7722.
Paul Mundt [Wed, 6 Jun 2007 08:58:56 +0000]
sh: URAM node support for SH7722.

This adds the URAM block on SH7722 as a separate node.
Sparsemem is required for this, or it can simply be disabled
by explicitly selecting a flatmem model.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Support for multiple nodes.
Paul Mundt [Wed, 6 Jun 2007 08:52:19 +0000]
sh: Support for multiple nodes.

This adds basic support for multiple nodes on SH machines.
This is primarily useful for boards with many different
memory blocks that are otherwise unused (SH7722/SH7785 URAM
and so forth).

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Use asm/sections.h for linker section symbols.
Paul Mundt [Wed, 6 Jun 2007 03:23:06 +0000]
sh: Use asm/sections.h for linker section symbols.

Kill off a bunch of externs, and use sections.h instead..

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fix up max_zone_pfns[] with multiple nodes.
Paul Mundt [Wed, 6 Jun 2007 03:09:54 +0000]
sh: Fix up max_zone_pfns[] with multiple nodes.

Currently using multiple nodes tramples the ZONE_NORMAL
max low pfn, tidy up the logic a bit to get it all working
as expected.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Default to 4-byte alignment for SLUB objects.
Paul Mundt [Mon, 4 Jun 2007 06:46:56 +0000]
sh: Default to 4-byte alignment for SLUB objects.

Slub currently defaults to 8-byte alignment for the kmalloc
and slab minalign values, where 4 will suffice. In the slab
case BYTES_PER_WORD == 4 already, so defining the minalign
values outright doesn't cause any regressions there either.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Wire up mempolicy syscalls.
Paul Mundt [Mon, 4 Jun 2007 05:37:04 +0000]
sh: Wire up mempolicy syscalls.

Wire up mbind and get/set_mempolicy() in their reserved places.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Tidy compiler warnings for SH-2A build.
Paul Mundt [Fri, 1 Jun 2007 08:26:13 +0000]
sh: Tidy compiler warnings for SH-2A build.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Wrap CPU tuning through cc-option.
Paul Mundt [Fri, 1 Jun 2007 08:25:42 +0000]
sh: Wrap CPU tuning through cc-option.

Some compilers don't support the explicit CPU tuning, while binutils
is still able to handle the special subtype-specific opcodes. Make
the CFLAG optional, falling back on the compiler default if nothing
better exists.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Enable IPR-IRQ for SH7206.
Paul Mundt [Fri, 1 Jun 2007 08:23:14 +0000]
sh: Enable IPR-IRQ for SH7206.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Mark sparsemem regions present earlier.
Paul Mundt [Fri, 1 Jun 2007 08:04:36 +0000]
sh: Mark sparsemem regions present earlier.

We have to call in to sparse_memory_present_with_active_regions()
earlier in order for sparsemem to be happy. This was being called
too late, and was causing troubles with the platforms that needed
to enable sparsemem.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Register multiple nodes in topology_init().
Paul Mundt [Fri, 1 Jun 2007 05:21:13 +0000]
sh: Register multiple nodes in topology_init().

If we have multiple nodes, register these at topology_init() time.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Allow for bootmem debug support.
Paul Mundt [Fri, 1 Jun 2007 05:19:22 +0000]
sh: Allow for bootmem debug support.

Handy for debugging bootmem troubles.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: sparsemem support.
Paul Mundt [Wed, 23 May 2007 08:48:36 +0000]
sh: sparsemem support.

This implements basic sparsemem support for SH. Presently this only
uses static sparsemem, and we still permit explicit selection of
flatmem. Those boards that want sparsemem can select it as usual.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: pfn_valid() depends on flatmem.
Paul Mundt [Wed, 23 May 2007 08:40:56 +0000]
sh: pfn_valid() depends on flatmem.

pfn_valid() is already defined in the sparsemem case, so we only
need to define this for CONFIG_FLATMEM.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Add L-BOX RE2 to mach-types.
Nobuhiro Iwamatsu [Wed, 23 May 2007 03:56:24 +0000]
sh: Add L-BOX RE2 to mach-types.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Align .machvec.init section on a 4-byte boundary.
Takashi YOSHII [Wed, 23 May 2007 03:34:13 +0000]
sh: Align .machvec.init section on a 4-byte boundary.

.machvec.init can be misaligned with the recent machvec changes,
forcibly align it on the boundary that it expects, as before.

Signed-off-by: Takashi YOSHII <takashi.yoshii.ze@hitachi.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fix SH-4 CPU selects.
Paul Mundt [Tue, 15 May 2007 07:25:47 +0000]
sh: Fix SH-4 CPU selects.

Now that select no longer works for selecting the "closest" CPU,
we have to explicitly reference the precise sub-type in the few
places where it actually matters (presently only setup code and
some legacy sh-sci cruft).

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Rip out special unknown machvec.
Paul Mundt [Tue, 15 May 2007 06:38:30 +0000]
sh: Rip out special unknown machvec.

This kills off the BareCPU board as a "special" machvec, rather,
we leave this as a default for when no other vector is available,
or when we want to use it in combination with other vectors for
testing with generic ops. As sh_mv is copied out anyways (or
overloaded when an alternate vector is explicitly selected), this
doesn't consume any additional memory.

The generic machvec can be forcibly selected with sh_mv=generic,
or by not having any other boards enabled.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Kill off machvec aliases.
Paul Mundt [Tue, 15 May 2007 06:19:34 +0000]
sh: Kill off machvec aliases.

We now throw all of the machvecs in to .machvec.init and either
select one on the command line, or copy out the first (and
usually only) one to sh_mv. The rest are freed as usual.

This gets rid of all of the silly sh_mv aliasing and makes the
selection explicit rather than link-order dependent.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Get multiple boards in one image working again.
Paul Mundt [Mon, 14 May 2007 10:12:37 +0000]
sh: Get multiple boards in one image working again.

This tidies up the build rules and permits multiple boards to be
linked in to the same kernel. The earlier Kconfig work ensures that
the CPU configuration is consistent across the boards, as this is
the only thing that we can't do dynamically.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fixup cmdline handling from machvec changes.
Paul Mundt [Mon, 14 May 2007 08:48:00 +0000]
sh: Fixup cmdline handling from machvec changes.

The command line wasn't being saved off properly after the machvec
changes went in, fix it up.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Rework CPU/board dependencies.
Paul Mundt [Mon, 14 May 2007 08:29:12 +0000]
sh: Rework CPU/board dependencies.

This was a big mess, rework the logic a bit so that we constrain
to a particular subtype and figure out the board support based
on that. This makes building subtype specific kernels supporting
multiple boards possible again.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Shut up SH2-DSP compile warnings.
Paul Mundt [Mon, 14 May 2007 08:26:34 +0000]
sh: Shut up SH2-DSP compile warnings.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fixup machvec support.
Paul Mundt [Mon, 14 May 2007 06:59:09 +0000]
sh: Fixup machvec support.

This fixes up much of the machvec handling, allowing for it to be
overloaded on boot. Making practical use of this still requires
some Kconfig munging, however.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: __user annotations for __get/__put_user().
Paul Mundt [Mon, 14 May 2007 03:52:56 +0000]
sh: __user annotations for __get/__put_user().

This adds in some more __user annotations. These weren't being
handled properly in some of the __get_user and __put_user paths,
so tidy those up.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Split out CPU topology initialization.
Paul Mundt [Mon, 14 May 2007 03:50:43 +0000]
sh: Split out CPU topology initialization.

Split out the CPU topology initialization to a separate file,
and switch it to a percpu type, rather than an NR_CPUS array.

At the same time, switch to only registering present CPUs,
rather than using the possible CPU map.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agoRAMFS NOMMU: missed POSIX UID/GID inode attribute checking
Bryan Wu [Tue, 5 Jun 2007 03:02:01 +0000]
RAMFS NOMMU: missed POSIX UID/GID inode attribute checking

This bug was caught by LTP testcase fchmod06 on Blackfin platform.

In the manpage of fchmod, "EPERM: The effective UID does not match the
owner of the file, and the process is not privileged (Linux: it does not
have the CAP_FOWNER capability)."

But the ramfs nommu code missed the inode_change_ok POSIX UID/GID
verification. This patch fixed this.

Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

12 years agoMerge git://git.linux-xtensa.org/kernel/xtensa-feed
Linus Torvalds [Fri, 8 Jun 2007 00:10:19 +0000]
Merge git://git.linux-xtensa.org/kernel/xtensa-feed

* git://git.linux-xtensa.org/kernel/xtensa-feed:
  Xtensa: use asm-generic/fcntl.h
  [XTENSA] Remove non-rt signal handling
  [XTENSA] Move common sections into bss sections
  [XTENSA] clean-up header files
  [XTENSA] Use generic 64-bit division
  [XTENSA] Remove multi-exported symbols from xtensa_ksyms.c
  [XTENSA] fix sources using deprecated assembler directive
  [XTENSA] Spelling fixes in arch/xtensa
  [XTENSA] fix bit operations in bitops.h

12 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Fri, 8 Jun 2007 00:09:01 +0000]
Merge branch 'master' of /linux/kernel/git/davem/sparc-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC64]: Fix SBUS IRQ regression caused by PCI-E driver.
  [SPARC64]: Fix 2 bugs in PCI Sabre bus scanning.

12 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Fri, 8 Jun 2007 00:08:06 +0000]
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (24 commits)
  xfrm: Add security check before flushing SAD/SPD
  [NET_SCHED]: Fix filter double free
  [NET]: Avoid duplicate netlink notification when changing link state
  [UDP]: Revert 2-pass hashing changes.
  [AF_UNIX]: Fix stream recvmsg() race.
  [NETFILTER]: nf_conntrack_amanda: fix textsearch_prepare() error check
  [NETFILTER]: ip_tables: fix compat related crash
  [NETFILTER]: nf_conntrack: fix helper module unload races
  [RTNETLINK]: ifindex 0 does not exist
  [NETLINK]: Mark netlink policies const
  [TCP] tcp_probe: Attach printf attribute properly to printl().
  [TCP]: Use LIMIT_NETDEBUG in tcp_retransmit_timer().
  [NET]: Merge dst_discard_in and dst_discard_out.
  [RFKILL]: Make rfkill->name const
  [IPV4]: Restore old behaviour of default config values
  [IPV4]: Add default config support after inetdev_init
  [IPV4]: Convert IPv4 devconf to an array
  [IPV4]: Only panic if inetdev_init fails for loopback
  [TCP]: Honour sk_bound_dev_if in tcp_v4_send_ack
  [BNX2]: Update version and reldate.
  ...

12 years agoenable interrupts in user path of page fault.
Steven Rostedt [Thu, 7 Jun 2007 03:34:04 +0000]
enable interrupts in user path of page fault.

This is a minor fix, but what is currently there is essentially wrong.
In do_page_fault, if the faulting address from user code happens to be
in kernel address space (int *p = (int*)-1; p = 0xbed;)  then the
do_page_fault handler will jump over the local_irq_enable with the

  goto bad_area_nosemaphore;

But the first line there sees this is user code and goes through the
process of sending a signal to send SIGSEGV to the user task. This whole
time interrupts are disabled and the task can not be preempted by a
higher priority task.

This patch always enables interrupts in the user path of the
bad_area_nosemaphore.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

12 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Fri, 8 Jun 2007 00:02:29 +0000]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] pxa: fix pxa27x keyboard driver
  [ARM] Fix 4417/1: Serial: Fix AMBA drivers locking
  [ARM] 4421/1: AT91: Value of _KEY fields.
  [ARM] Solve buggy smp_processor_id() usage
  [ARM] 4422/1: Fix default value handling in gpio_direction_output (PXA)
  [ARM] 4419/1: AT91: SAM9 USB clocks check for suspending
  [ARM] 4418/1: AT91: Number of programmable clocks differs
  [ARM] 4392/2: Do not corrupt the SP register in compressed/head.S

12 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Fri, 8 Jun 2007 00:00:37 +0000]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  [MIPS] Fix warning by moving do_default_vi into CONFIG_CPU_MIPSR2_SRS
  [MIPS] Fix some minor typoes in arch/mips/Kconfig.
  [MIPS] Remove prototype for deleted function qemu_handle_int
  [MIPS] Fix some system calls with long long arguments
  [MIPS] Make dma_map_sg handle sg elements which are longer than one page
  [MIPS] Drop __ARCH_WANT_SYS_FADVISE64
  [MIPS] Fix VGA corruption on RM300C
  [MIPS] RM300: Fix MMIO problems by marking the PCI INT ACK region busy
  [MIPS] EMMA2RH: remove dead KGDB code
  [MIPS] Remove duplicate fpu enable hazard code.
  [MIPS] Atlas, Malta, SEAD: Remove scroll from interrupt handler.

12 years agofrv: build fix
Peter Zijlstra [Wed, 6 Jun 2007 09:39:40 +0000]
frv: build fix

In file included from /usr/src/linux-2.6-2/net/ipv4/ip_input.c:118:

  include2/asm/system.h:245: error: parse error before "__cmpxchg_32"
  include2/asm/system.h:245: error: parse error before '*' token
  include2/asm/system.h:245: warning: type defaults to `int' in declaration of `__cmpxchg_32'
  include2/asm/system.h:245: warning: function declaration isn't a prototype
  include2/asm/system.h:245: warning: data definition has no type or storage class

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

12 years ago[SPARC64]: Fix SBUS IRQ regression caused by PCI-E driver.
David S. Miller [Thu, 7 Jun 2007 23:58:22 +0000]
[SPARC64]: Fix SBUS IRQ regression caused by PCI-E driver.

We used to access the 64-bit IRQ IMAP and ICLR registers of bus
controllers 4-bytes in and as a 32-bit register word, since only the
low 32-bits were relevant.  This seemed like a good idea at the time.

But the PCI-E controller requires full 8-byte 64-bit access to
these registers, so we switched over to accessing them fully.

SBUS was not adjusted properly, which broke interrupts completely.

Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[SPARC64]: Fix 2 bugs in PCI Sabre bus scanning.
David S. Miller [Wed, 6 Jun 2007 21:03:08 +0000]
[SPARC64]: Fix 2 bugs in PCI Sabre bus scanning.

If we are on hummingbird, bus runs at 66MHZ.

pbm->pci_bus should be setup with the result of pci_scan_one_pbm()
or else we deref NULL pointers in the error interrupt handlers.

Signed-off-by: David S. Miller <davem@davemloft.net>

12 years agoxfrm: Add security check before flushing SAD/SPD
Joy Latten [Mon, 4 Jun 2007 23:05:57 +0000]
xfrm: Add security check before flushing SAD/SPD

Currently we check for permission before deleting entries from SAD and
SPD, (see security_xfrm_policy_delete() security_xfrm_state_delete())
However we are not checking for authorization when flushing the SPD and
the SAD completely. It was perhaps missed in the original security hooks
patch.

This patch adds a security check when flushing entries from the SAD and
SPD.  It runs the entire database and checks each entry for a denial.
If the process attempting the flush is unable to remove all of the
entries a denial is logged the the flush function returns an error
without removing anything.

This is particularly useful when a process may need to create or delete
its own xfrm entries used for things like labeled networking but that
same process should not be able to delete other entries or flush the
entire database.

Signed-off-by: Joy Latten<latten@austin.ibm.com>
Signed-off-by: Eric Paris <eparis@parisplace.org>
Signed-off-by: James Morris <jmorris@namei.org>

12 years ago[NET_SCHED]: Fix filter double free
Patrick McHardy [Tue, 5 Jun 2007 23:06:59 +0000]
[NET_SCHED]: Fix filter double free

cbq and atm destroy their filters twice when destroying inner classes
during qdisc destruction.

Reported-and-tested-by: Strobl Anton <a.strobl@aws-it.at>

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Avoid duplicate netlink notification when changing link state
Thomas Graf [Tue, 5 Jun 2007 23:03:03 +0000]
[NET]: Avoid duplicate netlink notification when changing link state

When changing the link state from userspace not affecting any other
flags. Two duplicate notification are being sent, once as action
in the NETDEV_UP/NETDEV_DOWN notification chain and a second time
when comparing old and new device flags after the change has been
completed. Although harmless, the duplicates should be avoided.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[UDP]: Revert 2-pass hashing changes.
David S. Miller [Tue, 5 Jun 2007 22:18:43 +0000]
[UDP]: Revert 2-pass hashing changes.

This reverts changesets:

6aaf47fa48d3c44280810b1b470261d340e4ed87
b7b5f487ab39bc10ed0694af35651a03d9cb97ff
de34ed91c4ffa4727964a832c46e624dd1495cf5
fc038410b4b1643766f8033f4940bcdb1dace633

There are still some correctness issues recently
discovered which do not have a known fix that doesn't
involve doing a full hash table scan on port bind.

So revert for now.

Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[AF_UNIX]: Fix stream recvmsg() race.
Miklos Szeredi [Tue, 5 Jun 2007 20:10:29 +0000]
[AF_UNIX]: Fix stream recvmsg() race.

A recv() on an AF_UNIX, SOCK_STREAM socket can race with a
send()+close() on the peer, causing recv() to return zero, even though
the sent data should be received.

This happens if the send() and the close() is performed between
skb_dequeue() and checking sk->sk_shutdown in unix_stream_recvmsg():

process A  skb_dequeue() returns NULL, there's no data in the socket queue
process B  new data is inserted onto the queue by unix_stream_sendmsg()
process B  sk->sk_shutdown is set to SHUTDOWN_MASK by unix_release_sock()
process A  sk->sk_shutdown is checked, unix_release_sock() returns zero

I'm surprised nobody noticed this, it's not hard to trigger.  Maybe
it's just (un)luck with the timing.

It's possible to work around this bug in userspace, by retrying the
recv() once in case of a zero return value.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NETFILTER]: nf_conntrack_amanda: fix textsearch_prepare() error check
Akinobu Mita [Tue, 5 Jun 2007 19:56:53 +0000]
[NETFILTER]: nf_conntrack_amanda: fix textsearch_prepare() error check

The return value from textsearch_prepare() needs to be checked
by IS_ERR(). Because it returns error code as a pointer.

Cc: "Brian J. Murrell" <netfilter@interlinx.bc.ca>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NETFILTER]: ip_tables: fix compat related crash
Dmitry Mishin [Tue, 5 Jun 2007 19:56:09 +0000]
[NETFILTER]: ip_tables: fix compat related crash

check_compat_entry_size_and_hooks iterates over the matches and calls
compat_check_calc_match, which loads the match and calculates the
compat offsets, but unlike the non-compat version, doesn't call
->checkentry yet. On error however it calls cleanup_matches, which in
turn calls ->destroy, which can result in crashes if the destroy
function (validly) expects to only get called after the checkentry
function.

Add a compat_release_match function that only drops the module reference
on error and rename compat_check_calc_match to compat_find_calc_match to
reflect the fact that it doesn't call the checkentry function.

Reported by Jan Engelhardt <jengelh@linux01.gwdg.de>

Signed-off-by: Dmitry Mishin <dim@openvz.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NETFILTER]: nf_conntrack: fix helper module unload races
Patrick McHarrdy [Tue, 5 Jun 2007 19:55:27 +0000]
[NETFILTER]: nf_conntrack: fix helper module unload races

When a helper module is unloaded all conntracks refering to it have their
helper pointer NULLed out, leading to lots of races. In most places this
can be fixed by proper use of RCU (they do already check for != NULL,
but in a racy way), additionally nf_conntrack_expect_related needs to
bail out when no helper is present.

Also remove two paranoid BUG_ONs in nf_conntrack_proto_gre that are racy
and not worth fixing.

Signed-off-by: Patrick McHarrdy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[RTNETLINK]: ifindex 0 does not exist
Patrick McHardy [Tue, 5 Jun 2007 19:40:01 +0000]
[RTNETLINK]: ifindex 0 does not exist

ifindex == 0 does not exist and implies we should do a lookup by name if
one was given.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NETLINK]: Mark netlink policies const
Patrick McHardy [Tue, 5 Jun 2007 19:38:30 +0000]
[NETLINK]: Mark netlink policies const

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[TCP] tcp_probe: Attach printf attribute properly to printl().
David S. Miller [Tue, 5 Jun 2007 07:19:24 +0000]
[TCP] tcp_probe: Attach printf attribute properly to printl().

GCC doesn't like the way Stephen initially did it:

net/ipv4/tcp_probe.c:83: warning: empty declaration

Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[TCP]: Use LIMIT_NETDEBUG in tcp_retransmit_timer().
Eric Dumazet [Tue, 5 Jun 2007 07:16:12 +0000]
[TCP]: Use LIMIT_NETDEBUG in tcp_retransmit_timer().

LIMIT_NETDEBUG allows the admin to disable some warning messages (echo 0
 >/proc/sys/net/core/warnings).

The "TCP: Treason uncloaked!" message can use this facility.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Merge dst_discard_in and dst_discard_out.
Denis Cheng [Tue, 5 Jun 2007 07:06:57 +0000]
[NET]: Merge dst_discard_in and dst_discard_out.

Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[RFKILL]: Make rfkill->name const
Ivo van Doorn [Tue, 5 Jun 2007 07:04:46 +0000]
[RFKILL]: Make rfkill->name const

The rfkill name can be made const safely,
this makes the compiler happy when drivers make
it point to some const string used elsewhere.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[IPV4]: Restore old behaviour of default config values
Herbert Xu [Tue, 5 Jun 2007 06:36:06 +0000]
[IPV4]: Restore old behaviour of default config values

Previously inet devices were only constructed when addresses are added
(or rarely in ipmr).  Therefore the default config values they get are
the ones at the time of these operations.

Now that we're creating inet devices earlier, this changes the
behaviour of default config values in an incompatible way (see bug
#8519).

This patch creates a compromise by setting the default values at the
same point as before but only for those that have not been explicitly
set by the user since the inet device's creation.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[IPV4]: Add default config support after inetdev_init
Herbert Xu [Tue, 5 Jun 2007 06:35:37 +0000]
[IPV4]: Add default config support after inetdev_init

Previously once inetdev_init has been called on a device any changes
made to ipv4_devconf_dflt would have no effect on that device's
configuration.

This creates a problem since we have moved the point where
inetdev_init is called from when an address is added to where the
device is registered.

This patch is the first half of a set that tries to mimic the old
behaviour while still calling inetdev_init.

It propagates any changes to ipv4_devconf_dflt to those devices that
have not had the corresponding attribute set.

The next patch will forcibly set all values at the point where
inetdev_init was previously called.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[IPV4]: Convert IPv4 devconf to an array
Herbert Xu [Tue, 5 Jun 2007 06:34:44 +0000]
[IPV4]: Convert IPv4 devconf to an array

This patch converts the ipv4_devconf config members (everything except
sysctl) to an array.  This allows easier manipulation which will be
needed later on to provide better management of default config values.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[IPV4]: Only panic if inetdev_init fails for loopback
Herbert Xu [Tue, 5 Jun 2007 06:34:08 +0000]
[IPV4]: Only panic if inetdev_init fails for loopback

When I made the inetdev_init call work on all devices I incorrectly
left in the panic call as well.  It is obviously undesirable to
panic on an allocation failure for a normal network device.  This
patch moves the panic call under the loopback if clause.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[TCP]: Honour sk_bound_dev_if in tcp_v4_send_ack
Patrick McHardy [Tue, 5 Jun 2007 04:32:46 +0000]
[TCP]: Honour sk_bound_dev_if in tcp_v4_send_ack

A time_wait socket inherits sk_bound_dev_if from the original socket,
but it is not used when sending ACK packets using ip_send_reply.

Fix by passing the oif to ip_send_reply in struct ip_reply_arg and
use it for output routing.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[BNX2]: Update version and reldate.
Michael Chan [Tue, 5 Jun 2007 04:24:42 +0000]
[BNX2]: Update version and reldate.

Update to version 1.5.11.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[BNX2]: Fix occasional counter corruption on 5708.
Michael Chan [Tue, 5 Jun 2007 04:24:07 +0000]
[BNX2]: Fix occasional counter corruption on 5708.

The statistics block DMA on 5708 can be messed up occasionally on the
average of about once per hour.  If the user is reading the counters
within one second after the corruption, the counters will be all
messed up.  One second later, the counters will be ok again until the
next corruption occurs.

The workaround is to disable the periodic statistics DMA.  Instead,
we manually trigger the DMA once a second in bnx2_timer().  This
manual trigger of the DMA avoids the problem.

As a consequence, we can only allow 0 or 1 second settings for
ethtool -C statistics block.

Thanks to Jean-Daniel Pauget <jd@disjunkt.com> and
CaT <cat@zip.com.au> for reporting this rare problem.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[BNX2]: Enable DMA on 5709.
Michael Chan [Tue, 5 Jun 2007 04:23:06 +0000]
[BNX2]: Enable DMA on 5709.

Add missing code to enable DMA on 5709 A1.  The bit is a no-op on A0
and therefore can be set on all 5709 chips.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[BNX2]: Add missing wait in bnx2_init_5709_context().
Michael Chan [Tue, 5 Jun 2007 04:22:24 +0000]
[BNX2]: Add missing wait in bnx2_init_5709_context().

For correctness, we need to wait for the MEM_INIT bit to be cleared
in the BNX2_CTX_COMMAND register before proceeding.

[Added return -EBUSY when the MEM_INIT bit doesn't clear, suggested
by Jeff Garzik.]

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[BNX2]: Fix netdev watchdog on 5708.
Michael Chan [Tue, 5 Jun 2007 04:17:10 +0000]
[BNX2]: Fix netdev watchdog on 5708.

There's a bug in the driver that only initializes half of the context
memory on the 5708.  Surprisingly, this works most of the time except
for some occasional netdev watchdogs when sending a lot of 64-byte
packets.  The fix is to add the missing code to initialize the 2nd
halves of all context memory.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
Linus Torvalds [Thu, 7 Jun 2007 16:36:55 +0000]
Merge /pub/scm/linux/kernel/git/lethal/sh-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6:
  sh: Fix se73180 platform device registration.
  sh: ioremap() through PMB needs asm/mmu.h.
  sh: voyagergx: Fix build warnings.
  sh: Fix SH4-202 clock fwk set_rate() mismatch.
  sh: microdev: Fix compile warnings.
  sh: Fix in_nmi symbol build error.

12 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 7 Jun 2007 16:35:54 +0000]
Merge branch 'master' of /linux/kernel/git/davem/sparc-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [VIDEO] sunxvr500fb: Fix pseudo_palette array size
  [VIDEO] sunxvr2500fb: Fix pseudo_palette array size
  [VIDEO] ffb: The pseudo_palette is only 16 elements long
  [VIDEO]: Fix section mismatch warning in promcon.
  [ATA]: Back out bogus (SPARC64 && !PCI) Kconfig depends.
  [SPARC64]: Fill in gaps in non-PCI dma_*() NOP implementation.
  [SPARC64]: Fix {mc,smt}_capable().
  [SPARC64]: Make core and sibling groups equal on UltraSPARC-IV.
  [SPARC64]: Proper multi-core scheduling support.
  [SPARC64]: Provide mmu statistics via sysfs.
  [SPARC64]: Fix service channel hypervisor function names.
  [SPARC64]: Export basic cpu properties via sysfs.
  [SPARC64]: Move topology init code into new file, sysfs.c

12 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Thu, 7 Jun 2007 15:54:55 +0000]
Merge branch 'master' of git://git./linux/kernel/git/paulus/powerpc

* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  [POWERPC] Fix building of COFF zImages
  [POWERPC] spufs: Fix error handling in spufs_fill_dir()
  [POWERPC] Add table of contents to booting-without-of.txt
  [POWERPC] spufs: Don't yield nosched context
  [POWERPC] Fix typo in booting-without-of-txt section numbering
  [POWERPC] scc_sio: Fix link failure
  [POWERPC] cbe_cpufreq: Limit frequency via cpufreq notifier chain
  [POWERPC] Fix pci_setup_phb_io_dynamic for pci_iomap
  [POWERPC] spufs scheduler: Fix wakeup races
  [POWERPC] spufs: Synchronize pte invalidation vs ps close
  [POWERPC] spufs: Free mm if spufs_fill_dir() failed
  [POWERPC] spufs: Fix gang destroy leaks
  [POWERPC] spufs: Hook up spufs_release_mem
  [POWERPC] spufs: Refuse to load the module when not running on cell
  [POWERPC] pasemi: Fix iommu + 64K PAGE_SIZE bug

12 years agoRestrict clearing TIF_SIGPENDING
Roland McGrath [Wed, 6 Jun 2007 10:59:00 +0000]
Restrict clearing TIF_SIGPENDING

This patch should get a few birds.  It prevents sigaction calls from
clearing TIF_SIGPENDING in other threads, which could leak -ERESTART*.
And It fixes ptrace_stop not to clear it, which done at the syscall exit
stop could leak -ERESTART*.  It probably removes the harm from signalfd,
at least assuming it never calls dequeue_signal on kernel threads that
might have used block_all_signals.

Signed-off-by: Roland McGrath <roland@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

12 years agocheckpatch.pl: should be executable
Andy Whitcroft [Thu, 7 Jun 2007 15:16:40 +0000]
checkpatch.pl: should be executable

scripts/checkpatch.pl should be executable, make it so.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Joel Schopp <jschopp@austin.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

12 years ago[POWERPC] Fix building of COFF zImages
Paul Mackerras [Thu, 7 Jun 2007 12:21:31 +0000]
[POWERPC] Fix building of COFF zImages

The COFF zImage (for booting oldworld powermacs) wasn't being built
correctly because the procedure descriptor in crt0.S for the zImage
entry point wasn't declared as .globl, and therefore wasn't getting
pulled in from wrapper.a by the linker.  This adds the necessary
.globl statement.

Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs: Fix error handling in spufs_fill_dir()
Sebastian Siewior [Wed, 6 Jun 2007 04:03:58 +0000]
[POWERPC] spufs: Fix error handling in spufs_fill_dir()

The error path in spufs_fill_dir() is broken. If d_alloc_name() or
spufs_new_file() fails, spufs_prune_dir() is getting called. At this time
dir->inode is not set and a NULL pointer is dereferenced by mutex_lock().
This bugfix replaces spufs_prune_dir() with a shorter version that does
not touch dir->inode but simply removes all children.

Signed-off-by: Sebastian Siewior <bigeasy@linux.vnet.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] Add table of contents to booting-without-of.txt
Stuart Yoder [Tue, 5 Jun 2007 18:29:14 +0000]
[POWERPC] Add table of contents to booting-without-of.txt

Add table of contents.

Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs: Don't yield nosched context
Christoph Hellwig [Tue, 5 Jun 2007 01:25:59 +0000]
[POWERPC] spufs: Don't yield nosched context

Nosched context sould never be scheduled out, thus we must not
deactivate them in spu_yield ever.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] Fix typo in booting-without-of-txt section numbering
Stuart Yoder [Mon, 4 Jun 2007 21:16:15 +0000]
[POWERPC] Fix typo in booting-without-of-txt section numbering

Fix typo in section numbering.

Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] scc_sio: Fix link failure
Christoph Hellwig [Mon, 4 Jun 2007 18:14:41 +0000]
[POWERPC] scc_sio: Fix link failure

scc_sio.o should only be built if the txx9 serial driver is actually
built into the kernel.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>

--
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] cbe_cpufreq: Limit frequency via cpufreq notifier chain
Thomas Renninger [Mon, 4 Jun 2007 18:14:40 +0000]
[POWERPC] cbe_cpufreq: Limit frequency via cpufreq notifier chain

... and get rid of cpufreq_set_policy call that caused a build
failure due interfering commits.

Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Christian Krafft <krafft@de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] Fix pci_setup_phb_io_dynamic for pci_iomap
Arnd Bergmann [Mon, 4 Jun 2007 18:14:39 +0000]
[POWERPC] Fix pci_setup_phb_io_dynamic for pci_iomap

We had a problem on a system with only dynamically allocated
PCI buses (using of_pci_phb_driver) in combination with libata.
This setup ended up having no "primary" phb, which means
that pci_io_base never got initialized and all IO port
numbers are 64 bit numbers, which is larger than the
PIO_MASK limit.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs scheduler: Fix wakeup races
Christoph Hellwig [Mon, 4 Jun 2007 13:26:51 +0000]
[POWERPC] spufs scheduler: Fix wakeup races

Fix the race between checking for contexts on the runqueue and actually
waking them in spu_deactive and spu_yield.

The guts of spu_reschedule are split into a new helper called
grab_runnable_context which shows if there is a runnable thread below
a specified priority and if yes removes if from the runqueue and uses
it.  This function is used by the new __spu_deactivate hepler shared
by preemption and spu_yield to grab a new context before deactivating
a specified priority and if yes removes if from the runqueue and uses
it.  This function is used by the new __spu_deactivate hepler shared
by preemption and spu_yield to grab a new context before deactivating
the old one.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs: Synchronize pte invalidation vs ps close
Christoph Hellwig [Mon, 4 Jun 2007 13:26:51 +0000]
[POWERPC] spufs: Synchronize pte invalidation vs ps close

Make sure the mapping_lock also protects access to the various address_space
pointers used for tearing down the ptes on a spu context switch.

Because unmap_mapping_range can sleep we need to turn mapping_lock from
a spinlock into a sleeping mutex.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs: Free mm if spufs_fill_dir() failed
Sebastian Siewior [Mon, 4 Jun 2007 13:26:51 +0000]
[POWERPC] spufs: Free mm if spufs_fill_dir() failed

In case spufs_fill_dir() fails only put_spu_context()
gets called for cleanup and the acquired mm_struct never gets freed.

Signed-off-by: Sebastian Siewior <bigeasy@linux.vnet.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs: Fix gang destroy leaks
Jeremy Kerr [Mon, 4 Jun 2007 13:26:51 +0000]
[POWERPC] spufs: Fix gang destroy leaks

Previously, closing a SPE gang that still has contexts would trigger
a WARN_ON, and leak the allocated gang.

This change fixes the problem by using the gang's reference counts to
destroy the gang instead. The gangs will persist until their last
reference (be it context or open file handle) is gone.

Also, avoid using statements with side-effects in a WARN_ON().

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs: Hook up spufs_release_mem
Christoph Hellwig [Mon, 4 Jun 2007 13:26:51 +0000]
[POWERPC] spufs: Hook up spufs_release_mem

Currently spufs_mem_release and the mem file doesn't have any release
method hooked up, leading to leaks everytime is used.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] spufs: Refuse to load the module when not running on cell
Arnd Bergmann [Mon, 4 Jun 2007 13:26:51 +0000]
[POWERPC] spufs: Refuse to load the module when not running on cell

As noticed by David Woodhouse, it's currently possible to mount
spufs on any machine, which means that it actually will get
mounted by fedora.
This refuses to load the module on platforms that have no
support for SPUs.

Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[POWERPC] pasemi: Fix iommu + 64K PAGE_SIZE bug
Olof Johansson [Mon, 4 Jun 2007 00:49:05 +0000]
[POWERPC] pasemi: Fix iommu + 64K PAGE_SIZE bug

The powerpc iommu code was refactored by Linas back in the 2.6.20 time
frame to map 4K pages from the generic code, but I had forgotten to go
back and fix my platform driver before submitting it.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>

12 years ago[MIPS] Fix warning by moving do_default_vi into CONFIG_CPU_MIPSR2_SRS
Atsushi Nemoto [Mon, 21 May 2007 14:45:38 +0000]
[MIPS] Fix warning by moving do_default_vi into CONFIG_CPU_MIPSR2_SRS

This fixes the warning:

arch/mips/kernel/traps.c:931: warning: 'do_default_vi' defined but not used

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Fix some minor typoes in arch/mips/Kconfig.
Robert P. J. Day [Sun, 20 May 2007 16:11:07 +0000]
[MIPS] Fix some minor typoes in arch/mips/Kconfig.

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Remove prototype for deleted function qemu_handle_int
Ralf Baechle [Sun, 20 May 2007 20:29:01 +0000]
[MIPS] Remove prototype for deleted function qemu_handle_int

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Fix some system calls with long long arguments
Atsushi Nemoto [Thu, 17 May 2007 15:46:13 +0000]
[MIPS] Fix some system calls with long long arguments

* O32 fadvise64() pass long long arguments by register pairs.  Add
  sys32 version for 64 bit kernel.
* N32 readahead() can pass a long long argument by one register.  No
  need to use sys32_readahead.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>