14 Dec, 2010

7 commits

  • The buffers used for the selfIDs packets and the AR request and response
    descriptors end up using three pages because dma_alloc_coherent()
    allocates at least one page per call. However, these data structures
    would all fit into 4 KB, so we can save space by using a common buffer
    for them.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • When the isochRx/isochTx bit is clear, we do not need to read the
    corresponding iso interrupt event register.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • Change the header of PHY packets to be sent to include a pseudo
    transaction code. This makes the header consistent with that of
    received PHY packets, and allows at_context_queue_packet() and
    log_ar_at_event() to see the packet type directly instead of having
    to deduce it from the header length or even from the header contents.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • To remove the error information from the controller's queue and to allow
    more posted writes, the driver has to read the failed posted write
    address before clearing the postedWriteErr interrupt bit.

    Signed-off-by: Clemens Ladisch

    (Stefan R:) The spec is somewhat fuzzy about the actual requirements.
    To err on the safe side, let's do these two read accesses.

    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • Make sure that interrupt event clear bit writes are executed before the
    interrupt handler returns.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • Add proper error handling for the context_init() calls.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • Move the AR DMA descriptors out of the buffer pages, and map the buffer
    pages linearly into the kernel's address space. This allows the driver
    to ignore any page boundaries in the DMA data and thus to avoid any
    copying around of packet payloads.

    This fixes the bug where S800 packets that are so big (> 4080 bytes)
    that they can be split over three pages were not handled correctly.

    Due to the changed algorithm, we can now use arbitrarily many buffer
    pages, which improves performance because the controller can more easily
    unload its DMA FIFO.

    Furthermore, using streaming DMA mappings should improve perfomance on
    architectures where coherent DMA mappings are not cacheable. Even on
    other architectures, the caching behaviour should be improved slightly
    because the CPU no longer writes to the buffer pages.

    v2: Detect the last filled buffer page by searching the descriptor's
    residual count value fields in order (like in the old code), instead
    of going backwards through the transfer status fields; it looks as
    if some controllers do not set the latter correctly.

    v3: Fix an old resume bug that would now make the handler run into
    a BUG_ON, and replace that check with more useful error handling.
    Increase the buffer size for better performance with non-TI chips.

    Signed-off-by: Clemens Ladisch

    Maxim Levitsky writes:
    Works almost perfectly. I can still see RCODE_BUSY errors
    sometimes, not very often though. 64K here eliminates these errors
    completely. This is most likely due to nouveau drivers and lowest
    perf level I use to lower card temperature. That increases
    latencies too much I think. Besides that the IO is just perfect.

    Tested-by: Maxim Levitsky
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     

12 Dec, 2010

4 commits


07 Dec, 2010

7 commits

  • Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:
    ocfs2_connection_find() returns pointer to bad structure
    ocfs2: char is not always signed
    Ocfs2: Stop tracking a negative dentry after dentry_iput().
    ocfs2: fix memory leak
    fs/ocfs2/dlm: Use GFP_ATOMIC under spin_lock

    Linus Torvalds
     
  • Commit 0ea129300982 ("arm: return both physical and virtual addresses
    from addruart") took out the test for MMU on/off but didn't switch the
    ldr instructions to no longer be conditionals based on said test.

    Fix that.

    Signed-off-by: Olof Johansson
    Acked-by: Colin Cross
    Signed-off-by: Linus Torvalds

    Olof Johansson
     
  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
    PM / Hibernate: Fix memory corruption related to swap
    PM / Hibernate: Use async I/O when reading compressed hibernation image

    Linus Torvalds
     
  • There is a problem that swap pages allocated before the creation of
    a hibernation image can be released and used for storing the contents
    of different memory pages while the image is being saved. Since the
    kernel stored in the image doesn't know of that, it causes memory
    corruption to occur after resume from hibernation, especially on
    systems with relatively small RAM that need to swap often.

    This issue can be addressed by keeping the GFP_IOFS bits clear
    in gfp_allowed_mask during the entire hibernation, including the
    saving of the image, until the system is finally turned off or
    the hibernation is aborted. Unfortunately, for this purpose
    it's necessary to rework the way in which the hibernate and
    suspend code manipulates gfp_allowed_mask.

    This change is based on an earlier patch from Hugh Dickins.

    Signed-off-by: Rafael J. Wysocki
    Reported-by: Ondrej Zary
    Acked-by: Hugh Dickins
    Reviewed-by: KAMEZAWA Hiroyuki
    Cc: stable@kernel.org

    Rafael J. Wysocki
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 6524/1: GIC irq desciptor bug fix
    ARM: 6523/1: iop: ensure sched_clock() is notrace
    ARM: 6456/1: Fix for building DEBUG with sa11xx_base.c as a module.
    ARM: 6519/1: kuser: Fix incorrect cmpxchg syscall in kuser helpers
    ARM: 6505/1: kprobes: Don't HAVE_KPROBES when CONFIG_THUMB2_KERNEL is selected
    ARM: 6508/1: vexpress: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
    ARM: 6507/1: RealView: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
    ARM: 6504/1: Thumb-2: Fix long-distance conditional branches in head.S for Thumb-2.
    ARM: 6503/1: Thumb-2: Restore sensible zImage header layout for CONFIG_THUMB2_KERNEL
    ARM: 6502/1: Thumb-2: Fix CONFIG_THUMB2_KERNEL breakage in compressed/head.S
    ARM: 6501/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in mm/proc-v7.S
    ARM: 6500/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in kernel/head.S
    ARM: 6499/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in bootp/init.S
    ARM: 6498/1: vfp: Correct data alignment for CONFIG_THUMB2_KERNEL
    ARM: 6497/1: kexec: Correct data alignment for CONFIG_THUMB2_KERNEL
    ARM: 6496/1: GIC: Do not try to register more then NR_IRQS interrupts
    ARM: cns3xxx: Fix build with CONFIG_PCI=y

    Linus Torvalds
     
  • This is a fix for reading LZO compressed image using async I/O.
    Essentially, instead of having just one page into which we keep
    reading blocks from swap, we allocate enough of them to cover the
    largest compressed size and then let block I/O pick them all up. Once
    we have them all (and here we wait), we decompress them, as usual.
    Obviously, the very first block we still pick up synchronously,
    because we need to know the size of the lot before we pick up the
    rest.

    Also fixed the copyright line, which I've forgotten before.

    Signed-off-by: Bojan Smojver
    Signed-off-by: Rafael J. Wysocki

    Bojan Smojver
     

06 Dec, 2010

6 commits


05 Dec, 2010

4 commits

  • Fix kernel warnings caused by the driver name of GSC PS/2 containing '/'.

    The following warnings are observed on a K410 system :

    [ 10.700000] name 'GSC PS/2 keyboard'
    [ 10.732000] ------------[ cut here ]------------
    [ 10.772000] WARNING: at fs/proc/generic.c:323
    [ 10.828000] Modules linked in:
    [ 10.916000]
    [ 10.916000] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
    [ 10.936000] PSW: 00000000000001000000000000001111 Not tainted
    [ 10.992000] r00-03 0004000f 104fe3e0 10201ea0 00000000
    [ 11.060000] r04-07 4fc405c8 00000006 4fc405c8 4fc40694
    [ 11.124000] r08-11 4fc40708 10438aa0 00000001 1043bfc8
    [ 11.184000] r12-15 104ff2a0 104ff2a0 4fc38634 104ff2a0
    [ 11.248000] r16-19 f0001570 10479af0 f000006c 1044fe50
    [ 11.308000] r20-23 00000000 00000028 104cd858 00000000
    [ 11.372000] r24-27 ffffffff 0000000e 1044fe10 1043bbe0
    [ 11.436000] r28-31 0000002b 00000078 4fc40800 0000000d
    [ 11.496000] sr00-03 00000000 00000000 00000000 00000000
    [ 11.560000] sr04-07 00000000 00000000 00000000 00000000
    [ 11.624000]
    [ 11.688000] IASQ: 00000000 00000000 IAOQ: 10201ea0 10201ea4
    [ 11.704000] IIR: 03ffe01f ISR: 00000000 IOR: 0000000d
    [ 11.772000] CPU: 0 CR30: 4fc40000 CR31: f01043b0
    [ 11.836000] ORIG_R28: 4fc40940
    [ 11.904000] IAOQ[0]: __xlate_proc_name+0x90/0xd0
    [ 11.940000] IAOQ[1]: __xlate_proc_name+0x94/0xd0
    [ 11.996000] RP(r2): __xlate_proc_name+0x90/0xd0
    [ 12.052000] Backtrace:
    [ 12.108000] [] vsnprintf+0x290/0x4f4
    [ 12.136000]
    [ 12.188000] ---[ end trace 91bf6ece17e322dd ]---
    [ 12.208000] serio: GSC PS/2 keyboard port at 0x0001c000 irq 19 @ 10:12:7
    [ 12.264000] name 'GSC PS/2 mouse'
    [ 12.344000] ------------[ cut here ]------------
    [ 12.384000] WARNING: at fs/proc/generic.c:323
    [ 12.436000] Modules linked in:
    [ 12.524000]
    [ 12.528000] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
    [ 12.544000] PSW: 00000000000001000000000000001111 Tainted: G W
    [ 12.600000] r00-03 0004000f 104fe3e0 10201ea0 00000000
    [ 12.680000] r04-07 4fc405c8 00000006 4fc405c8 4fc40694
    [ 12.740000] r08-11 4fc40708 10438aa0 00000001 1043bfc8
    [ 12.804000] r12-15 104ff2a0 104ff2a0 4fc38634 104ff2a0
    [ 12.868000] r16-19 f0001570 10479af0 f000006c 1044fe50
    [ 12.928000] r20-23 00000000 00000025 104cd858 00000000
    [ 12.992000] r24-27 ffffffff 0000000e 1044fe10 1043bbe0
    [ 13.056000] r28-31 00000028 00000078 4fc40800 0000000d
    [ 13.116000] sr00-03 00000000 00000000 00000000 00000000
    [ 13.180000] sr04-07 00000000 00000000 00000000 00000000
    [ 13.244000]
    [ 13.308000] IASQ: 00000000 00000000 IAOQ: 10201ea0 10201ea4
    [ 13.324000] IIR: 03ffe01f ISR: 00000000 IOR: 0000000d
    [ 13.392000] CPU: 0 CR30: 4fc40000 CR31: f01043b0
    [ 13.456000] ORIG_R28: 4fc40940
    [ 13.524000] IAOQ[0]: __xlate_proc_name+0x90/0xd0
    [ 13.560000] IAOQ[1]: __xlate_proc_name+0x94/0xd0
    [ 13.616000] RP(r2): __xlate_proc_name+0x90/0xd0
    [ 13.672000] Backtrace:
    [ 13.728000] [] vsnprintf+0x290/0x4f4
    [ 13.756000]
    [ 13.808000] ---[ end trace 91bf6ece17e322de ]---
    [ 13.828000] serio: GSC PS/2 mouse port at 0x00020100 irq 19 @ 10:12:8

    Signed-off-by: Guy Martin
    Acked-by: Helge Deller
    Signed-off-by: Kyle McMartin

    Guy Martin
     
  • K class aka KittyHawk don't have LED support on their LCD. Installing
    HP-UX confirmed this. The current led_wq fills the LCD with black
    characters each time it runs.

    The patch prevents the led_wq workqueue and its proc entry to be
    created for KittyHawk machines.

    It also increase min_cmd_delay as currently, one character out of two
    is lost when a string is sent to the LCD.

    Signed-off-by: Guy Martin
    Signed-off-by: Kyle McMartin

    Guy Martin
     
  • The generic conversion eliminates the spurious no_ack and no_end
    routines, converts all the cascaded handlers to handle_simple_irq() and
    makes iosapic use a modified handle_percpu_irq() to become the same as
    the CPU irq's. This isn't an essential change, but it eliminates the
    mask/unmask overhead of handle_level_irq().

    Signed-off-by: James Bottomley
    Tested-by: Helge Deller
    Signed-off-by: Kyle McMartin

    James Bottomley
     
  • The essential problem we're currently having is that dino (and gsc) is a
    cascaded CPU interrupt. Under the old __do_IRQ() handler, our CPU
    interrupts basically did an ack followed by an end. In the new scheme,
    we replaced them with level handlers which do a mask, an ack and then an
    unmask (but no end). Instead, with the renaming of end to eoi, we
    actually want to call the percpu flow handlers, because they actually
    have all the characteristics we want.

    This patch does the conversion and gets my C360 booting again.

    Signed-off-by: James Bottomley
    Signed-off-by: Kyle McMartin

    James Bottomley
     

04 Dec, 2010

11 commits

  • Include sched.h to ensure sched_clock() has the notrace
    annotation, and mark any functions it calls as notrace
    too.
    Include sched.h to ensure sched_clock() has the notrace
    annotation, and mark any functions it calls as notrace
    too.

    Acked-by: Dan Williams
    Signed-off-by: Rabin Vincent
    Signed-off-by: Russell King

    Rabin Vincent
     
  • This patch fixes a compilation issue when compiling PCMCIA SA1100
    support as a module with PCMCIA_DEBUG enabled. The symbol
    soc_pcmcia_debug was not beeing exported.
    ARM: pcmcia: Fix for building DEBUG with sa11xx_base.c as a module.

    This patch fixes a compilation issue when compiling PCMCIA SA1100
    support as a module with PCMCIA_DEBUG enabled. The symbol
    soc_pcmcia_debug was not beeing exported.

    Cc:
    Signed-off-by: Marcelo Roberto Jimenez
    Signed-off-by: Russell King

    Marcelo Roberto Jimenez
     
  • The existing code invokes the syscall with rubbish in r7,
    due to what looks like an incorrect literal load idiom.

    Reviewed-by: Will Deacon
    Signed-off-by: Dave Martin
    Acked-by: Catalin Marinas
    Signed-off-by: Russell King

    Dave Martin
     
  • Commit f7cb1933621bce66a77f690776a16fe3ebbc4d58 ("SLUB: Pass active
    and inactive redzone flags instead of boolean to debug functions")
    missed two instances of check_object(). This caused a lot of warnings
    during 'slabinfo -v' finally leading to a crash:

    BUG ext4_xattr: Freepointer corrupt
    ...
    BUG buffer_head: Freepointer corrupt
    ...
    BUG ext4_alloc_context: Freepointer corrupt
    ...
    ...
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [] file_sb_list_del+0x1c/0x35
    PGD 79d78067 PUD 79e67067 PMD 0
    Oops: 0002 [#1] SMP
    last sysfs file: /sys/kernel/slab/:t-0000192/validate

    This patch fixes the problem by converting the two missed instances.

    Acked-by: Christoph Lameter
    Signed-off-by: Tero Roponen
    Signed-off-by: Pekka Enberg

    Tero Roponen
     
  • * '2.6.37-rc4-pvhvm-fixes' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm:
    xen: unplug the emulated devices at resume time
    xen: fix save/restore for PV on HVM guests with pirq remapping
    xen: resume the pv console for hvm guests too
    xen: fix MSI setup and teardown for PV on HVM guests
    xen: use PHYSDEVOP_get_free_pirq to implement find_unbound_pirq

    Linus Torvalds
     
  • …/scm/linux/kernel/git/jeremy/xen

    * 'upstream/core' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen:
    xen: allocate irq descs on any NUMA node
    xen: prevent crashes with non-HIGHMEM 32-bit kernels with largeish memory
    xen: use default_idle
    xen: clean up "extra" memory handling some more

    * 'upstream/bugfix' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen:
    xen: x86/32: perform initial startup on initial_page_table
    xen: don't bother to stop other cpus on shutdown/reboot

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ASoC: omap: N810: Don't select CONFIG_OMAP_MUX but make it as dependency
    ALSA: hda: Use "alienware" model quirk for another SSID
    ASoC: WM8731: Fix incorrect mask for bypass path disable
    s6105-ipcam: fix compilation
    s6000-pcm: fix compilation
    s6000-i2s: fix compilation
    ASoC: Fix missing spin_unlock_irqrestore
    ALSA: Fix SNDCTL_DSP_RESET ioctl for OSS emulation
    ASoC: Add missing dev_set_drvdata in p1022_ds_probe
    ASoC: Add missing dev_set_drvdata in mpc8610_hpcd_probe
    ASoC: Remove unneeded !! operations while checking return value of nuc900_checkready
    ASoC: Fix compile error for nuc900-pcm.c
    ASoC: Fix prototype for nuc900_ac97_probe and nuc900_ac97_remove
    ASoC: Fix compile error for nuc900-ac97.c
    ALSA: hda: Use BIOS auto-parsing instead of existing model quirk for MEDION MD2

    Linus Torvalds
     
  • * 'linux-next' of git://git.infradead.org/ubi-2.6:
    UBI: fix corrupted PEB detection for NOR flash

    Linus Torvalds
     
  • * 'sh-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
    sh: se/7724: Remove FSI/B of GPIO init code
    sh: se/7724: Update clock framework of FSI clock to non-legacy
    sh: Assume new page cache pages have dirty dcache lines.
    sh: boards: mach-se: use IS_ERR() instead of NULL check
    sh: Add div6_reparent_clks to clock framework for FSI
    dma: shdma: add a MODULE_ALIAS() to allow module autoloading

    Linus Torvalds
     
  • …l/git/lethal/fbdev-2.6

    * 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6:
    lxfb: Maintain video processor palette through suspend/resume
    video: da8xx: Register IRQ as last thing in driver probing.
    framebuffer: fix fbcmap.c kernel-doc warning

    Linus Torvalds
     
  • Implement asm/syscall.h for the MN10300 arch.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     

03 Dec, 2010

1 commit

  • My new shiny code for corrupted PEB detection has NOR specific bug.
    We tread PEB as corrupted and preserve it, if

    1. EC header is OK.
    2. VID header is corrupted.
    3. data area is not "all 0xFFs"

    In case of NOR we have 'nor_erase_prepare()' quirk, which invalidates
    the headers before erasing the PEB. And we invalidate first the VID
    header, and then the EC header. So if a power cut happens after we have
    invalidated the VID header, but before we have invalidated the EC
    header, we end up with a PEB which satisfies the above 3 conditions,
    and the scanning code will treat it as corrupted, and will print
    scary warnings, wrongly.

    This patch fixes the issue by firt invalidating the EC header, then
    invalidating the VID header. In case of power cut inbetween, we still
    just lose the EC header, and UBI can deal with this situation gracefully.

    Thanks to Anatolij Gustschin for tracking this down.

    Signed-off-by: Artem Bityutskiy
    Reported-by: Anatolij Gustschin
    Tested-by: Anatolij Gustschin

    Artem Bityutskiy