22 Dec, 2011

8 commits

  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Paul Mundt
    Cc: Paul Gortmaker
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Paul Mundt
    Cc: Magnus Damm
    Cc: Paul Gortmaker
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Paul Gortmaker
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Timur Tabi
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Prarit Bhargava
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • This moves the 'memory sysdev_class' over to a regular 'memory' subsystem
    and converts the devices to regular devices. The sysdev drivers are
    implemented as subsystem interfaces now.

    After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • This moves the 'cpu sysdev_class' over to a regular 'cpu' subsystem
    and converts the devices to regular devices. The sysdev drivers are
    implemented as subsystem interfaces now.

    After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Userspace relies on events and generic sysfs subsystem infrastructure
    from sysdev devices, which are made available with this conversion.

    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Arnd Bergmann
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: Chris Metcalf
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Borislav Petkov
    Cc: Tigran Aivazian
    Cc: Len Brown
    Cc: Zhang Rui
    Cc: Dave Jones
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Andrew Morton
    Cc: Arjan van de Ven
    Cc: "Rafael J. Wysocki"
    Cc: "Srivatsa S. Bhat"
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

16 Dec, 2011

1 commit


15 Dec, 2011

7 commits

  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Jeremy Fitzhardinge
    Cc: Konrad Rzeszutek Wilk
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: John Stultz
    Cc: Thomas Gleixner
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Matthew Garrett
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Doug Thompson
    Cc: Paul Gortmaker
    Cc: Lucas De Marchi
    Cc: Borislav Petkov
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Cc: Thomas Gleixner
    Cc: Paul Gortmaker
    Cc: Arnd Bergmann
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • All sysdev classes and sysdev devices will converted to regular devices
    and buses to properly hook userspace into the event processing.

    There is no interesting difference between a 'sysdev' and 'device' which
    would justify to roll an entire own subsystem with different userspace
    export semantics. Userspace relies on events and generic sysfs subsystem
    infrastructure from sysdev devices, which are currently not properly
    available.

    Every converted sysdev class will create a regular device with the class
    name in /sys/devices/system and all registered devices will becom a children
    of theses devices.

    For compatibility reasons, the sysdev class-wide attributes are created
    at this parent device. (Do not copy that logic for anything new, subsystem-
    wide properties belong to the subsystem, not to some fake parent device
    created in /sys/devices.)

    Every sysdev driver is implemented as a simple subsystem interface now,
    and no longer called a driver.

    After all sysdev classes are ported to regular driver core entities, the
    sysdev implementation will be entirely removed from the kernel.

    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • It turns out that some memory allocators use kobjects, which use krefs,
    and kref.h was wanting to figure out the address of kfree(), which ended
    up in a loop.

    kfree was only being needed for a warning to tell the caller that they
    were doing something stupid. Now we just move that warning into the
    comments for the functions, which results in a bit more fun as everyone
    enjoys digging for people to mock at times of boredom.

    So, remove the dependancy of slab.h on kref.h, and fix up the other
    include file as well (we really only need bug.h and atomic.h, not
    types.h).

    Reported-by: Stephen Rothwell
    Cc: Peter Zijlstra
    Cc: Alexey Dobriyan
    Cc: Eric Dumazet
    Cc: Ingo Molnar
    Cc: Oliver Neukum
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

14 Dec, 2011

3 commits

  • Commit 1b0b3b9980e ("kref: fix CPU ordering with respect to krefs")
    wrongly adds memory barriers to kref.

    It states:

    some atomic operations are only atomic, not ordered. Thus a CPU is allowed
    to reorder memory references to an object to before the reference is
    obtained. This fixes it.

    While true, it fails to show why this is a problem. I say it is not a
    problem because if there is a race with kref_put() such that we could
    end up referencing a free'd object without this memory barrier, we
    would still have that race with the memory barrier.

    The kref_put() in question could complete (and free the object) before
    the atomic_inc() and we'd still be up shit creek.

    The kref_init() case is even worse, if your object is published at this
    time you're so wrong the memory barrier won't make a difference what
    so ever. If its not published, the act of publishing should include
    the needed barriers/locks to make sure all writes prior to the act of
    publishing are complete such that others will only observe a complete
    object.

    Cc: Alexey Dobriyan
    Cc: Eric Dumazet
    Cc: Ingo Molnar
    Cc: Oliver Neukum
    Signed-off-by: Peter Zijlstra
    Signed-off-by: Greg Kroah-Hartman

    Peter Zijlstra
     
  • Less lines of code is better.

    Cc: Alexey Dobriyan
    Cc: Eric Dumazet
    Cc: Ingo Molnar
    Signed-off-by: Peter Zijlstra
    Signed-off-by: Greg Kroah-Hartman

    Peter Zijlstra
     
  • These are tiny functions, there's no point in having them out-of-line.

    Cc: Alexey Dobriyan
    Cc: Eric Dumazet
    Cc: Ingo Molnar
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-8eccvi2ur2fzgi00xdjlbf5z@git.kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Peter Zijlstra
     

13 Dec, 2011

5 commits


10 Dec, 2011

5 commits


27 Nov, 2011

6 commits

  • This patch converts the drivers in drivers/uio/* to use the
    module_platform_driver() macro which makes the code smaller and a bit
    simpler.

    Cc: Uwe Kleine-König
    Cc: Magnus Damm
    Cc: Amit Chatterjee
    Cc: Pratheesh Gangadhar
    Signed-off-by: Axel Lin
    Signed-off-by: Greg Kroah-Hartman

    Axel Lin
     
  • We should provide topology information to userland even if it's not
    very interesting. The current code appears to work properly for !SMP
    (tested on i386).

    Reference: http://bugs.debian.org/649216
    Reported-by: Marcus Osdoba
    Signed-off-by: Ben Hutchings
    Signed-off-by: Greg Kroah-Hartman

    Ben Hutchings
     
  • The cast here causes a Sparse warning:
    fs/debugfs/file.c:561:42: warning: cast removes address space of expression
    fs/debugfs/file.c:561:42: warning: incorrect type in argument 1 (different address spaces)
    fs/debugfs/file.c:561:42: expected void const volatile [noderef] *addr
    fs/debugfs/file.c:561:42: got void *

    It's redundant to cast it to a (void *) anyway when it is already a
    (void __iomem *).

    Signed-off-by: Dan Carpenter
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • Most of the drivers/*/Kconfig files define a menu entry. Define
    a menu item for hv too such that it becomes uniform with e.g.
    virtio for at least "make xconfig" and "make menuconfig" users.

    Signed-off-by: Bart Van Assche
    Cc: Greg Kroah-Hartman
    Cc: James Bottomley
    Cc: K. Y. Srinivasan
    Signed-off-by: Greg Kroah-Hartman

    Bart Van Assche
     
  • Modify the way we initialize the vmbus driver so that all the hyper-v drivers
    can be linked with the kernel and still ensure that the vmbus driver
    is fully initialized before the drivers that depend upon the vmbus
    driver attempt to initialize.

    Signed-off-by: K. Y. Srinivasan
    Signed-off-by: Haiyang Zhang
    Signed-off-by: Greg Kroah-Hartman

    K. Y. Srinivasan
     
  • Move the "Device Drivers/Microsoft Hyper-V guest support"
    menu entry up such that it appears immediately below virtio
    (KVM and lguest guest driver support) instead of after a
    hypervisor driver menu entry.

    Signed-off-by: Bart Van Assche
    Cc: Greg Kroah-Hartman
    Cc: James Bottomley
    Cc: K. Y. Srinivasan
    Signed-off-by: Greg Kroah-Hartman

    Bart Van Assche
     

23 Nov, 2011

1 commit


19 Nov, 2011

4 commits