Commit Graph

300426 Commits

Author SHA1 Message Date
Paul Mundt
e24cca19ba sh: Kill off MAX_DMA_ADDRESS leftovers.
We don't support the ISA DMA API, so this is only ever misused. The
dma-sh case inadvertently broke the dreamcast case by testing the wrong
variable for the total number of channels, so this fixes that up too.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-19 18:50:09 +09:00
Paul Mundt
2ff9f317f1 sh: Tidy up some of the cpu legacy dma header mess.
This has turned in to quite a mess, and with CPUs that care using
dmaengine now it's about time to start cleaning up after the legacy DMA
code. For starters, kill off the stubs for the CPUs that don't do
anything, as well as all of the unused definitions. This leaves us with a
set of IRQs and base addresses we can deal with later.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-19 18:30:31 +09:00
Paul Mundt
0c6012313c sh: Move sh4a dma header from cpu-sh4 to cpu-sh4a.
cpu-sh4a headers take priority over cpu-sh4 ones by virtue of the build
system, there's no need to try and mingle sh4a stuff in cpu-sh4.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-19 18:06:12 +09:00
Paul Mundt
d8fd35fc58 sh64: Fix up vmalloc fault range check.
With the previous attempt reverted this switches to conditionalizing the
end address. Nominally VMALLOC_END, but extended for P3_ADDR_MAX in the
store queue case.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 20:01:16 +09:00
Paul Mundt
c3e0af9879 Revert "sh: Ensure fixmap and store queue space can co-exist."
This reverts commit 20e7c297ef.
With store queues enabled the area above P4SEG has special properties
from the MMU's point of view, which was causing fixmap failure. We'll
have to do something else to satisfy the vmalloc range check.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 19:30:05 +09:00
Paul Mundt
0e8963de1f serial: sh-sci: Fix for port types without BRI interrupts.
In doing the evt2irq() + muxed vector conversion for various port types
it became apparent that some of the legacy port types will presently
error out due to the irq requesting logic attempting to acquire the
non-existent BRI IRQ. This adds some sanity checks to the request/free
path to ensure that non-existence of a source in itself is not an error.

This should restore functionality for legacy PORT_SCI ports.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 18:21:06 +09:00
Paul Mundt
c1dbccc3c7 Merge branch 'sh/evt2irq-migration' into sh-latest
Conflicts:
	arch/sh/kernel/cpu/sh3/setup-sh770x.c
	arch/sh/kernel/cpu/sh3/setup-sh7710.c
	arch/sh/kernel/cpu/sh3/setup-sh7720.c
	arch/sh/kernel/cpu/sh4/setup-sh7750.c
	arch/sh/kernel/cpu/sh4a/setup-sh7343.c
	arch/sh/kernel/cpu/sh4a/setup-sh7366.c
	arch/sh/kernel/cpu/sh4a/setup-sh7722.c
	arch/sh/kernel/cpu/sh4a/setup-sh7723.c
	arch/sh/kernel/cpu/sh4a/setup-sh7724.c
	arch/sh/kernel/cpu/sh4a/setup-sh7757.c
	arch/sh/kernel/cpu/sh4a/setup-sh7763.c
	arch/sh/kernel/cpu/sh4a/setup-sh7770.c
	arch/sh/kernel/cpu/sh4a/setup-sh7785.c
	arch/sh/kernel/cpu/sh4a/setup-sh7786.c

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 18:13:27 +09:00
Paul Mundt
58796ce67a sh: legacy PCI evt2irq migration.
This converts over the legacy PCI IRQs to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 17:42:29 +09:00
Paul Mundt
9f38045643 sh: cpu dma evt2irq migration.
This migrates the cpu-family relative DMA IRQ definitions over to
evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 17:27:28 +09:00
Paul Mundt
6b1ef625c3 sh: sh7763rdp evt2irq migration.
Migrate sh7763rdp to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 17:14:34 +09:00
Paul Mundt
d66bd5f147 sh: sdk7780 evt2irq migration.
Migrate sdk7780 to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 17:13:52 +09:00
Paul Mundt
26819fcbea sh: migor evt2irq migration.
Migrate migor to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 17:07:09 +09:00
Paul Mundt
ce932d0c55 sh: landisk evt2irq migration.
Migrate landisk to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 16:51:36 +09:00
Paul Mundt
aa82f9fcd0 sh: kfr2r09 evt2irq migration.
Migrate kfr2r09 to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:53:29 +09:00
Paul Mundt
9307d11584 sh: ecovec24 evt2irq migration.
Migrate ecovec24 to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:49:38 +09:00
Paul Mundt
9c23c516b5 sh: ap325rxa evt2irq migration.
Migrate ap325rxa to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:45:09 +09:00
Paul Mundt
4059e43a6e sh: urquell evt2irq migration.
Migrate urquell to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:43:48 +09:00
Paul Mundt
c825abc4c7 sh: sh7785lcr evt2irq migration.
Migrate sh7785lcr to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:42:07 +09:00
Paul Mundt
b6bd263397 sh: hp6xx evt2irq migration.
Migrate hp6xx to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:38:50 +09:00
Paul Mundt
b894701e7c sh: mach-se evt2irq migration.
Migrate Solution Engine boards to evt2irq backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:34:49 +09:00
Paul Mundt
a7734e5107 sh: sh7757lcr evt2irq migration.
Migrate sh7757lcr to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 15:18:10 +09:00
Paul Mundt
7b56934ce2 sh: magicpanelr2 evt2irq migration.
Migrate magicpanelr2 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:58:03 +09:00
Paul Mundt
d5d7e78368 sh: espt evt2irq migration.
Migrate espt to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:57:21 +09:00
Paul Mundt
03c5713c96 sh: edosk7760 evt2irq migration.
Migrate edosk7760 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:52:31 +09:00
Paul Mundt
0fa4c3912c sh: edosk7705 evt2irq migration.
Migrate edosk7705 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:48:53 +09:00
Paul Mundt
85ee6b06cc sh: sh7720 evt2irq migration.
Migrate SH7720 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:41:00 +09:00
Paul Mundt
5d0af76968 sh: sh7710/sh7712 evt2irq migration.
Migrate SH7710/SH7712 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:37:51 +09:00
Paul Mundt
a9302a64d4 sh: sh7706/sh7707/sh7709/sh7709 evt2irq migration.
Migrate SH770x to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:34:48 +09:00
Paul Mundt
e91b2a40a1 sh: sh7705 evt2irq migration.
Migrate SH7705 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:31:11 +09:00
Paul Mundt
79ce21a64b sh: sh7760 evt2irq migration.
Migrate SH7760 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:28:11 +09:00
Paul Mundt
20688c3093 sh: sh7750 evt2irq migration.
Migrate SH7750 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:18:35 +09:00
Paul Mundt
054f0378a5 sh: sh4-202 evt2irq migration.
Migrate SH4-202 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:15:11 +09:00
Paul Mundt
d8be10bbf3 sh: sh-x3 evt2irq migration.
Migrate SH-X3 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:11:22 +09:00
Paul Mundt
ddb3208497 sh: sh7785 evt2irq migration.
Migrate SH7785 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 14:04:49 +09:00
Paul Mundt
89ed34f348 sh: sh7780 evt2irq migration.
Migrate SH7780 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 13:59:18 +09:00
Paul Mundt
f454314cff sh: sh7770 evt2irq migration.
Migrate SH7770 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 13:52:22 +09:00
Paul Mundt
ea3235d962 sh: sh7763 evt2irq migration.
Migrate SH7763 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 13:46:34 +09:00
Paul Mundt
f5bccdc09a sh: sh7757 evt2irq migration.
Migrate SH7757 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 13:24:34 +09:00
Paul Mundt
16e9515358 sh: sh7724 evt2irq migration.
Migrate SH7724 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 13:12:24 +09:00
Paul Mundt
933b954386 sh: sh7723 evt2irq migration.
Migrate SH7723 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 12:57:59 +09:00
Paul Mundt
29b53e375b sh: sh7722 evt2irq migration.
Migrate SH7722 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 12:49:38 +09:00
Paul Mundt
58749400c5 sh: sh7366 evt2irq migration.
Migrate SH7366 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 12:43:11 +09:00
Paul Mundt
de410b5369 sh: sh7343 evt2irq migration.
Migrate SH7343 to evt2irq() backed hwirq lookups.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 12:38:12 +09:00
Paul Mundt
e55387e9bf sh: sh7786 evt2irq migration.
This migrates SH7786 to evt2irq() backed hwirq lookup rather than
using an open-coded calculation. This will make it possible to reposition
the vector base at a later point in time.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-05-18 12:29:22 +09:00
Linus Torvalds
42ea7d7f2a Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm
Pull ARM fixes from Russell King:
 "Small set of fixes again."

* 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
  ARM: 7419/1: vfp: fix VFP flushing regression on sigreturn path
  ARM: 7418/1: LPAE: fix access flag setup in mem_type_table
  ARM: prevent VM_GROWSDOWN mmaps extending below FIRST_USER_ADDRESS
  ARM: 7417/1: vfp: ensure preemption is disabled when enabling VFP access
2012-05-17 16:52:29 -07:00
Linus Torvalds
39c2028531 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull two networking fixes from David S. Miller:

1) Thanks to Willy Tarreau and Eric Dumazet, we've unlocked a bug that's
   been present in do_tcp_sendpages() since that function was written in
   2002.

   When we block to wait for memory we have to unconditionally try and
   push out pending TCP data, otherwise we can block for an unreasonably
   long amount of time.

2) Fix deadlock in e1000, fixes kernel bugzilla 43132

   From Tushar Dave.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
  e1000: Prevent reset task killing itself.
  tcp: do_tcp_sendpages() must try to push data out on oom conditions
2012-05-17 16:30:26 -07:00
Rafael J. Wysocki
5c7dd710f6 ACPI / PCI / PM: Fix device PM regression related to D3hot/D3cold
Commit 1cc0c998fd ("ACPI: Fix D3hot v D3cold confusion") introduced a
bug in __acpi_bus_set_power() and changed the behavior of
acpi_pci_set_power_state() in such a way that it generally doesn't work
as expected if PCI_D3hot is passed to it as the second argument.

First off, if ACPI_STATE_D3 (equal to ACPI_STATE_D3_COLD) is passed to
__acpi_bus_set_power() and the explicit_set flag is set for the D3cold
state, the function will try to execute AML method called "_PS4", which
doesn't exist.

Fix this by adding a check to ensure that the name of the AML method
to execute for transitions to ACPI_STATE_D3_COLD is correct in
__acpi_bus_set_power().  Also make sure that the explicit_set flag
for ACPI_STATE_D3_COLD will be set if _PS3 is present and modify
acpi_power_transition() to avoid accessing power resources for
ACPI_STATE_D3_COLD, because they don't exist.

Second, if PCI_D3hot is passed to acpi_pci_set_power_state() as the
target state, the function will request a transition to
ACPI_STATE_D3_HOT instead of ACPI_STATE_D3.  However,
ACPI_STATE_D3_HOT is now only marked as supported if the _PR3 AML
method is defined for the given device, which is rare.  This causes
problems to happen on systems where devices were successfully put
into ACPI D3 by pci_set_power_state(PCI_D3hot) which doesn't work
now.  In particular, some unused graphics adapters are not turned
off as a result.

To fix this issue restore the old behavior of
acpi_pci_set_power_state(), which is to request a transition to
ACPI_STATE_D3 (equal to ACPI_STATE_D3_COLD) if either PCI_D3hot or
PCI_D3cold is passed to it as the argument.

This approach is not ideal, because generally power should not
be removed from devices if PCI_D3hot is the target power state,
but since this behavior is relied on, we have no choice but to
restore it at the moment and spend more time on designing a
better solution in the future.

References: https://bugzilla.kernel.org/show_bug.cgi?id=43228
Reported-by: rocko <rockorequin@hotmail.com>
Reported-by: Cristian Rodríguez <crrodriguez@opensuse.org>
Reported-and-tested-by: Peter <lekensteyn@gmail.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-17 16:16:16 -07:00
Tushar Dave
8ce6909f77 e1000: Prevent reset task killing itself.
Killing reset task while adapter is resetting causes deadlock.
Only kill reset task if adapter is not resetting.
Ref bug #43132 on bugzilla.kernel.org

CC: stable@vger.kernel.org
Signed-off-by: Tushar Dave <tushar.n.dave@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-17 18:32:41 -04:00
Willy Tarreau
bad115cfe5 tcp: do_tcp_sendpages() must try to push data out on oom conditions
Since recent changes on TCP splicing (starting with commits 2f533844
"tcp: allow splice() to build full TSO packets" and 35f9c09f "tcp:
tcp_sendpages() should call tcp_push() once"), I started seeing
massive stalls when forwarding traffic between two sockets using
splice() when pipe buffers were larger than socket buffers.

Latest changes (net: netdev_alloc_skb() use build_skb()) made the
problem even more apparent.

The reason seems to be that if do_tcp_sendpages() fails on out of memory
condition without being able to send at least one byte, tcp_push() is not
called and the buffers cannot be flushed.

After applying the attached patch, I cannot reproduce the stalls at all
and the data rate it perfectly stable and steady under any condition
which previously caused the problem to be permanent.

The issue seems to have been there since before the kernel migrated to
git, which makes me think that the stalls I occasionally experienced
with tux during stress-tests years ago were probably related to the
same issue.

This issue was first encountered on 3.0.31 and 3.2.17, so please backport
to -stable.

Signed-off-by: Willy Tarreau <w@1wt.eu>
Acked-by: Eric Dumazet <edumazet@google.com>
Cc: <stable@vger.kernel.org>
2012-05-17 18:31:43 -04:00
Linus Torvalds
eea036475d Merge branch '3.4-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Pull two more target-core updates from Nicholas Bellinger:
 "The first patch addresses a SPC-2 reservations RELEASE bug in a
  special (iscsi specific) multi-ISID setup case that was allowing the
  same initiator to be able to incorrect release it's own reservation on
  a different SCSI path with enforce_pr_isid=1 operation.  This bug was
  caught by Bernhard Kohl.

  The second patch is to address a bug with FILEIO backends where the
  incorrect number of blocks for READ_CAPACITY was being reported after
  an underlying device-mapper block_device size change.  This patch uses
  now i_size_read() in fd_get_blocks() for FILEIO backends with an
  underlying block_device, instead of trying to determine this value at
  setup time during fd_create_virtdevice().  (hch CC'ed)

  Both are CC'ed to stable."

* '3.4-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
  target: Fix bug in handling of FILEIO + block_device resize ops
  target: Fix SPC-2 RELEASE bug for multi-session iSCSI client setups
2012-05-17 13:25:17 -07:00