]> pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agox86: print DMI information in the oops trace
Arjan van de Ven [Tue, 16 Sep 2008 18:27:30 +0000 (11:27 -0700)]
x86: print DMI information in the oops trace

in order to diagnose hard system specific issues, it's useful to
have the system name in the oops (as provided by DMI)

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoARM: DaVinci: evm sets up many devices
David Brownell [Mon, 8 Sep 2008 06:43:02 +0000 (23:43 -0700)]
ARM: DaVinci: evm sets up many devices

Update DaVinci EVM board setup to work with key drivers which are
now in mainline kernels:

 - I2C adapter (driver: i2c_davinci)
    * three gpio expanders (driver: pcf8574) used for
       - LEDs
       - audio codec control
       - misc device control (including USB VBUS, IDE-vs-CF)
    * at24 (driver: at24) eeprom
 - USB controller (driver: musb_hdrc)
 - IDE controller (driver: palm_bk3710)

This board is the first in-tree client for a number of those drivers,
and adding this board support means the EVM board can be used for some
"real work" ... excepting "DaVinci Technology" video and DSP support
(also available in most OMAP3 chips).

Also renames the flash as "evm_norflash", since NAND may be jumpered.

(Patch contains work by myself, Kevin Hilman, Sergei Shtylyov.)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
17 years agoARM: DaVinci: usb setup
David Brownell [Mon, 8 Sep 2008 06:41:57 +0000 (23:41 -0700)]
ARM: DaVinci: usb setup

Declare the musb_hdrc platform device for DaVinci.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
17 years agoARM: DaVinci: i2c setup
Komal Shah [Mon, 8 Sep 2008 06:41:28 +0000 (23:41 -0700)]
ARM: DaVinci: i2c setup

Davinci I2C initialization infrastructure; will be used by EVM init.

[ dbrownell@users.sourceforge.net: pass platform data into init code ]

Signed-off-by: Komal Shah <komal_shah802003@yahoo.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
17 years agoARM: DaVinci: SOC GPIOs use gpiolib
David Brownell [Mon, 8 Sep 2008 06:41:04 +0000 (23:41 -0700)]
ARM: DaVinci: SOC GPIOs use gpiolib

Switch DaVinci SOC gpios over to using the new GPIO library, so it can
access GPIO expanders and other non-SOC GPIOs using the same calls.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
17 years agoARM: DaVinci: Update IO address pointer typechecking
Kevin Hilman [Mon, 15 Sep 2008 11:09:14 +0000 (04:09 -0700)]
ARM: DaVinci: Update IO address pointer typechecking

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
17 years agoUBIFS: create the name of the background thread in every case
Sebastian Siewior [Tue, 9 Sep 2008 09:17:29 +0000 (11:17 +0200)]
UBIFS: create the name of the background thread in every case

If the ubifs partition is mounted RO and then remounted RW we end
up with no thread name in ubifs_remount_rw() and the thread appears
nameless.

Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
17 years ago[XFS] Don't do I/O beyond eof when unreserving space
Lachlan McIlroy [Wed, 17 Sep 2008 06:52:50 +0000 (16:52 +1000)]
[XFS] Don't do I/O beyond eof when unreserving space

When unreserving space with boundaries that are not block aligned we round
up the start and round down the end boundaries and then use this function,
xfs_zero_remaining_bytes(), to zero the parts of the blocks that got
dropped during the rounding. The problem is we don't consider if these
blocks are beyond eof. Worse still is if we encounter delayed allocations
beyond eof we will try to use the magic delayed allocation block number as
a real block number. If the file size is ever extended to expose these
blocks then we'll go through xfs_zero_eof() to zero them anyway.

SGI-PV: 983683

SGI-Modid: xfs-linux-melb:xfs-kern:32055a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
17 years ago[XFS] Fix use-after-free with buffers
Lachlan McIlroy [Wed, 17 Sep 2008 06:52:13 +0000 (16:52 +1000)]
[XFS] Fix use-after-free with buffers

We have a use-after-free issue where log completions access buffers via
the buffer log item and the buffer has already been freed. Fix this by
taking a reference on the buffer when attaching the buffer log item and
release the hold when the buffer log item is detached and we no longer
need the buffer. Also create a new function xfs_buf_item_free() to combine
some common code.

SGI-PV: 985757

SGI-Modid: xfs-linux-melb:xfs-kern:32025a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
17 years ago[XFS] Prevent lockdep false positives when locking two inodes.
David Chinner [Wed, 17 Sep 2008 06:51:21 +0000 (16:51 +1000)]
[XFS] Prevent lockdep false positives when locking two inodes.

If we call xfs_lock_two_inodes() to grab both the iolock and the ilock,
then drop the ilocks on both inodes, then grab them again (as
xfs_swap_extents() does) then lockdep will report a locking order problem.
This is a false positive.

To avoid this, disallow xfs_lock_two_inodes() fom locking both inode locks
at once - force calers to make two separate calls. This means that nested
dropping and regaining of the ilocks will retain the same lockdep subclass
and so lockdep will not see anything wrong with this code.

SGI-PV: 986238

SGI-Modid: xfs-linux-melb:xfs-kern:31999a

Signed-off-by: David Chinner <david@fromorbit.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Peter Leckie <pleckie@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
17 years ago[XFS] Fix barrier status change detection.
David Chinner [Wed, 17 Sep 2008 06:50:50 +0000 (16:50 +1000)]
[XFS] Fix barrier status change detection.

The current code in xlog_iodone() uses the wrong macro to check if the
barrier has been cleared due to an EOPNOTSUPP error form the lower layer.

SGI-PV: 986143

SGI-Modid: xfs-linux-melb:xfs-kern:31984a

Signed-off-by: David Chinner <david@fromorbit.com>
Signed-off-by: Nathaniel W. Turner <nate@houseofnate.net>
Signed-off-by: Peter Leckie <pleckie@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
17 years ago[XFS] Prevent direct I/O from mapping extents beyond eof
Lachlan McIlroy [Wed, 17 Sep 2008 06:50:14 +0000 (16:50 +1000)]
[XFS] Prevent direct I/O from mapping extents beyond eof

With the help from some tracing I found that we try to map extents beyond
eof when doing a direct I/O read. It appears that the way to inform the
generic direct I/O path (ie do_direct_IO()) that we have breached eof is
to return an unmapped buffer from xfs_get_blocks_direct(). This will cause
do_direct_IO() to jump to the hole handling code where is will check for
eof and then abort.

This problem was found because a direct I/O read was trying to map beyond
eof and was encountering delayed allocations. The delayed allocations
beyond eof are speculative allocations and they didn't get converted when
the direct I/O flushed the file because there was only enough space in the
current AG to convert and write out the dirty pages within eof. Note that
xfs_iomap_write_allocate() wont necessarily convert all the delayed
allocation passed to it - it will return after allocating the first extent
- so if the delayed allocation extends beyond eof then it will stay that
way.

SGI-PV: 983683

SGI-Modid: xfs-linux-melb:xfs-kern:31929a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
17 years ago[XFS] Fix regression introduced by remount fixup
Christoph Hellwig [Wed, 17 Sep 2008 06:49:33 +0000 (16:49 +1000)]
[XFS] Fix regression introduced by remount fixup

Logically we would return an error in xfs_fs_remount code to prevent users
from believing they might have changed mount options using remount which
can't be changed.

But unfortunately mount(8) adds all options from mtab and fstab to the
mount arguments in some cases so we can't blindly reject options, but have
to check for each specified option if it actually differs from the
currently set option and only reject it if that's the case.

Until that is implemented we return success for every remount request, and
silently ignore all options that we can't actually change.

SGI-PV: 985710

SGI-Modid: xfs-linux-melb:xfs-kern:31908a

Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
17 years ago[XFS] Move memory allocations for log tracing out of the critical path
Lachlan McIlroy [Wed, 17 Sep 2008 06:45:37 +0000 (16:45 +1000)]
[XFS] Move memory allocations for log tracing out of the critical path

Memory allocations for log->l_grant_trace and iclog->ic_trace are done on
demand when the first event is logged. In xlog_state_get_iclog_space() we
call xlog_trace_iclog() under a spinlock and allocating memory here can
cause us to sleep with a spinlock held and deadlock the system.

For the log grant tracing we use KM_NOSLEEP but that means we can lose
trace entries. Since there is no locking to serialize the log grant
tracing we could race and have multiple allocations and leak memory.

So move the allocations to where we initialize the log/iclog structures.
Use KM_NOFS to avoid recursing into the filesystem and drop log->l_trace
since it's not even used.

SGI-PV: 983738

SGI-Modid: xfs-linux-melb:xfs-kern:31896a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
17 years agowarn: Turn the netdev timeout WARN_ON() into a WARN()
Arjan van de Ven [Mon, 15 Sep 2008 23:43:18 +0000 (16:43 -0700)]
warn: Turn the netdev timeout WARN_ON() into a WARN()

this patch turns the netdev timeout WARN_ON_ONCE() into a WARN_ONCE(),
so that the device and driver names are inside the warning message.
This helps automated tools like kerneloops.org to collect the data
and do statistics, as well as making it more likely that humans
cut-n-paste the important message as part of a bugreport.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg...
Linus Torvalds [Wed, 17 Sep 2008 02:36:06 +0000 (19:36 -0700)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
  slub: fixed uninitialized counter in struct kmem_cache_node

17 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Wed, 17 Sep 2008 02:35:49 +0000 (19:35 -0700)]
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  [MIPS] VR41xx: unsigned irq cannot be negative

17 years agoFix PNP build failure, bugzilla #11276
David Miller [Tue, 16 Sep 2008 22:00:11 +0000 (15:00 -0700)]
Fix PNP build failure, bugzilla #11276

This fill fix the following regression list entry:

Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=11276
Subject : build error: CONFIG_OPTIMIZE_INLINING=y causes gcc 4.2 to do stupid things
Submitter : Randy Dunlap <randy.dunlap@oracle.com>
Date : 2008-08-06 17:18 (38 days old)
References : http://marc.info/?l=linux-kernel&m=121804329014332&w=4
  http://lkml.org/lkml/2008/7/22/353
Handled-By : Bjorn Helgaas <bjorn.helgaas@hp.com>
Patch : http://lkml.org/lkml/2008/7/22/364

with what I believe is a better fix than the one referenced
in the regression entry above.

These PNP header interfaces try to work in such a way that
you can reference some of them even if PNP is not enabled,
and the compiler was expected to optimize everything away.

Which is mostly fine, except that there was one interface
for which there was not provided an inline "NOP" implementation.

Once we add that, all of these compile failures cannot handle
any more.

pnp: Provide NOP inline implementation of pnp_get_resource() when !PNP

Fixes kernel bugzilla #11276.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agohpplus: fix build regression
Stephen Hemminger [Tue, 16 Sep 2008 23:04:12 +0000 (16:04 -0700)]
hpplus: fix build regression

This fixes kernel regression for 2.6.27-rc in
      http://bugzilla.kernel.org/show_bug.cgi?id=11547
The change to split 8390 into old isa and non-isa versions
overlooked this driver.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoRevert "b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support"
Linus Torvalds [Wed, 17 Sep 2008 02:32:30 +0000 (19:32 -0700)]
Revert "b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support"

This reverts commit bc19d6e0b74ef03a3baf035412c95192b54dfc6f, which as
Larry Finger reports causes the radio LED on his system to no longer
respond to rfkill switch events.

Reported-by: Larry Finger <Larry.Finger@lwfinger.net>
Requested-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoipvs: change some __constant_htons() to htons()
Brian Haley [Tue, 16 Sep 2008 15:11:11 +0000 (11:11 -0400)]
ipvs: change some __constant_htons() to htons()

Change __contant_htons() to htons() in the IPVS code when not in an
initializer.

-Brian

Signed-off-by: Brian Haley <brian.haley@hp.com>
Acked-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
17 years agoipvs: add __aquire/__release annotations to ip_vs_info_seq_start/ip_vs_info_seq_stop
Simon Horman [Wed, 17 Sep 2008 00:10:42 +0000 (10:10 +1000)]
ipvs: add __aquire/__release annotations to ip_vs_info_seq_start/ip_vs_info_seq_stop

This teaches sparse that the following are not problems:

make C=1
  CHECK   net/ipv4/ipvs/ip_vs_ctl.c
net/ipv4/ipvs/ip_vs_ctl.c:1793:14: warning: context imbalance in 'ip_vs_info_seq_start' - wrong count at exit
net/ipv4/ipvs/ip_vs_ctl.c:1842:13: warning: context imbalance in 'ip_vs_info_seq_stop' - unexpected unlock

Acked-by: Sven Wegener <sven.wegener@stealer.net>
Acked-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
17 years agoipvs: supply a valid 0 address to ip_vs_conn_new()
Simon Horman [Wed, 17 Sep 2008 00:10:42 +0000 (10:10 +1000)]
ipvs: supply a valid 0 address to ip_vs_conn_new()

ip_vs_conn_new expects a union nf_inet_addr as the type for its address
parameters, not a plain integer.

This problem was detected by sparse.

make C=1
  CHECK   net/ipv4/ipvs/ip_vs_core.c
net/ipv4/ipvs/ip_vs_core.c:469:9: warning: Using plain integer as NULL pointer

Acked-by: Sven Wegener <sven.wegener@stealer.net>
Acked-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
17 years agoipvs: only unlock in ip_vs_edit_service() if already locked
Simon Horman [Wed, 17 Sep 2008 00:10:41 +0000 (10:10 +1000)]
ipvs: only unlock in ip_vs_edit_service() if already locked

Jumping to out unlocks __ip_vs_svc_lock, but that lock is not taken until
after code that may jump to out.

This problem was detected by sparse.

make C=1
  CHECK   net/ipv4/ipvs/ip_vs_ctl.c
net/ipv4/ipvs/ip_vs_ctl.c:1332:2: warning: context imbalance in 'ip_vs_edit_service' - unexpected unlock

Acked-by: Sven Wegener <sven.wegener@stealer.net>
Acked-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
17 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/horms/lvs-2.6 into lvs-next-2.6
Simon Horman [Wed, 17 Sep 2008 00:08:26 +0000 (10:08 +1000)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/horms/lvs-2.6 into lvs-next-2.6

17 years ago[CIFS] use common code for turning off ATTR_READONLY in cifs_unlink
Steve French [Tue, 16 Sep 2008 23:50:58 +0000 (23:50 +0000)]
[CIFS] use common code for turning off ATTR_READONLY in cifs_unlink

We already have a cifs_set_file_info function that can flip DOS
attribute bits. Have cifs_unlink call it to handle turning ATTR_HIDDEN
on and ATTR_READONLY off when an unlink attempt returns -EACCES.

This also removes a level of indentation from cifs_unlink.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
17 years agoPCI: fix compiler warnings in pci_get_subsys()
Greg KH [Tue, 26 Aug 2008 15:20:34 +0000 (08:20 -0700)]
PCI: fix compiler warnings in pci_get_subsys()

pci_get_subsys() changed in 2.6.26 so that the from pointer is modified
when the call is being invoked, so fix up the 'const' marking of it that
the compiler is complaining about.

Reported-by: Rufus & Azrael <rufus-azrael@numericable.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
17 years agox86 setup: handle more than 8 CPU flag words
H. Peter Anvin [Tue, 16 Sep 2008 22:09:26 +0000 (15:09 -0700)]
x86 setup: handle more than 8 CPU flag words

Checkin e38e05a85828dac23540cd007df5f20985388afc added a 9th CPU flag
word, but didn't adjust the boot code to match.  This patch adds the
necessary boot code support.

Note: due to a typo in an #if statement, it didn't trigger the #error
this was supposed to do.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agopowerpc: Fix interrupt values for DMA2 in MPC8610 HPCD device tree
Timur Tabi [Tue, 9 Sep 2008 19:43:39 +0000 (14:43 -0500)]
powerpc: Fix interrupt values for DMA2 in MPC8610 HPCD device tree

For Freescale 8xxx devices that use an MPIC, the interrupt numbers in
the device tree must be 16 greater than the values documented in the
reference manual.  In these chips, the MPIC is wired to use the first
16 numbers for external interrupts, but the documentation numbers
internal interrupts from 0.

In the MPC8610 HPCD device tree, the interrupt properties for the DMA
channels for DMA2 were not the adjusted values.  This fixes that.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@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/sparc-2.6
David S. Miller [Tue, 16 Sep 2008 21:11:43 +0000 (14:11 -0700)]
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

Conflicts:

arch/sparc64/kernel/pci_psycho.c

17 years agoclockevents: make device shutdown robust
Thomas Gleixner [Tue, 16 Sep 2008 18:32:50 +0000 (11:32 -0700)]
clockevents: make device shutdown robust

The device shut down does not cleanup the next_event variable of the
clock event device. So when the device is reactivated the possible
stale next_event value can prevent the device to be reprogrammed as it
claims to wait on a event already.

This is the root cause of the resurfacing suspend/resume problem,
where systems need key press to come back to life.

Fix this by setting next_event to KTIME_MAX when the device is shut
down. Use a separate function for shutdown which takes care of that
and only keep the direct set mode call in the broadcast code, where we
can not touch the next_event value.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agocifs: clean up variables in cifs_unlink
Jeff Layton [Tue, 16 Sep 2008 18:05:16 +0000 (14:05 -0400)]
cifs: clean up variables in cifs_unlink

Change parameters to cifs_unlink to match the ones used in the generic
VFS. Add some local variables to cut down on the amount of struct
dereferencing that needs to be done, and eliminate some unneeded NULL
pointer checks on the parent directory inode. Finally, rename pTcon
to "tcon" to more closely match standard kernel coding style.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
17 years agoMerge branches 'ipoib', 'mlx4' and 'nes' into for-linus
Roland Dreier [Tue, 16 Sep 2008 18:57:52 +0000 (11:57 -0700)]
Merge branches 'ipoib', 'mlx4' and 'nes' into for-linus

17 years agoIPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop()
Yossi Etigin [Tue, 16 Sep 2008 18:57:45 +0000 (11:57 -0700)]
IPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop()

Taking rtnl_lock in ipoib_mcast_join_complete() causes a deadlock with
ipoib_stop().  We avoid it by scheduling the piece of code that takes
the lock on ipoib_workqueue instead of executing it directly.  This
works because we only flush the ipoib_workqueue with the RTNL not held.

The deadlock happens because ipoib_stop() calls ipoib_ib_dev_down()
which calls ipoib_mcast_dev_flush(), which calls ipoib_mcast_free(),
which calls ipoib_mcast_leave(). The latter calls
ib_sa_free_multicast(), and this waits until the multicast completion
handler finishes.  This handler is ipoib_mcast_join_complete(), which
waits for the rtnl_lock(), which was already taken by ipoib_stop().

This bug was introduced in commit a77a57a1 ("IPoIB: Fix deadlock on
RTNL in ipoib_stop()").

Signed-off-by: Yossi Etigin <yosefe@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
17 years agoRDMA/nes: Fix client side QP destroy
Faisal Latif [Tue, 16 Sep 2008 18:56:26 +0000 (11:56 -0700)]
RDMA/nes: Fix client side QP destroy

Fix QP not being destroyed properly on the client, which leads to
userspace programs hanging on exit.  This is a missing chunk from the
connection management rewrite in commit 6492cdf3 ("RDMA/nes: CM
connection setup/teardown rework").

Signed-off-by: Faisal Latif <flatif@neteffect.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
17 years agosparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace.
David S. Miller [Tue, 16 Sep 2008 18:44:00 +0000 (11:44 -0700)]
sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace.

Based upon a report by Meelis Roos.

Any function call can try to access the current
thread register via the _mcount hooks when the kernel
is built with -pg (via ftrace or STACK_DEBUG).

That can't be setup properly very early on during
the bootup of other cpus for sun4u and some early
sun4v systems.

So add notrace markers to these specific functions, so
that _mcount doesn't get invoked too early.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agopowerpc/cpm1: Fix race condition in CPM1 GPIO library.
Jochen Friedrich [Wed, 27 Aug 2008 10:32:25 +0000 (12:32 +0200)]
powerpc/cpm1: Fix race condition in CPM1 GPIO library.

The CPM1 GPIO library code uses the non thread-safe clrbits32/setbits32
macros. This patch protects them with a spinlock.

Based on the CPM2 patch from Laurent Pinchart <laurentp@cse-semaphore.com>,
commit 639d64456e20cbfc866b18dc03cf9f9babc9c7cd.

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agoInput: jornada720_ts - fix build error ( LONG() usage )
Kristoffer Ericson [Tue, 16 Sep 2008 18:19:25 +0000 (14:19 -0400)]
Input: jornada720_ts - fix build error ( LONG() usage )

This patch removes the usage of LONG() which is deprecated; we also
replace BIT() with BIT_MASK().

signed-off-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agox86 setup: drop SWAP_DEV
Paul Bolle [Tue, 16 Sep 2008 09:17:03 +0000 (11:17 +0200)]
x86 setup: drop SWAP_DEV

Impact: None (cleanup)

SWAP_DEV is unused since 2.6.23-rc1. The comment was already incorrect
since (at least) 2.6.12.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agosparc64: Fix OOPS in psycho_pcierr_intr_other().
David S. Miller [Tue, 16 Sep 2008 16:53:42 +0000 (09:53 -0700)]
sparc64: Fix OOPS in psycho_pcierr_intr_other().

We no longer put the top-level PCI controller device into the
PCI layer device list.  So pbm->pci_bus->self is always NULL.

Therefore, use direct PCI config space accesses to get at
the PCI controller's PCI_STATUS register.

Tested by Meelis Roos.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[S390] cio: fix orb initialization in cio_start_key
Stefan Weinhuber [Tue, 16 Sep 2008 16:32:19 +0000 (09:32 -0700)]
[S390] cio: fix orb initialization in cio_start_key

The functions cio_tm_start_key and cio_start_key use the same private
orb structure of a subchannel, so the orb needs to be cleared of old
data before it is used again. A respective memset is missing from
cio_start_key and hereby added.

Signed-off-by: Stefan Weinhuber <wein@de.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] cio: Fix driver_data handling for ccwgroup devices.
Cornelia Huck [Tue, 16 Sep 2008 16:32:18 +0000 (09:32 -0700)]
[S390] cio: Fix driver_data handling for ccwgroup devices.

Since 16f7f9564c3ae190954f2ec55f385a268b93ac4d, we've seen
oopses when grouping/ungrouping devices:

Unable to handle kernel pointer dereference at virtual kernel address 0000000000
114000
Oops: 0004 [#1] PREEMPT SMP
Modules linked in: bonding qeth_l2 dm_multipath sunrpc qeth_l3 dm_mod qeth chsc_
sch ccwgroup
CPU: 1 Not tainted 2.6.26-29.x.20080815-s390xdefault #1
Process iperf (pid: 24412, task: 000000003f446038, ksp: 000000003c929e08)
Krnl PSW : 0404d00180000000 000003e00006f6e6 (qeth_irq+0xda/0xb28 [qeth])
           R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 EA:3
Krnl GPRS: 0000000000000000 000003e000000003 0000000000000000 0000000000114ccc
           000000003fb82e48 000003e00006f60c 000000000000000c 000000003ce72100
           0000000000114944 000000003fb82e48 0000000000114ccc 000000003fe8fd28
           000003e000066000 000003e000076128 000000003fe8fdb8 000000003fe8fd28
Krnl Code: 000003e00006f6dabf3f2024            icm     %r3,15,36(%r2)
           000003e00006f6dea774023c            brc     7,3e00006fb56
           000003e00006f6e2a7280000            lhi     %r2,0
          >000003e00006f6e65020a1a0            st      %r2,416(%r10)
           000003e00006f6ea58109000            l       %r1,0(%r9)
           000003e00006f6eea7111000            tmll    %r1,4096
           000003e00006f6f2a77400f9            brc     7,3e00006f8e4
           000003e00006f6f68810000c            srl     %r1,12
Call Trace:
([<000000003fe8fd20>] 0x3fe8fd20)
 [<000000000033bf2a>] ccw_device_call_handler+0xb2/0xd8
 [<0000000000339e1c>] ccw_device_irq+0x124/0x164
 [<0000000000339758>] io_subchannel_irq+0x8c/0x118
 [<00000000003309ba>] do_IRQ+0x192/0x1bc
 [<0000000000114f66>] io_return+0x0/0x8
 [<00000000001149cc>] sysc_do_svc+0x0/0x22
([<0000000000114a18>] sysc_noemu+0x10/0x16)
 [<00000200002e047c>] 0x200002e047c
Last Breaking-Event-Address:
 [<000003e00006f6d6>] qeth_irq+0xca/0xb28 [qeth]

The problem is that dev->driver_data for a ccw device is NULL,
while it should point to the ccwgroup device it is a member of.
This happened due to incorrect cleanup if creating a ccwgroup
device failed because the ccw devices were already grouped.

Fix this by setting cdev[i] to NULL in the error handling of
ccwgroup_create_from_string() after we give up our reference and
by checking if the driver_data points to the ccwgroup device in
ccwgroup_release() just to be really sure.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years agox86: completely disable NOPL on 32 bits
H. Peter Anvin [Tue, 16 Sep 2008 16:29:40 +0000 (09:29 -0700)]
x86: completely disable NOPL on 32 bits

Completely disable NOPL on 32 bits.  It turns out that Microsoft
Virtual PC is so broken it can't even reliably *fail* in the presence
of NOPL.

This leaves the infrastructure in place but disables it
unconditionally.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agoInput: bcm5974 - switch back to normal mode when closing
Henrik Rydberg [Sun, 14 Sep 2008 15:52:44 +0000 (11:52 -0400)]
Input: bcm5974 - switch back to normal mode when closing

Staying in multi-touch mode after closing the device sometimes makes
the keyboard drop keys or repeat keys irratically. The conjecture is
that some internal buffer starts to overflow, resulting in undefined
behavior. Switching back to normal mode when closing the device makes
the problem go away.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoPCI: Fix pcie_aspm=force
Sitsofe Wheeler [Tue, 16 Sep 2008 13:27:13 +0000 (14:27 +0100)]
PCI: Fix pcie_aspm=force

pcie_aspm=force did not work because aspm_force was being double negated
leading to the sanity check failing. Moving a bracket should fix this.

Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
17 years ago[MTD] [NAND] nand_base.c: reset chip first
Karl Beldan [Mon, 15 Sep 2008 12:37:29 +0000 (14:37 +0200)]
[MTD] [NAND] nand_base.c: reset chip first

Some chips require a RESET after power-up (e.g. Micron MT29FxGxxxxx).
The first command sent is NAND_CMD_READID.
Issue a NAND_CMD_RESET in nand_scan_ident before reading the device id.
Tested with an MT29F4G08AAC.

Signed-off-by: Karl Beldan <karl.beldan@gmail.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
17 years agopowerpc: Default configuration for GE Fanuc SBC610
Martyn Welch [Tue, 16 Sep 2008 09:57:52 +0000 (10:57 +0100)]
powerpc: Default configuration for GE Fanuc SBC610

Support for the SBC610 VPX Single Board Computer from GE Fanuc (PowerPC
MPC8641D).

This is the default config file for GE Fanuc's SBC610, a 6U single board
computer, based on Freescale's MPC8641D.

Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc: Board support for GE Fanuc SBC610
Martyn Welch [Tue, 16 Sep 2008 09:57:47 +0000 (10:57 +0100)]
powerpc: Board support for GE Fanuc SBC610

Support for the SBC610 VPX Single Board Computer from GE Fanuc (PowerPC
MPC8641D).

This is the basic board support for GE Fanuc's SBC610, a 6U single board
computer, based on Freescale's MPC8641D.

Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/sbc8560: fix compile warning on CPM pin array
Paul Gortmaker [Wed, 3 Sep 2008 20:02:25 +0000 (16:02 -0400)]
powerpc/sbc8560: fix compile warning on CPM pin array

This is just a parallel of a5dc66e2ab2e2cf641346b056a69a67cfcf9458c
applied to the sbc8560 board.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agomath-emu: Add support for reporting exact invalid exception
Kumar Gala [Fri, 27 Jun 2008 14:39:00 +0000 (09:39 -0500)]
math-emu: Add support for reporting exact invalid exception

Some architectures (like powerpc) provide status information on the exact
type of invalid exception.  This is pretty straight forward as we already
report invalid exceptions via FP_SET_EXCEPTION.

We add new flags (FP_EX_INVALID_*) the architecture code can define if it
wants the exact invalid exception reported.

We had to split out the INF/INF and 0/0 cases for divide to allow reporting
the two invalid forms properly.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: David S. Miller <davem@davemloft.net>
17 years agomath-emu: Fix compiler warnings
Kumar Gala [Fri, 27 Jun 2008 14:33:59 +0000 (09:33 -0500)]
math-emu: Fix compiler warnings

Fix warnings of the form:
arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f1' may be used uninitialized in this function
arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f0' may be used uninitialized in this function

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/85xx: fix build warning, remove silly cast
Becky Bruce [Thu, 21 Aug 2008 18:50:22 +0000 (13:50 -0500)]
powerpc/85xx: fix build warning, remove silly cast

This fixes a build warning when PHYS_64BIT is enabled, and removes an
unnecessary cast to phys_addr_t (the variable being cast is already
a phys_addr_t)

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/83xx: mpc836x_mds: add support for the nor flash
Anton Vorontsov [Thu, 14 Aug 2008 17:13:42 +0000 (21:13 +0400)]
powerpc/83xx: mpc836x_mds: add support for the nor flash

This patch adds the localbus node, moves the bcsr node into the
localbus node, and adds the flash node.

Also enable MTD support in the defconfig.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agoserial/cpm_uart: Remove dead Kconfig options
Kumar Gala [Mon, 4 Aug 2008 13:27:52 +0000 (08:27 -0500)]
serial/cpm_uart: Remove dead Kconfig options

With the change to device tree based setup we no longer need the explicit
Kconfig options for each SCC{1,4} or SMC{1,2} port.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc: Add support for mpc8247 based board MGCOGE from keymile.
Heiko Schocher [Wed, 18 Jun 2008 08:38:32 +0000 (10:38 +0200)]
powerpc: Add support for mpc8247 based board MGCOGE from keymile.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc: Add support for the MPC852 based mgsuvd board from keymile.
Heiko Schocher [Sat, 14 Jun 2008 19:02:04 +0000 (21:02 +0200)]
powerpc: Add support for the MPC852 based mgsuvd board from keymile.

Supported SMC1 (serial console), SCC3 Ethernet (10Mbps hdx).

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agox86: add X86_RESERVE_LOW_64K
Ingo Molnar [Tue, 16 Sep 2008 08:07:34 +0000 (10:07 +0200)]
x86: add X86_RESERVE_LOW_64K

This bugzilla:

  http://bugzilla.kernel.org/show_bug.cgi?id=11237

Documents a wide range of systems where the BIOS utilizes the first
64K of physical memory during suspend/resume and other hardware events.

Currently we reserve this memory on all AMI and Phoenix BIOS systems.
Life is too short to hunt subtle memory corruption problems like this,
so we try to be robust by default.

Still, allow this to be overriden: allow users who want that first 64K
of memory to be available to the kernel disable the quirk, via
CONFIG_X86_RESERVE_LOW_64K=n.

Also, allow the early reservation to overlap with other
early reservations.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years ago[MIPS] VR41xx: unsigned irq cannot be negative
roel kluin [Tue, 16 Sep 2008 00:50:54 +0000 (20:50 -0400)]
[MIPS] VR41xx: unsigned irq cannot be negative

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
17 years agox86: reserve low 64K on AMI and Phoenix BIOS boxen
Ingo Molnar [Tue, 16 Sep 2008 07:58:02 +0000 (09:58 +0200)]
x86: reserve low 64K on AMI and Phoenix BIOS boxen

there's multiple reports about suspend/resume related low memory
corruption in this bugzilla:

  http://bugzilla.kernel.org/show_bug.cgi?id=11237

the common pattern is that the corruption is caused by the BIOS,
and that it affects some portion of the first 64K of physical RAM.

So add a DMI quirk

This will waste 64K RAM on 'good' systems too, but without knowing
the exact nature of this BIOS memory corruption this is the safest
approach.

This might as well solve a wide range of suspend/resume breakages
under Linux.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: add DMI quirk for AMI BIOS which corrupts address 0xc000 during resume
Ingo Molnar [Tue, 16 Sep 2008 07:29:09 +0000 (09:29 +0200)]
x86: add DMI quirk for AMI BIOS which corrupts address 0xc000 during resume

Alan Jenkins and Andy Wettstein reported a suspend/resume memory
corruption bug and extensively documented it here:

   http://bugzilla.kernel.org/show_bug.cgi?id=11237

The bug is that the BIOS overwrites 1K of memory at 0xc000 physical,
without registering it in e820 as reserved or giving the kernel any
idea about this.

Detect AMI BIOSen and reserve that 1K.

We paint this bug around with a very broad brush (reserving that 1K on all
AMI BIOS systems), as the bug was extremely hard to find and needed several
weeks and lots of debugging and patching.

The bug was found via the CONFIG_X86_CHECK_BIOS_CORRUPTION=y debug feature,
if similar bugs are suspected then this feature can be enabled on other
systems as well to scan low memory for corrupted memory.

Reported-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Reported-by: Andy Wettstein <ajw1980@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years ago[MTD] [NAND] OMAP2: add retry after read timeout
Adrian Hunter [Mon, 25 Aug 2008 09:01:31 +0000 (12:01 +0300)]
[MTD] [NAND] OMAP2: add retry after read timeout

Very occasionally, (about one in a million) read operations are
ongoing after the timeout has expired.  So, retry three times
while the ongoing bit remains set.

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
17 years agoMerge commit 'v2.6.27-rc6' into x86/memory-corruption-check
Ingo Molnar [Tue, 16 Sep 2008 07:34:23 +0000 (09:34 +0200)]
Merge commit 'v2.6.27-rc6' into x86/memory-corruption-check

17 years agouaccess: fix parameters inversion for __copy_from_user_inatomic()
Hiroshi Shimamoto [Tue, 16 Sep 2008 01:04:26 +0000 (18:04 -0700)]
uaccess: fix parameters inversion for __copy_from_user_inatomic()

The following patch changes to use __copy_from_user_inatomic(),
but the passing parameters incorrect:

    x86: some lock annotations for user copy paths, v3

This fixes the netfilter crash reported by Steven Noonan.

Reported-by: Steven Noonan <steven@uplinklabs.net>
Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Tested-by: Steven Noonan <steven@uplinklabs.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agolibertas: correct "limited range of data type" warning
John W. Linville [Mon, 15 Sep 2008 21:25:54 +0000 (17:25 -0400)]
libertas: correct "limited range of data type" warning

  CC [M]  drivers/net/wireless/libertas/wext.o
drivers/net/wireless/libertas/wext.c: In function â€˜lbs_get_rts’:
drivers/net/wireless/libertas/wext.c:307: warning: comparison is always
false due to limited range of data type

Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoIB/mlx4: Fix up fast register page list format
Vladimir Sokolovsky [Mon, 15 Sep 2008 21:25:23 +0000 (14:25 -0700)]
IB/mlx4: Fix up fast register page list format

Byte swap the addresses in the page list for fast register work requests
to big endian to match what the HCA expectx.  Also, the addresses must
have the "present" bit set so that the HCA knows it can access them.
Otherwise the HCA will fault the first time it accesses the memory
region.

Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
17 years agoorinoco: Fix compile warnings
David Kilroy [Fri, 12 Sep 2008 21:28:18 +0000 (22:28 +0100)]
orinoco: Fix compile warnings

Use min_t to avoid warnings when the typesafe version is used.

Explicitly cast u64s to unsigned long long when being passed to printk.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211 : Fix mode change hard_start_xmit function
Abhijeet Kolekar [Fri, 12 Sep 2008 20:44:08 +0000 (13:44 -0700)]
mac80211 : Fix mode change hard_start_xmit function

When monitor mode is changed to BSS or IBSS, data trasnfer can not happen
because proper transmit function is not assigend for BSS ,IBSS mode.
This patch fixes this problem by assigning the ieee80211_subif_start_xmit
to device's hard_start_xmit function.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Zhu Yi <yi.zhu@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: remove debug frame dumping
Johannes Berg [Fri, 12 Sep 2008 13:22:53 +0000 (15:22 +0200)]
mac80211: remove debug frame dumping

You can just pull up a monitor interface to get much more
detailed information, or, when debugging a driver, insert
dump code into the driver (which usually you will have to
do anyway to dump the driver-specific information). Hence
this option is useless.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: remove beacon counters
Johannes Berg [Fri, 12 Sep 2008 09:05:39 +0000 (11:05 +0200)]
mac80211: remove beacon counters

The beacon counters mac80211 keeps are only used for debugfs,
unfortunately, they are incorrect for many hardware designs,
namely any design that has a beacon template. Hence, remove the
counters so we don't create the impression they are usable.

This also allows removing the beacon MESH #ifdef again.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: clean up kdoc
Johannes Berg [Fri, 12 Sep 2008 08:18:44 +0000 (10:18 +0200)]
mac80211: clean up kdoc

A few errors sneaked in over time, some functions no longer exist,
for some alternatives exist. This changes the docbook template to
include the right things.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix sta_info kernel-doc warning
Johannes Berg [Fri, 12 Sep 2008 07:53:27 +0000 (09:53 +0200)]
mac80211: fix sta_info kernel-doc warning

Sorry, forgot to run kernel-doc and just got the output from the nightly
run by email, this fixes a warning which I introduced when doing the
first RC API cleanups.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211 hwsim: make radio list dynamic
Johannes Berg [Thu, 11 Sep 2008 22:39:22 +0000 (00:39 +0200)]
mac80211 hwsim: make radio list dynamic

This paves the way for dynamic radio additions while the module
is loaded. Also restrict the number of radios to 100 because
creating that many already takes forever.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix virtual interfaces vs. injection
Johannes Berg [Fri, 12 Sep 2008 20:52:47 +0000 (22:52 +0200)]
mac80211: fix virtual interfaces vs. injection

Currently, virtual interface pointers passed to drivers might be
from monitor interfaces and as such completely uninitialised
because we do not tell the driver about monitor interfaces when
those are created. Instead of passing them, we should therefore
indicate to the driver that there is no information; do that by
passing a NULL value and adjust drivers to cope with it.

As a result, some mac80211 API functions also need to cope with
a NULL vif pointer so drivers can still call them unconditionally.

Also, when injecting frames we really don't want to pass NULL all
the time, if we know we are the source address of a frame and have
a local interface for that address, we can to use that interface.
This also helps with processing the frame correctly for that
interface which will help the 802.11w implementation. It's not
entirely correct for VLANs or WDS interfaces because there the MAC
address isn't unique, but it's already a lot better than what we
do now.

Finally, when injecting without a matching local interface, don't
assign sequence numbers at all.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agolibertas: Reduce the WPA key installation time.
Javier Cardona [Thu, 11 Sep 2008 22:32:50 +0000 (15:32 -0700)]
libertas: Reduce the WPA key installation time.

WPA requires that the PTK is installed immediately after the 4-way handshake
in order to properly decrypt the subsequent incoming EAPOL-GTK frame.  If the
PTK is not enabled by the time the EAPOL-GTK frame arrives, the frame is
dropped and the supplicant does not receive the group key.

This will happen with fast Access Points that send the EAPOL-GTK frame before
the suplicant has successfully installed and enabled the PTK.  To mitigate
this situation, this patch simplifies and accelerates the SIOCSIWENCODEEXT
execution.

This patch resolves OLPC ticket 7825 (http://dev.laptop.org/ticket/7825)

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agorfkill: remove transmitter blocking on suspend
Henrique de Moraes Holschuh [Tue, 26 Aug 2008 14:58:01 +0000 (11:58 -0300)]
rfkill: remove transmitter blocking on suspend

Currently, rfkill would stand in the way of properly supporting wireless
devices that are capable of waking the system up from sleep or hibernation
when they receive a special wireless message.  It would also get in the way
of mesh devices that need to remain operational even during platform
suspend.

To avoid that, stop trying to block the transmitters on the rfkill class
suspend handler.

Drivers that need rfkill's older behaviour will have to implement it by
themselves in their own suspend handling.

Do note that rfkill *will* attempt to restore the transmitter state on
resume in any situation.  This happens after the driver's resume method is
called by the suspend core (class devices resume after the devices they are
attached to have been resumed).

The following drivers need to check if they need to explicitly block
their transmitters in their own suspend handlers (maintainers Cc'd):
arch/arm/mach-pxa/tosa-bt.c
drivers/net/usb/hso.c
drivers/net/wireless/rt2x00/* (USB might need it?)
drivers/net/wireless/b43/ (SSB over USB might need it?)
drivers/misc/hp-wmi.c
eeepc-laptop w/rfkill support (not in mainline yet)
Compal laptop w/rfkill support (not in mainline yet)
toshiba-acpi w/rfkill support (not in mainline yet)

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Andrew Bird <ajb@spheresystems.co.uk>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
Cc: Philip Langdale <philipl@overt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agob43: fix QoS parameters initialization
Lorenzo Nava [Thu, 11 Sep 2008 13:06:24 +0000 (15:06 +0200)]
b43: fix QoS parameters initialization

This fixes the initialization of QoS parameters.

Reported-by: Lorenzo Nava, Francesco Gringoli
Signed-off-by: Francesco Gringoli <francesco.gringoli@ing.unibs.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwl3945: add MODULE_FIRMWARE for 3945 HW
Zhu Yi [Thu, 11 Sep 2008 03:45:22 +0000 (11:45 +0800)]
iwl3945: add MODULE_FIRMWARE for 3945 HW

This patch adds MODULE_FIRMWARE statement for 3945 HW.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: add MODULE_FIRMWARE for 5000 HW
Tomas Winkler [Thu, 11 Sep 2008 03:45:21 +0000 (11:45 +0800)]
iwlwifi: add MODULE_FIRMWARE for 5000 HW

This patch adds MODULE_FIRMWARE statement for 5000 HW.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: update 5350 Wifi PCI IDs
Tomas Winkler [Thu, 11 Sep 2008 03:45:20 +0000 (11:45 +0800)]
iwlwifi: update 5350 Wifi PCI IDs

This patch updates PCI IDs for 5350 Wifi/WiMax.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: pass AP vif pointer for VLANs
Johannes Berg [Thu, 11 Sep 2008 03:27:40 +0000 (05:27 +0200)]
mac80211: pass AP vif pointer for VLANs

We cannot pass a VLAN vif pointer to the driver since those are
entirely virtual and we never tell the driver.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: don't access mac80211's AMPDU state machine
Johannes Berg [Thu, 11 Sep 2008 01:17:05 +0000 (03:17 +0200)]
iwlwifi: don't access mac80211's AMPDU state machine

There really is no need, at worst ieee80211_start_tx_ba_session
will log a message when debugging is enabled, and poking such
internals of mac80211 definitely doesn't belong into an RC
algorithm.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: share sta_info->ht_info
Johannes Berg [Thu, 11 Sep 2008 01:14:11 +0000 (03:14 +0200)]
mac80211: share sta_info->ht_info

Rate control algorithms may need access to a station's
HT capabilities, so share the ht_info struct in the
public station API.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: move txrate_idx into RC algorithms
Johannes Berg [Thu, 11 Sep 2008 01:04:36 +0000 (03:04 +0200)]
mac80211: move txrate_idx into RC algorithms

The sta_info->txrate_idx member isn't used by all RC algorithms
in the way it was intended to be used, move it into those that
require it (only PID) and keep track in the core code of which
rate was last used for reporting to userspace and the mesh MLME.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: share sta->supp_rates
Johannes Berg [Thu, 11 Sep 2008 00:45:11 +0000 (02:45 +0200)]
mac80211: share sta->supp_rates

As more preparation for a saner rate control algorithm API,
share the supported rates bitmap in the public API.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: move last_txrate_idx into RC algorithms
Johannes Berg [Thu, 11 Sep 2008 00:22:58 +0000 (02:22 +0200)]
mac80211: move last_txrate_idx into RC algorithms

This variable in sta_info is only used in a meaningful way
by the Intel RC algorithms, so move it into those.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: small rate control changes
Johannes Berg [Thu, 11 Sep 2008 00:03:28 +0000 (02:03 +0200)]
mac80211: small rate control changes

This patch fixes mac80211 to not rely on the rate control
algorithm to update sta->tx_retry_failed and sta->tx_retry_count
(even if we don't currently use them), removes a number of
completely unused values we don't even show in debugfs and
changes the code in ieee80211_tx_status() to not look up the
sta_info repeatedly.

The only behaviour change here would be not calling the rate
control function rate_control_tx_status() when no sta_info is
found, but all rate control algorithms ignore such calls anyway.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211 hwsim: verify sta pointers
Johannes Berg [Thu, 11 Sep 2008 00:17:01 +0000 (02:17 +0200)]
mac80211 hwsim: verify sta pointers

In analogy with the previous patch to make mac80211-hwsim
verify that the virtual interface pointers are correct,
this makes it very that it knows about all station structs.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: share STA information with driver
Johannes Berg [Wed, 10 Sep 2008 22:02:02 +0000 (00:02 +0200)]
mac80211: share STA information with driver

This patch changes mac80211 to share some more data about
stations with drivers. Should help iwlwifi and ath9k when
 they get around to updating, and might also help with
implementing rate control algorithms without internals.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211 hwsim: verify vif pointers
Johannes Berg [Thu, 11 Sep 2008 00:16:36 +0000 (02:16 +0200)]
mac80211 hwsim: verify vif pointers

mac80211-hwsim is a debugging tool for mac80211, and as such
it can very well verify that mac80211 isn't passing junk to
drivers, especially the vif pointer is prone to this because
for vlan interfaces the AP interface pointer needs to be passed.
This makes mac80211-hwsim add a magic cookie to the private vif
area and verify it whenever an operation is called that gets a
vif pointer.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: warn on some invalid vlan operations
Johannes Berg [Wed, 10 Sep 2008 22:02:00 +0000 (00:02 +0200)]
mac80211: warn on some invalid vlan operations

These should never happen, but better warn about them than
crashing a driver, the fact that they never happen is rather
subtle throughout mac80211.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: move regular interface handling
Johannes Berg [Wed, 10 Sep 2008 22:01:59 +0000 (00:01 +0200)]
mac80211: move regular interface handling

Move the code to handle regular interfaces out of main.c and
into iface.c, keep only the master interface stuff in main.c.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: use nl80211 interface types
Johannes Berg [Wed, 10 Sep 2008 22:01:58 +0000 (00:01 +0200)]
mac80211: use nl80211 interface types

There's really no reason for mac80211 to be using its
own interface type defines. Use the nl80211 types and
simplify the configuration code a bit: there's no need
to translate them any more now.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: inform driver of basic rateset
Johannes Berg [Wed, 10 Sep 2008 22:01:57 +0000 (00:01 +0200)]
mac80211: inform driver of basic rateset

Drivers need to know the basic rateset to be able to configure
the ACK/CTS programming in hardware correctly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: clean up some comments
Johannes Berg [Wed, 10 Sep 2008 22:01:56 +0000 (00:01 +0200)]
mac80211: clean up some comments

Some comments refer to 80211.o or similar; also remove
a comment about implementing fragments better, we really
have better things to do.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: clean up scan namespace
Johannes Berg [Wed, 10 Sep 2008 22:01:55 +0000 (00:01 +0200)]
mac80211: clean up scan namespace

Most of the scan functions are called ieee80211_sta_scan_*
or similar, make clean it up so they are all just called
ieee80211_scan_*.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: make bridge_packets a virtual interface option
Johannes Berg [Wed, 10 Sep 2008 22:01:54 +0000 (00:01 +0200)]
mac80211: make bridge_packets a virtual interface option

The bridge_packets configuration really should be per virtual
interface (theoretically per AP/VLAN, but this is much easier);
there currently is no way to set it yet though. Also invert
the option to "NO_BRIDGE_PACKETS" so the default is to bridge.

While at it, also document the flags properly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: move ieee80211_set_freq to utils
Johannes Berg [Wed, 10 Sep 2008 22:01:53 +0000 (00:01 +0200)]
mac80211: move ieee80211_set_freq to utils

It really doesn't belong into the wireless extensions code.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: reorder MLME code more
Johannes Berg [Wed, 10 Sep 2008 22:01:52 +0000 (00:01 +0200)]
mac80211: reorder MLME code more

This way all the utility functions are at the top, then the
state machine and externally callable functions are moved to
the bottom. Also clean up ieee80211_i.h a bit and add a few
comments about which functions are called from where.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix scan vs. interface removal race
Johannes Berg [Wed, 10 Sep 2008 22:01:51 +0000 (00:01 +0200)]
mac80211: fix scan vs. interface removal race

When we remove an interface, we can currently end up having
a pointer to it left in local->scan_sdata after it has been
set down, and then with a hardware scan the scan completion
can try to access it which is a bug. Alternatively, a scan
that started as a hardware scan may terminate as though it
was a software scan, if the timing is just right.

On SMP systems, software scan also has a similar problem,
just canceling the delayed work and setting a flag isn't
enough since it may be running concurrently; in this case
we would also never restore state of other interfaces.

This patch hopefully fixes the problems by always invoking
ieee80211_scan_completed or requiring it to be invoked by
the driver, I suspect the drivers that have ->hw_scan() are
buggy. The bug will not manifest itself unless you remove
the interface while hw-scanning which will also turn off
the hw, and then add a new interface which will be unusable
until you scan once.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix work race
Johannes Berg [Wed, 10 Sep 2008 22:01:50 +0000 (00:01 +0200)]
mac80211: fix work race

When we stop an interface, the work on it may still be pending
or running. We do cancel the timer, but we do not currently
protect against the work struct. The race is very unlikely to
hit -- it'll happen only when the driver is using mac80211's
workqueue to run long-running tasks and the sta/mesh works are
delayed for quite a bit.

This patch fixes it by cancelling the work explicitly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>