From 7109c0f6e3c320d261fea2fabf9fa5468a9dd19f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 3 Dec 2007 21:16:20 -0700 Subject: [PATCH] --- yaml --- r: 75721 b: refs/heads/master c: a045171f875cd61f690981a78ab98fbd137c938b h: refs/heads/master i: 75719: d261e836704c37573f15b992b9d0f2f4a9d601d1 v: v3 --- [refs] | 2 +- trunk/drivers/misc/ibmasm/command.c | 12 +++--------- trunk/drivers/misc/ibmasm/ibmasm.h | 10 ++++++---- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index b1150d2ff589..7fdb8aa0b22a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d7b37889650bb316f5c4ad4b0569ba897120d70d +refs/heads/master: a045171f875cd61f690981a78ab98fbd137c938b diff --git a/trunk/drivers/misc/ibmasm/command.c b/trunk/drivers/misc/ibmasm/command.c index 6497872df524..1a0e7978226a 100644 --- a/trunk/drivers/misc/ibmasm/command.c +++ b/trunk/drivers/misc/ibmasm/command.c @@ -26,11 +26,6 @@ #include "lowlevel.h" static void exec_next_command(struct service_processor *sp); -static void free_command(struct kobject *kobj); - -static struct kobj_type ibmasm_cmd_kobj_type = { - .release = free_command, -}; static atomic_t command_count = ATOMIC_INIT(0); @@ -53,8 +48,7 @@ struct command *ibmasm_new_command(struct service_processor *sp, size_t buffer_s } cmd->buffer_size = buffer_size; - kobject_init(&cmd->kobj); - cmd->kobj.ktype = &ibmasm_cmd_kobj_type; + kref_init(&cmd->kref); cmd->lock = &sp->lock; cmd->status = IBMASM_CMD_PENDING; @@ -67,9 +61,9 @@ struct command *ibmasm_new_command(struct service_processor *sp, size_t buffer_s return cmd; } -static void free_command(struct kobject *kobj) +void ibmasm_free_command(struct kref *kref) { - struct command *cmd = to_command(kobj); + struct command *cmd = to_command(kref); list_del(&cmd->queue_node); atomic_dec(&command_count); diff --git a/trunk/drivers/misc/ibmasm/ibmasm.h b/trunk/drivers/misc/ibmasm/ibmasm.h index de860bc6d3f5..4d8a4e248b34 100644 --- a/trunk/drivers/misc/ibmasm/ibmasm.h +++ b/trunk/drivers/misc/ibmasm/ibmasm.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -92,24 +93,25 @@ struct command { unsigned char *buffer; size_t buffer_size; int status; - struct kobject kobj; + struct kref kref; spinlock_t *lock; }; -#define to_command(c) container_of(c, struct command, kobj) +#define to_command(c) container_of(c, struct command, kref) +void ibmasm_free_command(struct kref *kref); static inline void command_put(struct command *cmd) { unsigned long flags; spinlock_t *lock = cmd->lock; spin_lock_irqsave(lock, flags); - kobject_put(&cmd->kobj); + kref_put(&cmd->kref, ibmasm_free_command); spin_unlock_irqrestore(lock, flags); } static inline void command_get(struct command *cmd) { - kobject_get(&cmd->kobj); + kref_get(&cmd->kref); }