From ec2f9be18f3342ee92bb1399afc290b29e9c7a40 Mon Sep 17 00:00:00 2001 From: Markus Lidel Date: Mon, 18 Oct 2004 18:18:19 -0700 Subject: [PATCH] [PATCH] i2o: new functions to convert messages to a virtual address - added new function i2o_msg_in_to_virt and i2o_msg_out_to_virt, to turn an I2O message to a virtual address (original from Alan Cox) - replaced readl with le32_to_cpu where it is not necessary (original from Alan Cox) Signed-off-by: Markus Lidel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/message/i2o/exec-osm.c | 10 +++++----- drivers/message/i2o/i2o_block.c | 27 ++++++++++++++------------- drivers/message/i2o/i2o_scsi.c | 18 +++++++++--------- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/drivers/message/i2o/exec-osm.c b/drivers/message/i2o/exec-osm.c index 117f261064912..ab60b49b844a1 100644 --- a/drivers/message/i2o/exec-osm.c +++ b/drivers/message/i2o/exec-osm.c @@ -322,13 +322,13 @@ static void i2o_exec_lct_modified(struct i2o_controller *c) static int i2o_exec_reply(struct i2o_controller *c, u32 m, struct i2o_message *msg) { - if (readl(&msg->u.head[0]) & MSG_FAIL) { // Fail bit is set + if (le32_to_cpu(&msg->u.head[0]) & MSG_FAIL) { // Fail bit is set struct i2o_message *pmsg; /* preserved message */ u32 pm; - pm = readl(&msg->body[3]); + pm = le32_to_cpu(&msg->body[3]); - pmsg = c->in_queue.virt + pm; + pmsg = i2o_msg_in_to_virt(c, pm); i2o_report_status(KERN_INFO, "i2o_core", msg); @@ -339,10 +339,10 @@ static int i2o_exec_reply(struct i2o_controller *c, u32 m, return -1; } - if (readl(&msg->u.s.tcntxt) & 0x80000000) + if (le32_to_cpu(&msg->u.s.tcntxt) & 0x80000000) return i2o_msg_post_wait_complete(c, m, msg); - if ((readl(&msg->u.head[1]) >> 24) == I2O_CMD_LCT_NOTIFY) { + if ((le32_to_cpu(&msg->u.head[1]) >> 24) == I2O_CMD_LCT_NOTIFY) { struct work_struct *work; pr_debug("%s: LCT notify received\n", c->name); diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c index a521b21e6887f..8bdeea40234b5 100644 --- a/drivers/message/i2o/i2o_block.c +++ b/drivers/message/i2o/i2o_block.c @@ -416,7 +416,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, unsigned long flags; /* FAILed message */ - if (unlikely(readl(&msg->u.head[0]) & (1 << 13))) { + if (unlikely(le32_to_cpu(&msg->u.head[0]) & (1 << 13))) { struct i2o_message *pmsg; u32 pm; @@ -430,10 +430,10 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, * better be on the safe side since no one really follows * the spec to the book :) */ - pm = readl(&msg->body[3]); - pmsg = c->in_queue.virt + pm; + pm = le32_to_cpu(&msg->body[3]); + pmsg = i2o_msg_in_to_virt(c, pm); - req = i2o_cntxt_list_get(c, readl(&pmsg->u.s.tcntxt)); + req = i2o_cntxt_list_get(c, le32_to_cpu(&pmsg->u.s.tcntxt)); if (unlikely(!req)) { printk(KERN_ERR "block-osm: NULL reply received!\n"); return -1; @@ -448,7 +448,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, spin_lock_irqsave(q->queue_lock, flags); while (end_that_request_chunk(req, !req->errors, - readl(&pmsg->body[1]))) ; + le32_to_cpu(&pmsg->body[1]))) ; end_that_request_last(req); dev->open_queue_depth--; @@ -463,7 +463,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, return -1; } - req = i2o_cntxt_list_get(c, readl(&msg->u.s.tcntxt)); + req = i2o_cntxt_list_get(c, le32_to_cpu(&msg->u.s.tcntxt)); if (unlikely(!req)) { printk(KERN_ERR "block-osm: NULL reply received!\n"); return -1; @@ -486,7 +486,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, "I2O Block: Data transfer to deleted device!\n"); spin_lock_irqsave(q->queue_lock, flags); while (end_that_request_chunk - (req, !req->errors, readl(&msg->body[1]))) ; + (req, !req->errors, le32_to_cpu(&msg->body[1]))) ; end_that_request_last(req); dev->open_queue_depth--; @@ -502,7 +502,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, * request in the context. */ - st = readl(&msg->body[0]) >> 24; + st = le32_to_cpu(&msg->body[0]) >> 24; if (st != 0) { int err; @@ -523,7 +523,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, "Volume has changed, waiting for acknowledgement" }; - err = readl(&msg->body[0]) & 0xffff; + err = le32_to_cpu(&msg->body[0]) & 0xffff; /* * Device not ready means two things. One is that the @@ -538,16 +538,17 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m, */ printk(KERN_ERR "/dev/%s error: %s", dev->gd->disk_name, - bsa_errors[readl(&msg->body[0]) & 0xffff]); - if (readl(&msg->body[0]) & 0x00ff0000) + bsa_errors[le32_to_cpu(&msg->body[0]) & 0xffff]); + if (le32_to_cpu(&msg->body[0]) & 0x00ff0000) printk(KERN_ERR " - DDM attempted %d retries", - (readl(&msg->body[0]) >> 16) & 0x00ff); + (le32_to_cpu(&msg->body[0]) >> 16) & 0x00ff); printk(KERN_ERR ".\n"); req->errors++; } else req->errors = 0; - if (!end_that_request_chunk(req, !req->errors, readl(&msg->body[1]))) { + if (!end_that_request_chunk + (req, !req->errors, le32_to_cpu(&msg->body[1]))) { add_disk_randomness(req->rq_disk); spin_lock_irqsave(q->queue_lock, flags); diff --git a/drivers/message/i2o/i2o_scsi.c b/drivers/message/i2o/i2o_scsi.c index 4ea1b269055d9..edfb818042324 100644 --- a/drivers/message/i2o/i2o_scsi.c +++ b/drivers/message/i2o/i2o_scsi.c @@ -296,15 +296,15 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m, struct device *dev; u8 as, ds, st; - cmd = i2o_cntxt_list_get(c, readl(&msg->u.s.tcntxt)); + cmd = i2o_cntxt_list_get(c, le32_to_cpu(&msg->u.s.tcntxt)); if (msg->u.head[0] & (1 << 13)) { struct i2o_message *pmsg; /* preserved message */ u32 pm; - pm = readl(&msg->body[3]); + pm = le32_to_cpu(&msg->body[3]); - pmsg = c->in_queue.virt + pm; + pmsg = i2o_msg_in_to_virt(c, pm); printk(KERN_ERR "IOP fail.\n"); printk(KERN_ERR "From %d To %d Cmd %d.\n", @@ -339,9 +339,9 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m, * Low byte is device status, next is adapter status, * (then one byte reserved), then request status. */ - ds = (u8) readl(&msg->body[0]); - as = (u8) (readl(&msg->body[0]) >> 8); - st = (u8) (readl(&msg->body[0]) >> 24); + ds = (u8) le32_to_cpu(&msg->body[0]); + as = (u8) (le32_to_cpu(&msg->body[0]) >> 8); + st = (u8) (le32_to_cpu(&msg->body[0]) >> 24); /* * Is this a control request coming back - eg an abort ? @@ -350,7 +350,7 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m, if (!cmd) { if (st) printk(KERN_WARNING "SCSI abort: %08X", - readl(&msg->body[0])); + le32_to_cpu(&msg->body[0])); printk(KERN_INFO "SCSI abort completed.\n"); return -EFAULT; } @@ -363,7 +363,7 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m, switch (st) { case 0x06: - count = readl(&msg->body[1]); + count = le32_to_cpu(&msg->body[1]); if (count < cmd->underflow) { int i; printk(KERN_ERR "SCSI: underflow 0x%08X 0x%08X" @@ -378,7 +378,7 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m, break; default: - error = readl(&msg->body[0]); + error = le32_to_cpu(&msg->body[0]); printk(KERN_ERR "scsi-osm: SCSI error %08x\n", error); -- 2.53.0