linux-2.6
20 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>
20 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>
20 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
===================================================================

20 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>
20 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>
20 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
20 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>
20 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

20 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
===================================================================

20 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
===================================================================

20 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

20 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>
20 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>
20 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
===================================================================

20 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

20 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>
20 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>
20 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>
20 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>
20 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
===================================================================

20 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

20 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>
20 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>
20 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>
20 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>
20 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>
20 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

20 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
===================================================================

20 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

20 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
===================================================================

20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 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>
20 years ago[NETLINK]: fib_lookup() via netlink
Robert Olsson [Mon, 20 Jun 2005 20:36:39 +0000 (13:36 -0700)] 
[NETLINK]: fib_lookup() via netlink

Below is a more generic patch to do fib_lookup via netlink. For others
we should say that we discussed this as a way to verify route selection.
It's also possible there are others uses for this.

In short the fist half of struct fib_result_nl is filled in by caller
and netlink call fills in the other half and returns it.

In case anyone is interested there is a corresponding user app to compare
the full routing table this was used to test implementation of the LC-trie.

Signed-off-by: David S. Miller <davem@davemloft.net>
20 years ago[ATALK]: endian annotations
Alexey Dobriyan [Mon, 20 Jun 2005 20:32:05 +0000 (13:32 -0700)] 
[ATALK]: endian annotations

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
20 years ago[AX25]: endian-annotate ax25_type_trans()
Alexey Dobriyan [Mon, 20 Jun 2005 20:31:11 +0000 (13:31 -0700)] 
[AX25]: endian-annotate ax25_type_trans()

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
20 years ago[IPSEC]: Add XFRM_STATE_NOPMTUDISC flag
Herbert Xu [Mon, 20 Jun 2005 20:21:43 +0000 (13:21 -0700)] 
[IPSEC]: Add XFRM_STATE_NOPMTUDISC flag

This patch adds the flag XFRM_STATE_NOPMTUDISC for xfrm states.  It is
similar to the nopmtudisc on IPIP/GRE tunnels.  It only has an effect
on IPv4 tunnel mode states.  For these states, it will ensure that the
DF flag is always cleared.

This is primarily useful to work around ICMP blackholes.

In future this flag could also allow a larger MTU to be set within the
tunnel just like IPIP/GRE tunnels.  This could be useful for short haul
tunnels where temporary fragmentation outside the tunnel is desired over
smaller fragments inside the tunnel.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: James Morris <jmorris@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
20 years ago[IPSEC]: Add xfrm_state_afinfo->init_flags
Herbert Xu [Mon, 20 Jun 2005 20:19:41 +0000 (13:19 -0700)] 
[IPSEC]: Add xfrm_state_afinfo->init_flags

This patch adds the xfrm_state_afinfo->init_flags hook which allows
each address family to perform any common initialisation that does
not require a corresponding destructor call.

It will be used subsequently to set the XFRM_STATE_NOPMTUDISC flag
in IPv4.

It also fixes up the error codes returned by xfrm_init_state.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: James Morris <jmorris@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
20 years ago[IPSEC]: Add xfrm_init_state
Herbert Xu [Mon, 20 Jun 2005 20:18:08 +0000 (13:18 -0700)] 
[IPSEC]: Add xfrm_init_state

This patch adds xfrm_init_state which is simply a wrapper that calls
xfrm_get_type and subsequently x->type->init_state.  It also gets rid
of the unused args argument.

Abstracting it out allows us to add common initialisation code, e.g.,
to set family-specific flags.

The add_time setting in xfrm_user.c was deleted because it's already
set by xfrm_state_alloc.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: James Morris <jmorris@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
20 years ago[SCTP] sctp_connectx() API support
Frank Filz [Mon, 20 Jun 2005 20:14:57 +0000 (13:14 -0700)] 
[SCTP] sctp_connectx() API support

Implements sctp_connectx() as defined in the SCTP sockets API draft by
tunneling the request through a setsockopt().

Signed-off-by: Frank Filz <ffilzlnx@us.ibm.com>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
20 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Mon, 20 Jun 2005 18:37:49 +0000 (11:37 -0700)] 
Merge master.kernel.org:/home/rmk/linux-2.6-arm

20 years ago[PATCH] ARM: 2719/1: enable module support in ixp2000 defconfigs by default
Lennert Buytenhek [Mon, 20 Jun 2005 17:51:08 +0000 (18:51 +0100)] 
[PATCH] ARM: 2719/1: enable module support in ixp2000 defconfigs by default

Patch from Lennert Buytenhek

The ixp2000 defconfigs are among the few that do not enable module
support by default.  I keep enabling module support by hand for every
new kernel version, so let's just make this change upstream.

Signed-off-by: Lennert Buytenhek
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: 2716/1: SharpSL Param: Fix typo
Richard Purdie [Mon, 20 Jun 2005 17:51:07 +0000 (18:51 +0100)] 
[PATCH] ARM: 2716/1: SharpSL Param: Fix typo

Patch from Richard Purdie

Fix typo in sharpsl_param.c so it works correctly on collie.

Signed-off-by: Richard Purdie
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: 2701/1: free up ixp2000 timer 4 for the watchdog
Lennert Buytenhek [Mon, 20 Jun 2005 17:51:07 +0000 (18:51 +0100)] 
[PATCH] ARM: 2701/1: free up ixp2000 timer 4 for the watchdog

Patch from Lennert Buytenhek

The IXP2000 has four timers, but if we're on an A-step IXP2800, timer
2 and 3 don't work.  We need two timers for timekeeping (one for the
timer interrupt and one for tracking missed jiffies), so on early
IXP2800s we have no other choice but to use timer 1 and 4 for that,
but on all other IXP2000s we'd rather leave timer 4 free since that's
the only timer we can use for the watchdog.
So, on buggy IXP2000s (i.e. the A-step IXP2800) we use timer 4 for
tracking missed jiffies, and on all all non-buggy IXP2000s (i.e.
everything but the A-step IXP2800) we use timer 2.
On a pre-production IXP2800, this patch should print these messages
on boot:
Enabling IXP2800 erratum #25 workaround
Unable to use IXP2000 watchdog due to IXP2800 erratum #25
On any non-buggy IXP2800 (as well as on IXP2400s) you shouldn't see
anything at all, and the watchdog should be usable again.

Signed-off-by: Lennert Buytenhek
Signed-off-by: Deepak Saxena
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: 2693/1: Add PCI support for Versatile/PB
Catalin Marinas [Mon, 20 Jun 2005 17:51:06 +0000 (18:51 +0100)] 
[PATCH] ARM: 2693/1: Add PCI support for Versatile/PB

Patch from Catalin Marinas

This patch adds PCI support for the Versatile PB926 platform.

Signed-off-by: Colin King
Signed-off-by: Catalin Marinas
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: 2686/2: AAEC-2000 Core support
Bellido Nicolas [Mon, 20 Jun 2005 17:51:05 +0000 (18:51 +0100)] 
[PATCH] ARM: 2686/2: AAEC-2000 Core support

Patch from Bellido Nicolas

Core support for AAEC-2000 based platforms.
This is an updated version of the previous patch, and takes
into account Russell's comments.
AAED-2000 default configuration will follow as soon
as some problems with the bootloader are sorted out...

Signed-off-by: Nicolas Bellido
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: Add iomap support for ARM
Russell King [Mon, 20 Jun 2005 17:44:37 +0000 (18:44 +0100)] 
[PATCH] ARM: Add iomap support for ARM

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: Remove nmi_tick() from Integrator.
Russell King [Mon, 20 Jun 2005 15:57:17 +0000 (16:57 +0100)] 
[PATCH] ARM: Remove nmi_tick() from Integrator.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: Add missed include for dmabounce.c
Russell King [Mon, 20 Jun 2005 15:56:08 +0000 (16:56 +0100)] 
[PATCH] ARM: Add missed include for dmabounce.c

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: Lindent GCC helper functions
Russell King [Mon, 20 Jun 2005 15:45:32 +0000 (16:45 +0100)] 
[PATCH] ARM: Lindent GCC helper functions

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years agoMerge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/paulus/ppc64-2.6
Linus Torvalds [Mon, 20 Jun 2005 15:17:59 +0000 (08:17 -0700)] 
Merge /pub/scm/linux/kernel/git/paulus/ppc64-2.6

20 years ago[PATCH] ARM: Remove gcc type-isms from GCC helper functions
Russell King [Mon, 20 Jun 2005 14:49:59 +0000 (15:49 +0100)] 
[PATCH] ARM: Remove gcc type-isms from GCC helper functions

Convert ugly GCC types to Linux types:

UQImode -> u8
SImode -> s32
USImode -> u32
DImode -> s64
UDImode -> u64
word_type -> int

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years agoMerge with /home/shaggy/git/linus-clean/
Dave Kleikamp [Mon, 20 Jun 2005 13:44:00 +0000 (08:44 -0500)] 
Merge with /home/shaggy/git/linus-clean/

20 years ago[PATCH] ARM: Remove obsolete arch/arm/kernel/arch.c
Russell King [Mon, 20 Jun 2005 11:56:40 +0000 (12:56 +0100)] 
[PATCH] ARM: Remove obsolete arch/arm/kernel/arch.c

This is not used anymore - RiscPC now contains the necessary
supporting code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] initialize TCE tables
John Rose [Mon, 20 Jun 2005 11:43:48 +0000 (21:43 +1000)] 
[PATCH] initialize TCE tables

A fairly recent platform requirement states that the OS must clear the
whole TCE table at setup time, in case firmware left any active
mappings in it.  Without this initialization, dynamic bus removes can
fail.  Firmware rejects these requests if active mappings still exist
for a slot that has been deallocated by the OS.

Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
20 years ago[PATCH] ppc64: use cpu_has_feature macro
Anton Blanchard [Mon, 20 Jun 2005 11:43:15 +0000 (21:43 +1000)] 
[PATCH] ppc64: use cpu_has_feature macro

Use the new cpu_has_feature macros instead of open coding it.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
20 years ago[PATCH] ppc64: quieten RTAS printks
Anton Blanchard [Mon, 20 Jun 2005 11:43:07 +0000 (21:43 +1000)] 
[PATCH] ppc64: quieten RTAS printks

Some rtasd printks were too loud. They would appear on a quiet boot
even though they were only informational.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
20 years ago[PATCH] ARM: Ensure DMA-bounced buffers are properly written to RAM
Russell King [Mon, 20 Jun 2005 11:31:14 +0000 (12:31 +0100)] 
[PATCH] ARM: Ensure DMA-bounced buffers are properly written to RAM

When DMA bounce buffers were unmapped and the data was memcpy'd to
the original buffer, we were not ensuring that the data was written
to RAM.  This means that there was the potential for page cache
pages to have different cache states depending whether they've been
bounced or not.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: Add common CACHE_COLOUR macro
Russell King [Mon, 20 Jun 2005 10:31:09 +0000 (11:31 +0100)] 
[PATCH] ARM: Add common CACHE_COLOUR macro

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years ago[PATCH] ARM: Fix delayed dcache flush for ARMv6 non-aliasing caches
Russell King [Mon, 20 Jun 2005 08:51:03 +0000 (09:51 +0100)] 
[PATCH] ARM: Fix delayed dcache flush for ARMv6 non-aliasing caches

flush_dcache_page() did nothing for these caches, but since they
suffer from I/D cache coherency issues, we need to ensure that data
is written back to RAM.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 years agoMerge 'scsi-fixes' branch of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzi...
Linus Torvalds [Mon, 20 Jun 2005 03:58:13 +0000 (20:58 -0700)] 
Merge 'scsi-fixes' branch of /linux/kernel/git/jgarzik/misc-2.6

20 years agoaic7xxx/aic79xx_osm: revert completely bogus ahd_linux_queue() patch
Jeff Garzik [Mon, 20 Jun 2005 01:50:12 +0000 (21:50 -0400)] 
aic7xxx/aic79xx_osm: revert completely bogus ahd_linux_queue() patch

20 years agofc4/fc: fix warnings and errors related to recent SCSI EH updates
Jeff Garzik [Mon, 20 Jun 2005 01:47:56 +0000 (21:47 -0400)] 
fc4/fc: fix warnings and errors related to recent SCSI EH updates

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

20 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

20 years ago[PATCH] ARM SMP: Messages about CPUs should be prefixed by CPU%u
Russell King [Sun, 19 Jun 2005 18:48:16 +0000 (19:48 +0100)] 
[PATCH] ARM SMP: Messages about CPUs should be prefixed by CPU%u

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
20 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

20 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>
20 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>
20 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>
20 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>
20 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>
20 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>