13 Jul, 2007

1 commit

  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (61 commits)
    sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes
    sysfs: make directory dentries and inodes reclaimable
    sysfs: implement sysfs_get_dentry()
    sysfs: move sysfs_drop_dentry() to dir.c and make it static
    sysfs: restructure add/remove paths and fix inode update
    sysfs: use sysfs_mutex to protect the sysfs_dirent tree
    sysfs: consolidate sysfs spinlocks
    sysfs: make kobj point to sysfs_dirent instead of dentry
    sysfs: implement sysfs_find_dirent() and sysfs_get_dirent()
    sysfs: implement SYSFS_FLAG_REMOVED flag
    sysfs: rename sysfs_dirent->s_type to s_flags and make room for flags
    sysfs: make sysfs_drop_dentry() access inodes using ilookup()
    sysfs: Fix oops in sysfs_drop_dentry on x86_64
    sysfs: use singly-linked list for sysfs_dirent tree
    sysfs: slim down sysfs_dirent->s_active
    sysfs: move s_active functions to fs/sysfs/dir.c
    sysfs: fix root sysfs_dirent -> root dentry association
    sysfs: use iget_locked() instead of new_inode()
    sysfs: reorganize sysfs_new_indoe() and sysfs_create()
    sysfs: fix parent refcounting during rename and move
    ...

    Linus Torvalds
     

12 Jul, 2007

11 commits

  • Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • Switch from formatting messages in probe routine and copying with
    kfifo, to using a small circular queue of information and formatting
    on read. This avoids wraparound issues with kfifo, and saves one
    copy.

    Also make sure to state correct license, rather than copying off some
    other driver I started with.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Drivers need to validate the initial addresses in their netlink attribute
    validation function or manually reject them if they can't support this.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • All drivers need to unregister their devices in the module unload function.
    While doing so they must hold the rtnl and atomically unregister the
    rtnl_link ops as well. This makes the rtnl_link_unregister function that
    takes the rtnl itself completely useless.

    Provide default newlink/dellink functions, make __rtnl_link_unregister and
    rtnl_link_unregister unregister all devices with matching rtnl_link_ops and
    change the existing users to take advantage of that.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • The VLAN MAC address handling is broken in multiple ways. When the address
    differs when setting it, the real device is put in promiscous mode twice,
    but never taken out again. Additionally it doesn't resync when the real
    device's address is changed and needlessly puts it in promiscous mode when
    the vlan device is still down.

    Fix by moving address handling to vlan_dev_open/vlan_dev_stop and properly
    deal with address changes in the device notifier. Also switch to
    dev_unicast_add (which needs the exact same handling).

    Since the set_mac_address handler is identical to the generic ethernet one
    with these changes, kill it and use ether_setup().

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • David S. Miller
     
  • Keep netpoll/poll_napi from messing with the poll_list.
    Only net_rx_action is allowed to manipulate the list.

    Signed-off-by: Olaf Kirch
    Signed-off-by: David S. Miller

    Olaf Kirch
     
  • Well, first of all, I don't want to change so many files either.

    What I do:
    Adding a new parameter "struct bin_attribute *" in the
    .read/.write methods for the sysfs binary attributes.

    In fact, only the four lines change in fs/sysfs/bin.c and
    include/linux/sysfs.h do the real work.
    But I have to update all the files that use binary attributes
    to make them compatible with the new .read and .write methods.
    I'm not sure if I missed any. :(

    Why I do this:
    For a sysfs attribute, we can get a pointer pointing to the
    struct attribute in the .show/.store method,
    while we can't do this for the binary attributes.
    I don't know why this is different, but this does make it not
    so handy to use the binary attributes as the regular ones.
    So I think this patch is reasonable. :)

    Who benefits from it:
    The patch that exposes ACPI tables in sysfs
    requires such an improvement.
    All the table binary attributes share the same .read method.
    Parameter "struct bin_attribute *" is used to get
    the table signature and instance number which are used to
    distinguish different ACPI table binary attributes.

    Without this parameter, we need to offer different .read methods
    for different ACPI table binary attributes.
    This is impossible as there are various ACPI tables on different
    platforms, and we don't know what they are until they are loaded.

    Signed-off-by: Zhang Rui
    Signed-off-by: Greg Kroah-Hartman

    Zhang Rui
     
  • sysfs is now completely out of driver/module lifetime game. After
    deletion, a sysfs node doesn't access anything outside sysfs proper,
    so there's no reason to hold onto the attribute owners. Note that
    often the wrong modules were accounted for as owners leading to
    accessing removed modules.

    This patch kills now unnecessary attribute->owner. Note that with
    this change, userland holding a sysfs node does not prevent the
    backing module from being unloaded.

    For more info regarding lifetime rule cleanup, please read the
    following message.

    http://article.gmane.org/gmane.linux.kernel/510293

    (tweaked by Greg to not delete the field just yet, to make it easier to
    merge things properly.)

    Signed-off-by: Tejun Heo
    Cc: Cornelia Huck
    Cc: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     
  • Throw out the old mark & sweep garbage collector and put in a
    refcounting cycle detecting one.

    The old one had a race with recvmsg, that resulted in false positives
    and hence data loss. The old algorithm operated on all unix sockets
    in the system, so any additional locking would have meant performance
    problems for all users of these.

    The new algorithm instead only operates on "in flight" sockets, which
    are very rare, and the additional locking for these doesn't negatively
    impact the vast majority of users.

    In fact it's probable, that there weren't *any* heavy senders of
    sockets over sockets, otherwise the above race would have been
    discovered long ago.

    The patch works OK with the app that exposed the race with the old
    code. The garbage collection has also been verified to work in a few
    simple cases.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: David S. Miller

    Miklos Szeredi
     

11 Jul, 2007

28 commits