]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agol2tp: fix UDP checksum support
James Chapman [Tue, 16 Dec 2008 09:23:49 +0000 (01:23 -0800)]
l2tp: fix UDP checksum support

The pppol2tp driver has had broken UDP checksum code for a long
time. This patch fixes it. If UDP checksums are enabled in the
tunnel's UDP socket, the L2TP driver now properly validates the
checksum on receive and fills in the checksum on transmit. If the
network device has hardware checksum support and is enabled, it is
used instead of generating/checking the checksum in software.

Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonetfilter: ctnetlink: fix missing CTA_NAT_SEQ_UNSPEC
Pablo Neira Ayuso [Tue, 16 Dec 2008 09:19:41 +0000 (01:19 -0800)]
netfilter: ctnetlink: fix missing CTA_NAT_SEQ_UNSPEC

This patch fixes an inconsistency in nfnetlink_conntrack.h that
I introduced myself. The problem is that CTA_NAT_SEQ_UNSPEC is
missing from enum ctattr_natseq. This inconsistency may lead to
problems in the message parsing in userspace (if the message
contains the CTA_NAT_SEQ_* attributes, of course).

This patch breaks backward compatibility, however, the only known
client of this code is libnetfilter_conntrack which indeed crashes
because it assumes the existence of CTA_NAT_SEQ_UNSPEC to do
the parsing.

The CTA_NAT_SEQ_* attributes were introduced in 2.6.25.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoPhonet: improve GPRS variable names
Rémi Denis-Courmont [Tue, 16 Dec 2008 09:18:31 +0000 (01:18 -0800)]
Phonet: improve GPRS variable names

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoisdn: eicon: fix sparse warning: make global functions static
Hannes Eder [Tue, 16 Dec 2008 09:17:33 +0000 (01:17 -0800)]
isdn: eicon: fix sparse warning: make global functions static

Fix this sparse warnings by making the functions static:

  drivers/isdn/hardware/eicon/di.c:356:6: warning: symbol 'isdn_rc' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/di.c:558:6: warning: symbol 'isdn_ind' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:595:6: warning: symbol 'api_parse' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:634:6: warning: symbol 'api_save_msg' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:666:6: warning: symbol 'api_load_msg' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:3417:6: warning: symbol 'manufacturer_req' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:3745:6: warning: symbol 'manufacturer_res' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:4077:6: warning: symbol 'control_rc' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:4743:6: warning: symbol 'data_rc' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:4779:6: warning: symbol 'data_ack' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:4805:6: warning: symbol 'sig_ind' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:6173:6: warning: symbol 'SendInfo' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:6349:6: warning: symbol 'SendMultiIE' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:6468:6: warning: symbol 'nl_ind' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:7250:6: warning: symbol 'get_plci' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:7409:6: warning: symbol 'add_d' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:7427:6: warning: symbol 'add_ai' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:7448:6: warning: symbol 'add_b1' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:7912:6: warning: symbol 'add_b23' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:8709:6: warning: symbol 'nl_req_ncci' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:8731:6: warning: symbol 'send_req' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:8866:6: warning: symbol 'listen_check' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:8909:6: warning: symbol 'IndParse' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:8994:6: warning: symbol 'ie_compare' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:9003:6: warning: symbol 'find_cip' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:9071:6: warning: symbol 'SetVoiceChannel' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:9089:6: warning: symbol 'VoiceChannelOff' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:9102:6: warning: symbol 'AdvCodecSupport' was not declared. Should it be static?
  drivers/isdn/hardware/eicon/message.c:9198:6: warning: symbol 'CodecIdCheck' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agox86: convert rdtscll() to use __native_read_tsc
Ken Chen [Tue, 16 Dec 2008 08:32:21 +0000 (00:32 -0800)]
x86: convert rdtscll() to use __native_read_tsc

Impact: micro-optimization

Is there any reason why x86 rdtscll have to use the out of line
function instead of inline __native_read_tsc()?  native_read_tsc and
__native_read_tsc is essentially the same functions.

Patch to let x86 rdtscll() to use the inline version of read_tsc.

Signed-off-by: Ken Chen <kenchen@google.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoipmr: merge common code
Ilpo Järvinen [Tue, 16 Dec 2008 09:15:11 +0000 (01:15 -0800)]
ipmr: merge common code

Also removes redundant skb->len < x check which can't
be true once pskb_may_pull(skb, x) succeeded.

$ diff-funcs pim_rcv ipmr.c ipmr.c pim_rcv_v1
  --- ipmr.c:pim_rcv()
  +++ ipmr.c:pim_rcv_v1()
@@ -1,22 +1,27 @@
-static int pim_rcv(struct sk_buff * skb)
+int pim_rcv_v1(struct sk_buff * skb)
 {
- struct pimreghdr *pim;
+ struct igmphdr *pim;
  struct iphdr   *encap;
  struct net_device  *reg_dev = NULL;

  if (!pskb_may_pull(skb, sizeof(*pim) + sizeof(*encap)))
  goto drop;

- pim = (struct pimreghdr *)skb_transport_header(skb);
- if (pim->type != ((PIM_VERSION<<4)|(PIM_REGISTER)) ||
-     (pim->flags&PIM_NULL_REGISTER) ||
-     (ip_compute_csum((void *)pim, sizeof(*pim)) != 0 &&
-      csum_fold(skb_checksum(skb, 0, skb->len, 0))))
+ pim = igmp_hdr(skb);
+
+ if (!mroute_do_pim ||
+     skb->len < sizeof(*pim) + sizeof(*encap) ||
+     pim->group != PIM_V1_VERSION || pim->code != PIM_V1_REGISTER)
  goto drop;

- /* check if the inner packet is destined to mcast group */
  encap = (struct iphdr *)(skb_transport_header(skb) +
-  sizeof(struct pimreghdr));
+  sizeof(struct igmphdr));
+ /*
+    Check that:
+    a. packet is really destinted to a multicast group
+    b. packet is not a NULL-REGISTER
+    c. packet is not truncated
+  */
  if (!ipv4_is_multicast(encap->daddr) ||
      encap->tot_len == 0 ||
      ntohs(encap->tot_len) + sizeof(*pim) > skb->len)
@@ -40,9 +45,9 @@
  skb->ip_summed = 0;
  skb->pkt_type = PACKET_HOST;
  dst_release(skb->dst);
+ skb->dst = NULL;
  reg_dev->stats.rx_bytes += skb->len;
  reg_dev->stats.rx_packets++;
- skb->dst = NULL;
  nf_reset(skb);
  netif_rx(skb);
  dev_put(reg_dev);

$ codiff net/ipv4/ipmr.o.old net/ipv4/ipmr.o.new

net/ipv4/ipmr.c:
  pim_rcv_v1 | -283
  pim_rcv    | -284
 2 functions changed, 567 bytes removed

net/ipv4/ipmr.c:
  __pim_rcv | +307
 1 function changed, 307 bytes added

net/ipv4/ipmr.o.new:
 3 functions changed, 307 bytes added, 567 bytes removed, diff: -260

(Tested on x86_64).

It seems that pimlen arg could be left out as well and
eq-sizedness of structs trapped with BUILD_BUG_ON but
I don't think that's more than a cosmetic flaw since there
aren't that many args anyway.

Compile tested.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agohp100: use roundup instead of open coding
Ilpo Järvinen [Tue, 16 Dec 2008 09:14:21 +0000 (01:14 -0800)]
hp100: use roundup instead of open coding

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agocxgb3: Add multiple Tx queue support.
Divy Le Ray [Tue, 16 Dec 2008 09:09:39 +0000 (01:09 -0800)]
cxgb3: Add multiple Tx queue support.

Implement NIC Tx multiqueue.
Bump up driver version.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agosched: optimize update_curr()
Peter Zijlstra [Tue, 16 Dec 2008 07:45:31 +0000 (08:45 +0100)]
sched: optimize update_curr()

Impact: micro-optimization

Skip the hard work when there is none.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agosched: fix wakeup preemption clock
Mike Galbraith [Tue, 16 Dec 2008 07:45:30 +0000 (08:45 +0100)]
sched: fix wakeup preemption clock

Impact: sharpen the wakeup-granularity to always be against current scheduler time

It was possible to do the preemption check against an old time stamp.

Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoUBI: simplify PEB protection code
Xiaochuan-Xu [Mon, 15 Dec 2008 13:07:41 +0000 (21:07 +0800)]
UBI: simplify PEB protection code

UBI has 2 RB-trees to implement PEB protection, which is too
much for simply prevent PEB from being moved for some time.
This patch implements this using lists. The benefits:

1. No need to allocate protection entry on each PEB get.
2. No need to maintain balanced trees and walk them.

Signed-off-by: Xiaochuan-Xu <xiaochuan-xu@cqu.edu.cn>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
17 years agoe1000e: Add GRO support
Herbert Xu [Tue, 16 Dec 2008 07:46:15 +0000 (23:46 -0800)]
e1000e: Add GRO support

This patch adds GRO support to e1000e by making it invoke napi_gro_receive
instead of netif_receive_skb.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoethtool: Add GGRO and SGRO ops
Herbert Xu [Tue, 16 Dec 2008 07:44:31 +0000 (23:44 -0800)]
ethtool: Add GGRO and SGRO ops

This patch adds the ethtool ops to enable and disable GRO.  It also
makes GRO depend on RX checksum offload much the same as how TSO
depends on SG support.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agotcp: Add GRO support
Herbert Xu [Tue, 16 Dec 2008 07:43:36 +0000 (23:43 -0800)]
tcp: Add GRO support

This patch adds the TCP-specific portion of GRO.  The criterion for
merging is extremely strict (the TCP header must match exactly apart
from the checksum) so as to allow refragmentation.  Otherwise this
is pretty much identical to LRO, except that we support the merging
of ECN packets.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agosh: Disable GENERIC_HARDIRQS_NO__DO_IRQ for unconverted platforms.
Paul Mundt [Mon, 8 Dec 2008 02:45:37 +0000 (11:45 +0900)]
sh: Disable GENERIC_HARDIRQS_NO__DO_IRQ for unconverted platforms.

Presently limited to Cayman, Dreamcast, Microdev, and SystemH 7751.
Re-enable it for everyone once these have been fixed up.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
17 years agonet: Add skb_gro_receive
Herbert Xu [Tue, 16 Dec 2008 07:42:33 +0000 (23:42 -0800)]
net: Add skb_gro_receive

This patch adds the helper skb_gro_receive to merge packets for
GRO.  The current method is to allocate a new header skb and then
chain the original packets to its frag_list.  This is done to
make it easier to integrate into the existing GSO framework.

In future as GSO is moved into the drivers, we can undo this and
simply chain the original packets together.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoipv4: Add GRO infrastructure
Herbert Xu [Tue, 16 Dec 2008 07:41:09 +0000 (23:41 -0800)]
ipv4: Add GRO infrastructure

This patch adds GRO support for IPv4.

The criteria for merging is more stringent than LRO, in particular,
we require all fields in the IP header to be identical except for
the length, ID and checksum.  In addition, the ID must form an
arithmetic sequence with a difference of one.

The ID requirement might seem overly strict, however, most hardware
TSO solutions already obey this rule.  Linux itself also obeys this
whether GSO is in use or not.

In future we could relax this rule by storing the IDs (or rather
making sure that we don't drop them when pulling the aggregate
skb's tail).

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agosh: maple: Do not pass SLAB_POISON to kmem_cache_create()
Matt Fleming [Tue, 16 Dec 2008 00:15:31 +0000 (09:15 +0900)]
sh: maple: Do not pass SLAB_POISON to kmem_cache_create()

SLAB_POISON is not a valid flag for kmem_create_cache() unless
CONFIG_DEBUG_SLAB is set, so remove it from the flags argument.

Acked-by: Adrian McMenamin <adrian@newgolddream.dyndns.info>
Signed-off-by: Matt Fleming <mjf@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
17 years agonet: Add Generic Receive Offload infrastructure
Herbert Xu [Tue, 16 Dec 2008 07:38:52 +0000 (23:38 -0800)]
net: Add Generic Receive Offload infrastructure

This patch adds the top-level GRO (Generic Receive Offload) infrastructure.
This is pretty similar to LRO except that this is protocol-independent.
Instead of holding packets in an lro_mgr structure, they're now held in
napi_struct.

For drivers that intend to use this, they can set the NETIF_F_GRO bit and
call napi_gro_receive instead of netif_receive_skb or just call netif_rx.
The latter will call napi_receive_skb automatically.  When napi_gro_receive
is used, the driver must either call napi_complete/napi_rx_complete, or
call napi_gro_flush in softirq context if the driver uses the primitives
__napi_complete/__napi_rx_complete.

Protocols will set the gro_receive and gro_complete function pointers in
order to participate in this scheme.

In addition to the packet, gro_receive will get a list of currently held
packets.  Each packet in the list has a same_flow field which is non-zero
if it is a potential match for the new packet.  For each packet that may
match, they also have a flush field which is non-zero if the held packet
must not be merged with the new packet.

Once gro_receive has determined that the new skb matches a held packet,
the held packet may be processed immediately if the new skb cannot be
merged with it.  In this case gro_receive should return the pointer to
the existing skb in gro_list.  Otherwise the new skb should be merged into
the existing packet and NULL should be returned, unless the new skb makes
it impossible for any further merges to be made (e.g., FIN packet) where
the merged skb should be returned.

Whenever the skb is merged into an existing entry, the gro_receive
function should set NAPI_GRO_CB(skb)->same_flow.  Note that if an skb
merely matches an existing entry but can't be merged with it, then
this shouldn't be set.

If gro_receive finds it pointless to hold the new skb for future merging,
it should set NAPI_GRO_CB(skb)->flush.

Held packets will be flushed by napi_gro_flush which is called by
napi_complete and napi_rx_complete.

Currently held packets are stored in a singly liked list just like LRO.
The list is limited to a maximum of 8 entries.  In future, this may be
expanded to use a hash table to allow more flows to be held for merging.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonet: Add frag_list support to GSO
Herbert Xu [Tue, 16 Dec 2008 07:27:47 +0000 (23:27 -0800)]
net: Add frag_list support to GSO

This patch allows GSO to handle frag_list in a limited way for the
purposes of allowing packets merged by GRO to be refragmented on
output.

Most hardware won't (and aren't expected to) support handling GRO
frag_list packets directly.  Therefore we will perform GSO in
software for those cases.

However, for drivers that can support it (such as virtual NICs) we
may not have to segment the packets at all.

Whether the added overhead of GRO/GSO is worthwhile for bridges
and routers when weighed against the benefit of potentially
increasing the MTU within the host is still an open question.
However, for the case of host nodes this is undoubtedly a win.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonet: Add frag_list support to skb_segment
Herbert Xu [Tue, 16 Dec 2008 07:26:06 +0000 (23:26 -0800)]
net: Add frag_list support to skb_segment

This patch adds limited support for handling frag_list packets in
skb_segment.  The intention is to support GRO (Generic Receive Offload)
packets which will be constructed by chaining normal packets using
frag_list.

As such we require all frag_list members terminate on exact MSS
boundaries.  This is checked using BUG_ON.

As there should only be one producer in the kernel of such packets,
namely GRO, this requirement should not be difficult to maintain.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agorapidio: struct device - replace bus_id with dev_name(), dev_set_name()
Kay Sievers [Thu, 4 Dec 2008 18:01:52 +0000 (10:01 -0800)]
rapidio: struct device - replace bus_id with dev_name(), dev_set_name()

Cc: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: struct device - replace bus_id with dev_name(), dev_set_name()
Kay Sievers [Thu, 4 Dec 2008 18:02:56 +0000 (10:02 -0800)]
powerpc: struct device - replace bus_id with dev_name(), dev_set_name()

Acked-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Remove flush_HPTE()
Benjamin Herrenschmidt [Sun, 14 Dec 2008 19:44:51 +0000 (19:44 +0000)]
powerpc/mm: Remove flush_HPTE()

The function flush_HPTE() is used in only one place, the implementation
of DEBUG_PAGEALLOC on ppc32.

It's actually a dup of flush_tlb_page() though it's -slightly- more
efficient on hash based processors.  We remove it and replace it by
a direct call to the hash flush code on those processors and to
flush_tlb_page() for everybody else.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Rename tlb_32.c and tlb_64.c to tlb_hash32.c and tlb_hash64.c
Benjamin Herrenschmidt [Sun, 14 Dec 2008 19:44:39 +0000 (19:44 +0000)]
powerpc/mm: Rename tlb_32.c and tlb_64.c to tlb_hash32.c and tlb_hash64.c

This renames the files to clarify the fact that they are used by
the hash based family of CPUs (the 603 being an exception in that
family but is still handled by that code).

This paves the way for the new tlb_nohash.c coming via a subsequent
commit.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Add local_flush_tlb_mm() to SW loaded TLB implementations
Benjamin Herrenschmidt [Sun, 14 Dec 2008 19:44:24 +0000 (19:44 +0000)]
powerpc/mm: Add local_flush_tlb_mm() to SW loaded TLB implementations

This adds a local_flush_tlb_mm() call as a pre-requisite for some
SMP work for BookE processors.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Fix asm EMIT_BUG_ENTRY with !CONFIG_BUG
Benjamin Herrenschmidt [Sun, 14 Dec 2008 19:44:13 +0000 (19:44 +0000)]
powerpc: Fix asm EMIT_BUG_ENTRY with !CONFIG_BUG

Instead of not defining it at all, this defines the macro as
being empty, thus avoiding ifdef's in call sites when CONFIG_BUG
is not set.

Also removes an extra whitespace in the existing definition.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Remove dead BIO_VMERGE_BOUNDARY definition
FUJITA Tomonori [Sat, 13 Dec 2008 17:44:59 +0000 (17:44 +0000)]
powerpc: Remove dead BIO_VMERGE_BOUNDARY definition

The block layer dropped the virtual merge feature
(b8b3e16cfe6435d961f6aaebcfd52a1ff2a988c5).  BIO_VMERGE_BOUNDARY
definition is meaningless now (For POWER, BIO_VMERGE_BOUNDARY has been
meaningless for a long time since POWER disables the virtual merge
feature).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Introduce ppc_pci_flags accessors
Josh Boyer [Thu, 11 Dec 2008 09:46:44 +0000 (09:46 +0000)]
powerpc: Introduce ppc_pci_flags accessors

Currently there are a number of platforms that open code access to
the ppc_pci_flags global variable.  However, that variable is not
present if CONFIG_PCI is not set, which can lead to a build break.

This introduces a number of accessor functions that are defined
to be empty in the case of CONFIG_PCI being disabled.  The
various platform files in the kernel are updated to use these.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/pseries: Check for GIQ indicator before calling set-indicator
Nathan Lynch [Thu, 11 Dec 2008 09:14:25 +0000 (09:14 +0000)]
powerpc/pseries: Check for GIQ indicator before calling set-indicator

Since "Factor out cpu joining/unjoining the GIQ"
(b4963255ad5a426f04a0bb15c4315fa4bb40cde9) the WARN_ON in
xics_set_cpu_giq() is being triggered during boot on JS20 because the
GIQ indicator is not available on that platform.  While the warning is
harmless and the system runs normally, it's nicer to check for the
existence of the indicator before trying to manipulate it.

Implement rtas_indicator_present(), which searches the
/rtas/rtas-indicators property for the given indicator token, and use
this function in xics_set_cpu_giq().

Also use a WARN statement in xics_set_cpu_giq to get better
information on failure.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Acked-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/powermac: Use set_hard_smp_processor_id() instead of smp_hw_index
Nathan Lynch [Wed, 10 Dec 2008 14:28:42 +0000 (14:28 +0000)]
powerpc/powermac: Use set_hard_smp_processor_id() instead of smp_hw_index

The hard_smp_processor_id functions are the appropriate interfaces for
managing physical CPU ids.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Move smp_hw_index to 32-bit code
Nathan Lynch [Wed, 10 Dec 2008 14:28:41 +0000 (14:28 +0000)]
powerpc: Move smp_hw_index to 32-bit code

smp_hw_index isn't used on 64-bit, so move it from smp.c to
setup_32.c.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Remove `have_of' global variable
Anton Vorontsov [Tue, 9 Dec 2008 09:47:29 +0000 (09:47 +0000)]
powerpc: Remove `have_of' global variable

The `have_of' variable is a relic from the arch/ppc time, it isn't
useful nowadays.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Tue, 16 Dec 2008 04:03:50 +0000 (20:03 -0800)]
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:

drivers/net/e1000e/ich8lan.c

17 years agopowerpc: Fix !CONFIG_PPC_NEED_DMA_SYNC_OPS build warning
Becky Bruce [Thu, 4 Dec 2008 08:12:40 +0000 (08:12 +0000)]
powerpc: Fix !CONFIG_PPC_NEED_DMA_SYNC_OPS build warning

Change #define stubs of dma_sync ops to be empty static inlines
to avoid build warning.

Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/ps3: Add sub-match id modalias support
Geert Uytterhoeven [Wed, 3 Dec 2008 13:52:21 +0000 (13:52 +0000)]
powerpc/ps3: Add sub-match id modalias support

commit 059e4938f8b060b10c4352e6c45739473bc73267 ("powerpc/ps3: Add a sub-match
id to ps3_system_bus") forgot to update the module alias support:
  - Add the sub-match ids to the module aliases, so udev can distinguish
    between different types of sub-devices.
  - Rename PS3_MODULE_ALIAS_GRAPHICS to PS3_MODULE_ALIAS_GPU_FB, as ps3fb
    binds to the "FB" sub-device.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/ps3: Quiet dmesg output
Geoff Levand [Wed, 3 Dec 2008 13:52:15 +0000 (13:52 +0000)]
powerpc/ps3: Quiet dmesg output

Change the debug message in dma_sb_region_create() from
pr_info() to DBG() to quiet the dmesg output.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Fix typo in pgtable-ppc64.h
Geoff Levand [Wed, 3 Dec 2008 13:52:05 +0000 (13:52 +0000)]
powerpc: Fix typo in pgtable-ppc64.h

Fix a minor comment typo in pgtable-ppc64.h.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/chrp: Add missing of_node_put in pci.c
Nicolas Palix [Tue, 2 Dec 2008 03:34:46 +0000 (03:34 +0000)]
powerpc/chrp: Add missing of_node_put in pci.c

of_node_put is needed before discarding a value received from
of_find_node_by_name, eg in error handling code or when the device
node is no longer used.

The semantic match that catches the bug is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression struct device_node *n;
position p1, p2;
statement S1,S2;
expression E,E1;
expression *ptr != NULL;
@@

(
if (!(n@p1 = of_find_node_by_name(...))) S1
|
n@p1 = of_find_node_by_name(...)
)
<... when != of_node_put(n)
    when != if (...) { <+... of_node_put(n) ...+> }
    when != true !n  || ...
    when != n = E
    when != E = n
if (!n || ...) S2
...>
(
  return \(0\|<+...n...+>\|ptr\);
|
return@p2 ...;
|
n = E1
|
E1 = n
)
@script:python@
p1 << r.p1;
p2 << r.p2;
@@

print "* file: %s of_find_node_by_name %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
// </smpl>

Signed-off-by: Nicolas Palix <npalix@diku.dk>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoMerge branch 'merge' into next
Paul Mackerras [Tue, 16 Dec 2008 03:38:58 +0000 (14:38 +1100)]
Merge branch 'merge' into next

17 years agopowerpc/cell/axon-msi: Fix MSI after kexec
Arnd Bergmann [Fri, 12 Dec 2008 09:19:50 +0000 (09:19 +0000)]
powerpc/cell/axon-msi: Fix MSI after kexec

Commit d015fe995 'powerpc/cell/axon-msi: Retry on missing interrupt'
has turned a rare failure to kexec on QS22 into a reproducible
error, which we have now analysed.

The problem is that after a kexec, the MSIC hardware still points
into the middle of the old ring buffer.  We set up the ring buffer
during reboot, but not the offset into it.  On older kernels, this
would cause a storm of thousands of spurious interrupts after a
kexec, which would most of the time get dropped silently.

With the new code, we time out on each interrupt, waiting for
it to become valid.  If more interrupts come in that we time
out on, this goes on indefinitely, which eventually leads to
a hard crash.

The solution in this commit is to read the current offset from
the MSIC when reinitializing it.  This now works correctly, as
expected.

Reported-by: Dirk Herrendoerfer <d.herrendoerfer@de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Fix bootmem reservation on uninitialized node
Dave Hansen [Thu, 11 Dec 2008 08:36:06 +0000 (08:36 +0000)]
powerpc: Fix bootmem reservation on uninitialized node

careful_allocation() was calling into the bootmem allocator for
nodes which had not been fully initialized and caused a previous
bug:  http://patchwork.ozlabs.org/patch/10528/  So, I merged a
few broken out loops in do_init_bootmem() to fix it.  That changed
the code ordering.

I think this bug is triggered by having reserved areas for a node
which are spanned by another node's contents.  In the
mark_reserved_regions_for_nid() code, we attempt to reserve the
area for a node before we have allocated the NODE_DATA() for that
nid.  We do this since I reordered that loop.  I suck.

This is causing crashes at bootup on some systems, as reported
by Jon Tollefson.

This may only present on some systems that have 16GB pages
reserved.  But, it can probably happen on any system that is
trying to reserve large swaths of memory that happen to span other
nodes' contents.

This commit ensures that we do not touch bootmem for any node which
has not been initialized, and also removes a compile warning about
an unused variable.

Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Check for valid hugepage size in hugetlb_get_unmapped_area
Brian King [Thu, 4 Dec 2008 04:07:54 +0000 (04:07 +0000)]
powerpc: Check for valid hugepage size in hugetlb_get_unmapped_area

It looks like most of the hugetlb code is doing the correct thing if
hugepages are not supported, but the mmap code is not.  If we get into
the mmap code when hugepages are not supported, such as in an LPAR
which is running Active Memory Sharing, we can oops the kernel.  This
fixes the oops being seen in this path.

oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=1024 NUMA pSeries
Modules linked in: nfs(N) lockd(N) nfs_acl(N) sunrpc(N) ipv6(N) fuse(N) loop(N)
dm_mod(N) sg(N) ibmveth(N) sd_mod(N) crc_t10dif(N) ibmvscsic(N)
scsi_transport_srp(N) scsi_tgt(N) scsi_mod(N)
Supported: No
NIP: c000000000038d60 LR: c00000000003945c CTR: c0000000000393f0
REGS: c000000077e7b830 TRAP: 0300   Tainted: G
(2.6.27.5-bz50170-2-ppc64)
MSR: 8000000000009032 <EE,ME,IR,DR>  CR: 44000448  XER: 20000001
DAR: c000002000af90a8, DSISR: 0000000040000000
TASK = c00000007c1b8600[4019] 'hugemmap01' THREAD: c000000077e78000 CPU: 6
GPR00: 0000001fffffffe0 c000000077e7bab0 c0000000009a4e78 0000000000000000
GPR04: 0000000000010000 0000000000000001 00000000ffffffff 0000000000000001
GPR08: 0000000000000000 c000000000af90c8 0000000000000001 0000000000000000
GPR12: 000000000000003f c000000000a73880 0000000000000000 0000000000000000
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000010000
GPR20: 0000000000000000 0000000000000003 0000000000010000 0000000000000001
GPR24: 0000000000000003 0000000000000000 0000000000000001 ffffffffffffffb5
GPR28: c000000077ca2e80 0000000000000000 c00000000092af78 0000000000010000
NIP [c000000000038d60] .slice_get_unmapped_area+0x6c/0x4e0
LR [c00000000003945c] .hugetlb_get_unmapped_area+0x6c/0x80
Call Trace:
[c000000077e7bbc0] [c00000000003945c] .hugetlb_get_unmapped_area+0x6c/0x80
[c000000077e7bc30] [c000000000107e30] .get_unmapped_area+0x64/0xd8
[c000000077e7bcb0] [c00000000010b140] .do_mmap_pgoff+0x140/0x420
[c000000077e7bd80] [c00000000000bf5c] .sys_mmap+0xc4/0x140
[c000000077e7be30] [c0000000000086b4] syscall_exit+0x0/0x40
Instruction dump:
fac1ffb0 fae1ffb8 fb01ffc0 fb21ffc8 fb41ffd0 fb61ffd8 fb81ffe0 fbc1fff0
fbe1fff8 f821fef1 f8c10158 f8e10160 <7d49002ef9010168 e92d01b0 eb4902b0

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 16 Dec 2008 00:31:05 +0000 (16:31 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 5348/1: fix documentation wrt location of the alignment trap interface
  [ARM] Ensure linux/hardirqs.h is included where required
  [ARM] fix kernel-doc syntax
  [ARM] arch/arm/common/sa1111.c: Correct error handling code
  [ARM] 5341/2: there is no copy_page on nommu ARM

17 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Tue, 16 Dec 2008 00:30:22 +0000 (16:30 -0800)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  Phonet: keep TX queue disabled when the device is off
  SCHED: netem: Correct documentation comment in code.
  netfilter: update rwlock initialization for nat_table
  netlabel: Compiler warning and NULL pointer dereference fix
  e1000e: fix double release of mutex
  IA64: HP_SIMETH needs to depend upon NET
  netpoll: fix race on poll_list resulting in garbage entry
  ipv6: silence log messages for locally generated multicast
  sungem: improve ethtool output with internal pcs and serdes
  tcp: tcp_vegas cong avoid fix
  sungem: Make PCS PHY support partially work again.

17 years agoDefine smp_call_function_many for UP
Rusty Russell [Mon, 15 Dec 2008 08:34:35 +0000 (19:04 +1030)]
Define smp_call_function_many for UP

Otherwise those using it in transition patches (eg. kvm) can't compile
with CONFIG_SMP=n:

arch/x86/kvm/../../../virt/kvm/kvm_main.c: In function 'make_all_cpus_request':
arch/x86/kvm/../../../virt/kvm/kvm_main.c:380: error: implicit declaration of function 'smp_call_function_many'

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agocgroups: fix a race between rmdir and remount
Paul Menage [Mon, 15 Dec 2008 21:54:22 +0000 (13:54 -0800)]
cgroups: fix a race between rmdir and remount

When a cgroup is removed, it's unlinked from its parent's children list,
but not actually freed until the last dentry on it is released (at which
point cgrp->root->number_of_cgroups is decremented).

Currently rebind_subsystems checks for the top cgroup's child list being
empty in order to rebind subsystems into or out of a hierarchy - this can
result in the set of subsystems bound to a hierarchy being
removed-but-not-freed cgroup.

The simplest fix for this is to forbid remounts that change the set of
subsystems on a hierarchy that has removed-but-not-freed cgroups.  This
bug can be reproduced via:

mkdir /mnt/cg
mount -t cgroup -o ns,freezer cgroup /mnt/cg
mkdir /mnt/cg/foo
sleep 1h < /mnt/cg/foo &
rmdir /mnt/cg/foo
mount -t cgroup -o remount,ns,devices,freezer cgroup /mnt/cg
kill $!

Though the above will cause oops in -mm only but not mainline, but the bug
can cause memory leak in mainline (and even oops)

Signed-off-by: Paul Menage <menage@google.com>
Reviewed-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoACPI toshiba: only register rfkill if bt is enabled
Frederik Deweerdt [Mon, 15 Dec 2008 21:54:19 +0000 (13:54 -0800)]
ACPI toshiba: only register rfkill if bt is enabled

Part of the rfkill initialization was done whenever BT was on or not.  The
following patch checks for BT presence before registering the rfkill to
the input layer.  Some minor cleanups (> 80 char lines) were also added in
the process.

On Tue, Oct 28, 2008 at 10:10:37PM +0300, Andrey Borzenkov wrote:
[...]
> [   66.633036] toshiba_acpi: Toshiba Laptop ACPI Extras version 0.19
> [   66.633054] toshiba_acpi:     HCI method: \_SB_.VALD.GHCI
> [   66.637764] input: Toshiba RFKill Switch as /devices/virtual/input/input3
[...]
> [  113.920753] ------------[ cut here ]------------
> [  113.920828] kernel BUG at /home/bor/src/linux-git/net/rfkill/rfkill.c:347!
> [  113.920845] invalid opcode: 0000 [#1]
> [  113.920877] last sysfs file: /sys/devices/pci0000:00/0000:00:04.0/host0/target0:0:0/0:0:0:0/block/sda/size
> [  113.920900] Dumping ftrace buffer:
> [  113.920919]    (ftrace buffer empty)
> [  113.920933] Modules linked in: af_packet irnet ppp_generic slhc ircomm_tty ircomm binfmt_misc loop dm_mirror dm_region_hash dm_log dm_round_robin dm_multipath dm_mod alim15x3 ide_core nvram toshiba cryptomgr aead crypto_blkcipher michael_mic crypto_algapi orinoco_cs orinoco hermes_dld hermes pcmcia firmware_class snd_ali5451 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device smsc_ircc2 snd_pcm_oss snd_pcm rtc_cmos irda snd_timer snd_mixer_oss rtc_core snd crc_ccitt yenta_socket rtc_lib rsrc_nonstatic i2c_ali1535 pcmcia_core pcspkr psmouse soundcore i2c_core evdev sr_mod snd_page_alloc alim1535_wdt cdrom fan sg video output toshiba_acpi rfkill thermal backlight ali_agp processor ac button input_polldev battery agpgart ohci_hcd usbcore reiserfs pata_ali libata sd_mod scsi_mod [last unloaded: scsi_wait_scan]
> [  113.921765]
> [  113.921785] Pid: 3272, comm: ipolldevd Not tainted (2.6.28-rc2-1avb #3) PORTEGE 4000
> [  113.921801] EIP: 0060:[<dfaa4683>] EFLAGS: 00010246 CPU: 0
> [  113.921854] EIP is at rfkill_force_state+0x53/0x90 [rfkill]
> [  113.921870] EAX: 00000000 EBX: 00000000 ECX: 00000003 EDX: 00000000
> [  113.921885] ESI: 00000000 EDI: ddd50300 EBP: d8d7af40 ESP: d8d7af24
> [  113.921900]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> [  113.921918] Process ipolldevd (pid: 3272, ti=d8d7a000 task=d8d93c90 task.ti=d8d7a000)
> [  113.921933] Stack:
> [  113.921945]  d8d7af38 00000246 dfb029d8 dfb029c0 dfb029d8 dfb029c0 ddd50300 d8d7af5c
> [  113.922014]  dfb018e2 01000246 01000000 ddd50300 ddd50314 ddabb8a0 d8d7af68 dfb381c1
> [  113.922098]  00000000 d8d7afa4 c012ec0a 00000000 00000002 00000000 c012eba8 ddabb8c0
> [  113.922240] Call Trace:
> [  113.922240]  [<dfb018e2>] ? bt_poll_rfkill+0x5c/0x82 [toshiba_acpi]
> [  113.922240]  [<dfb381c1>] ? input_polled_device_work+0x11/0x40 [input_polldev]
> [  113.922240]  [<c012ec0a>] ? run_workqueue+0xea/0x1f0
> [  113.922240]  [<c012eba8>] ? run_workqueue+0x88/0x1f0
> [  113.922240]  [<dfb381b0>] ? input_polled_device_work+0x0/0x40 [input_polldev]
> [  113.922240]  [<c012f047>] ? worker_thread+0x87/0xf0
> [  113.922240]  [<c0132b00>] ? autoremove_wake_function+0x0/0x50
> [  113.922240]  [<c012efc0>] ? worker_thread+0x0/0xf0
> [  113.922240]  [<c013280f>] ? kthread+0x3f/0x80
> [  113.922240]  [<c01327d0>] ? kthread+0x0/0x80
> [  113.922240]  [<c01040d7>] ? kernel_thread_helper+0x7/0x10
> [  113.922240] Code: 43 54 89 73 54 39 c6 74 11 89 d9 ba 01 00 00 00 b8 40 68 aa df e8 3e 35 69 e0 89 f8 e8 77 fd 85 e0 31 c0 83 c4 10 5b 5e 5f 5d c3 <0f> 0b eb fe 89 f6 8d bc 27 00 00 00 00 be f4 4d aa df bb 5f 01
> [  113.922240] EIP: [<dfaa4683>] rfkill_force_state+0x53/0x90 [rfkill] SS:ESP 0068:d8d7af24
> [  113.924700] ---[ end trace 0e404eb40cadd5f0 ]---

Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Tested-by: Andrey Borzenkov <arvidjaar@mail.ru>
Acked-by: Len Brown <len.brown@intel.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoeCryptfs: Update maintainers
Michael Halcrow [Mon, 15 Dec 2008 21:54:17 +0000 (13:54 -0800)]
eCryptfs: Update maintainers

Tyler Hicks and Dustin Kirkland are now the primary contact points for
eCryptfs issues that may arise from this point forward.

Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
Acked-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Acked-by: Dustin Kirkland <kirkland@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoslob: do not pass the SLAB flags as GFP in kmem_cache_create()
Catalin Marinas [Mon, 15 Dec 2008 21:54:16 +0000 (13:54 -0800)]
slob: do not pass the SLAB flags as GFP in kmem_cache_create()

The kmem_cache_create() function in the slob allocator passes the SLAB
flags as GFP flags to the slob_alloc() function.  The patch changes this
call to pass GFP_KERNEL as the other allocators seem to do.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Matt Mackall <mpm@selenic.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agopcmcia: blackfin: fix bug - add missing ; to MODULE macro
Mike Frysinger [Mon, 15 Dec 2008 21:54:14 +0000 (13:54 -0800)]
pcmcia: blackfin: fix bug - add missing ; to MODULE macro

Cc: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoOMAP: Fix dpll4_m4_ck clk_set_rate()
Tomi Valkeinen [Mon, 8 Dec 2008 13:16:49 +0000 (15:16 +0200)]
OMAP: Fix dpll4_m4_ck clk_set_rate()

This fixes commit e42218d45afbc3e654e289e021e6b80c657b16c2. The commit
was based on old kernel tree, and with bad luck applied ok but to wrong
position, modifying dpll4_m6_ck instead of dpll4_m4_ck.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
17 years agoOMAP2/3: SDRC: fix walking of SDRC params list
Kevin Hilman [Mon, 15 Dec 2008 23:31:48 +0000 (15:31 -0800)]
OMAP2/3: SDRC: fix walking of SDRC params list

This patch fixes a bug where omap2_sdrc_get_params() does not properly
check for a valid table entry before continuing.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
17 years agoOMAP2: PM: fix fault in enter_full_retention()
Kevin Hilman [Sat, 6 Dec 2008 07:55:10 +0000 (23:55 -0800)]
OMAP2: PM: fix fault in enter_full_retention()

In omap24xx_cpu_suspend assembly routine, the r2 register which holds
the address of the SDRC_POWER reg is set to zero before the value is
written back triggering a fault due to writing to address zero.

It's hard to tell where this change was introduced since this file
has been moved and merged.

While this fix prevents a crash, suspend on my n810 is broken with
current kernels.  I never come out of suspend.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
17 years agoOMAP3: DMA: Enable idlemodes for DMA OCP
Kalle Jokiniemi [Mon, 1 Dec 2008 08:55:25 +0000 (10:55 +0200)]
OMAP3: DMA: Enable idlemodes for DMA OCP

This patch enables MStandby smart-idle mode, autoidle smartidle mode,
and the autoidle bit for DMA4_OCP_SYSCONFIG.

Signed-off-by: Kalle Jokiniemi <ext-kalle.jokiniemi@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
17 years ago[ARM] SMDK6410: Add LCD (LCD48WVGA) definitions
Ben Dooks [Wed, 19 Nov 2008 15:41:34 +0000 (15:41 +0000)]
[ARM] SMDK6410: Add LCD (LCD48WVGA) definitions

Add support for the LCD 48WVGA module attached to the
SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Add standard S3C64XX 24BPP LCD GPIO setup
Ben Dooks [Wed, 19 Nov 2008 15:41:33 +0000 (15:41 +0000)]
[ARM] S3C64XX: Add standard S3C64XX 24BPP LCD GPIO setup

Add a standard helper to configure the LCD output pins for a 24BPP
display with VSYNC/HSYNC/VDEN.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add new FB device definition
Ben Dooks [Wed, 19 Nov 2008 15:41:31 +0000 (15:41 +0000)]
[ARM] S3C: Add new FB device definition

Add a device definition for the new S3C framebuffer
driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add i2c1 device definition
Ben Dooks [Fri, 31 Oct 2008 16:14:55 +0000 (16:14 +0000)]
[ARM] S3C: Add i2c1 device definition

Add device definition and support functions for the
second i2c device (i2c1). If this is selected, the first
i2c bus will become index 0 instead of index -1.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add register defines for new style framebuffer
Ben Dooks [Wed, 19 Nov 2008 15:41:30 +0000 (15:41 +0000)]
[ARM] S3C: Add register defines for new style framebuffer

Provide  the initial register definitions for the newer
style of framebuffer cores found in the Samsung SoCs
such as S3C2450, S3C64XX.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Fix SDHCI setup compilation
Ben Dooks [Fri, 31 Oct 2008 16:29:19 +0000 (16:29 +0000)]
[ARM] S3C: Fix SDHCI setup compilation

Fix the compilation of the SDHCI configuration/setup
functions to depend on their respective configuration
variables.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C6410: Fix gpio configuration for channel 1.
Ben Dooks [Mon, 3 Nov 2008 20:14:57 +0000 (20:14 +0000)]
[ARM] S3C6410: Fix gpio configuration for channel 1.

Select the correct GPIO configuration function for channel 1

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] s3c6400_defconfig: Add SDHCI driver
Ben Dooks [Mon, 3 Nov 2008 20:14:56 +0000 (20:14 +0000)]
[ARM] s3c6400_defconfig: Add SDHCI driver

Add the Samsung SDHCI driver to the build.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] s3c6400_defconfig: Add I2C driver and devices
Ben Dooks [Mon, 3 Nov 2008 20:14:55 +0000 (20:14 +0000)]
[ARM] s3c6400_defconfig: Add I2C driver and devices

Add the new I2C driver and the EEPROM devices to
the system, as well as update to the latest kernel.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] SMDK6410: Add availability of second hsmmc channel
Ben Dooks [Mon, 3 Nov 2008 20:14:53 +0000 (20:14 +0000)]
[ARM] SMDK6410: Add availability of second hsmmc channel

Add SDHCI channel 1.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Fix MMC0 clock source register mask
Ben Dooks [Mon, 3 Nov 2008 14:56:25 +0000 (14:56 +0000)]
[ARM] S3C64XX: Fix MMC0 clock source register mask

Fix the definition of the MMC0 register shift and mask in the
CLKSRC register.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Fix missing definition of s3c64xx_init_io()
Ben Dooks [Fri, 31 Oct 2008 16:15:01 +0000 (16:15 +0000)]
[ARM] S3C64XX: Fix missing definition of s3c64xx_init_io()

The function s3c64xx_init_io was missing from <plat/cpu.h>
and was masked by the SMDK6410 having an local definition.

Fix by removing the SMDK6410 variant and adding it to the
relevant <plat/cpu.h> file.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add header for initial i2c device core setup.
Ben Dooks [Fri, 31 Oct 2008 16:15:00 +0000 (16:15 +0000)]
[ARM] S3C: Add header for initial i2c device core setup.

Add a header to define setup functions for the i2c
devices.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] SMDK6410: Add I2C device board information
Ben Dooks [Fri, 31 Oct 2008 16:14:59 +0000 (16:14 +0000)]
[ARM] SMDK6410: Add I2C device board information

Add the I2C devices on the SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] SMDK6410: Add second I2C channel.
Ben Dooks [Fri, 31 Oct 2008 16:14:57 +0000 (16:14 +0000)]
[ARM] SMDK6410: Add second I2C channel.

Add the second I2C channel on the SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Setup functions for i2c bus 1.
Ben Dooks [Fri, 31 Oct 2008 16:14:56 +0000 (16:14 +0000)]
[ARM] S3C64XX: Setup functions for i2c bus 1.

Add common gpio setup for i2c bus 1 on all current
S3C64XX architectures.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] SMDK6410: Add i2c device
Ben Dooks [Fri, 31 Oct 2008 16:14:52 +0000 (16:14 +0000)]
[ARM] SMDK6410: Add i2c device

Add i2c bus 0 to the configuration

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Add i2c device setup for I2C device 0
Ben Dooks [Fri, 31 Oct 2008 16:14:51 +0000 (16:14 +0000)]
[ARM] S3C64XX: Add i2c device setup for I2C device 0

Add the necessary device initialisation information
for I2C device 0.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: GPIO definitions for BANKS N,O,P,Q
Ben Dooks [Fri, 31 Oct 2008 16:14:50 +0000 (16:14 +0000)]
[ARM] S3C64XX: GPIO definitions for BANKS N,O,P,Q

GPIO register and configuration definitions for GPIO
banks N, O, P and Q.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: GPIO definitions for BANKS G,H,I,J
Ben Dooks [Fri, 31 Oct 2008 16:14:49 +0000 (16:14 +0000)]
[ARM] S3C64XX: GPIO definitions for BANKS G,H,I,J

GPIO register and configuration definitions for GPIO
banks G, H, I and J.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: GPIO definitions for BANKS D,E,F
Ben Dooks [Fri, 31 Oct 2008 16:14:48 +0000 (16:14 +0000)]
[ARM] S3C64XX: GPIO definitions for BANKS D,E,F

GPIO register and configuration definitions for GPIO
banks D, E and F.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: GPIO definitions for BANKS A,B,C
Ben Dooks [Fri, 31 Oct 2008 16:14:47 +0000 (16:14 +0000)]
[ARM] S3C64XX: GPIO definitions for BANKS A,B,C

GPIO register and configuration definitions for GPIO
banks A, B and C.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Make i2c device definition common to plat-s3c
Ben Dooks [Fri, 31 Oct 2008 16:14:40 +0000 (16:14 +0000)]
[ARM] S3C: Make i2c device definition common to plat-s3c

Make the device i2c0 common to plat-s3c and move the
definitions from arch/arm/plat-s3c24xx/devs.c

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add SDHCI (HSMMC) channel 1 device definition
Ben Dooks [Fri, 31 Oct 2008 16:14:39 +0000 (16:14 +0000)]
[ARM] S3C: Add SDHCI (HSMMC) channel 1 device definition

Add device definition and support code for the Samsung
HSMMC channel 1 device.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C6410: Add helper for setting SDHCI device information
Ben Dooks [Fri, 31 Oct 2008 16:14:38 +0000 (16:14 +0000)]
[ARM] S3C6410: Add helper for setting SDHCI device information

Add the necessary helper functions for setting up the SDHCI
device information.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add Samsung SDHCI register definitions
Ben Dooks [Fri, 31 Oct 2008 16:14:37 +0000 (16:14 +0000)]
[ARM] S3C: Add Samsung SDHCI register definitions

Add the specific register definitions for the Samsung SDHCI
(HSMMC) block for the S3C2443 and S3C64XX series.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C6XX: Add enable for clk_48
Ben Dooks [Fri, 31 Oct 2008 16:14:36 +0000 (16:14 +0000)]
[ARM] S3C6XX: Add enable for clk_48

Add apropriate enable call for clk_48m.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C6400: Register clk_fout_epll
Ben Dooks [Fri, 31 Oct 2008 16:14:35 +0000 (16:14 +0000)]
[ARM] S3C6400: Register clk_fout_epll

The clk_fout_epll clock wasn't registered as part of the initial clock
work, which can cause problems if it is used by one of the hardware
blocks.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add new GPIO configuration calls
Ben Dooks [Fri, 31 Oct 2008 16:14:34 +0000 (16:14 +0000)]
[ARM] S3C: Add new GPIO configuration calls

Add new GPIO configuration calls that mesh with the
new gpiolib support.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: GPIO library support
Ben Dooks [Fri, 31 Oct 2008 16:14:33 +0000 (16:14 +0000)]
[ARM] S3C64XX: GPIO library support

Add gpiolib registration for the GPIOs available on the
S3C64XX platform

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Add GPIO chip tracking
Ben Dooks [Fri, 31 Oct 2008 16:14:32 +0000 (16:14 +0000)]
[ARM] S3C: Add GPIO chip tracking

The gpiolib driver keeps its chip array to itself
and having a separate array for s3c-only gpios stops
any non-s3c gpio being used in one of the s3c specific
configuration calls.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Move common GPIO code from plat-s3c24xx
Ben Dooks [Fri, 31 Oct 2008 16:14:31 +0000 (16:14 +0000)]
[ARM] S3C: Move common GPIO code from plat-s3c24xx

Move the common parts of the GPIO code into plat-s3c
for use with both the s3c24xx and s3c64xx systems.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Add gpio bank numbering
Ben Dooks [Fri, 31 Oct 2008 16:14:30 +0000 (16:14 +0000)]
[ARM] S3C64XX: Add gpio bank numbering

Define the gpio numbers for the S3C64XX GPIO banks
available on the S3C6400 and S3C6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] SMDK6410: Add HSMMC0 device
Ben Dooks [Fri, 31 Oct 2008 16:14:29 +0000 (16:14 +0000)]
[ARM] SMDK6410: Add HSMMC0 device

Add HSMMC0 device to SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C: Move HSMMC device definition to plat-s3ec
Ben Dooks [Fri, 31 Oct 2008 16:14:28 +0000 (16:14 +0000)]
[ARM] S3C: Move HSMMC device definition to plat-s3ec

Move the definition for the hsmmc device to plat-s3c
to be shared between the s3c24xx and s3c64xx platforms.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Add external interrupt group definitions
Ben Dooks [Tue, 21 Oct 2008 13:07:14 +0000 (14:07 +0100)]
[ARM] S3C64XX: Add external interrupt group definitions

Add definitions for the external interrupt groups which accompany
the original IRQ_EINT from the s3c24xx series.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Fix warnings from map_io initilaisers
Ben Dooks [Tue, 21 Oct 2008 13:07:13 +0000 (14:07 +0100)]
[ARM] S3C64XX: Fix warnings from map_io initilaisers

Discard the 'void *' from the pointers used for the
virtual addresses when setting up the .virtual fields
of the io map to avoid implicit cast warnings

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
 Index: linux.git/arch/arm/plat-s3c64xx/cpu.c
===================================================================

17 years ago[ARM] S3C64XX: Reduce some output from INFO to DEBUG
Ben Dooks [Tue, 21 Oct 2008 13:07:12 +0000 (14:07 +0100)]
[ARM] S3C64XX: Reduce some output from INFO to DEBUG

Some of the startup output can be reduced to
KERN_DEBUG from KERN_INFO as it is only really
useful when trying to debug kernel initialisation
problems.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Add s3c6400_defconfig
Ben Dooks [Tue, 21 Oct 2008 13:07:11 +0000 (14:07 +0100)]
[ARM] S3C64XX: Add s3c6400_defconfig

Add a basic defconfig for s3c6400 series machines.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] SMDK6410: Initial machine support
Ben Dooks [Tue, 21 Oct 2008 13:07:09 +0000 (14:07 +0100)]
[ARM] SMDK6410: Initial machine support

Initial machine support for the Samsung SMDK6410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Add IRQ_EINT support
Ben Dooks [Tue, 21 Oct 2008 13:07:08 +0000 (14:07 +0100)]
[ARM] S3C64XX: Add IRQ_EINT support

Add the necessary code to support IRQ_EINT(x) on
the S3C64XX series of CPUs.

Note, since there is no GPIO configuration support
in the kernel, the irq set_type method does not
configure the relevant pin to interrupt.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago8390/8390p: Fix compat netdev ops handling.
David S. Miller [Mon, 15 Dec 2008 23:14:59 +0000 (15:14 -0800)]
8390/8390p: Fix compat netdev ops handling.

Based upon a report from Randy Dunlap.

The compat netdev ops assignments need to happen in
8390.c and 8390p.c, not lib8390.c, as only the type
specific code can assign the correct function pointers.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[ARM] S3C64XX: Map GPIO block
Ben Dooks [Tue, 21 Oct 2008 13:07:07 +0000 (14:07 +0100)]
[ARM] S3C64XX: Map GPIO block

Add mapping for GPIO block in the static mappings.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] VIC: Update asm/hardware/vic.h with PL192 information
Ben Dooks [Tue, 21 Oct 2008 13:07:06 +0000 (14:07 +0100)]
[ARM] VIC: Update asm/hardware/vic.h with PL192 information

The original arch/arm/include/asm/hardware/vic.h was
written for the PL190 ARM VIC implementation, and as
such does not have any information about the PL192
version.

Add details about the PL192 and PL190 specific registers
and any changes between the two units.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
17 years ago[ARM] S3C64XX: Demux UART interrupts
Ben Dooks [Tue, 21 Oct 2008 13:07:05 +0000 (14:07 +0100)]
[ARM] S3C64XX: Demux UART interrupts

Add demux handling for the UART interrupts
generated by the VIC into their seperate IRQs
that the serial driver can register.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>