openwrt/staging/blogic.git
19 years ago[PATCH] sysfs-iattr: add sysfs_setattr
Maneesh Soni [Tue, 31 May 2005 05:09:14 +0000 (10:39 +0530)]
[PATCH] sysfs-iattr: add sysfs_setattr

o This adds ->i_op->setattr VFS method for sysfs inodes. The changed
  attribues are saved in the persistent sysfs_dirent structure as a pointer
  to struct iattr. The struct iattr is allocated only for those sysfs_dirent's
  for which default attributes are getting changed. Thanks to Jon Smirl for
  this suggestion.

Signed-off-by: Maneesh Soni <maneesh@in.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sysfs-iattr: attach sysfs_dirent before new inode
Maneesh Soni [Tue, 31 May 2005 05:08:12 +0000 (10:38 +0530)]
[PATCH] sysfs-iattr: attach sysfs_dirent before new inode

o The following patch makes sure to attach sysfs_dirent to the dentry before
  allocation a new inode through sysfs_create(). This change is done as
  preparatory work for implementing ->i_op->setattr() functionality for
  sysfs objects.

Signed-off-by: Maneesh Soni <maneesh@in.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: drivers/i2c/chips/adm1026.c: use dynamic sysfs callbacks
Yani Ioannou [Sun, 5 Jun 2005 08:51:46 +0000 (10:51 +0200)]
[PATCH] I2C: drivers/i2c/chips/adm1026.c: use dynamic sysfs callbacks

Finally (phew!) this patch demonstrates how to adapt the adm1026 to
take advantage of the new callbacks, and the i2c-sysfs.h defined
structure/macros. Most of the other sensor/hwmon drivers could be
updated in the same way. The odd few exceptions (bmcsensors for
example) however might be better off with their own custom attribute
structure.

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: add i2c sensor_device_attribute and macros
Yani Ioannou [Wed, 18 May 2005 02:59:05 +0000 (22:59 -0400)]
[PATCH] I2C: add i2c sensor_device_attribute and macros

This patch creates a new header with a potential standard i2c sensor
attribute type (which simply includes an int representing the sensor
number/index) and the associated macros, SENSOR_DEVICE_ATTR to define
a static attribute and to_sensor_dev_attr to get a
sensor_device_attribute reference from an embedded device_attribute
reference.

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
19 years ago[PATCH] Driver Core: include: update device attribute callbacks
Yani Ioannou [Tue, 17 May 2005 10:44:59 +0000 (06:44 -0400)]
[PATCH] Driver Core: include: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/usb/input/aiptek.c - drivers/zorro/zorro-sysfs.c: update...
Yani Ioannou [Tue, 17 May 2005 10:44:04 +0000 (06:44 -0400)]
[PATCH] Driver Core: drivers/usb/input/aiptek.c - drivers/zorro/zorro-sysfs.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/s390/net/qeth_sys.c - drivers/usb/gadget/pxa2xx_udc...
Yani Ioannou [Tue, 17 May 2005 10:43:37 +0000 (06:43 -0400)]
[PATCH] Driver Core: drivers/s390/net/qeth_sys.c - drivers/usb/gadget/pxa2xx_udc.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/char/raw3270.c - drivers/net/netiucv.c: update device...
Yani Ioannou [Tue, 17 May 2005 10:43:27 +0000 (06:43 -0400)]
[PATCH] Driver Core: drivers/char/raw3270.c - drivers/net/netiucv.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/i2c/chips/w83781d.c - drivers/s390/block/dcssblk.c:...
Yani Ioannou [Tue, 17 May 2005 10:42:58 +0000 (06:42 -0400)]
[PATCH] Driver Core: drivers/i2c/chips/w83781d.c - drivers/s390/block/dcssblk.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/i2c/chips/pc87360.c - w83627hf.c: update device attribut...
Yani Ioannou [Tue, 17 May 2005 10:42:25 +0000 (06:42 -0400)]
[PATCH] Driver Core: drivers/i2c/chips/pc87360.c - w83627hf.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/i2c/chips/lm77.c - max1619.c: update device attribute...
Yani Ioannou [Tue, 17 May 2005 10:42:03 +0000 (06:42 -0400)]
[PATCH] Driver Core: drivers/i2c/chips/lm77.c - max1619.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/i2c/chips/adm1031.c - lm75.c: update device attribute...
Yani Ioannou [Tue, 17 May 2005 10:41:35 +0000 (06:41 -0400)]
[PATCH] Driver Core: drivers/i2c/chips/adm1031.c - lm75.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: drivers/base - drivers/i2c/chips/adm1026.c: update device attrib...
Yani Ioannou [Tue, 17 May 2005 10:41:12 +0000 (06:41 -0400)]
[PATCH] Driver Core: drivers/base - drivers/i2c/chips/adm1026.c: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: arch: update device attribute callbacks
Yani Ioannou [Tue, 17 May 2005 10:40:51 +0000 (06:40 -0400)]
[PATCH] Driver Core: arch: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver core: Documentation: update device attribute callbacks
Yani Ioannou [Tue, 17 May 2005 10:40:28 +0000 (06:40 -0400)]
[PATCH] Driver core: Documentation: update device attribute callbacks

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver core: change device_attribute callbacks
Yani Ioannou [Tue, 17 May 2005 10:39:34 +0000 (06:39 -0400)]
[PATCH] Driver core: change device_attribute callbacks

This patch adds the device_attribute paramerter to the
device_attribute store and show sysfs callback functions, and passes a
reference to the attribute when the callbacks are called.

Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] driver core: fix error handling in bus_add_device
Hannes Reinecke [Wed, 18 May 2005 08:42:23 +0000 (10:42 +0200)]
[PATCH] driver core: fix error handling in bus_add_device

The error handling in bus_add_device() and device_attach() is simply
non-existing. This patch propagates any error from device_attach to
the upper layers to allow for a proper recovery.

From: Hannes Reinecke <hare@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] libfs: add simple attribute files
Arnd Bergmann [Wed, 18 May 2005 12:40:59 +0000 (14:40 +0200)]
[PATCH] libfs: add simple attribute files

Based on the discussion about spufs attributes, this is my suggestion
for a more generic attribute file support that can be used by both
debugfs and spufs.

Simple attribute files behave similarly to sequential files from
a kernel programmers perspective in that a standard set of file
operations is provided and only an open operation needs to
be written that registers file specific get() and set() functions.

These operations are defined as

void foo_set(void *data, u64 val); and
u64 foo_get(void *data);

where data is the inode->u.generic_ip pointer of the file and the
operations just need to make send of that pointer. The infrastructure
makes sure this works correctly with concurrent access and partial
read calls.

A macro named DEFINE_SIMPLE_ATTRIBUTE is provided to further simplify
using the attributes.

This patch already contains the changes for debugfs to use attributes
for its internal file operations.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: driver model doc update
David Brownell [Tue, 17 May 2005 00:19:55 +0000 (17:19 -0700)]
[PATCH] Driver Core: driver model doc update

This updates some driver data documentation:

 - removes references to some fields that haven't been there for a
   long time now, e.g. pre-kobject or even older;

 - giving more information about the probe() method;

 - adding an example of how platform_data is used

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver core: unregister_node() for hotplug use
Keiichiro Tokunaga [Sun, 8 May 2005 12:28:53 +0000 (21:28 +0900)]
[PATCH] Driver core: unregister_node() for hotplug use

This adds a generic function 'unregister_node()'.
It is used to remove objects of a node going away
for hotplug.  All the devices on the node must be
unregistered before calling this function.

Signed-off-by: Keiichiro Tokunaga <tokunaga.keiich@jp.fujitsu.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -puN drivers/base/node.c~numa_hp_base drivers/base/node.c

19 years ago[PATCH] usbcore: Don't call device_release_driver recursively
Alan Stern [Fri, 6 May 2005 19:41:08 +0000 (15:41 -0400)]
[PATCH] usbcore: Don't call device_release_driver recursively

This patch fixes usb_driver_release_interface() to make it avoid calling
device_release_driver() recursively, i.e., when invoked from within the
disconnect routine for the same device.  The patch applies to your
"driver" tree.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] driver core: Fix races in driver_detach()
Alan Stern [Fri, 6 May 2005 19:38:33 +0000 (15:38 -0400)]
[PATCH] driver core: Fix races in driver_detach()

This patch is intended for your "driver" tree.  It fixes several subtle
races in driver_detach() and device_release_driver() in the driver-model
core.

The major change is to use klist_remove() rather than klist_del() when
taking a device off its driver's list.  There's no other way to guarantee
that the list pointers will be updated before some other driver binds to
the device.  For this to work driver_detach() can't use a klist iterator,
so the loop over the devices must be written out in full.  In addition the
patch protects against the possibility that, when a driver and a device
are unregistered at the same time, one may be unloaded from memory before
the other is finished using it.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sn: fixes due to driver core changes
Patrick Mochel [Fri, 29 Apr 2005 00:11:52 +0000 (17:11 -0700)]
[PATCH] sn: fixes due to driver core changes

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] usb: klist_node_attached() fix
Patrick Mochel [Mon, 20 Jun 2005 22:15:28 +0000 (15:15 -0700)]
[PATCH] usb: klist_node_attached() fix

The original code looks like this:

        /* if interface was already added, bind now; else let
         * the future device_add() bind it, bypassing probe()
         */
        if (!list_empty (&dev->bus_list))
                device_bind_driver(dev);

IOW, it's checking to see if the device is attached to the bus or not
and binding the driver if it is. It's checking the device's bus list,
which will only appear empty when the device has been initialized, but
not added. It depends way too much on the driver model internals, but it
seems to be the only way to do the weird crap they want to do with
interfaces.

When I converted it to use klists, I accidentally inverted the logic,
which led to bad things happening. This patch returns the check to its
orginal value.

From: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Index: gregkh-2.6/drivers/usb/core/usb.c
===================================================================

19 years ago[PATCH] Fix typo in scdrv_init()
Jason Uhlenkott [Wed, 30 Mar 2005 21:19:54 +0000 (13:19 -0800)]
[PATCH] Fix typo in scdrv_init()

Fix a typo in scdrv_init() which was breaking the build for SGI sn2.

Signed-off-by: Jason Uhlenkott <jasonuhl@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: fix bk-driver-core kills ppc64
Patrick Mochel [Wed, 6 Apr 2005 06:46:33 +0000 (23:46 -0700)]
[PATCH] Driver Core: fix bk-driver-core kills ppc64

There's no check to see if the device is already bound to a driver, which
could do bad things.  The first thing to go wrong is that it will try to match
a driver with a device already bound to one.  In some cases (it appears with
USB with drivers/usb/core/usb.c::usb_match_id()), some drivers will match a
device based on the class type, so it would be common (especially for HID
devices) to match a device that is already bound.

The fun comes when ->probe() is called, it fails, then
driver_probe_device() does this:

dev->driver = NULL;

Later on, that pointer could be be dereferenced without checking and cause
hell to break loose.

This problem could be nasty. It's very hardware dependent, since some
devices could have a different set of matching qualifiers than others.

Now, I don't quite see exactly where/how you were getting that crash.
You're dereferencing bad memory, but I'm not sure which pointer was bad
and where it came from, but it could have come from a couple of different
places.

The patch below will hopefully fix it all up for you. It's against
2.6.12-rc2-mm1, and does the following:

- Move logic to driver_probe_device() and comments uncommon returns:
  1 - If device is bound
  0 - If device not bound, and no error
  error - If there was an error.

- Move locking to caller of that function, since we want to lock a
  device for the entire time we're trying to bind it to a driver (to
  prevent against a driver being loaded at the same time).

- Update __device_attach() and __driver_attach() to do that locking.

- Check if device is already bound in __driver_attach()

- Update the converse device_release_driver() so it locks the device
  around all of the operations.

- Mark driver_probe_device() as static and remove export. It's an
  internal function, it should stay that way, and there are no other
  callers. If there is ever a need to export it, we can audit it as
  necessary.

Signed-off-by: Andrew Morton <akpm@osdl.org>
19 years ago[PATCH] Driver core: Fix up the driver and device iterators to be quieter
gregkh@suse.de [Thu, 31 Mar 2005 20:53:00 +0000 (12:53 -0800)]
[PATCH] Driver core: Fix up the driver and device iterators to be quieter

Also stops looping over the lists when a match is found.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de
19 years ago[PATCH] use device_for_each_child() to properly access child devices.
long [Tue, 29 Mar 2005 21:36:43 +0000 (13:36 -0800)]
[PATCH] use device_for_each_child() to properly access child devices.

On Friday, March 25, 2005 8:47 PM Greg KH wrote:
>Here's a fix for pci express.  For some reason I don't think they are
>using the driver model properly here, but I could be wrong...

Thanks for making the changes. However, changes in functions:
void pcie_port_device_remove(struct pci_dev *dev) and
static int remove_iter(struct device *dev, void *data)
are not correct. Please use the patch, which is based on kernel
2.6.12-rc1, below for a fix for these.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Use device_for_each_child() to unregister devices in nodemgr_remove_host_dev()
gregkh@suse.de [Fri, 25 Mar 2005 19:45:31 +0000 (11:45 -0800)]
[PATCH] Use device_for_each_child() to unregister devices in nodemgr_remove_host_dev()

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -Nru a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c

19 years ago[PATCH] USB: fix build warning in usb core as pointed out by Andrew.
gregkh@suse.de [Thu, 24 Mar 2005 08:44:28 +0000 (00:44 -0800)]
[PATCH] USB: fix build warning in usb core as pointed out by Andrew.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Index: gregkh-2.6/drivers/usb/core/usb.c
===================================================================

19 years ago[PATCH] driver core: change export symbol for driver_for_each_device()
gregkh@suse.de [Tue, 22 Mar 2005 20:17:13 +0000 (12:17 -0800)]
[PATCH] driver core: change export symbol for driver_for_each_device()

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Index: linux-2.6.12-rc2/drivers/base/driver.c
===================================================================

19 years ago[PATCH] Fix up bogus comment.
mochel@digitalimplant.org [Fri, 25 Mar 2005 04:08:04 +0000 (20:08 -0800)]
[PATCH] Fix up bogus comment.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -Nru a/drivers/base/driver.c b/drivers/base/driver.c

19 years ago[PATCH] Use a klist for device child lists.
mochel@digitalimplant.org [Fri, 25 Mar 2005 03:08:30 +0000 (19:08 -0800)]
[PATCH] Use a klist for device child lists.

- Use klist iterator in device_for_each_child(), making it safe to use for
  removing devices.
- Remove unused list_to_dev() function.
- Kills all usage of devices_subsys.rwsem.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] use device_for_each_child() to properly access child devices.
gregkh@suse.de [Fri, 25 Mar 2005 23:52:00 +0000 (15:52 -0800)]
[PATCH] use device_for_each_child() to properly access child devices.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Use device_for_each_child() to unregister devices in scsi_remove_target().
mochel@digitalimplant.org [Fri, 25 Mar 2005 03:03:59 +0000 (19:03 -0800)]
[PATCH] Use device_for_each_child() to unregister devices in scsi_remove_target().

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Index: gregkh-2.6/drivers/scsi/scsi_sysfs.c
===================================================================

19 years ago[PATCH] Don't reference NULL klist pointer in klist_remove().
mochel@digitalimplant.org [Fri, 25 Mar 2005 02:59:59 +0000 (18:59 -0800)]
[PATCH] Don't reference NULL klist pointer in klist_remove().

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -Nru a/lib/klist.c b/lib/klist.c

19 years ago[PATCH] Call klist_del() instead of klist_remove().
mochel@digitalimplant.org [Fri, 25 Mar 2005 02:58:45 +0000 (18:58 -0800)]
[PATCH] Call klist_del() instead of klist_remove().

- Can't wait on removing the current item in the list (the positive refcount *because*
  we are using it causes it to deadlock).

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Remove struct device::driver_list.
mochel@digitalimplant.org [Thu, 24 Mar 2005 21:08:05 +0000 (13:08 -0800)]
[PATCH] Remove struct device::driver_list.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Remove struct device::bus_list.
mochel@digitalimplant.org [Thu, 24 Mar 2005 21:03:35 +0000 (13:03 -0800)]
[PATCH] Remove struct device::bus_list.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Fix up bus code and remove use of rwsem.
mochel@digitalimplant.org [Thu, 24 Mar 2005 21:02:28 +0000 (13:02 -0800)]
[PATCH] Fix up bus code and remove use of rwsem.

- Don't add devices to bus's embedded kset, since it's not used by anyone anymore.
- Don't need to take the bus rwsem when calling {device,driver}_attach(), since
  those functions use the klists and the klists' spinlocks.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Fix up USB to use klist_node_attached() instead of list_empty() on lists...
mochel@digitalimplant.org [Thu, 24 Mar 2005 21:00:16 +0000 (13:00 -0800)]
[PATCH] Fix up USB to use klist_node_attached() instead of list_empty() on lists that will go away.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Index: gregkh-2.6/drivers/usb/core/usb.c
===================================================================

19 years ago[PATCH] add klist_node_attached() to determine if a node is on a list or not.
mochel@digitalimplant.org [Thu, 24 Mar 2005 20:58:57 +0000 (12:58 -0800)]
[PATCH] add klist_node_attached() to determine if a node is on a list or not.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -Nru a/include/linux/klist.h b/include/linux/klist.h

19 years ago[PATCH] Use bus_for_each_{dev,drv} for driver binding.
mochel@digitalimplant.org [Thu, 24 Mar 2005 18:50:24 +0000 (10:50 -0800)]
[PATCH] Use bus_for_each_{dev,drv} for driver binding.

- Now possible, since the lists are locked using the klist lock and not the
  global rwsem.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Remove the unused device_find().
mochel@digitalimplant.org [Thu, 24 Mar 2005 18:48:35 +0000 (10:48 -0800)]
[PATCH] Remove the unused device_find().

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Add a klist to struct device_driver for the devices bound to it.
mochel@digitalimplant.org [Mon, 21 Mar 2005 20:25:36 +0000 (12:25 -0800)]
[PATCH] Add a klist to struct device_driver for the devices bound to it.

- Use it in driver_for_each_device() instead of the regular list_head and stop using
  the bus's rwsem for protection.
- Use driver_for_each_device() in driver_detach() so we don't deadlock on the
  bus's rwsem.
- Remove ->devices.
- Move klist access and sysfs link access out from under device's semaphore, since
  they're synchronized through other means.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Add a klist to struct bus_type for its drivers.
mochel@digitalimplant.org [Mon, 21 Mar 2005 20:00:18 +0000 (12:00 -0800)]
[PATCH] Add a klist to struct bus_type for its drivers.

- Use it in bus_for_each_drv().
- Use the klist spinlock instead of the bus rwsem.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Add a klist to struct bus_type for its devices.
mochel@digitalimplant.org [Mon, 21 Mar 2005 19:49:14 +0000 (11:49 -0800)]
[PATCH] Add a klist to struct bus_type for its devices.

- Use it for bus_for_each_dev().
- Use the klist spinlock instead of the bus rwsem.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Add initial implementation of klist helpers.
mochel@digitalimplant.org [Mon, 21 Mar 2005 19:45:16 +0000 (11:45 -0800)]
[PATCH] Add initial implementation of klist helpers.

This klist interface provides a couple of structures that wrap around
struct list_head to provide explicit list "head" (struct klist) and
list "node" (struct klist_node) objects. For struct klist, a spinlock
is included that protects access to the actual list itself. struct
klist_node provides a pointer to the klist that owns it and a kref
reference count that indicates the number of current users of that node
in the list.

The entire point is to provide an interface for iterating over a list
that is safe and allows for modification of the list during the
iteration (e.g. insertion and removal), including modification of the
current node on the list.

It works using a 3rd object type - struct klist_iter - that is declared
and initialized before an iteration. klist_next() is used to acquire the
next element in the list. It returns NULL if there are no more items.
This klist interface provides a couple of structures that wrap around
struct list_head to provide explicit list "head" (struct klist) and
list "node" (struct klist_node) objects. For struct klist, a spinlock
is included that protects access to the actual list itself. struct
klist_node provides a pointer to the klist that owns it and a kref
reference count that indicates the number of current users of that node
in the list.

The entire point is to provide an interface for iterating over a list
that is safe and allows for modification of the list during the
iteration (e.g. insertion and removal), including modification of the
current node on the list.

It works using a 3rd object type - struct klist_iter - that is declared
and initialized before an iteration. klist_next() is used to acquire the
next element in the list. It returns NULL if there are no more items.
Internally, that routine takes the klist's lock, decrements the reference
count of the previous klist_node and increments the count of the next
klist_node. It then drops the lock and returns.

There are primitives for adding and removing nodes to/from a klist.
When deleting, klist_del() will simply decrement the reference count.
Only when the count goes to 0 is the node removed from the list.
klist_remove() will try to delete the node from the list and block
until it is actually removed. This is useful for objects (like devices)
that have been removed from the system and must be freed (but must wait
until all accessors have finished).

Internally, that routine takes the klist's lock, decrements the reference
count of the previous klist_node and increments the count of the next
klist_node. It then drops the lock and returns.

There are primitives for adding and removing nodes to/from a klist.
When deleting, klist_del() will simply decrement the reference count.
Only when the count goes to 0 is the node removed from the list.
klist_remove() will try to delete the node from the list and block
until it is actually removed. This is useful for objects (like devices)
that have been removed from the system and must be freed (but must wait
until all accessors have finished).

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -Nru a/include/linux/klist.h b/include/linux/klist.h

19 years ago[PATCH] Use driver_for_each_device() instead of manually walking list.
mochel@digitalimplant.org [Mon, 21 Mar 2005 19:09:40 +0000 (11:09 -0800)]
[PATCH] Use driver_for_each_device() instead of manually walking list.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Index: gregkh-2.6/drivers/usb/core/usb.c
===================================================================

19 years ago[PATCH] Use driver_for_each_device() in drivers/pnp/driver.c instead of manually...
mochel@digitalimplant.org [Mon, 21 Mar 2005 19:07:54 +0000 (11:07 -0800)]
[PATCH] Use driver_for_each_device() in drivers/pnp/driver.c instead of manually walking list.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff -Nru a/drivers/pnp/driver.c b/drivers/pnp/driver.c

19 years ago[PATCH] Add driver_for_each_device().
mochel@digitalimplant.org [Mon, 21 Mar 2005 18:59:56 +0000 (10:59 -0800)]
[PATCH] Add driver_for_each_device().

Now there's an iterator for accessing each device bound to a driver.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Index: linux-2.6.12-rc2/drivers/base/driver.c
===================================================================

19 years ago[PATCH] Move device/driver code to drivers/base/dd.c
mochel@digitalimplant.org [Mon, 21 Mar 2005 18:52:54 +0000 (10:52 -0800)]
[PATCH] Move device/driver code to drivers/base/dd.c

This relocates the driver binding/unbinding code to drivers/base/dd.c. This is done
for two reasons: One, it's not code related to the bus_type itself; it uses some from
that, some from devices, and some from drivers. And Two, it will make it easier to do
some of the upcoming lock removal on that code..

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Add a semaphore to struct device to synchronize calls to its driver.
mochel@digitalimplant.org [Mon, 21 Mar 2005 18:41:04 +0000 (10:41 -0800)]
[PATCH] Add a semaphore to struct device to synchronize calls to its driver.

This adds a per-device semaphore that is taken before every call from the core to a
driver method. This prevents e.g. simultaneous calls to the ->suspend() or ->resume()
and ->probe() or ->release(), potentially saving a whole lot of headaches.

It also moves us a step closer to removing the bus rwsem, since it protects the fields
in struct device that are modified by the core.

Signed-off-by: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] fix up ipmi code after class_simple.c removal
Andrew Morton [Thu, 5 May 2005 22:06:38 +0000 (15:06 -0700)]
[PATCH] fix up ipmi code after class_simple.c removal

Cc: Corey Minyard <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] fix "make mandocs" after class_simple.c removal
Adrian Bunk [Thu, 5 May 2005 22:06:38 +0000 (15:06 -0700)]
[PATCH] fix "make mandocs" after class_simple.c removal

Due to the removal of class_simple.c, "make mandocs" no longer works.

This patch fixes this issue.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: remove class_simple code, as no one in the tree is using it anymore.
gregkh@suse.de [Wed, 23 Mar 2005 19:12:38 +0000 (11:12 -0800)]
[PATCH] class: remove class_simple code, as no one in the tree is using it anymore.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: add kerneldoc for the new class functions.
gregkh@suse.de [Wed, 23 Mar 2005 18:02:56 +0000 (10:02 -0800)]
[PATCH] class: add kerneldoc for the new class functions.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert the remaining class_simple users in the kernel to usee the...
gregkh@suse.de [Wed, 23 Mar 2005 18:02:26 +0000 (10:02 -0800)]
[PATCH] class: convert the remaining class_simple users in the kernel to usee the new class api

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] USB: trivial error path fix
Mark M. Hoffman [Tue, 3 May 2005 03:35:45 +0000 (23:35 -0400)]
[PATCH] USB: trivial error path fix

Trivial fix to USB class-creation error path; please apply.

Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert drivers/* to use the new class api instead of class_simple
gregkh@suse.de [Wed, 23 Mar 2005 18:01:41 +0000 (10:01 -0800)]
[PATCH] class: convert drivers/* to use the new class api instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert arch/* to use the new class api instead of class_simple
gregkh@suse.de [Wed, 23 Mar 2005 17:56:34 +0000 (09:56 -0800)]
[PATCH] class: convert arch/* to use the new class api instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert drivers/scsi/* to use the new class api instead of class_simple
gregkh@suse.de [Wed, 23 Mar 2005 17:55:22 +0000 (09:55 -0800)]
[PATCH] class: convert drivers/scsi/* to use the new class api instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert drivers/ieee1394/* to use the new class api instead of class_s...
gregkh@suse.de [Wed, 23 Mar 2005 17:53:36 +0000 (09:53 -0800)]
[PATCH] class: convert drivers/ieee1394/* to use the new class api instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert drivers/char/* to use the new class api instead of class_simple
gregkh@suse.de [Wed, 23 Mar 2005 17:53:09 +0000 (09:53 -0800)]
[PATCH] class: convert drivers/char/* to use the new class api instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert drivers/block/* to use the new class api instead of class_simple
gregkh@suse.de [Wed, 23 Mar 2005 17:52:10 +0000 (09:52 -0800)]
[PATCH] class: convert drivers/block/* to use the new class api instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] class: convert sound/* to use the new class api instead of class_simple
gregkh@suse.de [Wed, 23 Mar 2005 17:51:41 +0000 (09:51 -0800)]
[PATCH] class: convert sound/* to use the new class api instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] USB: move the usb hcd code to use the new class code.
gregkh@suse.de [Tue, 15 Mar 2005 23:10:13 +0000 (15:10 -0800)]
[PATCH] USB: move the usb hcd code to use the new class code.

This moves a kref into the main hcd structure, which detaches it from
the class device structure.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] INPUT: move to use the new class code, instead of class_simple
gregkh@suse.de [Tue, 15 Mar 2005 22:26:30 +0000 (14:26 -0800)]
[PATCH] INPUT: move to use the new class code, instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] tty: move to use the new class code, instead of class_simple
gregkh@suse.de [Tue, 15 Mar 2005 22:23:15 +0000 (14:23 -0800)]
[PATCH] tty: move to use the new class code, instead of class_simple

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] CLASS: move a "simple" class logic into the class core.
gregkh@suse.de [Tue, 15 Mar 2005 19:54:21 +0000 (11:54 -0800)]
[PATCH] CLASS: move a "simple" class logic into the class core.

One step on improving the class api so that it can not be used incorrectly.
This also fixes the module owner issue with the dev files that happened when
the devt logic moved to the class core.

Based on a patch originally written by Kay Sievers <kay.sievers@vrfy.org>

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sysfs: (rest) if show/store is missing return -EIO
Dmitry Torokhov [Fri, 29 Apr 2005 06:27:34 +0000 (01:27 -0500)]
[PATCH] sysfs: (rest) if show/store is missing return -EIO

sysfs: fix the rest of the kernel so if an attribute doesn't
       implement show or store method read/write will return
       -EIO instead of 0 or -EINVAL or -EPERM.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sysfs: (driver/block) if show/store is missing return -EIO
Dmitry Torokhov [Fri, 29 Apr 2005 06:26:06 +0000 (01:26 -0500)]
[PATCH] sysfs: (driver/block) if show/store is missing return -EIO

sysfs: fix drivers/block so if an attribute doesn't implement
       show or store method read/write will return -EIO
       instead of 0 or -EINVAL.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sysfs: (driver/pci) if show/store is missing return -EIO
Dmitry Torokhov [Fri, 29 Apr 2005 06:26:27 +0000 (01:26 -0500)]
[PATCH] sysfs: (driver/pci) if show/store is missing return -EIO

sysfs: fix drivers/pci so if an attribute does not implement
       show or store method read/write will return -EIO
       instead of 0.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sysfs: (driver/base) if show/store is missing return -EIO
Dmitry Torokhov [Fri, 29 Apr 2005 06:23:47 +0000 (01:23 -0500)]
[PATCH] sysfs: (driver/base) if show/store is missing return -EIO

sysfs: fix drivers/base so if an attribute doesn't implement
       show or store method read/write will return -EIO
       instead of 0.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sysfs: if show/store is missing return -EIO
Dmitry Torokhov [Fri, 29 Apr 2005 06:22:00 +0000 (01:22 -0500)]
[PATCH] sysfs: if show/store is missing return -EIO

sysfs: if attribute does not implement show or store method
       read/write should return -EIO instead of 0 or -EINVAL.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Make attributes names const char *
Dmitry Torokhov [Fri, 29 Apr 2005 05:58:46 +0000 (00:58 -0500)]
[PATCH] Make attributes names const char *

sysfs: make attributes and attribute_group's names const char *

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] make driver's name be const char *
Dmitry Torokhov [Tue, 26 Apr 2005 07:34:05 +0000 (02:34 -0500)]
[PATCH] make driver's name be const char *

Driver core:
  change driver's, bus's, class's and platform device's names
  to be const char * so one can use
            const char *drv_name = "asdfg";
  when initializing structures.
  Also kill couple of whitespaces.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] kset_hotplug_ops->name shoudl return const char *
Dmitry Torokhov [Tue, 26 Apr 2005 07:32:54 +0000 (02:32 -0500)]
[PATCH] kset_hotplug_ops->name shoudl return const char *

kobject: change name() method in kset_hotplug_ops return const char *
 since users shoudl not try to modify returned data.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Make kobject's name be const char *
Dmitry Torokhov [Tue, 26 Apr 2005 07:32:00 +0000 (02:32 -0500)]
[PATCH] Make kobject's name be const char *

kobject: make kobject's name const char * since users should not
 attempt to change it (except by calling kobject_rename).

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] sysfs_{create|remove}_link should take const char *
Dmitry Torokhov [Tue, 26 Apr 2005 07:31:08 +0000 (02:31 -0500)]
[PATCH] sysfs_{create|remove}_link should take const char *

sysfs: make sysfs_{create|remove}_link to take const char * name.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] kobject_hotplug() should use kobject_name()
Dmitry Torokhov [Tue, 26 Apr 2005 07:29:58 +0000 (02:29 -0500)]
[PATCH] kobject_hotplug() should use kobject_name()

kobject: kobject_hotplug should use kobject_name() instead of
         accessing kobj->name directly since for objects with
         long names it can contain garbage.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Sun, 19 Jun 2005 18:53:06 +0000 (11:53 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years agoMerge with ../linux-2.6-smp
Russell King [Sun, 19 Jun 2005 18:26:54 +0000 (19:26 +0100)]
Merge with ../linux-2.6-smp

19 years ago[PATCH] ARM SMP: Fix PXA/SA11x0 suspend resume crash
Russell King [Sun, 19 Jun 2005 17:39:33 +0000 (18:39 +0100)]
[PATCH] ARM SMP: Fix PXA/SA11x0 suspend resume crash

We need to re-initialise the stack pointers for undefined, IRQ
and abort mode handlers whenever we resume.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[PATCH] ARM SMP: Add missed files from Integrator/CP platform
Russell King [Sun, 19 Jun 2005 08:52:07 +0000 (09:52 +0100)]
[PATCH] ARM SMP: Add missed files from Integrator/CP platform

Add missed new files from basic SMP support for the Integrator/CP platform.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[TCP]: Fix sysctl_tcp_low_latency
David S. Miller [Sun, 19 Jun 2005 06:01:10 +0000 (23:01 -0700)]
[TCP]: Fix sysctl_tcp_low_latency

When enabled, this should disable UCOPY prequeue'ing altogether,
but it does not due to a missing test.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: [4/4] signed vs unsigned cleanup in net/ipv4/raw.c
Jesper Juhl [Sun, 19 Jun 2005 06:00:34 +0000 (23:00 -0700)]
[IPV4]: [4/4] signed vs unsigned cleanup in net/ipv4/raw.c

This patch changes the type of the third parameter 'length' of the
raw_send_hdrinc() function from 'int' to 'size_t'.
This makes sense since this function is only ever called from one
location, and the value passed as the third parameter in that location is
itself of type size_t, so this makes the recieving functions parameter
type match. Also, inside raw_send_hdrinc() the 'length' variable is
used in comparisons with unsigned values and passed as parameter to
functions expecting unsigned values (it's used in a single comparison with
a signed value, but that one can never actually be negative so the patch
also casts that one to size_t to stop gcc worrying, and it is passed in a
single instance to memcpy_fromiovecend() which expects a signed int, but
as far as I can see that's not a problem since the value of 'length'
shouldn't ever exceed the value of a signed int).

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: [3/4] signed vs unsigned cleanup in net/ipv4/raw.c
Jesper Juhl [Sun, 19 Jun 2005 06:00:15 +0000 (23:00 -0700)]
[IPV4]: [3/4] signed vs unsigned cleanup in net/ipv4/raw.c

This patch changes the type of the local variable 'i' in
raw_probe_proto_opt() from 'int' to 'unsigned int'. The only use of 'i' in
this function is as a counter in a for() loop and subsequent index into
the msg->msg_iov[] array.
Since 'i' is compared in a loop to the unsigned variable msg->msg_iovlen
gcc -W generates this warning :

net/ipv4/raw.c:340: warning: comparison between signed and unsigned

Changing 'i' to unsigned silences this warning and is safe since the array
index can never be negative anyway, so unsigned int is the logical type to
use for 'i' and also enables a larger msg_iov[] array (but I don't know if
that will ever matter).

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: [2/4] signed vs unsigned cleanup in net/ipv4/raw.c
Jesper Juhl [Sun, 19 Jun 2005 06:00:00 +0000 (23:00 -0700)]
[IPV4]: [2/4] signed vs unsigned cleanup in net/ipv4/raw.c

This patch gets rid of the following gcc -W warning in net/ipv4/raw.c :

net/ipv4/raw.c:387: warning: comparison of unsigned expression < 0 is always false

Since 'len' is of type size_t it is unsigned and can thus never be <0, and
since this is obvious from the function declaration just a few lines above
I think it's ok to remove the pointless check for len<0.

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: [1/4] signed vs unsigned cleanup in net/ipv4/raw.c
Jesper Juhl [Sun, 19 Jun 2005 05:59:45 +0000 (22:59 -0700)]
[IPV4]: [1/4] signed vs unsigned cleanup in net/ipv4/raw.c

This patch silences these two gcc -W warnings in net/ipv4/raw.c :

net/ipv4/raw.c:517: warning: signed and unsigned type in conditional expression
net/ipv4/raw.c:613: warning: signed and unsigned type in conditional expression

It doesn't change the behaviour of the code, simply writes the conditional
expression with plain 'if()' syntax instead of '? :' , but since this
breaks it into sepperate statements gcc no longer complains about having
both a signed and unsigned value in the same conditional expression.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: noop/noqueue qdisc style cleanups
Thomas Graf [Sun, 19 Jun 2005 05:59:08 +0000 (22:59 -0700)]
[PKT_SCHED]: noop/noqueue qdisc style cleanups

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: Cleanup pfifo_fast qdisc and remove unnecessary code
Thomas Graf [Sun, 19 Jun 2005 05:58:53 +0000 (22:58 -0700)]
[PKT_SCHED]: Cleanup pfifo_fast qdisc and remove unnecessary code

Removes the skb trimming code which is not needed since we never
touch the skb upon failure. Removes unnecessary initializers,
and simplifies the code a bit.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: Add and use prio2list() in the pfifo_fast qdisc
Thomas Graf [Sun, 19 Jun 2005 05:58:35 +0000 (22:58 -0700)]
[PKT_SCHED]: Add and use prio2list() in the pfifo_fast qdisc

prio2list() returns the relevant sk_buff_head for the
band specified by the priority for a given skb.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: Transform pfifo_fast to use generic queue management interface
Thomas Graf [Sun, 19 Jun 2005 05:58:15 +0000 (22:58 -0700)]
[PKT_SCHED]: Transform pfifo_fast to use generic queue management interface

Gives pfifo_fast a byte based backlog.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: Cleanup fifo qdisc and remove unnecessary code
Thomas Graf [Sun, 19 Jun 2005 05:58:00 +0000 (22:58 -0700)]
[PKT_SCHED]: Cleanup fifo qdisc and remove unnecessary code

Removes the skb trimming code which is not needed since we never
touch the skb upon failure. Removes unnecessary includes,
initializers, and simplifies the code a bit.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: Transform fifo qdisc to use generic queue management interface
Thomas Graf [Sun, 19 Jun 2005 05:57:42 +0000 (22:57 -0700)]
[PKT_SCHED]: Transform fifo qdisc to use generic queue management interface

The simplicity of the fifo qdisc allows several qdisc operations to be
redirected to the relevant queue management function directly. Saves
a lot of code lines and gives the pfifo a byte based backlog.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: Generic queue management interface for qdiscs using internal skb queues
Thomas Graf [Sun, 19 Jun 2005 05:57:26 +0000 (22:57 -0700)]
[PKT_SCHED]: Generic queue management interface for qdiscs using internal skb queues

Implements an interface to be used by leaf qdiscs maintaining an internal
skb queue. The interface maintains a backlog in bytes additionaly
to the skb_queue_len() maintained by the queue itself. Relevant statistics
get incremented automatically. Every function comes in two variants, one
assuming Qdisc->q is used as queue and the second taking a sk_buff_head
as argument. Be aware that, if you use multiple queues, you still have to
maintain the Qdisc->q.qlen counter yourself.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SCTP]: Replace spin_lock_irqsave with spin_lock_bh
Herbert Xu [Sun, 19 Jun 2005 05:56:42 +0000 (22:56 -0700)]
[SCTP]: Replace spin_lock_irqsave with spin_lock_bh

This patch replaces the spin_lock_irqsave call on the receive queue
lock in SCTP with spin_lock_bh.  Despite the proliferation of
spin_lock_irqsave calls in this stack, it is only entered from the
IPv4/IPv6 stack and user space.  That is, it is never entered from
hardirq context.

The call in question is only called from recvmsg which means that
IRQs aren't disabled.  Therefore it is safe to replace it with
spin_lock_bh.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4/IPV6]: Replace spin_lock_irq with spin_lock_bh
Herbert Xu [Sun, 19 Jun 2005 05:56:18 +0000 (22:56 -0700)]
[IPV4/IPV6]: Replace spin_lock_irq with spin_lock_bh

In light of my recent patch to net/ipv4/udp.c that replaced the
spin_lock_irq calls on the receive queue lock with spin_lock_bh,
here is a similar patch for all other occurences of spin_lock_irq
on receive/error queue locks in IPv4 and IPv6.

In these stacks, we know that they can only be entered from user
or softirq context.  Therefore it's safe to disable BH only.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETLINK]: Set correct pid for ioctl originating netlink events
Jamal Hadi Salim [Sun, 19 Jun 2005 05:55:51 +0000 (22:55 -0700)]
[NETLINK]: Set correct pid for ioctl originating netlink events

This patch ensures that netlink events created as a result of programns
using ioctls (such as ifconfig, route etc) contains the correct PID of
those events.

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>