06 Mar, 2007

8 commits

  • Added LFE support on Dell M90 laptop.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • CONFIG_PARAVIRT broke old glibc bootup: it silently turned off the
    selectability of CONFIG_COMPAT_VDSO and thus rendered distro kernels
    unbootable on old-style VDSO glibc setups.

    the proper solution is to keep COMPAT_VDSO available - if a hypervisor
    needs any modification of that concept then we'll judge those changes in
    full context, once those changes are submitted.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • * 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight:
    backlight: Allow enable/disable of fb backlights, fixing regressions
    backlight: Fix nvidia backlight initial brightness

    Linus Torvalds
     
  • there's a new NMI watchdog related problem: KVM crashes on certain
    bzImages because ... we enable the NMI watchdog by default (even if the
    user does not ask for it) , and no other OS on this planet does that so
    KVM doesnt have emulation for that yet. So KVM injects a #GP, which
    crashes the Linux guest:

    general protection fault: 0000 [#1]
    PREEMPT SMP
    Modules linked in:
    CPU: 0
    EIP: 0060:[] Not tainted VLI
    EFLAGS: 00000246 (2.6.20-rc5-rt0 #3)
    EIP is at setup_apic_nmi_watchdog+0x26d/0x3d3

    and no, i did /not/ request an nmi_watchdog on the boot command line!

    Solution: turn off that darn thing! It's a debug tool, not a 'make life
    harder' tool!!

    with this patch the KVM guest boots up just fine.

    And with this my laptop (Lenovo T60) also stopped its sporadic hard
    hanging (sometimes in acpi_init(), sometimes later during bootup,
    sometimes much later during actual use) as well. It hung with both
    nmi_watchdog=1 and nmi_watchdog=2, so it's generally the fact of NMI
    injection that is causing problems, not the NMI watchdog variant, nor
    any particular bootup code.

    [ NMI breaks on some systems, esp in combination with SMM -Arjan ]

    Signed-off-by: Ingo Molnar
    Acked-by: Arjan van de Ven
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • do not use default=y for CONFIG_VMI (we do not do that for any driver or
    special-hardware feature): the overwhelming majority of Linux users does
    not need it, and interested users and distributions can enable it
    as-needed.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Clarify the description of the CONFIG_VMI option: describe the reality
    that VMI is a VMWare-only interface for now. Once that changes and
    another hypervisor adopts the VMI ABI we can change the text.

    As can be seen from the Xen paravirtualization patches submitted to lkml
    the Xen project has chosen its own, non-VMI interface between Xen and
    the para-Linux - so remove Xen from the description.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Temove the mistaken turning on of NO_IDLE_HZ on x86+PARAVIRT kernels.

    It's an obsolete, limited form of dynticks.

    Signed-off-by: Ingo Molnar
    Acked-by: Thomas Gleixner
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • CT based mach64 cards were reported to hang on sparc64 boxes when
    compiled with gcc-4.1.x and later.

    Looking at this piece of code, it's no surprise. A critical
    delay was implemented as an empty for() loop, and gcc 4.0.x
    and previous did not optimize it away, so we did get a delay.

    But gcc-4.1.x and later can optimize it away, and we get crashes.

    Use a real udelay() to fix this. Fix verified on SunBlade100.

    Signed-off-by: David S. Miller
    Signed-off-by: Linus Torvalds

    David Miller
     

05 Mar, 2007

32 commits

  • CC arch/i386/kernel/vmi.o
    /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c: In function 'vmi_map_pt_hook':
    /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: 'KM_PTE0' undeclared (first use in this function)
    /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: (Each undeclared identifier is reported only once
    /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: for each function it appears in.)
    /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: 'KM_PTE1' undeclared (first use in this function)
    make[2]: *** [arch/i386/kernel/vmi.o] Error 1

    Signed-off-by: Adrian Bunk
    Acked-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Replacing use of UTS_RELEASE with utsname()->release avoids that the
    usb-storage driver is recompiled each time the kernel version changes.

    Signed-off-by: Sam Ravnborg
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sam Ravnborg
     
  • Add some documentation for the new and very useful io-accounting feature.
    It's being added to Documentation/filesystems/proc.txt

    Signed-off-by: Roland Kletzing
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roland Kletzing
     
  • Fix the following compile error:

    MODPOST 327 modules
    WARNING: "aty_st_lcd" [drivers/video/aty/atyfb.ko] undefined!
    WARNING: "aty_ld_lcd" [drivers/video/aty/atyfb.ko] undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Antonino A. Daplas
     
  • "drivers/char/epca.c:2741: warning: 'get_termio' defined but not used"

    Signed-off-by: Michal Piotrowski
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Piotrowski
     
  • Doing something like this on a two cpu system

    # echo 0 > /sys/devices/system/cpu/cpu0/online
    # echo 1 > /sys/devices/system/cpu/cpu0/online
    # echo 0 > /sys/devices/system/cpu/cpu1/online

    will give me this:

    =======================================================
    [ INFO: possible circular locking dependency detected ]
    2.6.21-rc2-g562aa1d4-dirty #7
    -------------------------------------------------------
    bash/1282 is trying to acquire lock:
    (&cpu_base->lock_key){.+..}, at: [] hrtimer_cpu_notify+0xc6/0x240

    but task is already holding lock:
    (&cpu_base->lock_key#2){.+..}, at: [] hrtimer_cpu_notify+0xbc/0x240

    which lock already depends on the new lock.

    This happens because we have the following code in kernel/hrtimer.c:

    migrate_hrtimers(int cpu)
    [...]
    old_base = &per_cpu(hrtimer_bases, cpu);
    new_base = &get_cpu_var(hrtimer_bases);
    [...]
    spin_lock(&new_base->lock);
    spin_lock(&old_base->lock);

    Which means the spinlocks are taken in an order which depends on which cpu
    gets shut down from which other cpu. Therefore lockdep complains that there
    might be an ABBA deadlock. Since migrate_hrtimers() gets only called on
    cpu hotplug it's safe to assume that it isn't executed concurrently on a

    The same problem exists in kernel/timer.c: migrate_timers().

    As pointed out by Christian Borntraeger one possible solution to avoid
    the locking order complaints would be to make sure that the locks are
    always taken in the same order. E.g. by taking the lock of the cpu with
    the lower number first.

    To achieve this we introduce two new spinlock functions double_spin_lock
    and double_spin_unlock which lock or unlock two locks in a given order.

    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Roman Zippel
    Cc: John Stultz
    Cc: Christian Borntraeger
    Cc: Martin Schwidefsky
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • This patch resolves the issue found here:
    http://bugme.osdl.org/show_bug.cgi?id=7426

    The basic summary is:
    Currently we register most of i386/x86_64 clocksources at module_init
    time. Then we enable clocksource selection at late_initcall time. This
    causes some problems for drivers that use gettimeofday for init
    calibration routines (specifically the es1968 driver in this case),
    where durring module_init, the only clocksource available is the low-res
    jiffies clocksource. This may cause slight calibration errors, due to
    the small sampling time used.

    It should be noted that drivers that require fine grained time may not
    function on architectures that do not have better then jiffies
    resolution timekeeping (there are a few). However, this does not
    discount the reasonable need for such fine-grained timekeeping at init
    time.

    Thus the solution here is to register clocksources earlier (ideally when
    the hardware is being initialized), and then we enable clocksource
    selection at fs_initcall (before device_initcall).

    This patch should probably get some testing time in -mm, since
    clocksource selection is one of the most important issues for correct
    timekeeping, and I've only been able to test this on a few of my own
    boxes.

    Signed-off-by: John Stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    john stultz
     
  • Removes unused 'flags' variable from setup_IO_APIC_irq().

    Signed-off-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • ipmi_si_intf tries to access default ports, if no device could be found
    elsewhere. On PPC we have a function to check, if these legacy IO ports
    are accessible. This patch adds a check for these ports on PPC. This
    patch fixes a breakage of IPMI module on PPC machines without a BMC.

    Signed-off-by: Christian Krafft
    Acked-by: Michael Ellerman
    Signed-off-by: Corey Minyard
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Krafft
     
  • - In fact we don't have to fail if AOP_TRUNCATED_PAGE was returned from
    prepare_write or commit_write. It is beter to retry attempt where it
    is possible.

    - Rearange ecryptfs_get_lower_page() error handling logic, make it more clean.

    Signed-off-by: Dmitriy Monakhov
    Acked-by: Michael Halcrow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitriy Monakhov
     
  • - Currently after path_lookup succeed we dot't have any guarantie what
    it is DIR. This must be explicitly demanded.
    - path_lookup can't return negative dentry, So inode check is useless.

    Signed-off-by: Dmitriy Monakhov
    Acked-by: Michael Halcrow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitriy Monakhov
     
  • Testing NMI watchdog ... CPU#0: NMI appears to be stuck (54->54)!
    CPU#1: NMI appears to be stuck (0->0)!

    Keep the PIT/HPET alive when nmi_watchdog = 1 is given on the command
    line.

    Signed-off-by: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Recent patch for raid6 reshape had a change missing that showed up in
    subsequent review.

    Many places in the raid5 code used "conf->raid_disks-1" to mean "number of
    data disks". With raid6 that had to be changed to "conf->raid_disk -
    conf->max_degraded" or similar. One place was missed.

    This bug means that if a raid6 reshape were aborted in the middle the
    recorded position would be wrong. On restart it would either fail (as the
    position wasn't on an appropriate boundary) or would leave a section of the
    array unreshaped, causing data corruption.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Critical fixes for SMP.

    Fix a couple functions which needed to be __devinit and fix a bogus parameter
    to AP startup that just so happened to work because the low virtual mapping of
    memory was still established.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Use para_fill instead of directly setting the APIC ops to the result of the
    vmi_get_function call - this allows one to implement a VMI ROM without
    implementing APIC functions, just using the native APIC functions.

    While doing this, I realized that there is a lot more cleanup that should have
    been done. Basically, we should never assume that the ROM implements a
    specific set of functions, and always allow fallback to the native
    implementation.

    This is critical for future compatibility.

    Signed-off-by: Anthony Liguori
    Signed-off-by: Zachary Amsden

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • More goo from hrtimers integration. We do compile and run properly with NO_HZ
    enabled. There was a period when we didn't because of a missing export, but
    that was since fixed.

    And with the clocksource code now firmly in place, we can get rid of code that
    fixes up the wallclock, since this is done in the common infrastructure. This
    actually fixes a timer bug as well, that was caused by do_settimeofday no
    longer being callable with interrupts disabled due to the use of
    on_each_cpu().

    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • The time_init_hook in paravirt-ops no longer functions in the correct manner
    after the integration of the hrtimers code. The problem is that now the call
    path for time initialization is:

    time_init :
    late_time_init = hpet_time_init;

    late_time_init -> hpet_time_init:
    setup_pit_timer (BAD)
    do_time_init --> (via paravirt.h)
    time_init_hook --> (via arch_hooks.h)
    time_init_hook (in SUBARCH/setup.c)

    If this isn't confusing enough, the paravirt case goes through an indirect
    function pointer in the paravirt-ops table. The problem is, by the time the
    paravirt hook is called, the pit timer is already enabled.

    But paravirt guests have their own timer, and don't want to use the PIT.
    Rather than intensify the struggle for power going on here, just make it all
    nice and simple and just unconditionally do all timer setup in the
    late_time_init hook. This also has the advantage of enabling timers in the
    same place in all code paths, so everyone has the same bugs and we don't have
    outliers who break other code because they turn on timer too early or too
    late.

    So the paravirt-ops time init function is now by default hpet_time_init, which
    is the time init function used for native hardware. Paravirt guests have the
    chance to override this when they setup the paravirt-ops table, and should
    need no change.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Not respecting udelay causes problems with any virtual hardware that is passed
    through to real hardware. This can be noticed by any device that interacts
    with the real world in real time - like AP startup, which takes real time. Or
    keyboard LEDs, which should blink in real-time. Or floppy drives, but only
    when passed through to a real floppy controller on OSes which can't
    sufficiently buffer the floppy commands to emulate a zero latency floppy. Or
    IDE drives, when connecting to a physical CDROM.

    This was mostly a hack to get the kernel to boot faster, but it introduced a
    number of misvirtualization bugs, and Alan and Pavel argued pretty strongly
    against it. We were the only client, and now want to clean up this cruft.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Provide a PT map hook for HIGHPTE kernels to designate where they are mapping
    page tables. This information is required so the physical address of PTE
    updates can be determined; otherwise, the mm layer would have to carry the
    physical address all the way to each PTE modification callsite, which is even
    more hideous that the macros required to provide the proper hooks.

    So lets not mess up arch neutral code to achieve this, but keep the horror in
    an #ifdef HIGHPTE in include/asm-i386/pgtable.h. I had to use macros here
    because some types are not yet defined in all the include paths for this
    header.

    This patch is absolutely required for HIGHPTE kernels to operate properly with
    VMI.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • In order to share the common code in tsc.c which does CPU Khz calibration, we
    need to make an accurate value of CPU speed available to the tsc.c code. This
    value loses a lot of precision in a VM because of the timing differences with
    real hardware, but we need it to be as precise as possible so the guest can
    make accurate time calculations with the cycle counters.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • The custom_sched_clock hook is broken. The result from sched_clock needs to
    be in nanoseconds, not in CPU cycles. The TSC is insufficient for this
    purpose, because TSC is poorly defined in a virtual environment, and mostly
    represents real world time instead of scheduled process time (which can be
    interrupted without notice when a virtual machine is descheduled).

    To make the scheduler consistent, we must expose a different nature of time,
    that is scheduled time. So deprecate this custom_sched_clock hack and turn it
    into a paravirt-op, as it should have been all along. This allows the tsc.c
    code which converts cycles to nanoseconds to be shared by all paravirt-ops
    backends.

    It is unfortunate to add a new paravirt-op, but this is a very distinct
    abstraction which is clearly different for all virtual machine
    implementations, and it gets rid of an ugly indirect function which I
    ashamedly admit I hacked in to try to get this to work earlier, and then even
    got in the wrong units.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Critical bugfixes for the VMI-Timer code.

    1) Do not setup a one shot alarm if we are keeping the periodic alarm
    armed. Additionally, since the periodic alarm can be run at a lower rate
    than HZ, let's fixup the guard to the no-idle-hz mode appropriately. This
    fixes the bug where the no-idle-hz mode might have a higher interrupt rate
    than the non-idle case.

    2) The interrupt handler can no longer adjust xtime due to nested lock
    acquisition. Drop this. We don't need to check for wallclock time at
    every tick, it can be done in userspace instead.

    3) Add a bypass to disable noidle operation. This is useful as a last
    minute workaround, or testing measure.

    4) The code to skip the IO_APIC timer testing (no_timer_check) should be
    conditional on IO_APIC, not SMP, since UP kernels can have this configured
    in as well.

    Signed-off-by: Dan Hecht
    Signed-off-by: Zachary Amsden
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Currently we do not check for vma flags if sys_move_pages is called to move
    individual pages. If sys_migrate_pages is called to move pages then we
    check for vm_flags that indicate a non migratable vma but that still
    includes VM_LOCKED and we can migrate mlocked pages.

    Extract the vma_migratable check from mm/mempolicy.c, fix it and put it
    into migrate.h so that is can be used from both locations.

    Problem was spotted by Lee Schermerhorn

    Signed-off-by: Christoph Lameter
    Signed-off-by: Lee Schermerhorn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • Currently sm501fb_crtsrc_store() won't allow the routing to be changed via
    echos from userspace in to the sysfs file. The reason for this is that the
    strnicmp() for both heads uses a sizeof() for the string length, which ends
    up being strlen() + 1 (\0 in the normal case, but the echo gives a newline,
    which is where the issue occurs), this then causes a mismatch and
    subsequently bails with the -EINVAL.

    In addition to this, the hardcoded lengths were then used for the store
    length that was returned, which ended up being erroneous and resulting in a
    write error. There's also no point in returning anything but the full
    length since it will -EINVAL out on a mismatch well before then anyways.

    sizeof("string") is great for making sure you have space in your buffer,
    but rather less so for string comparisons :-)

    Signed-off-by: Paul Mundt
    Acked-by: Ben Dooks
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Mundt
     
  • Remove the SMT-nice feature which idles sibling cpus on SMT cpus to
    facilitiate nice working properly where cpu power is shared. The idling of
    cpus in the presence of runnable tasks is considered too fragile, easy to
    break with outside code, and the complexity of managing this system if an
    architecture comes along with many logical cores sharing cpu power will be
    unworkable.

    Remove the associated per_cpu_gain variable in sched_domains used only by
    this code.

    Also:

    The reason is that with dynticks enabled, this code breaks without yet
    further tweaks so dynticks brought on the rapid demise of this code. So
    either we tweak this code or kill it off entirely. It was Ingo's preference
    to kill it off. Either way this needs to happen for 2.6.21 since dynticks
    has gone in.

    Signed-off-by: Con Kolivas
    Acked-by: Ingo Molnar
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Con Kolivas
     
  • shmem's super_operations were missed from the recent const-ification;
    and simple_fill_super()'s, which can share with get_sb_pseudo()'s.

    Signed-off-by: Hugh Dickins
    Acked-by: Josef 'Jeff' Sipek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Since wext is being replaced as fast as we can (it'll probably stick around
    for legacy drivers though) and the wext/netlink stuff was never really
    used, this schedules it for removal.

    The removal schedule is tight but there are no users of the code, the main
    user of the wext user interface are the wireless-tools, they only have an
    alpha version using the netlink interface and even that is incomplete.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Berg
     
  • Remove remaining references to saved registers now that
    uart_handle_sysrq_char() does not want them.

    Signed-off-by: Maciej W. Rozycki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maciej W. Rozycki
     
  • The gpio_keys driver is wrongly ARM-specific; it can't build on
    other platforms with GPIO suport. This fixes that problem.

    Signed-off-by: David Brownell
    Cc: Dmitry Torokhov
    Cc: pHilipp Zabel
    Cc: Haavard Skinnemoen
    Cc: Russell King
    Cc: Richard Purdie
    Cc: Ben Nizette
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • Most drivers using GPIOs already know they are running on a system that
    supports the generic GPIO calls, because of other platform dependencies.
    But the generic GPIO-based LED and input button drivers can't know that.

    So this patch adds a Kconfig hook, GENERIC_GPIO, to mark the platforms
    where will do the right thing. Currently that's a bunch of
    ARMs, and AVR32; more are on the way.

    It also fixes a dependency bug for the gpio button input driver; it was
    wrong to start with, now it covers all platforms with GENERIC_GPIO.

    Signed-off-by: David Brownell
    Acked-by: Richard Purdie
    Cc: Arnaud Patard
    Cc:
    Cc:
    Cc: pHilipp Zabel
    Cc: Haavard Skinnemoen
    Cc: Dmitry Torokhov
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • Fix soft lockup with iSeries viocd driver, caused by eventually calling
    end_that_request_first() with nr_bytes 0.

    Some versions of hald do an SG_IO ioctl on the viocd device which becomes a
    request with hard_nr_sectors and hard_cur_sectors set to zero. Passing zero
    as the number of sectors to end_request() (which calls
    end_that_request_first()) causes an infinite loop when the bio is being freed.

    This patch makes sure that the zero is never passed. It only requires some
    number larger the the request size the terminate the loop.

    The lockup is triggered by hald, interrogating the device.

    Signed-off-by: Tony Breeds
    Signed-off-by: Jens Axboe
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tony Breeds
     
  • The writing on the wall seem to be that the parport stack is orphaned,
    rather than maintained by four folk ... and having a webpage that says the
    latest patches are based on a 2.5 kernel.

    Signed-off-by: David Brownell
    Acked-by: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell