profile/ivi/kernel-x86-ivi.git
14 years agopcmcia: validate late-added resources
Dominik Brodowski [Wed, 17 Feb 2010 15:25:53 +0000 (16:25 +0100)]
pcmcia: validate late-added resources

Currently, only those mem resources are validated which are already
registered at the time the first PCMCIA card is inserted. As we can
only validate resources immediately after card insert, store
"registered" mem resources in mem_db, and only upon validation move
them to mem_db_valid. When allocationg mem resources, mem_db_valid is
then preferred to mem_db.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: allow for extension of resource interval
Dominik Brodowski [Wed, 17 Feb 2010 13:35:33 +0000 (14:35 +0100)]
pcmcia: allow for extension of resource interval

If a new interval overlaps or extends an existing interval in
add_interval(), do not fail, but extend the existing interval.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: remove useless msleep in ds.c
Dominik Brodowski [Wed, 17 Feb 2010 10:02:22 +0000 (11:02 +0100)]
pcmcia: remove useless msleep in ds.c

As this is the socket thread (pccardd) starting up, we do not have
anything to wait for in ds.c. Instead, wait the same amount of time
in pccardd to allow userspace to catch up and - possibly - execute
pcmcia-socket-startup.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: use read_cis_mem return value
Dominik Brodowski [Wed, 17 Feb 2010 17:01:31 +0000 (18:01 +0100)]
pcmcia: use read_cis_mem return value

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: handle error in serial_cs config calls
Dominik Brodowski [Sun, 24 Jan 2010 17:20:22 +0000 (18:20 +0100)]
pcmcia: handle error in serial_cs config calls

Do not ignore the error returned by simple_config() / multi_config().

CC: linux-serial@vger.kernel.org
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: add locking to pcmcia_{read,write}_cis_mem
Dominik Brodowski [Wed, 17 Feb 2010 17:00:07 +0000 (18:00 +0100)]
pcmcia: add locking to pcmcia_{read,write}_cis_mem

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: avoid prod_id memleak
Dominik Brodowski [Sun, 24 Jan 2010 11:11:02 +0000 (12:11 +0100)]
pcmcia: avoid prod_id memleak

Reported-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: avoid sysfs-related lockup for cardbus
Dominik Brodowski [Mon, 18 Jan 2010 07:43:39 +0000 (08:43 +0100)]
pcmcia: avoid sysfs-related lockup for cardbus

In cb_free(), we remove some sysfs files -- other sysfs files might
grab ops_mutex, so we cannot hold it while removing sysfs files. This
fixes http://lkml.org/lkml/2010/1/17/88 .

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: use state machine for extended requery
Dominik Brodowski [Sun, 24 Jan 2010 13:36:59 +0000 (14:36 +0100)]
pcmcia: use state machine for extended requery

The requery callback now also handles the addition of a second pseudo
multifunction device. Avoids messing with dev_{g,s}et_drvdata(), and
fixes any workqueue <-> skt_mutex deadlock.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: delay re-scanning and re-querying of PCMCIA bus
Dominik Brodowski [Sun, 17 Jan 2010 18:30:53 +0000 (19:30 +0100)]
pcmcia: delay re-scanning and re-querying of PCMCIA bus

After a CIS update -- or the finalization of the resource database --,
proceed with the re-scanning or re-querying of PCMCIA cards only in
a separate thread to avoid deadlocks.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: use pccardd to handle eject, insert, suspend and resume requests
Dominik Brodowski [Sun, 17 Jan 2010 17:13:31 +0000 (18:13 +0100)]
pcmcia: use pccardd to handle eject, insert, suspend and resume requests

This avoids any sysfs-related deadlock (or lockdep warning), such
as reported at http://lkml.org/lkml/2010/1/17/88 .

Reported-by: Ming Lei <tom.leiming@gmail.com>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: use ops_mutex for rsrc_{mgr,nonstatic} locking
Dominik Brodowski [Sun, 17 Jan 2010 18:31:45 +0000 (19:31 +0100)]
pcmcia: use ops_mutex for rsrc_{mgr,nonstatic} locking

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: use mutex for dynid lock
Dominik Brodowski [Sat, 16 Jan 2010 12:06:40 +0000 (13:06 +0100)]
pcmcia: use mutex for dynid lock

Even though we weren't calling a blocking function within the dynid
spinlock, we do not need a spinlock here but can and should be using
a mutex.

Reported-by: Jiri Slaby <jirislaby@gmail.com>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: assert locking to struct pcmcia_device
Dominik Brodowski [Sun, 17 Jan 2010 17:31:34 +0000 (18:31 +0100)]
pcmcia: assert locking to struct pcmcia_device

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: add locking documentation
Dominik Brodowski [Sat, 16 Jan 2010 08:17:10 +0000 (09:17 +0100)]
pcmcia: add locking documentation

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: simplify locking
Dominik Brodowski [Sat, 16 Jan 2010 08:14:11 +0000 (09:14 +0100)]
pcmcia: simplify locking

replace pcmcia_socket->lock and pcmcia_dev_list_lock by using the
per-socket "ops_mutex", as we do neither need different locks
nor a spinlock here.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: add locking to struct pcmcia_socket->pcmcia_state()
Dominik Brodowski [Sat, 16 Jan 2010 07:32:56 +0000 (08:32 +0100)]
pcmcia: add locking to struct pcmcia_socket->pcmcia_state()

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: protect s->device_count
Dominik Brodowski [Sat, 16 Jan 2010 00:34:06 +0000 (01:34 +0100)]
pcmcia: protect s->device_count

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: properly lock skt->irq, skt->irq_mask
Dominik Brodowski [Sat, 16 Jan 2010 00:14:38 +0000 (01:14 +0100)]
pcmcia: properly lock skt->irq, skt->irq_mask

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: lock ops->set_socket
Dominik Brodowski [Fri, 15 Jan 2010 23:26:33 +0000 (00:26 +0100)]
pcmcia: lock ops->set_socket

As a side effect,
socket_state_t socket;
u_int state;
u_int suspended_state;
are properly protected now.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: lock ops->set_io_map()
Dominik Brodowski [Tue, 12 Jan 2010 22:52:19 +0000 (23:52 +0100)]
pcmcia: lock ops->set_io_map()

As a side effect,
io_window_t io[MAX_IO_WIN];
is explicitely protected now.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: also lock fake and cache CIS by ops_mutex
Dominik Brodowski [Tue, 12 Jan 2010 21:05:36 +0000 (22:05 +0100)]
pcmcia: also lock fake and cache CIS by ops_mutex

Specifically,

struct list_head cis_cache;
size_t fake_cis_len;
u8 *fake_cis;

are protected.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: add locking to set_mem_map()
Dominik Brodowski [Tue, 12 Jan 2010 20:42:51 +0000 (21:42 +0100)]
pcmcia: add locking to set_mem_map()

Protect the pccard_operations callback "set_mem_map" by a new
mutex ops_mutex. This mutex also protects the following values
in struct pcmcia_socket:

        pccard_mem_map          win[]
        pccard_mem_map          cis_mem
        void __iomem            *cis_virt

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia/i82365: fix typos in comments
Wolfram Sang [Sat, 6 Feb 2010 21:09:44 +0000 (22:09 +0100)]
pcmcia/i82365: fix typos in comments

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia/omap_cf: don't redefine SZ_2K
Uwe Kleine-König [Sat, 23 Jan 2010 20:59:22 +0000 (21:59 +0100)]
pcmcia/omap_cf: don't redefine SZ_2K

This fixes:

drivers/pcmcia/omap_cf.c:74:1: warning: "SZ_2K" redefined

Since

c1191b0 ([ARM] Kirkwood: create a mapping for the Security Accelerator SRAM)

SZ_2K is defined in arch/arm/include/asm/sizes.h.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia/at91_cf: don't redefine SZ_2K
Uwe Kleine-König [Fri, 22 Jan 2010 19:13:27 +0000 (20:13 +0100)]
pcmcia/at91_cf: don't redefine SZ_2K

This fixes:

drivers/pcmcia/at91_cf.c:55:1: warning: "SZ_2K" redefined

Since

c1191b0 ([ARM] Kirkwood: create a mapping for the Security Accelerator SRAM)

SZ_2K is defined in arch/arm/include/asm/sizes.h.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia/bfin_cf: don't check platform_get_irq's return value against zero
Uwe Kleine-König [Wed, 13 Jan 2010 11:05:45 +0000 (12:05 +0100)]
pcmcia/bfin_cf: don't check platform_get_irq's return value against zero

platform_get_irq returns -ENXIO on failure, so !irq was probably
always true.  Better use irq <= 0.  Note that a return value of
zero is still handled as error even though this could mean irq0.

This is a followup to 305b3228f9ff4d59f49e6d34a7034d44ee8ce2f0 that
changed the return value of platform_get_irq from 0 to -ENXIO on error.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: David Vrabel <dvrabel@arcom.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia/yenta: add module parameter for O2 speedups
Wolfram Sang [Sun, 10 Jan 2010 08:41:24 +0000 (09:41 +0100)]
pcmcia/yenta: add module parameter for O2 speedups

O2-bridges can do read prefetch and write burst. However, for some combinations
of older bridges and cards, this causes problems, so it is disabled for those
bridges. Now, as some users know their setup works with the speedups enabled, a
new parameter is introduced to the driver. Now, a user can specifically enable
or disable these features, while the default is what we have today: detect the
bridge and decide accordingly. Fixes Bugzilla entry 15014.

Simplify and unify the printouts, fix a whitespace issue while we are here.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Tested-by: frodone@gmail.com
[linux@dominikbrodowski.net: whitespace fixes]
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: make Open Firmware device id constant
Márton Németh [Tue, 12 Jan 2010 07:56:13 +0000 (08:56 +0100)]
pcmcia: make Open Firmware device id constant

The match_table field of the struct of_device_id is constant in <linux/of_platform.h>
so it is worth to make the initialization data also constant.

The semantic match that finds this kind of pattern is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r@
disable decl_init,const_decl_init;
identifier I1, I2, x;
@@
struct I1 {
  ...
  const struct I2 *x;
  ...
};
@s@
identifier r.I1, y;
identifier r.x, E;
@@
struct I1 y = {
  .x = E,
};
@c@
identifier r.I2;
identifier s.E;
@@
const struct I2 E[] = ... ;
@depends on !c@
identifier r.I2;
identifier s.E;
@@
+ const
struct I2 E[] = ...;
// </smpl>

Signed-off-by: Márton Németh <nm127@freemail.hu>
Cc: Julia Lawall <julia@diku.dk>
Cc: cocci@diku.dk
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agocm4000_cs.c: Remove unnecessary cast
H Hartley Sweeten [Fri, 8 Jan 2010 18:30:13 +0000 (11:30 -0700)]
cm4000_cs.c: Remove unnecessary cast

The struct file 'private_data' member is a void *, the cast is not needed.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Harald Welte <laforge@gnumonks.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: fix yenta dependency on PCCARD_NONSTATIC
Michal Marek [Thu, 7 Jan 2010 20:03:11 +0000 (21:03 +0100)]
pcmcia: fix yenta dependency on PCCARD_NONSTATIC

With CONFIG_PCMCIA=m and CONFIG_YENTA=y, we get

drivers/built-in.o: In function `yenta_probe':
yenta_socket.c:(.devinit.text+0x1e582): undefined reference to
`pccard_nonstatic_ops'

This is because

select PCCARD_NONSTATIC if PCMCIA

sets PCCARD_NONSTATIC = min(YENTA, PCMCIA). Change it to 'if PCMCIA!=n'
to remove the upper limit.

[linux@dominikbrodowski.net: propagate change to PCMICA_M8XX]
Reported-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Acked-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: do not use resource manager on !PCMCIA
Dominik Brodowski [Wed, 6 Jan 2010 13:33:15 +0000 (14:33 +0100)]
pcmcia: do not use resource manager on !PCMCIA

If only CardBus cards are used, but not PCMCIA cards, we do not need
the extensive resource management functions provided for by
rsrc_nonstatic.c (~240K).

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: remove remaining rsrc_mgr indirections
Dominik Brodowski [Wed, 6 Jan 2010 13:03:03 +0000 (14:03 +0100)]
pcmcia: remove remaining rsrc_mgr indirections

Move rsrc_mgr indirections only used by the pcmcia module to the
pcmcia module.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: move cistpl.c into pcmcia module
Dominik Brodowski [Wed, 6 Jan 2010 12:57:43 +0000 (13:57 +0100)]
pcmcia: move cistpl.c into pcmcia module

As PCMCIA is the only real user of CIS access functions, include
cistpl.c in the PCMCIA module, not in the PCMCIA & CardBus core
module.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: m8xx_pcmcia.c should use iodyn resource manager
Dominik Brodowski [Wed, 6 Jan 2010 10:19:25 +0000 (11:19 +0100)]
pcmcia: m8xx_pcmcia.c should use iodyn resource manager

The socket driver m8xx_pcmcia.c uses a static memory assignment,
but io_offset is set to 0. Therefore, it seems proper to use the
iodyn resource manager for this driver, as was previously the
case (before commit 80128ff79d282cf71b1819dbca9b8dd47d8ed3e8).

CC: Vitaly Bordug <vitb@kernel.crashing.org>
CC: Arnd Bergmann <arnd@arndb.de>
CC: Olof Johansson <olof@lixom.net>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: m32r uses static socket resources
Dominik Brodowski [Wed, 6 Jan 2010 11:18:13 +0000 (12:18 +0100)]
pcmcia: m32r uses static socket resources

m32r_cfc sets the socket capabilities to SS_CAP_STATIC_MAP and
also sets io_offset != 0. This means no calls to
&pccard_nonstatic_ops went through. Therfore, replace it with
&pccard_static_ops which is exactly for this case.

CC: Mamoru Sakugawa <sakugawa@linux-m32r.org>
CC: Hirokazu Takata <takata@linux-m32r.org>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: remove some rsrc_mgr indirections
Dominik Brodowski [Wed, 6 Jan 2010 10:32:22 +0000 (11:32 +0100)]
pcmcia: remove some rsrc_mgr indirections

Remove rsrc_mgr indirections only used by pcmcia_resource.c

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: remove useless indirection
Dominik Brodowski [Wed, 6 Jan 2010 10:23:58 +0000 (11:23 +0100)]
pcmcia: remove useless indirection

As release_resoure_db() used to be called only from one place, and
it's a two-line function, remove it.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: do not lock socket driver module on card insert
Dominik Brodowski [Sat, 2 Jan 2010 22:19:45 +0000 (23:19 +0100)]
pcmcia: do not lock socket driver module on card insert

Do not lock the socket driver module on card insert, as
the PCMCIA core can handle a socket module removal, at least
if we add a call to socket_remove() on pccardd()'s shutdown.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: do not lock socket driver module in pcmcia_get_socket()
Dominik Brodowski [Sat, 2 Jan 2010 21:59:15 +0000 (22:59 +0100)]
pcmcia: do not lock socket driver module in pcmcia_get_socket()

Do not lock the socket driver module in pcmcia_get_socket(), as
the PCMCIA core can handle a socket module removal: In
pcmcia_unregister_socket(), we explicitely wait for the last
put_device() to succeed.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: rsrc_nonstatic io memory probe improvements
Dominik Brodowski [Sat, 2 Jan 2010 21:22:50 +0000 (22:22 +0100)]
pcmcia: rsrc_nonstatic io memory probe improvements

Add a lot of documentation to the rsrc_nonstatic io memory probe
functions. Also, add a first memory probe call -- just checking
whether request_resource() succeeds -- upon adding of resources.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: call CIS cleanup from ds.c
Dominik Brodowski [Sat, 2 Jan 2010 16:34:09 +0000 (17:34 +0100)]
pcmcia: call CIS cleanup from ds.c

As ds.c is the only real user of CIS access functions, call the
cleanup functions from ds.c, too.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: CardBus doesn't need CIS access
Dominik Brodowski [Sat, 2 Jan 2010 16:27:33 +0000 (17:27 +0100)]
pcmcia: CardBus doesn't need CIS access

At least no in-kernel CardBus-capable PCI driver makes use of the CIS
access functions. Therefore, it seems sensible to remove this unused
code, and cleanup cardbus.c a lot.

CC: Jesse Barnes <jbarnes@virtuousgeek.org>
CC: Linus Torvalds <torvalds@linux-foundation.org>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: improve check for same card in slot after resume
Dominik Brodowski [Sat, 2 Jan 2010 13:14:23 +0000 (14:14 +0100)]
pcmcia: improve check for same card in slot after resume

During a suspend/resume cycle, an user may change the card in the
PCMCIA/CardBus slot. The pcmcia_core can at least look at the
socket state to check whether it is the same.

For PCMCIA devices, move the detection and handling of such a
change to ds.c.

For CardBus devices, the PCI hotplug interface doesn't offer a "rescan"
facility which also _removes_ devices no longer to be found behind a
bridge. Therefore, remove and re-add all devices unconditionally.

CC: Jesse Barnes <jbarnes@virtuousgeek.org>
CC: Linus Torvalds <torvalds@linux-foundation.org>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: cleanup pccard_validate_cis()
Dominik Brodowski [Sat, 2 Jan 2010 11:58:10 +0000 (12:58 +0100)]
pcmcia: cleanup pccard_validate_cis()

Cleanup pccard_validate_cis() and make it return an error code on
all failures, not merely on some failures.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: validate CIS, not CIS cache.
Dominik Brodowski [Sat, 2 Jan 2010 11:28:04 +0000 (12:28 +0100)]
pcmcia: validate CIS, not CIS cache.

In pccard_validate_cis(), validate the card CIS, not the CIS cache.
Also, destroy the CIS cache if pccard_validate_cis fails.

Furthermore, do not remove the fake CIS in destroy_cis_cache() but
do so explicitely in the code paths where it makes sense.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: do not meddle with already assigned resources
Dominik Brodowski [Sat, 2 Jan 2010 11:08:22 +0000 (12:08 +0100)]
pcmcia: do not meddle with already assigned resources

Do not release any iomem resources already in use.

Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: remove remaining unused IRQ_FIRST_SHARED parameter
Dominik Brodowski [Fri, 1 Jan 2010 16:43:08 +0000 (17:43 +0100)]
pcmcia: remove remaining unused IRQ_FIRST_SHARED parameter

Komuro pointed out correctly that I missed one IRQ_FIRST_SHARED
parameter in smc91c92_cs.c, and that another line could be writter
more beautifully.

CC: netdev@vger.kernel.org
CC: Komuro <komurojun-mbn@nifty.com>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agopcmcia: make use of pcmcia_dev_resume() return value
Dominik Brodowski [Tue, 29 Dec 2009 17:21:39 +0000 (18:21 +0100)]
pcmcia: make use of pcmcia_dev_resume() return value

In runtime_resume(), do not throw away the return value of
pcmcia_dev_resume(), for we can use it (at least) in
pcmcia_store_pm_state(). This also fixes the pointless assignment
previosly seen there, as noted by Dan Carpenter.

CC: Dan Carpenter <error27@gmail.com>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
14 years agoMerge branch 'for-linus/samsung' of git://git.fluff.org/bjdooks/linux
Linus Torvalds [Fri, 15 Jan 2010 22:53:24 +0000 (14:53 -0800)]
Merge branch 'for-linus/samsung' of git://git.fluff.org/bjdooks/linux

* 'for-linus/samsung' of git://git.fluff.org/bjdooks/linux:
  ARM: MINI2440: Fixup __initdata usage
  ARM: MINI2440: Fix crash on boot due to improper __initdata qualifier
  ARM: SMDK6410: Specify no GPIO for B_PWR_5V regulator
  ARM: S3C: NAND: Check the existence of nr_map before copying

14 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
Linus Torvalds [Fri, 15 Jan 2010 22:52:44 +0000 (14:52 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/bp/bp

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
  amd64_edac: Ensure index stays within bounds in amd64_get_scrub_rate

14 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Linus Torvalds [Fri, 15 Jan 2010 22:51:57 +0000 (14:51 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/dtor/input

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: sentelic - fix left/right horizontal scroll mapping
  Input: pmouse - move Sentelic probe down the list
  Input: add compat support for sysfs and /proc capabilities output
  Input: i8042 - add Dritek quirk for Acer Aspire 5610.
  Input: xbox - do not use GFP_KERNEL under spinlock
  Input: psmouse - fix Synaptics detection when protocol is disabled
  Input: bcm5974 - report ABS_MT events
  Input: davinci_keyscan - add device_enable method to platform data
  Input: evdev - be less aggressive about sending SIGIO notifies
  Input: atkbd - fix canceling event_work in disconnect
  Input: serio - fix potential deadlock when unbinding drivers
  Input: gf2k - fix &&/|| confusion in gf2k_connect()

14 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88...
Linus Torvalds [Fri, 15 Jan 2010 22:51:39 +0000 (14:51 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/mattst88/alpha-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6:
  alpha: cpumask_of_node() should handle -1 as a node
  alpha: add myself as a maintainer, and drop mention of 2.4

14 years agoMerge branch 'sh/for-2.6.33' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal...
Linus Torvalds [Fri, 15 Jan 2010 22:50:20 +0000 (14:50 -0800)]
Merge branch 'sh/for-2.6.33' of git://git./linux/kernel/git/lethal/sh-2.6

* 'sh/for-2.6.33' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
  serial: sh-sci: using correct fifo size for SCIF and SCIFA ports.
  sh: mach-ecovec24: Add motion sensor driver support.

14 years agoinotify: only warn once for inotify problems
Eric Paris [Fri, 15 Jan 2010 17:12:25 +0000 (12:12 -0500)]
inotify: only warn once for inotify problems

inotify will WARN() if it finds that the idr and the fsnotify internals
somehow got out of sync.  It was only supposed to do this once but due
to this stupid bug it would warn every single time a problem was
detected.

Signed-off-by: Eric Paris <eparis@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoinotify: do not reuse watch descriptors
Eric Paris [Fri, 15 Jan 2010 17:12:24 +0000 (12:12 -0500)]
inotify: do not reuse watch descriptors

Since commit 7e790dd5fc937bc8d2400c30a05e32a9e9eef276 ("inotify: fix
error paths in inotify_update_watch") inotify changed the manor in which
it gave watch descriptors back to userspace.  Previous to this commit
inotify acted like the following:

  inotify_add_watch(X, Y, Z) = 1
  inotify_rm_watch(X, 1);
  inotify_add_watch(X, Y, Z) = 2

but after this patch inotify would return watch descriptors like so:

  inotify_add_watch(X, Y, Z) = 1
  inotify_rm_watch(X, 1);
  inotify_add_watch(X, Y, Z) = 1

which I saw as equivalent to opening an fd where

  open(file) = 1;
  close(1);
  open(file) = 1;

seemed perfectly reasonable.  The issue is that quite a bit of userspace
apparently relies on the behavior in which watch descriptors will not be
quickly reused.  KDE relies on it, I know some selinux packages rely on
it, and I have heard complaints from other random sources such as debian
bug 558981.

Although the man page implies what we do is ok, we broke userspace so
this patch almost reverts us to the old behavior.  It is still slightly
racey and I have patches that would fix that, but they are rather large
and this will fix it for all real world cases.  The race is as follows:

 - task1 creates a watch and blocks in idr_new_watch() before it updates
   the hint.
 - task2 creates a watch and updates the hint.
 - task1 updates the hint with it's older wd
 - task removes the watch created by task2
 - task adds a new watch and will reuse the wd originally given to task2

it requires moving some locking around the hint (last_wd) but this should
solve it for the real world and be -stable safe.

As a side effect this patch papers over a bug in the lib/idr code which
is causing a large number WARN's to pop on people's system and many
reports in kerneloops.org.  I'm working on the root cause of that idr
bug seperately but this should make inotify immune to that issue.

Signed-off-by: Eric Paris <eparis@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoamd64_edac: Ensure index stays within bounds in amd64_get_scrub_rate
Roel Kluin [Mon, 11 Jan 2010 19:58:21 +0000 (20:58 +0100)]
amd64_edac: Ensure index stays within bounds in amd64_get_scrub_rate

Add a missing iterator variable thus fixing the conditional of the
for-loop in amd64_get_scrub_rate().

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
14 years agoARM: MINI2440: Fixup __initdata usage
Ben Dooks [Fri, 15 Jan 2010 08:04:42 +0000 (17:04 +0900)]
ARM: MINI2440: Fixup __initdata usage

Remove some of the __initdata tags which are currently inappropriate for
platform_device and some of the platform data. These can be returned once
support for copying platform devices and data is added.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: MINI2440: Fix crash on boot due to improper __initdata qualifier
Uri Yosef [Fri, 15 Jan 2010 07:56:05 +0000 (16:56 +0900)]
ARM: MINI2440: Fix crash on boot due to improper __initdata qualifier

This patch fix mini2440 crash on boot due to improper __initdata
qualifier on mini2440_led1_pdata.

Signed-off-by: Uri Yosef <uri.yosef@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoARM: SMDK6410: Specify no GPIO for B_PWR_5V regulator
Mark Brown [Wed, 13 Jan 2010 13:57:04 +0000 (13:57 +0000)]
ARM: SMDK6410: Specify no GPIO for B_PWR_5V regulator

Since the fixed voltage regulator grew support for GPIO based
enables and GPIO 0 is valid on some systems we need to specify
that there is no valid GPIO enable control.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agoserial: sh-sci: using correct fifo size for SCIF and SCIFA ports.
Markus Pietrek [Thu, 14 Jan 2010 23:33:20 +0000 (08:33 +0900)]
serial: sh-sci: using correct fifo size for SCIF and SCIFA ports.

The sh-sci driver used the wrong fifosize for PORT_SCIFA and PORT_SCIF
ports. If an incorrect size is used, the serial core will enforce an
early shutdown on the port, especially with baudrates < 9600.

Signed-off-by: Markus Pietrek <Markus.Pietrek@emtrion.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
14 years agosh: mach-ecovec24: Add motion sensor driver support.
NISHIMOTO Hiroki [Thu, 14 Jan 2010 23:25:00 +0000 (08:25 +0900)]
sh: mach-ecovec24: Add motion sensor driver support.

This patch adds support for the lis3lv02d motion sensor connected via
i2c on the Ecovec board. Tested with evtest.

Signed-off-by: NISHIMOTO Hiroki <nishimoto.hiroki@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
14 years agoalpha: cpumask_of_node() should handle -1 as a node
Anton Blanchard [Thu, 14 Jan 2010 18:21:35 +0000 (13:21 -0500)]
alpha: cpumask_of_node() should handle -1 as a node

CC: Richard Henderson <rth@twiddle.net>
CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Matt Turner <mattst88@gmail.com>
CC: linux-alpha@vger.kernel.org
CC: Rusty Russell <rusty@rustcorp.com.au>
CC: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Anton Blanchard <anton@samba.org>
14 years agoalpha: add myself as a maintainer, and drop mention of 2.4
Matt Turner [Thu, 14 Jan 2010 18:15:20 +0000 (13:15 -0500)]
alpha: add myself as a maintainer, and drop mention of 2.4

CC: Richard Henderson <rth@twiddle.net>
CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
CC: linux-alpha@vger.kernel.org
Signed-off-by: Matt Turner <mattst88@gmail.com>
14 years agoMerge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
Linus Torvalds [Thu, 14 Jan 2010 16:37:53 +0000 (08:37 -0800)]
Merge branch 'for-linus' of git://git390.marist.edu/linux-2.6

* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
  [S390] tape_char: add missing compat_ptr conversion
  [S390] zcrypt: add sanity check before copy_from_user()
  [S390] unwire sys_recvmmsg again
  [S390] con3215: remove empty ioctl function
  [S390] dasd: add proper compat pointer conversion for symmetrix ioctl
  [S390] mmap: add missing compat_ptr conversion to both mmap compat syscalls
  [S390] bug: implement arch specific __WARN macro
  [S390] Move __cpu_logical_map to smp.c
  [S390] tape_block: remove ioctl function
  [S390] smp: remove volatile type quilifier from __cpu_logical_map
  [S390] smp: setup smp_processor_id early
  [S390] use helpers for rlimits
  [S390] fs3270: add missing compat ptr conversion
  [S390] vmcp: add missing compat ptr conversion
  [S390] cio: add missing compat ptr conversion
  [S390] dasd: add missing compat ptr conversion
  [S390] remove superfluous TIF_USEDFPU bit
  [S390] duplicate SIGTRAP on signal delivery.
  [S390] clear TIF_SINGLE_STEP for new process.
  [S390] fix loading of PER control registers for utrace.

14 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 14 Jan 2010 16:36:15 +0000 (08:36 -0800)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits)
  net: fix build erros with CONFIG_BUG=n, CONFIG_GENERIC_BUG=n
  ipv6: skb_dst() can be NULL in ipv6_hop_jumbo().
  tg3: Update copyright and driver version
  tg3: Disable 5717 serdes and B0 support
  tg3: Add reliable serdes detection for 5717 A0
  tg3: Fix std rx prod ring handling
  tg3: Fix std prod ring nicaddr for 5787 and 57765
  sfc: Fix conditions for MDIO self-test
  sfc: Fix polling for slow MCDI operations
  e1000e: workaround link issues on busy hub in half duplex on 82577/82578
  e1000e: MDIO slow mode should always be done for 82577
  ixgbe: update copyright dates
  ixgbe: Do not attempt to perform interrupts in netpoll when down
  cfg80211: fix refcount imbalance when wext is disabled
  mac80211: fix queue selection for data frames on monitor interfaces
  iwlwifi: silence buffer overflow warning
  iwlwifi: disable tx on beacon update notification
  iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr
  mac80211: fix endian error
  mac80211: add missing sanity checks for action frames
  ...

14 years agoARM: S3C: NAND: Check the existence of nr_map before copying
Ramax Lo [Thu, 14 Jan 2010 02:15:05 +0000 (10:15 +0800)]
ARM: S3C: NAND: Check the existence of nr_map before copying

Since the structure field nr_map is optional, we need to check whether the
chip number map is provided to avoid unexpected NULL pointer exception.

Signed-off-by: Ramax Lo <ramaxlo@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
14 years agonet: fix build erros with CONFIG_BUG=n, CONFIG_GENERIC_BUG=n
Octavian Purdila [Thu, 14 Jan 2010 02:10:36 +0000 (18:10 -0800)]
net: fix build erros with CONFIG_BUG=n, CONFIG_GENERIC_BUG=n

Fixed build errors introduced by commit 7ad6848c (ip: fix mc_loop
checks for tunnels with multicast outer addresses)

Signed-off-by: Octavian Purdila <opurdila@ixiacom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agoipv6: skb_dst() can be NULL in ipv6_hop_jumbo().
David S. Miller [Thu, 14 Jan 2010 01:27:37 +0000 (17:27 -0800)]
ipv6: skb_dst() can be NULL in ipv6_hop_jumbo().

This fixes CERT-FI FICORA #341748

Discovered by Olli Jarva and Tuomo Untinen from the CROSS
project at Codenomicon Ltd.

Just like in CVE-2007-4567, we can't rely upon skb_dst() being
non-NULL at this point.  We fixed that in commit
e76b2b2567b83448c2ee85a896433b96150c92e6 ("[IPV6]: Do no rely on
skb->dst before it is assigned.")

However commit 483a47d2fe794328d29950fe00ce26dd405d9437 ("ipv6: added
net argument to IP6_INC_STATS_BH") put a new version of the same bug
into this function.

Complicating analysis further, this bug can only trigger when network
namespaces are enabled in the build.  When namespaces are turned off,
the dev_net() does not evaluate it's argument, so the dereference
would not occur.

So, for a long time, namespaces couldn't be turned on unless SYSFS was
disabled.  Therefore, this code has largely been disabled except by
people turning it on explicitly for namespace development.

With help from Eugene Teo <eugene@redhat.com>

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agotg3: Update copyright and driver version
Matt Carlson [Tue, 12 Jan 2010 10:11:40 +0000 (10:11 +0000)]
tg3: Update copyright and driver version

This patch updates the copyright notice for 2010 and updates the version
number to 3.106.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agotg3: Disable 5717 serdes and B0 support
Matt Carlson [Tue, 12 Jan 2010 10:11:39 +0000 (10:11 +0000)]
tg3: Disable 5717 serdes and B0 support

The B0 revision of the 5717 will not get enough testing by the time
2.6.33 ships.  Since the kernel is already at RC3, serdes support
will require too many patches to fix.  For these reasons, this patch
disables 5717 serdes support and will refuse to attach to all 5717
devices that are later than an A0 revision.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agotg3: Add reliable serdes detection for 5717 A0
Matt Carlson [Tue, 12 Jan 2010 10:11:38 +0000 (10:11 +0000)]
tg3: Add reliable serdes detection for 5717 A0

The serdes status bit does not work as intended for the 5717 A0.
This patch implements an alternative detection scheme that will only be
valid for A0 revisions.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agotg3: Fix std rx prod ring handling
Matt Carlson [Tue, 12 Jan 2010 10:11:37 +0000 (10:11 +0000)]
tg3: Fix std rx prod ring handling

There are some tg3 devices that require the driver to post new rx
buffers in smaller increments.  Commit
4361935afe3abc3e5a93006b99197fac1fabbd50, "tg3: Consider
rx_std_prod_idx a hw mailbox" changed how the driver tracks the rx
producer ring updates, but it does not make any special considerations
for the above-mentioned devices.  For those devices, it is possible for
the driver to hit the special case path, which updates the hardware
mailbox register but skips updating the shadow software mailbox member.
If the special case path represents the final mailbox update for this
ISR iteration, the hardware and software mailbox values will be out of
sync.  Ultimately, this will cause the driver to use a stale mailbox
value on the next iteration, which will appear to the hardware as a
large rx buffer update.  Bad things ensue.

The fix is to update the software shadow mailbox member when the special
case path is taken.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Reported-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agotg3: Fix std prod ring nicaddr for 5787 and 57765
Matt Carlson [Tue, 12 Jan 2010 10:11:36 +0000 (10:11 +0000)]
tg3: Fix std prod ring nicaddr for 5787 and 57765

Commit 87668d352aa8d135bd695a050f18bbfc7b50b506, titled "tg3: Don't
touch RCB nic addresses", tried to avoid assigning the nic address of
the standard producer ring.  Unfortunately, the default nic address is
not correct for the 5787, the 5755M, or the 57765.  This patch
reenables the old behavior and opts out of the assignment only
for the 5717.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Tested-by: Chow Loong Jin <hyperair@ubuntu.com>
Tested-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Fix conditions for MDIO self-test
Ben Hutchings [Wed, 13 Jan 2010 10:59:13 +0000 (10:59 +0000)]
sfc: Fix conditions for MDIO self-test

The MDIO self-test should not be run on boards without an MDIO PHY,
such as SFN5122F-R3 and later revisions.  It should also not try to
address a specific MMD in an MDIO clause 22 PHY.  Check the
mode_support field to decide which mode to use, if any.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Fix polling for slow MCDI operations
Ben Hutchings [Wed, 13 Jan 2010 04:34:25 +0000 (04:34 +0000)]
sfc: Fix polling for slow MCDI operations

When the interface is down and we are using polled mode for MCDI
operations, we busy-wait for completion for approximately 1 jiffy
using udelay() and then back off to schedule().  But the completion
will not wake the task, since we are using polled mode!  We must use
schedule_timeout_uninterruptible() instead.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agoe1000e: workaround link issues on busy hub in half duplex on 82577/82578
Bruce Allan [Wed, 13 Jan 2010 01:53:08 +0000 (01:53 +0000)]
e1000e: workaround link issues on busy hub in half duplex on 82577/82578

This patch removes a delay in hardware after every received packet allowing
more time for transmitted packets to go out in between received packets in
half duplex.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agoe1000e: MDIO slow mode should always be done for 82577
Bruce Allan [Wed, 13 Jan 2010 01:52:49 +0000 (01:52 +0000)]
e1000e: MDIO slow mode should always be done for 82577

A previous 82577 workaround that set the MDIO access speed to slow mode for
every PHY register read/write when the cable is unplugged should instead
set the access mode to always be slow before any PHY register access.
Since the mode bit gets cleared when the PHY is reset, set the mode after
every PHY reset.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agoixgbe: update copyright dates
Shannon Nelson [Wed, 13 Jan 2010 01:49:34 +0000 (01:49 +0000)]
ixgbe: update copyright dates

Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agoixgbe: Do not attempt to perform interrupts in netpoll when down
Alexander Duyck [Wed, 13 Jan 2010 01:49:13 +0000 (01:49 +0000)]
ixgbe: Do not attempt to perform interrupts in netpoll when down

This patch resolves issues seen when running netconsole and rebooting via
reboot -f.  The issue was due to the fact that we were attempting to
perform interrupt actions when the q_vectors and rings had already been
freed via the ixgbe_shutdown routines.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agoMerge branch 'for-linus/bugfixes' of git://xenbits.xensource.com/people/ianc/linux-2.6
Linus Torvalds [Thu, 14 Jan 2010 00:15:09 +0000 (16:15 -0800)]
Merge branch 'for-linus/bugfixes' of git://xenbits.xensource.com/people/ianc/linux-2.6

* 'for-linus/bugfixes' of git://xenbits.xensource.com/people/ianc/linux-2.6:
  xen: fix hang on suspend.

14 years agoMerge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
Linus Torvalds [Thu, 14 Jan 2010 00:13:57 +0000 (16:13 -0800)]
Merge branch 'drm-linus' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
  drm: change drm set mode messages as DRM_DEBUG
  drm: fix crtc no modes printf + typo
  drm/radeon/kms: only evict to GTT if CP is ready
  drm/radeon/kms: Fix crash getting TV info with no BIOS.
  drm/radeon/kms/rv100: reject modes > 135 Mhz on DVI (v2)
  drm/radeon/kms/r6xx+: make irq handler less verbose
  drm/radeon/kms: fix up LVDS handling on macs (v2)

14 years agozlib: Fix build of powerpc boot wrapper
Benjamin Herrenschmidt [Wed, 13 Jan 2010 05:19:34 +0000 (16:19 +1100)]
zlib: Fix build of powerpc boot wrapper

Commit ac4c2a3bbe5db5fc570b1d0ee1e474db7cb22585 broke the build
of all powerpc boot wrappers.

It attempts to add an include of autoconf.h but used the wrong
path for it. It also adds -D__KERNEL__ to our boot wrapper, both
things that we pretty much didn't do on purpose so far.

We want our boot wrapper to remain independent enough of the kernel
for various reasons, one of them being that you can "wrap" an existing
kernel at distro install time which allows to ship one kernel image
and a set of boot wrappers for different platforms, the wrappers
don't have to be built out of the same kernel build tree.

It's also incorrect to do what the patch does in our boot environment
since we may not have a proper alignment exception handler which means
we may not be able to fixup the few cases where an unaligned access will
need SW emulation (depends on the core variant, could be when crossing
page or segment boundaries for example).

This patch fixes it by putting the old code back in and using the
new "fancy" variant only when CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
is set, which happens not to be set on powerpc since we don't include
autoconf.h. It also reverts the changes to our boot wrapper Makefile.

This means that x86 should, afaik, keep the optimisations since its
boot wrapper does include autoconf.h and define __KERNEL__ (though I
doubt they make that much different outside of slow embedded processors).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
Linus Torvalds [Thu, 14 Jan 2010 00:10:13 +0000 (16:10 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jikos/hid

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
  HID: wacom: Add BTN_TOOL_FINGER for pad button reporting
  HID: add device IDs for new model of Apple Wireless Keyboard
  HID: fix pad button definition in hid-wacom
  HID: Support 171 byte variant of Samsung USB IR receiver
  HID: blacklist ET&T TC5UH touchscreen controller

14 years agoMerge branch 'for-33' of git://repo.or.cz/linux-kbuild
Linus Torvalds [Thu, 14 Jan 2010 00:09:59 +0000 (16:09 -0800)]
Merge branch 'for-33' of git://repo.or.cz/linux-kbuild

* 'for-33' of git://repo.or.cz/linux-kbuild:
  Makefile: do not override LC_CTYPE
  kbuild: really fix bzImage build with non-bash sh

14 years agovfs: Fix vmtruncate() regression
OGAWA Hirofumi [Wed, 13 Jan 2010 12:14:09 +0000 (21:14 +0900)]
vfs: Fix vmtruncate() regression

If __block_prepare_write() was failed in block_write_begin(), the
allocated blocks can be outside of ->i_size.

But new truncate_pagecache() in vmtuncate() does nothing if new < old.
It means the above usage is not working anymore.

So, this patch fixes it by removing "new < old" check. It would need
more cleanup/change. But, now -rc and truncate working is in progress,
so, this tried to fix it minimum change.

Acked-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoMerge branch 'fasync-helper'
Linus Torvalds [Wed, 13 Jan 2010 21:42:49 +0000 (13:42 -0800)]
Merge branch 'fasync-helper'

* fasync-helper:
  fasync: split 'fasync_helper()' into separate add/remove functions

14 years ago[S390] tape_char: add missing compat_ptr conversion
Heiko Carstens [Wed, 13 Jan 2010 19:44:44 +0000 (20:44 +0100)]
[S390] tape_char: add missing compat_ptr conversion

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] zcrypt: add sanity check before copy_from_user()
Heiko Carstens [Wed, 13 Jan 2010 19:44:43 +0000 (20:44 +0100)]
[S390] zcrypt: add sanity check before copy_from_user()

It's not obvious that copy_from_user() is called with a sane length
parameter here. Even though it currently seems to be correct better
add a check to prevent stack corruption / exploits.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] unwire sys_recvmmsg again
Heiko Carstens [Wed, 13 Jan 2010 19:44:42 +0000 (20:44 +0100)]
[S390] unwire sys_recvmmsg again

sys_recvmmsg is reachable via sys_socketcall. So unwire it again since
there is no point in having two entry points for it.
Also put it to the ignore list so we don't get reminded anymore in order
to wire it up.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] con3215: remove empty ioctl function
Heiko Carstens [Wed, 13 Jan 2010 19:44:41 +0000 (20:44 +0100)]
[S390] con3215: remove empty ioctl function

...instead of adding a compat ioctl function which would do nothing
as well.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] dasd: add proper compat pointer conversion for symmetrix ioctl
Heiko Carstens [Wed, 13 Jan 2010 19:44:40 +0000 (20:44 +0100)]
[S390] dasd: add proper compat pointer conversion for symmetrix ioctl

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] mmap: add missing compat_ptr conversion to both mmap compat syscalls
Heiko Carstens [Wed, 13 Jan 2010 19:44:39 +0000 (20:44 +0100)]
[S390] mmap: add missing compat_ptr conversion to both mmap compat syscalls

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] bug: implement arch specific __WARN macro
Heiko Carstens [Wed, 13 Jan 2010 19:44:38 +0000 (20:44 +0100)]
[S390] bug: implement arch specific __WARN macro

This one will trap, generates shorter code and emits better debug data
than the generic version.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] Move __cpu_logical_map to smp.c
Heiko Carstens [Wed, 13 Jan 2010 19:44:37 +0000 (20:44 +0100)]
[S390] Move __cpu_logical_map to smp.c

Finally move it to the place where it belongs to and make get rid of
it for !CONFIG_SMP.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] tape_block: remove ioctl function
Heiko Carstens [Wed, 13 Jan 2010 19:44:36 +0000 (20:44 +0100)]
[S390] tape_block: remove ioctl function

This is just a complicated construct which always returns -EINVAL.
Just remove it.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] smp: remove volatile type quilifier from __cpu_logical_map
Heiko Carstens [Wed, 13 Jan 2010 19:44:35 +0000 (20:44 +0100)]
[S390] smp: remove volatile type quilifier from __cpu_logical_map

Remove pointless qualifier.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] smp: setup smp_processor_id early
Heiko Carstens [Wed, 13 Jan 2010 19:44:34 +0000 (20:44 +0100)]
[S390] smp: setup smp_processor_id early

smp_processor_id() is supposed to work before setup_arch() gets called.
Before that smp_processor_id() may return just an arbitrary value that
is contained in the uninitialized boot lowcore.
So provide the arch function which will override the weak function in
init/main.c.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] use helpers for rlimits
Jiri Slaby [Wed, 13 Jan 2010 19:44:33 +0000 (20:44 +0100)]
[S390] use helpers for rlimits

Make sure compiler won't do weird things with limits. E.g. fetching
them twice may return 2 different values after writable limits are
implemented.

I.e. either use rlimit helpers added in
3e10e716abf3c71bdb5d86b8f507f9e72236c9cd
or ACCESS_ONCE if not applicable.

Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: linux390@de.ibm.com
Cc: linux-s390@vger.kernel.org
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 years ago[S390] fs3270: add missing compat ptr conversion
Heiko Carstens [Wed, 13 Jan 2010 19:44:32 +0000 (20:44 +0100)]
[S390] fs3270: add missing compat ptr conversion

Add missing compat ptr conversion including two additional
whitespace changes that aren't worth a separate patch.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>