]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agopowerpc/bootwrapper: Use the child-bus #address-cells to decide which range entry...
Scott Wood [Fri, 19 Dec 2008 10:13:09 +0000 (10:13 +0000)]
powerpc/bootwrapper: Use the child-bus #address-cells to decide which range entry to use

The correct #address-cells was still used for the actual translation,
so the impact is only a possibility of choosing the wrong range entry
or failing to find any match.  Most common cases were not affected.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Const-qualify Device Node Argument to DCR Resource Extent API
Grant Erickson [Fri, 19 Dec 2008 08:17:54 +0000 (08:17 +0000)]
powerpc: Const-qualify Device Node Argument to DCR Resource Extent API

Add const qualifier to device_node argument for
dcr_resource_{start,len} as of_get_property also const-qualifies this
argument.

Signed-off-by: Grant Erickson <gerickson@nuovations.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/44x: 44x TLB doesn't need "Guarded" set for all pages
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:54 +0000 (19:13 +0000)]
powerpc/44x: 44x TLB doesn't need "Guarded" set for all pages

After discussing with chip designers, it appears that it's not
necessary to set G everywhere on 440 cores. The various core
errata related to prefetch should be sorted out by firmware by
disabling icache prefetching in CCR0. We add the workaround to
the kernel however just in case oooold firmwares don't do it.

This is valid for -all- 4xx core variants. Later ones hard wire
the absence of prefetch but it doesn't harm to clear the bits
in CCR0 (they should already be cleared anyway).

We still leave G=1 on the linear mapping for now, we need to
stop over-mapping RAM to be able to remove it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Rework usage of _PAGE_COHERENT/NO_CACHE/GUARDED
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:51 +0000 (19:13 +0000)]
powerpc/mm: Rework usage of _PAGE_COHERENT/NO_CACHE/GUARDED

Currently, we never set _PAGE_COHERENT in the PTEs, we just OR it in
in the hash code based on some CPU feature bit.  We also manipulate
_PAGE_NO_CACHE and _PAGE_GUARDED by hand in all sorts of places.

This changes the logic so that instead, the PTE now contains
_PAGE_COHERENT for all normal RAM pages thay have I = 0 on platforms
that need it.  The hash code clears it if the feature bit is not set.

It also adds some clean accessors to setup various valid combinations
of access flags and change various bits of code to use them instead.

This should help having the PTE actually containing the bit
combinations that we really want.

I also removed _PAGE_GUARDED from _PAGE_BASE on 44x and instead
set it explicitely from the TLB miss.  I will ultimately remove it
completely as it appears that it might not be needed after all
but in the meantime, having it in the TLB miss makes things a
lot easier.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Runtime allocation of mmu context maps for nohash CPUs
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:48 +0000 (19:13 +0000)]
powerpc/mm: Runtime allocation of mmu context maps for nohash CPUs

This makes the MMU context code used for CPUs with no hash table
(except 603) dynamically allocate the various maps used to track
the state of contexts.

Only the main free map and CPU 0 stale map are allocated at boot
time.  Other CPU maps are allocated when those CPUs are brought up
and freed if they are unplugged.

This also moves the initialization of the MMU context management
slightly later during the boot process, which should be fine as
it's really only needed when userland if first started anyways.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/44x: No need to mask MSR:CE, ME or DE in _tlbil_va on 440
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:46 +0000 (19:13 +0000)]
powerpc/44x: No need to mask MSR:CE, ME or DE in _tlbil_va on 440

The handlers for Critical, Machine Check or Debug interrupts
will save and restore MMUCR nowadays, thus we only need to
disable normal interrupts when invalidating TLB entries.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Split low level tlb invalidate for nohash processors
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:42 +0000 (19:13 +0000)]
powerpc/mm: Split low level tlb invalidate for nohash processors

Currently, the various forms of low level TLB invalidations are all
implemented in misc_32.S for 32-bit processors, in a fairly scary
mess of #ifdef's and with interesting duplication such as a whole
bunch of code for FSL _tlbie and _tlbia which are no longer used.

This moves things around such that _tlbie is now defined in
hash_low_32.S and is only used by the 32-bit hash code, and all
nohash CPUs use the various _tlbil_* forms that are now moved to
a new file, tlb_nohash_low.S.

I moved all the definitions for that stuff out of
include/asm/tlbflush.h as they are really internal mm stuff, into
mm/mmu_decl.h

The code should have no functional changes.  I kept some variants
inline for trivial forms on things like 40x and 8xx.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Add SMP support to no-hash TLB handling
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:38 +0000 (19:13 +0000)]
powerpc/mm: Add SMP support to no-hash TLB handling

This commit moves the whole no-hash TLB handling out of line into a
new tlb_nohash.c file, and implements some basic SMP support using
IPIs and/or broadcast tlbivax instructions.

Note that I'm using local invalidations for D->I cache coherency.

At worst, if another processor is trying to execute the same and
has the old entry in its TLB, it will just take a fault and re-do
the TLB flush locally (it won't re-do the cache flush in any case).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Introduce MMU features
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:32 +0000 (19:13 +0000)]
powerpc/mm: Introduce MMU features

We're soon running out of CPU features and I need to add some new
ones for various MMU related bits, so this patch separates the MMU
features from the CPU features.  I moved over the 32-bit MMU related
ones, added base features for MMU type families, but didn't move
over any 64-bit only feature yet.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Rework context management for CPUs with no hash table
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:29 +0000 (19:13 +0000)]
powerpc/mm: Rework context management for CPUs with no hash table

This reworks the context management code used by 4xx,8xx and
freescale BookE.  It adds support for SMP by implementing a
concept of stale context map to lazily flush the TLB on
processors where a context may have been invalidated.  This
also contains the ground work for generalizing such lazy TLB
flushing by just picking up a new PID and marking the old one
stale.  This will be implemented later.

This is a first implementation that uses a global spinlock.

Ideally, we should try to get at least the fast path (context ID
already assigned) lockless or limited to a per context lock,
but for now this will do.

I tried to keep the UP case reasonably simple to avoid adding
too much overhead to 8xx which does a lot of context stealing
since it effectively has only 16 PIDs available.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/mm: Split mmu_context handling
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:24 +0000 (19:13 +0000)]
powerpc/mm: Split mmu_context handling

This splits the mmu_context handling between 32-bit hash based
processors, 64-bit hash based processors and everybody else.  This is
preliminary work for adding SMP support for BookE processors.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/4xx: Extended DCR support v2
Benjamin Herrenschmidt [Thu, 18 Dec 2008 19:13:22 +0000 (19:13 +0000)]
powerpc/4xx: Extended DCR support v2

This adds supports to the "extended" DCR addressing via the indirect
mfdcrx/mtdcrx instructions supported by some 4xx cores (440H6 and
later).

I enabled the feature for now only on AMCC 460 chips.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Add reboot notifier to Collaborative Memory Manager
Brian King [Thu, 18 Dec 2008 11:13:49 +0000 (11:13 +0000)]
powerpc: Add reboot notifier to Collaborative Memory Manager

When running Active Memory Sharing, pages can get marked as
"loaned" with the hypervisor by the CMM driver. This state gets
cleared by the system firmware when rebooting the partition.
When using kexec to boot a new kernel, this state never gets
cleared and the hypervisor and CMM driver can get out of sync
with respect to the number of pages currently marked "loaned".
Fix this by adding a reboot notifier to the CMM driver to deflate
the balloon and mark all pages as active.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Disable Collaborative Memory Manager for kdump
Brian King [Thu, 18 Dec 2008 11:13:46 +0000 (11:13 +0000)]
powerpc: Disable Collaborative Memory Manager for kdump

When running Active Memory Sharing, the Collaborative Memory Manager
(CMM) may mark some pages as "loaned" with the hypervisor.
Periodically, the CMM will query the hypervisor for a loan request,
which is a single signed value.  When kexec'ing into a kdump kernel,
the CMM driver in the kdump kernel is not aware of the pages the
previous kernel had marked as "loaned", so the hypervisor and the CMM
driver are out of sync.  This results in the CMM driver getting a
negative loan request, which can then get treated as a large unsigned
value and can cause kdump to hang due to the CMM driver inflating too
large.  Since there really is no clean way for the CMM driver in the
kdump kernel to clean this up, simply disable CMM in the kdump kernel.
This fixes hangs we were seeing doing kdump with AMS.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc/iseries: viodasd needs to depend on CONFIG_BLOCK
Stephen Rothwell [Tue, 16 Dec 2008 20:16:49 +0000 (20:16 +0000)]
powerpc/iseries: viodasd needs to depend on CONFIG_BLOCK

Otherwise you get lot of errors like these:

drivers/block/viodasd.c:72: error: dereferencing pointer to incomplete type
drivers/block/viodasd.c: In function 'viodasd_open':
drivers/block/viodasd.c:135: error: dereferencing pointer to incomplete type
drivers/block/viodasd.c: In function 'viodasd_release':
drivers/block/viodasd.c:184: error: dereferencing pointer to incomplete type
drivers/block/viodasd.c: In function 'viodasd_getgeo':
drivers/block/viodasd.c:209: error: dereferencing pointer to incomplete type
drivers/block/viodasd.c:214: error: implicit declaration of function 'get_capacity'
drivers/block/viodasd.c: At top level:
drivers/block/viodasd.c:222: error: variable 'viodasd_fops' has initializer but incomplete type
drivers/block/viodasd.c:223: error: unknown field 'owner' specified in initializer

Discovered by a randconfig build.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agohvc_console: Escape magic sysrq key
Hendrik Brueckner [Tue, 16 Dec 2008 00:09:38 +0000 (00:09 +0000)]
hvc_console: Escape magic sysrq key

The ctrl-o (^O) is a common control key used by several applications,
such as vim, but hvc_console uses ^O as the magic-sysrq key.  This
commit allows users to send ^O to applications by pressing ^O twice
in succession.

To implement this, this commit introduces a check if ^O is pressed
again if the sysrq_pressed variable is already set.  In this case,
clear sysrq_pressed state and flip the ^O character to the tty.  (The
old behavior has always set "sysrq_pressed" if ^O has been entered,
and it has not flipped the ^O character to the tty.)

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Pass a valid token to rtas_call() in phyp-dump code
Tony Breeds [Mon, 15 Dec 2008 18:34:43 +0000 (18:34 +0000)]
powerpc: Pass a valid token to rtas_call() in phyp-dump code

ibm_configure_kernel_dump is passed as the token to rtas_call() is
never initialised.  This sets it to something sane.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Acked-by: Nathan Lynch <ntl@pobox.com>
Acked-by: Manish Ahuja <mahujam@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Protect against NULL pointer deref in phyp-dump code
Tony Breeds [Mon, 15 Dec 2008 18:17:48 +0000 (18:17 +0000)]
powerpc: Protect against NULL pointer deref in phyp-dump code

print_dump_header() will be called at least once with a NULL pointer in
a normal boot sequence.  If DEBUG is defined then we will dereference
the pointer and crash.  Add a quick fix to exit early in the NULL pointer
case.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Acked-by: Manish Ahuja <mahujam@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Rename struct vm_region to avoid conflict with NOMMU
David Howells [Thu, 11 Dec 2008 02:53:54 +0000 (02:53 +0000)]
powerpc: Rename struct vm_region to avoid conflict with NOMMU

Rename PowerPC's struct vm_region so that I can introduce my own
global version for NOMMU.  It's feasible that the PowerPC version may
wish to use my global one instead.

The NOMMU vm_region struct defines areas of the physical memory map
that are under mmap.  This may include chunks of RAM or regions of
memory mapped devices, such as flash.  It is also used to retain
copies of file content so that shareable private memory mappings of
files can be made.  As such, it may be compatible with what is
described in the banner comment for PowerPC's vm_region struct.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Convert sysfs cache code to of_find_next_cache_node()
Nathan Lynch [Wed, 10 Dec 2008 14:46:06 +0000 (14:46 +0000)]
powerpc: Convert sysfs cache code to of_find_next_cache_node()

Using the common code means that more complete cache information will
provided in sysfs on platforms that don't use the l2-cache property
convention.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Convert cpu_to_l2cache() to of_find_next_cache_node()
Nathan Lynch [Wed, 10 Dec 2008 20:16:07 +0000 (20:16 +0000)]
powerpc: Convert cpu_to_l2cache() to of_find_next_cache_node()

The smp code uses cache information to populate cpu_core_map; change
it to use common code for cache lookup.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agopowerpc: Add of_find_next_cache_node()
Nathan Lynch [Wed, 10 Dec 2008 14:46:04 +0000 (14:46 +0000)]
powerpc: Add of_find_next_cache_node()

We have more than one piece of code that looks up cache nodes manually
using the "l2-cache" property.  Add a common helper routine which does
this and handles ePAPR's "next-level-cache" property as well as
powermac.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoof/gpio: Implement of_gpio_count()
Anton Vorontsov [Fri, 5 Dec 2008 08:15:54 +0000 (08:15 +0000)]
of/gpio: Implement of_gpio_count()

This function is used to count how many GPIOs are specified for
a device node.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoof: of_parse_phandles_with_args() learns to differentiate 'hole' cells
Anton Vorontsov [Fri, 5 Dec 2008 08:15:46 +0000 (08:15 +0000)]
of: of_parse_phandles_with_args() learns to differentiate 'hole' cells

Given this list (contains three gpio specifiers, one of which is a hole):

gpios = <&phandle1 1 2 3
         0 /* a hole */
         &phandle2 4 5 6>;

of_parse_phandles_with_args() would report -ENOENT for the `hole'
specifier item, the same error value is used to report the end of the
list, for example.

Sometimes we want to differentiate holes from real errors -- for
example when we want to count all the [syntax correct] specifiers.

With this patch of_parse_phandles_with_args() will report -EEXITS when
somebody requested to parse a hole.

Also, make the out_{node,args} arguments optional, when counting we
don't really need the out values.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoof: Minor simplification for the of_parse_phandles_with_args()
Anton Vorontsov [Fri, 5 Dec 2008 08:15:39 +0000 (08:15 +0000)]
of: Minor simplification for the of_parse_phandles_with_args()

By using 'list++' in the beginning we can simplify the code a
little bit.

Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoALSA: hda: fix incorrect mixer index values for 92hd83xx
Matthew Ranostay [Sat, 20 Dec 2008 22:47:24 +0000 (17:47 -0500)]
ALSA: hda: fix incorrect mixer index values for 92hd83xx

Fixed incorrect mixer index values for 92hd83xx codec's audio
input mixer.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agoALSA: hda: dinput_mux check
Matthew Ranostay [Sat, 20 Dec 2008 22:36:28 +0000 (17:36 -0500)]
ALSA: hda: dinput_mux check

Add check to determine if dinput_mux is set by any of patch_stac*() functions,
otherwise a invalid pointer my be referenced causing gibberish to mixer values.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agoMerge branch 'topic/ca0106-spdif-stream' into topic/ca0106
Takashi Iwai [Sat, 20 Dec 2008 22:43:06 +0000 (23:43 +0100)]
Merge branch 'topic/ca0106-spdif-stream' into topic/ca0106

17 years agoMerge branch 'topic/ca0106-resume' into topic/ca0106
Takashi Iwai [Sat, 20 Dec 2008 22:43:00 +0000 (23:43 +0100)]
Merge branch 'topic/ca0106-resume' into topic/ca0106

17 years agoMerge branch 'topic/ca0106-capture-no-44khz' into topic/ca0106
Takashi Iwai [Sat, 20 Dec 2008 22:42:55 +0000 (23:42 +0100)]
Merge branch 'topic/ca0106-capture-no-44khz' into topic/ca0106

17 years agoMerge branch 'topic/hda-resume-fix' into topic/hda
Takashi Iwai [Sat, 20 Dec 2008 22:41:18 +0000 (23:41 +0100)]
Merge branch 'topic/hda-resume-fix' into topic/hda

17 years agoMerge branch 'topic/pcsp-fix' into topic/misc
Takashi Iwai [Sat, 20 Dec 2008 22:39:47 +0000 (23:39 +0100)]
Merge branch 'topic/pcsp-fix' into topic/misc

17 years agoNull pointer deref with hrtimer_try_to_cancel()
Thomas Gleixner [Sat, 20 Dec 2008 20:27:34 +0000 (21:27 +0100)]
Null pointer deref with hrtimer_try_to_cancel()

Impact: Prevent kernel crash with posix timer clockid CLOCK_MONOTONIC_RAW

commit 2d42244ae71d6c7b0884b5664cf2eda30fb2ae68 (clocksource:
introduce CLOCK_MONOTONIC_RAW) introduced a new clockid, which is only
available to read out the raw not NTP adjusted system time.

The above commit did not prevent that a posix timer can be created
with that clockid. The timer_create() syscall succeeds and initializes
the timer to a non existing hrtimer base. When the timer is deleted
either by timer_delete() or by the exit() cleanup the kernel crashes.

Prevent the creation of timers for CLOCK_MONOTONIC_RAW by setting the
posix clock function to no_timer_create which returns an error code.

Reported-and-tested-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years agoInput: make some variables and functions static
Roel Kluin [Sat, 20 Dec 2008 10:19:43 +0000 (05:19 -0500)]
Input: make some variables and functions static

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh...
Linus Torvalds [Sat, 20 Dec 2008 19:07:31 +0000 (11:07 -0800)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
  fs/9p: change simple_strtol to simple_strtoul
  9p: convert d_iname references to d_name.name
  9p: Remove potentially bad parameter from function entry debug print.

17 years agoMerge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sat, 20 Dec 2008 19:07:18 +0000 (11:07 -0800)]
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: fix resume (S2R) broken by Intel microcode module, on A110L
  x86 gart: don't complain if no AMD GART found
  AMD IOMMU: panic if completion wait loop fails
  AMD IOMMU: set cmd buffer pointers to zero manually
  x86: re-enable MCE on secondary CPUS after suspend/resume
  AMD IOMMU: allocate rlookup_table with __GFP_ZERO

17 years agoMerge git://git.marvell.com/orion into devel
Russell King [Sat, 20 Dec 2008 17:40:03 +0000 (17:40 +0000)]
Merge git://git.marvell.com/orion into devel

17 years ago[ARM] mv78xx0: implement GPIO and GPIO interrupt support
Lennert Buytenhek [Sun, 19 Oct 2008 23:51:04 +0000 (01:51 +0200)]
[ARM] mv78xx0: implement GPIO and GPIO interrupt support

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
17 years ago[ARM] Kirkwood: implement GPIO and GPIO interrupt support
Lennert Buytenhek [Sun, 19 Oct 2008 23:51:04 +0000 (01:51 +0200)]
[ARM] Kirkwood: implement GPIO and GPIO interrupt support

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
17 years ago[ARM] Orion: share GPIO IRQ handling code
Lennert Buytenhek [Sun, 19 Oct 2008 23:51:03 +0000 (01:51 +0200)]
[ARM] Orion: share GPIO IRQ handling code

Split off Orion GPIO IRQ handling code into plat-orion/.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
17 years ago[ARM] Orion: share GPIO handling code
Lennert Buytenhek [Sun, 19 Oct 2008 23:51:03 +0000 (01:51 +0200)]
[ARM] Orion: share GPIO handling code

Split off Orion GPIO handling code into plat-orion/, and add
support for multiple sets of (32) GPIO pins.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
17 years agoALSA: hda - Add quirk for another HP dv7
Takashi Iwai [Sat, 20 Dec 2008 15:57:50 +0000 (16:57 +0100)]
ALSA: hda - Add quirk for another HP dv7

Added the model=hp-m4 quirk for another HP dv7 (103c:30fc) with IDT
92HD71b* codec.

Reference: Novell bnc#461108
https://bugzilla.novell.com/show_bug.cgi?id=461108

Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agoALSA: ASoC - Add missing __devexit annotation to wm8350.c
Takashi Iwai [Sat, 20 Dec 2008 15:50:53 +0000 (16:50 +0100)]
ALSA: ASoC - Add missing __devexit annotation to wm8350.c

Added the missing __devexit annotation to wm8350_codec_remove():
  sound/soc/codecs/wm8350.c:1546: warning: 'wm8350_codec_remove' defined but not used

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agox86: fix resume (S2R) broken by Intel microcode module, on A110L
Dmitry Adamushko [Fri, 19 Dec 2008 23:15:24 +0000 (00:15 +0100)]
x86: fix resume (S2R) broken by Intel microcode module, on A110L

Impact: fix deadlock

This is in response to the following bug report:

Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=12100
Subject         : resume (S2R) broken by Intel microcode module, on A110L
Submitter       : Andreas Mohr <andi@lisas.de>
Date            : 2008-11-25 08:48 (19 days old)
Handled-By      : Dmitry Adamushko <dmitry.adamushko@gmail.com>

[ The deadlock scenario has been discovered by Andreas Mohr ]

I think I might have a logical explanation why the system:

  (http://bugzilla.kernel.org/show_bug.cgi?id=12100)

might hang upon resuming, OTOH it should have likely hanged each and every time.

(1) possible deadlock in microcode_resume_cpu() if either 'if' section is
taken;

(2) now, I don't see it in spec. and can't experimentally verify it (newer
ucodes don't seem to be available for my Core2duo)... but logically-wise, I'd
think that when read upon resuming, the 'microcode revision' (MSR 0x8B) should
be back to its original one (we need to reload ucode anyway so it doesn't seem
logical if a cpu doesn't drop the version)... if so, the comparison with
memcmp() for the full 'struct cpu_signature' is wrong... and that's how one of
the aforementioned 'if' sections might have been triggered - leading to a
deadlock.

Obviously, in my tests I simulated loading/resuming with the ucode of the same
version (just to see that the file is loaded/re-loaded upon resuming) so this
issue has never popped up.

I'd appreciate if someone with an appropriate system might give a try to the
2nd patch (titled "fix a comparison && deadlock...").

In any case, the deadlock situation is a must-have fix.

Reported-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Dmitry Adamushko <dmitry.adamushko@gmail.com>
Tested-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoALSA: ASoc: DaVinci: davinci-evm use dsp_b mode
Troy Kisky [Fri, 19 Dec 2008 20:05:25 +0000 (13:05 -0700)]
ALSA: ASoc: DaVinci: davinci-evm use dsp_b mode

Sense DaVinci does not support true I2S mode and
we don't have to use the hack, use dsp_b mode instead

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ASoC: DaVinci: i2s, evm, pass same value to codec and cpu_dai
Troy Kisky [Fri, 19 Dec 2008 20:05:23 +0000 (13:05 -0700)]
ALSA: ASoC: DaVinci: i2s, evm, pass same value to codec and cpu_dai

Fix the meaning of SND_SOC_DAIFMT_NB_NF to match that
used in the codec.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ASoC: tlv320aic3x add dsp_a
Troy Kisky [Fri, 19 Dec 2008 20:05:22 +0000 (13:05 -0700)]
ALSA: ASoC: tlv320aic3x add dsp_a

Add SND_SOC_DAIFMT_DSP_A mode option.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ASoC: DaVinci: document I2S limitations
Troy Kisky [Fri, 19 Dec 2008 20:05:24 +0000 (13:05 -0700)]
ALSA: ASoC: DaVinci: document I2S limitations

DaVinci does not support true I2S or right justified
mode so not all I2S codecs will work with it when the codec is
master. Document this limitation.

Add dsp_a, dsp_b mode options

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ASoC: DaVinci: davinci-i2s clean up
Troy Kisky [Thu, 18 Dec 2008 19:36:44 +0000 (12:36 -0700)]
ALSA: ASoC: DaVinci: davinci-i2s clean up

Minor, just move a block of code to make next patch clearer.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ASoC: DaVinci: davinci-i2s clean up
Troy Kisky [Thu, 18 Dec 2008 19:36:43 +0000 (12:36 -0700)]
ALSA: ASoC: DaVinci: davinci-i2s clean up

Just at little cleanup of davinci_i2s_set_dai_fmt

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ASoC: DaVinci: davinci-i2s add comments to explain polarity
Troy Kisky [Thu, 18 Dec 2008 19:36:41 +0000 (12:36 -0700)]
ALSA: ASoC: DaVinci: davinci-i2s add comments to explain polarity

Document the current polarity choices.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ASoC: DaVinci: davinvi-evm, make requests explicit
Troy Kisky [Thu, 18 Dec 2008 19:36:40 +0000 (12:36 -0700)]
ALSA: ASoC: DaVinci: davinvi-evm, make requests explicit

Add constants with a value of 0 to show more explicitly
what is being requested.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
17 years agoALSA: ca0106 - disable 44.1kHz capture
Takashi Iwai [Sat, 20 Dec 2008 10:20:55 +0000 (11:20 +0100)]
ALSA: ca0106 - disable 44.1kHz capture

The capture with 44.1kHz on ca0106 seems to cause loud noises on
later playbacks, which doesn't support 44.1kHz.  A simple fix is to
disable 44.1kHz, as the "default" PCM with dsnoop is anyway only with
48kHz.

Reference: Novell bnc#447624
https://bugzilla.novell.com/show_bug.cgi?id=447624

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agoALSA: ca0106 - Add missing card->private_data initialization
Takashi Iwai [Sat, 20 Dec 2008 10:12:51 +0000 (11:12 +0100)]
ALSA: ca0106 - Add missing card->private_data initialization

Added the missing card->private_data initialization that caused obvious
problems at PM.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agoInput: add tsc2007 based touchscreen driver
Kwangwoo Lee [Sat, 20 Dec 2008 09:26:01 +0000 (04:26 -0500)]
Input: add tsc2007 based touchscreen driver

This drive has been tested on ARM9 based SoC - MV86XX.

Signed-off-by: Kwangwoo Lee <kwangwoo.lee@gmail.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: psmouse - add module parameters to control OLPC touchpad delays
Paul Fox [Sat, 20 Dec 2008 08:58:11 +0000 (03:58 -0500)]
Input: psmouse - add module parameters to control OLPC touchpad delays

The HPGK touchpad that is found on the XO driver has historically
exhibitted eratic behaviour in various environments (very dry,
very humid, etc) that can be worked around via some delays. This
patch turns those delays into module parameters to make testing
simpler.

Signed-off-by: Paul Fox <pgf@laptop.org>
Signed-off-by: Deepak Saxena <dsaxena@laptop.org>
Acked-By: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: i8042 - add Gigabyte M912 netbook to noloop exception table
Ozan Çağlayan [Sat, 20 Dec 2008 09:04:51 +0000 (04:04 -0500)]
Input: i8042 - add Gigabyte M912 netbook to noloop exception table

Gigabyte M912's touchpad needs i8042.noloop for working.

Signed-off-by: Ozan Çağlayan <ozan@pardus.org.tr>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: atkbd - Samsung NC10 key repeat fix
Stuart Hopkins [Sat, 20 Dec 2008 09:12:33 +0000 (04:12 -0500)]
Input: atkbd - Samsung NC10 key repeat fix

This patch fixes the key repeat issue with the Fn+F? keys on the new
Samsung NC10 Netbook, so that the keys can be defined and used within
ACPID correctly, otherwise the keys repeat indefinately.

This solves part of http://bugzilla.kernel.org/show_bug.cgi?id=12021

Signed-off-by: Stuart Hopkins <stuart@dodgy-geeza.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop
Rikard Ljungstrand [Sat, 20 Dec 2008 02:59:20 +0000 (21:59 -0500)]
Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop

Add quirk for misbehaving volume buttons on HP Pavilion ZV6100 laptop which
are not sending keyrelease events, as reported by Aaron Pickett.

Signed-off-by: Rikard Ljungstrand <lrikard@student.chalmers.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoMerge commit 'v2.6.28-rc9' into next
Dmitry Torokhov [Sat, 20 Dec 2008 09:54:54 +0000 (04:54 -0500)]
Merge commit 'v2.6.28-rc9' into next

17 years agoALSA: ca0106 - Check ac97 availability at PM
Takashi Iwai [Sat, 20 Dec 2008 08:42:09 +0000 (09:42 +0100)]
ALSA: ca0106 - Check ac97 availability at PM

Check the availability of ac97 at PM suspend/resume callbacks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agox86, bts: memory accounting
Markus Metzger [Fri, 19 Dec 2008 14:17:02 +0000 (15:17 +0100)]
x86, bts: memory accounting

Impact: move the BTS buffer accounting to the mlock bucket

Add alloc_locked_buffer() and free_locked_buffer() functions to mm/mlock.c
to kalloc a buffer and account the locked memory to current.

Account the memory for the BTS buffer to the tracer.

Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86, bts: add fork and exit handling
Markus Metzger [Fri, 19 Dec 2008 14:10:24 +0000 (15:10 +0100)]
x86, bts: add fork and exit handling

Impact: introduce new ptrace facility

Add arch_ptrace_untrace() function that is called when the tracer
detaches (either voluntarily or when the tracing task dies);
ptrace_disable() is only called on a voluntary detach.

Add ptrace_fork() and arch_ptrace_fork(). They are called when a
traced task is forked.

Clear DS and BTS related fields on fork.

Release DS resources and reclaim memory in ptrace_untrace(). This
releases resources already when the tracing task dies. We used to do
that when the traced task dies.

Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: PAT: pfnmap documentation update changes
venkatesh.pallipadi@intel.com [Fri, 19 Dec 2008 21:47:30 +0000 (13:47 -0800)]
x86: PAT: pfnmap documentation update changes

Impact: Documentation only.

Documentation updates as per Randy Dunlap's comments.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: PAT: move track untrack pfnmap stubs to asm-generic
venkatesh.pallipadi@intel.com [Fri, 19 Dec 2008 21:47:29 +0000 (13:47 -0800)]
x86: PAT: move track untrack pfnmap stubs to asm-generic

Impact: Cleanup and branch hints only.

Move the track and untrack pfn stub routines from memory.c to asm-generic.
Also add unlikely to pfnmap related calls in fork and exit path.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: PAT: remove follow_pfnmap_pte in favor of follow_phys
venkatesh.pallipadi@intel.com [Fri, 19 Dec 2008 21:47:28 +0000 (13:47 -0800)]
x86: PAT: remove follow_pfnmap_pte in favor of follow_phys

Impact: Cleanup - removes a new function in favor of a recently modified older one.

Replace follow_pfnmap_pte in pat code with follow_phys. follow_phys lso
returns protection eliminating the need of pte_pgprot call. Using follow_phys
also eliminates the need for pte_pa.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: PAT: modify follow_phys to return phys_addr prot and return value
venkatesh.pallipadi@intel.com [Fri, 19 Dec 2008 21:47:27 +0000 (13:47 -0800)]
x86: PAT: modify follow_phys to return phys_addr prot and return value

Impact: Changes and globalizes an existing static interface.

Follow_phys does similar things as follow_pfnmap_pte. Make a minor change
to follow_phys so that it can be used in place of follow_pfnmap_pte.
Physical address return value with 0 as error return does not work in
follow_phys as the actual physical address 0 mapping may exist in pte.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agox86: PAT: clarify is_linear_pfn_mapping() interface
venkatesh.pallipadi@intel.com [Fri, 19 Dec 2008 21:47:26 +0000 (13:47 -0800)]
x86: PAT: clarify is_linear_pfn_mapping() interface

Impact: Documentation only

Incremental patches to address the review comments from Nick Piggin
for v3 version of x86 PAT pfnmap changes patchset here

http://lkml.indiana.edu/hypermail/linux/kernel/0812.2/01330.html

This patch:

Clarify is_linear_pfn_mapping() and its usage.

It is used by x86 PAT code for performance reasons. Identifying pfnmap
as linear over entire vma helps speedup reserve and free of memtype
for the region.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agofs/9p: change simple_strtol to simple_strtoul
Julia Lawall [Fri, 19 Dec 2008 22:50:22 +0000 (16:50 -0600)]
fs/9p: change simple_strtol to simple_strtoul

Since v9ses->uid is unsigned, it would seem better to use simple_strtoul that
simple_strtol.

A simplified version of the semantic patch that makes this change is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r2@
long e;
position p;
@@

e = simple_strtol@p(...)

@@
position p != r2.p;
type T;
T e;
@@

e =
- simple_strtol@p
+ simple_strtoul
  (...)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Eric Van Hensbergen <ericvh@gmail.com>
17 years ago9p: convert d_iname references to d_name.name
Wu Fengguang [Fri, 19 Dec 2008 22:47:40 +0000 (16:47 -0600)]
9p: convert d_iname references to d_name.name

d_iname is rubbish for long file names.
Use d_name.name in printks instead.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Acked-by: Eric Van Hensbergen <ericvh@gmail.com>
17 years ago9p: Remove potentially bad parameter from function entry debug print.
Duane Griffin [Fri, 19 Dec 2008 22:45:21 +0000 (16:45 -0600)]
9p: Remove potentially bad parameter from function entry debug print.

Signed-off-by: Duane Griffin <duaneg@dghda.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
17 years agox86: ia32_signal: remove unnecessary declaration
Hiroshi Shimamoto [Fri, 19 Dec 2008 22:25:50 +0000 (14:25 -0800)]
x86: ia32_signal: remove unnecessary declaration

Impact: cleanup

No need to declare do_signal().

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: common.c boot_cpu_stack and boot_exception_stacks should be static
Jaswinder Singh [Fri, 19 Dec 2008 17:03:52 +0000 (22:33 +0530)]
x86: common.c boot_cpu_stack and boot_exception_stacks should be static

Impact: cleanup, avoid sparse warnings, reduce kernel size a bit

Fixes these sparse warnings:

 arch/x86/kernel/cpu/common.c:869:6: warning: symbol 'boot_cpu_stack' was not declared. Should it be static?
 arch/x86/kernel/cpu/common.c:910:6: warning: symbol 'boot_exception_stacks' was not declared. Should it be static?

Signed-off-by: Jaswinder Singh <jaswinder@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoSELinux: don't check permissions for kernel mounts
James Morris [Fri, 19 Dec 2008 00:41:10 +0000 (11:41 +1100)]
SELinux: don't check permissions for kernel mounts

Don't bother checking permissions when the kernel performs an
internal mount, as this should always be allowed.

Signed-off-by: James Morris <jmorris@namei.org>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
17 years agosecurity: pass mount flags to security_sb_kern_mount()
James Morris [Thu, 18 Dec 2008 23:44:42 +0000 (10:44 +1100)]
security: pass mount flags to security_sb_kern_mount()

Pass mount flags to security_sb_kern_mount(), so security modules
can determine if a mount operation is being performed by the kernel.

Signed-off-by: James Morris <jmorris@namei.org>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
17 years agoSELinux: correctly detect proc filesystems of the form "proc/foo"
Stephen Smalley [Fri, 5 Dec 2008 14:12:19 +0000 (09:12 -0500)]
SELinux: correctly detect proc filesystems of the form "proc/foo"

Map all of these proc/ filesystem types to "proc" for the policy lookup at
filesystem mount time.

Signed-off-by: James Morris <jmorris@namei.org>
17 years agosparseirq: fix numa_migrate_irq_desc dependency and comments
Yinghai Lu [Fri, 19 Dec 2008 21:48:34 +0000 (13:48 -0800)]
sparseirq: fix numa_migrate_irq_desc dependency and comments

Impact: reduce kconfig variable scope and clean up

Bartlomiej pointed out that the config dependencies and comments are not right.

update it depend to NUMA, and fix some comments

Reported-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoprintk: fix discarding message when recursion_bug
Hiroshi Shimamoto [Fri, 19 Dec 2008 18:23:03 +0000 (10:23 -0800)]
printk: fix discarding message when recursion_bug

Impact: fix truncated recursion bug message printout

When recursion_bug is true, kernel discards original message because printk_buf
contains recursion_bug_msg with NULL terminator. The sizeof(recursion_bug_msg)
makes this, use strlen() to get correct length without NULL terminator.

Reported-by: Toshikazu Nakayama <nakayama.ts@ncos.nec.co.jp>
Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoallow stripping of generated symbols under CONFIG_KALLSYMS_ALL
Jan Beulich [Tue, 16 Dec 2008 11:30:08 +0000 (11:30 +0000)]
allow stripping of generated symbols under CONFIG_KALLSYMS_ALL

Building upon parts of the module stripping patch, this patch
introduces similar stripping for vmlinux when CONFIG_KALLSYMS_ALL=y.
Using CONFIG_KALLSYMS_STRIP_GENERATED reduces the overhead of
CONFIG_KALLSYMS_ALL from 245k/310k to 65k/80k for the (i386/x86-64)
kernels I tested with.

The patch also does away with the need to special case the kallsyms-
internal symbols by making them available even in the first linking
stage.

While it is a generated file, the patch includes the changes to
scripts/genksyms/keywords.c_shipped, as I'm unsure what the procedure
here is.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years agokbuild: strip generated symbols from *.ko
Jan Beulich [Tue, 16 Dec 2008 11:28:14 +0000 (11:28 +0000)]
kbuild: strip generated symbols from *.ko

This patch changes the way __crc_ symbols are being resolved from
using ld to do so to using the assembler, thus allowing these symbols
to be marked local (the linker creates then as global ones) and hence
allow stripping (for modules) or ignoring (for vmlinux) them. While at
this, also strip other generated symbols during module installation.

One potentially debatable point is the handling of the flags passeed
to gcc when translating the intermediate assembly file into an object:
passing $(c_flags) unchanged doesn't work as gcc passes --gdwarf2 to
gas whenever is sees any -g* option, even for -g0, and despite the
fact that the compiler would have already produced all necessary debug
info in the C->assembly translation phase. I took the approach of just
filtering out all -g* options, but an alternative to such negative
filtering might be to have a positive filter which might, in the ideal
case allow just all the -Wa,* options to pass through.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years agokbuild: simplify use of genksyms
Sam Ravnborg [Fri, 19 Dec 2008 20:38:09 +0000 (21:38 +0100)]
kbuild: simplify use of genksyms

Avoid duplicating long list of options in two places

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
17 years agodoc: fix kernel-parameters.txt formatting
Randy Dunlap [Fri, 19 Dec 2008 18:57:32 +0000 (10:57 -0800)]
doc: fix kernel-parameters.txt formatting

Spell out "wrt".  I suspect plenty of people won't know
what that means.

Fix a '}' that should be a ']'.

Reformat long lines into shorter lines.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoBtrfs: Fix compile warning around num_online_cpus() in a min statement
Chris Mason [Fri, 19 Dec 2008 20:43:22 +0000 (15:43 -0500)]
Btrfs: Fix compile warning around num_online_cpus() in a min statement

Signed-off-by: Chris Mason <chris.mason@oracle.com>
17 years agob43: Add key memory dumping
Michael Buesch [Fri, 19 Dec 2008 19:24:30 +0000 (20:24 +0100)]
b43: Add key memory dumping

This adds an option to dump all crypto related memory to
the kernel log.
Obviously, it should not be enabled on productive systems. ;)

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agob43: Suspend MAC while killing the radio
Michael Buesch [Fri, 19 Dec 2008 17:40:00 +0000 (18:40 +0100)]
b43: Suspend MAC while killing the radio

We should suspend the MAC, before we kill the radio. This gives
the MAC a chance to leave any TX/RX state and it avoids races on
the PHY/RADIO registers.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoath5k: correct packet length in tx descriptors
Bob Copeland [Fri, 19 Dec 2008 04:23:05 +0000 (23:23 -0500)]
ath5k: correct packet length in tx descriptors

Packet length calculation (which includes frame check sequence)
should take into account whether we add a pad field or not.
Extract the calculation into a helper and use it in both places.

Changes to desc.c
Changes-licensed-under: ISC

Changes to ath5k.h, base.c
Changes-licensed-under: 3-Clause-BSD

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: implement dynamic power save
Kalle Valo [Thu, 18 Dec 2008 21:35:27 +0000 (23:35 +0200)]
mac80211: implement dynamic power save

This patch implements dynamic power save for mac80211. Basically it
means enabling power save mode after an idle period. Implementing it
dynamically gives a good compromise of low power consumption and low
latency. Some hardware have support for this in firmware, but some
require the host to do it.

The dynamic power save is implemented by adding an timeout to
ieee80211_subif_start_xmit(). The timeout can be enabled from userspace
with Wireless Extensions. For example, the command below enables the
dynamic power save and sets the time timeout to 500 ms:

iwconfig wlan0 power timeout 500m

Power save now only works with devices which handle power save in firmware.
It's also disabled by default and the heuristics when and how to enable is
considered as a policy decision and will be left for the userspace to handle.
In case the firmware has support for this, drivers can disable this feature
with IEEE80211_HW_NO_STACK_DYNAMIC_PS.

Big thanks to Johannes Berg for the help with the design and code.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: track master queue status
Kalle Valo [Thu, 18 Dec 2008 21:35:20 +0000 (23:35 +0200)]
mac80211: track master queue status

This is a preparation for the dynamic power save support. In future there are
two paths to stop the master queues and we need to track this properly to
avoid starting queues incorrectly. Implement this by adding a status
array for each queue.

The original idea and design is from Johannes Berg, I just did
the implementation based on his notes. All the bugs are mine, of course.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: enable IEEE80211_CONF_PS only when associated
Kalle Valo [Thu, 18 Dec 2008 21:35:13 +0000 (23:35 +0200)]
mac80211: enable IEEE80211_CONF_PS only when associated

Also disable power save when disassociated. It makes no sense to have
power save enabled while disassociated.

iwlwifi seems to have this check in the driver, but it's better to do this
in mac80211 instead.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agob43: Fix some MAC locking
Michael Buesch [Thu, 18 Dec 2008 21:13:39 +0000 (22:13 +0100)]
b43: Fix some MAC locking

This fixes some locking w.r.t. the lower MAC (firmware).
It also removes a lot of ancient IRQ-locking that's not needed anymore.
We simply suspend the MAC. That's easier and causes less trouble.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: iwl-tx.c cleanup (remove unused parameter and unused local variable).
Rami Rosen [Thu, 18 Dec 2008 16:04:51 +0000 (18:04 +0200)]
iwlwifi: iwl-tx.c cleanup (remove unused parameter and unused local variable).

This patch removes unused parameter and unused local variable in
methods in iwl-tx.c:

- Remove a parameter (is_unicast) from iwl_tx_cmd_build_basic().

- Remove an unused variable name unicast from iwl_tx_skb().

Signed-off-by: Rami Rosen <ramirose@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoath9k: Fixed RX decryption status reporting
Jouni Malinen [Thu, 18 Dec 2008 12:33:00 +0000 (14:33 +0200)]
ath9k: Fixed RX decryption status reporting

The RX code in ath9k uses sc_keymap to figure out whether a default
key was used. However, the default key entries in sc_keymap were
always set and as such, frames could have been claimed to be decrypted
by hardware when they were not. This can cause problems especially
with TKIP since mac80211 is validating the Michael MIC in the frame
and this will result in MIC failure and potentially TKIP
countermeasures if the frame was not decrypted correctly.

Change key cache slot allocation to mark only the keys that really
have been used in sc_keymap to avoid the issue. The key cache slot
selection routines are now internally avoiding the slots that may be
needed for TKIP group keys.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoath9k: Fix key cache slot selection for splitmic
Jouni Malinen [Thu, 18 Dec 2008 12:31:10 +0000 (14:31 +0200)]
ath9k: Fix key cache slot selection for splitmic

ath_reserve_key_cache_slot() was obviously supposed to return an index
to a free slot, not reserved one. This could have caused problems with
hardware revisions that use splitmic.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoath9k: Protect config() callback with a mutex
Sujith [Thu, 18 Dec 2008 06:10:16 +0000 (11:40 +0530)]
ath9k: Protect config() callback with a mutex

This should fix the timeout issues seen when using wpa_supplicant.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: Print unknown packet type in tasklet_handler
Larry Finger [Wed, 17 Dec 2008 20:26:59 +0000 (14:26 -0600)]
mac80211: Print unknown packet type in tasklet_handler

In stress testing p54usb, the WARN_ON() in ieee80211_tasklet_handler() was
triggered; however, there is no logging of the received value for packet
type. Adding that feature will improve the warning.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agop54usb: bring first generation devices back to life
Christian Lamparter [Wed, 17 Dec 2008 11:04:43 +0000 (12:04 +0100)]
p54usb: bring first generation devices back to life

This patch fixes a serious regression (introduced by:
"p54: fix memory management")
that affected isl3886+net2280 usb devices operation.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Tested-by: Artur Skawina <art.08.09@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoath9k: Key cache allocation for AP mode
Jouni Malinen [Wed, 17 Dec 2008 11:32:17 +0000 (13:32 +0200)]
ath9k: Key cache allocation for AP mode

Enhance allocation of key cache entries to support multiple pairwise
keys to fix AP mode with more than one associated STA.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoath9k: Fix a NULL pointer dereference in ath_rate_get
Jouni Malinen [Wed, 17 Dec 2008 11:30:31 +0000 (13:30 +0200)]
ath9k: Fix a NULL pointer dereference in ath_rate_get

It looks like mac80211 may try to send unicast frames to a STA that
does not have a STA entry. We need to make sure that that is caught in
the rate control code before dereferencing STA data.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: indicate txpower is off in sysfs
Jay Sternberg [Wed, 17 Dec 2008 08:52:34 +0000 (16:52 +0800)]
iwlwifi: indicate txpower is off in sysfs

The patch checks if the radio is disabled before displaying the tx power
level. Previously when the txpower was set off show_tx_power still
returned the prior power level. Now it will indicate the power has been
turned off.

Signed-off-by: Jay Sternberg <jay.e.sternberg@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: use GFP_KERNEL to allocate Rx SKB memory
Zhu Yi [Wed, 17 Dec 2008 08:52:33 +0000 (16:52 +0800)]
iwlwifi: use GFP_KERNEL to allocate Rx SKB memory

Previously we allocate Rx SKB with GFP_ATOMIC flag. This is because we need
to hold a spinlock to protect the two rx_used and rx_free lists operation
in the rxq.

spin_lock();
...
element = rxq->rx_used.next;
element->skb = alloc_skb(..., GFP_ATOMIC);
list_del(element);
list_add_tail(&element->list, &rxq->rx_free);
...
spin_unlock();

After spliting the rx_used delete and rx_free insert into two operations,
we don't require the skb allocation in an atomic context any more (the
function itself is scheduled in a workqueue).

spin_lock();
...
element = rxq->rx_used.next;
list_del(element);
...
spin_unlock();
...
element->skb = alloc_skb(..., GFP_KERNEL);
...
spin_lock()
...
list_add_tail(&element->list, &rxq->rx_free);
...
spin_unlock();

This patch should fix the "iwlagn: Can not allocate SKB buffers" warning
we see recently.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>