firewire: Use atomic_t's for serial numbers.
authorKristian Høgsberg <krh@redhat.com>
Tue, 6 Feb 2007 19:49:38 +0000 (14:49 -0500)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Fri, 9 Mar 2007 21:02:54 +0000 (22:02 +0100)
Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Use atomic_inc_return.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/fw-card.c
drivers/firewire/fw-device.c

index f785b1005284e00de87aa94bc8ef829d1a73507c..3f8661a52acce16af5e49e1876325d245051ef3e 100644 (file)
@@ -367,9 +367,9 @@ void
 fw_card_initialize(struct fw_card *card, const struct fw_card_driver *driver,
                   struct device *device)
 {
-       static int index;
+       static atomic_t index = ATOMIC_INIT(-1);
 
-       card->index = index++;
+       card->index = atomic_inc_return(&index);
        card->driver = driver;
        card->device = device;
        card->current_tlabel = 0;
index db7556c48760be0b8020bcbc13c2ba826b058c8b..df2e9296ad5bf4636c9ea3bb29737cbd8e340175 100644 (file)
@@ -434,7 +434,7 @@ static void fw_device_shutdown(struct work_struct *work)
 
 static void fw_device_init(struct work_struct *work)
 {
-       static int serial;
+       static atomic_t serial = ATOMIC_INIT(-1);
        struct fw_device *device =
                container_of(work, struct fw_device, work.work);
 
@@ -460,7 +460,7 @@ static void fw_device_init(struct work_struct *work)
        device->device.release = fw_device_release;
        device->device.parent = device->card->device;
        snprintf(device->device.bus_id, sizeof device->device.bus_id,
-                "fw%d", serial++);
+                "fw%d", atomic_inc_return(&serial));
 
        if (alloc_chrdev_region(&device->device.devt, 0, 1, "fw")) {
                fw_error("Failed to register char device region.\n");