Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 43450
b: refs/heads/master
c: d19c776
h: refs/heads/master
v: v3
  • Loading branch information
Stefan Richter committed Dec 7, 2006
1 parent 00522d4 commit b01b6b8
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 424a9642b8b436bba04ad5d2d254b43757166cdf
refs/heads/master: d19c77641412a257fa651662b96fec826e9e7e60
26 changes: 11 additions & 15 deletions trunk/drivers/ieee1394/sbp2.c
Original file line number Diff line number Diff line change
Expand Up @@ -462,23 +462,18 @@ static void sbp2util_notify_fetch_agent(struct scsi_id_instance_data *scsi_id,

static void sbp2util_write_orb_pointer(struct work_struct *work)
{
struct scsi_id_instance_data *scsi_id =
container_of(work, struct scsi_id_instance_data,
protocol_work.work);
quadlet_t data[2];

data[0] = ORB_SET_NODE_ID(scsi_id->hi->host->node_id);
data[1] = scsi_id->last_orb_dma;
data[0] = ORB_SET_NODE_ID(
(container_of(work, struct scsi_id_instance_data, protocol_work))->hi->host->node_id);
data[1] = (container_of(work, struct scsi_id_instance_data, protocol_work))->last_orb_dma;
sbp2util_cpu_to_be32_buffer(data, 8);
sbp2util_notify_fetch_agent(scsi_id, SBP2_ORB_POINTER_OFFSET, data, 8);
sbp2util_notify_fetch_agent(container_of(work, struct scsi_id_instance_data, protocol_work), SBP2_ORB_POINTER_OFFSET, data, 8);
}

static void sbp2util_write_doorbell(struct work_struct *work)
{
struct scsi_id_instance_data *scsi_id =
container_of(work, struct scsi_id_instance_data,
protocol_work.work);
sbp2util_notify_fetch_agent(scsi_id, SBP2_DOORBELL_OFFSET, NULL, 4);
sbp2util_notify_fetch_agent(container_of(work, struct scsi_id_instance_data, protocol_work), SBP2_DOORBELL_OFFSET, NULL, 4);
}

/*
Expand Down Expand Up @@ -795,7 +790,7 @@ static struct scsi_id_instance_data *sbp2_alloc_device(struct unit_directory *ud
INIT_LIST_HEAD(&scsi_id->scsi_list);
spin_lock_init(&scsi_id->sbp2_command_orb_lock);
atomic_set(&scsi_id->state, SBP2LU_STATE_RUNNING);
INIT_DELAYED_WORK(&scsi_id->protocol_work, NULL);
INIT_WORK(&scsi_id->protocol_work, NULL);

ud->device.driver_data = scsi_id;

Expand Down Expand Up @@ -1578,7 +1573,7 @@ static int sbp2_agent_reset(struct scsi_id_instance_data *scsi_id, int wait)
int retval;
unsigned long flags;

cancel_delayed_work(&scsi_id->protocol_work);
/* cancel_delayed_work(&scsi_id->protocol_work); */
if (wait)
flush_scheduled_work();

Expand Down Expand Up @@ -1889,10 +1884,11 @@ static void sbp2_link_orb_command(struct scsi_id_instance_data *scsi_id,
* We do not accept new commands until the job is over.
*/
scsi_block_requests(scsi_id->scsi_host);
PREPARE_DELAYED_WORK(&scsi_id->protocol_work,
PREPARE_WORK(&scsi_id->protocol_work,
last_orb ? sbp2util_write_doorbell:
sbp2util_write_orb_pointer);
schedule_delayed_work(&scsi_id->protocol_work, 0);
sbp2util_write_orb_pointer
/* */);
schedule_work(&scsi_id->protocol_work);
}
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/ieee1394/sbp2.h
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ struct scsi_id_instance_data {
unsigned workarounds;

atomic_t state;
struct delayed_work protocol_work;
struct work_struct protocol_work;
};

/* For use in scsi_id_instance_data.state */
Expand Down

0 comments on commit b01b6b8

Please sign in to comment.