Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1dc3bea7 authored by Stefan Richter's avatar Stefan Richter
Browse files

firewire: refactor fw_unit reference counting



Add wrappers for getting and putting a unit.
Remove some line breaks.

Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: default avatarJarod Wilson <jwilson@redhat.com>
parent 7c1fca33
Loading
Loading
Loading
Loading
+17 −10
Original line number Original line Diff line number Diff line
@@ -64,28 +64,24 @@ struct fw_device {
	struct fw_attribute_group attribute_group;
	struct fw_attribute_group attribute_group;
};
};


static inline struct fw_device *
static inline struct fw_device *fw_device(struct device *dev)
fw_device(struct device *dev)
{
{
	return container_of(dev, struct fw_device, device);
	return container_of(dev, struct fw_device, device);
}
}


static inline int
static inline int fw_device_is_shutdown(struct fw_device *device)
fw_device_is_shutdown(struct fw_device *device)
{
{
	return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN;
	return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN;
}
}


static inline struct fw_device *
static inline struct fw_device *fw_device_get(struct fw_device *device)
fw_device_get(struct fw_device *device)
{
{
	get_device(&device->device);
	get_device(&device->device);


	return device;
	return device;
}
}


static inline void
static inline void fw_device_put(struct fw_device *device)
fw_device_put(struct fw_device *device)
{
{
	put_device(&device->device);
	put_device(&device->device);
}
}
@@ -104,12 +100,23 @@ struct fw_unit {
	struct fw_attribute_group attribute_group;
	struct fw_attribute_group attribute_group;
};
};


static inline struct fw_unit *
static inline struct fw_unit *fw_unit(struct device *dev)
fw_unit(struct device *dev)
{
{
	return container_of(dev, struct fw_unit, device);
	return container_of(dev, struct fw_unit, device);
}
}


static inline struct fw_unit *fw_unit_get(struct fw_unit *unit)
{
	get_device(&unit->device);

	return unit;
}

static inline void fw_unit_put(struct fw_unit *unit)
{
	put_device(&unit->device);
}

#define CSR_OFFSET	0x40
#define CSR_OFFSET	0x40
#define CSR_LEAF	0x80
#define CSR_LEAF	0x80
#define CSR_DIRECTORY	0xc0
#define CSR_DIRECTORY	0xc0
+2 −2
Original line number Original line Diff line number Diff line
@@ -796,7 +796,7 @@ static void sbp2_release_target(struct kref *kref)
	scsi_remove_host(shost);
	scsi_remove_host(shost);
	fw_notify("released %s\n", tgt->bus_id);
	fw_notify("released %s\n", tgt->bus_id);


	put_device(&tgt->unit->device);
	fw_unit_put(tgt->unit);
	scsi_host_put(shost);
	scsi_host_put(shost);
	fw_device_put(device);
	fw_device_put(device);
}
}
@@ -1119,7 +1119,7 @@ static int sbp2_probe(struct device *dev)
		goto fail_shost_put;
		goto fail_shost_put;


	fw_device_get(device);
	fw_device_get(device);
	get_device(&unit->device);
	fw_unit_get(unit);


	/* Initialize to values that won't match anything in our table. */
	/* Initialize to values that won't match anything in our table. */
	firmware_revision = 0xff000000;
	firmware_revision = 0xff000000;