From 64d730010a27d46dfde11c8ae50bab59064049fe Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Thu, 7 Dec 2006 23:23:25 +0100 Subject: [PATCH] --- yaml --- r: 43475 b: refs/heads/master c: ec9b7e1044d718723d16390179abc6d4c8d9b0a1 h: refs/heads/master i: 43473: 55e3a36622cb858960a9581eb2bd67a52c07c3c3 43471: 07d299fe6b140c630ddafcd17b7a6863dd567a71 v: v3 --- [refs] | 2 +- trunk/drivers/ieee1394/sbp2.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 19cf39e67f6b..8841c0452694 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1e4f7bc8f8ce07b850a5831d01a6eae83055bb42 +refs/heads/master: ec9b7e1044d718723d16390179abc6d4c8d9b0a1 diff --git a/trunk/drivers/ieee1394/sbp2.c b/trunk/drivers/ieee1394/sbp2.c index ffcd9e41454c..e68b80b7340d 100644 --- a/trunk/drivers/ieee1394/sbp2.c +++ b/trunk/drivers/ieee1394/sbp2.c @@ -458,17 +458,20 @@ static void sbp2util_notify_fetch_agent(struct sbp2_lu *lu, u64 offset, static void sbp2util_write_orb_pointer(struct work_struct *work) { + struct sbp2_lu *lu = container_of(work, struct sbp2_lu, protocol_work); quadlet_t data[2]; - data[0] = ORB_SET_NODE_ID((container_of(work, struct sbp2_lu, protocol_work))->hi->host->node_id); - data[1] = (container_of(work, struct sbp2_lu, protocol_work))->last_orb_dma; + data[0] = ORB_SET_NODE_ID(lu->hi->host->node_id); + data[1] = lu->last_orb_dma; sbp2util_cpu_to_be32_buffer(data, 8); - sbp2util_notify_fetch_agent(container_of(work, struct sbp2_lu, protocol_work), SBP2_ORB_POINTER_OFFSET, data, 8); + sbp2util_notify_fetch_agent(lu, SBP2_ORB_POINTER_OFFSET, data, 8); } static void sbp2util_write_doorbell(struct work_struct *work) { - sbp2util_notify_fetch_agent(container_of(work, struct sbp2_lu, protocol_work), SBP2_DOORBELL_OFFSET, NULL, 4); + struct sbp2_lu *lu = container_of(work, struct sbp2_lu, protocol_work); + + sbp2util_notify_fetch_agent(lu, SBP2_DOORBELL_OFFSET, NULL, 4); } static int sbp2util_create_command_orb_pool(struct sbp2_lu *lu) @@ -1399,7 +1402,7 @@ static int sbp2_agent_reset(struct sbp2_lu *lu, int wait) int retval; unsigned long flags; - /* cancel_delayed_work(&lu->protocol_work); */ + /* flush lu->protocol_work */ if (wait) flush_scheduled_work(); @@ -1682,8 +1685,7 @@ static void sbp2_link_orb_command(struct sbp2_lu *lu, scsi_block_requests(lu->shost); PREPARE_WORK(&lu->protocol_work, last_orb ? sbp2util_write_doorbell: - sbp2util_write_orb_pointer - /* */); + sbp2util_write_orb_pointer); schedule_work(&lu->protocol_work); } }