From fc5f80b152896c1ffded2a91d11dcb08ffcffebb Mon Sep 17 00:00:00 2001 From: Chris Boot Date: Wed, 1 Feb 2012 22:36:02 +0000 Subject: firewire: Move fw_card kref functions into linux/firewire.h When writing a firewire driver that doesn't deal with struct fw_device objects (e.g. it only publishes FireWire units and doesn't subscribe to them), you likely need to keep referenced to struct fw_card objects so that you can send messages to other nodes. This patch moves fw_card_put(), fw_card_get() and fw_card_release() into the public include/linux/firewire.h header instead of drivers/firewire/core.h, and adds EXPORT_SYMBOL_GPL(fw_card_release). The firewire-sbp-target module requires these so it can keep a reference to the fw_card object in order that it can fetch ORBs to execute and read/write related data and status information. Signed-off-by: Chris Boot Acked-by: Stefan Richter Cc: Clemens Ladisch Signed-off-by: Nicholas Bellinger --- drivers/firewire/core-card.c | 1 + drivers/firewire/core.h | 15 --------------- 2 files changed, 1 insertion(+), 15 deletions(-) (limited to 'drivers') diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c index cc595eba7ba9..f5552b362efc 100644 --- a/drivers/firewire/core-card.c +++ b/drivers/firewire/core-card.c @@ -676,6 +676,7 @@ void fw_card_release(struct kref *kref) complete(&card->done); } +EXPORT_SYMBOL_GPL(fw_card_release); void fw_core_remove_card(struct fw_card *card) { diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h index 9047f5547d98..b5a2f6197053 100644 --- a/drivers/firewire/core.h +++ b/drivers/firewire/core.h @@ -120,21 +120,6 @@ int fw_compute_block_crc(__be32 *block); void fw_schedule_bus_reset(struct fw_card *card, bool delayed, bool short_reset); void fw_schedule_bm_work(struct fw_card *card, unsigned long delay); -static inline struct fw_card *fw_card_get(struct fw_card *card) -{ - kref_get(&card->kref); - - return card; -} - -void fw_card_release(struct kref *kref); - -static inline void fw_card_put(struct fw_card *card) -{ - kref_put(&card->kref, fw_card_release); -} - - /* -cdev */ extern const struct file_operations fw_device_ops; -- cgit v1.2.2