All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <petkovbb@googlemail.com>
To: bzolnier@gmail.com
Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
	Borislav Petkov <petkovbb@gmail.com>
Subject: [PATCH 9/9] ide-atapi: remove pc arg to drive->pc_update_buffers
Date: Tue, 16 Dec 2008 08:36:09 +0100	[thread overview]
Message-ID: <1229412969-3552-10-git-send-email-petkovbb@gmail.com> (raw)
In-Reply-To: <1229412969-3552-1-git-send-email-petkovbb@gmail.com>

... however, since this is called with different pc's in ide-tape also, use a
temporary int arg to differentiate between the call sites.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
---
 drivers/ide/ide-atapi.c  |    2 +-
 drivers/ide/ide-floppy.c |    4 ++--
 drivers/ide/ide-tape.c   |   15 ++++++++++++---
 include/linux/ide.h      |    2 +-
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index 160d085..e83f5e3 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -339,7 +339,7 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
 		} else {
 			rq->data_len = drive->pc_req_xfer;
 			if (drive->pc_update_buffers)
-				drive->pc_update_buffers(drive, pc);
+				drive->pc_update_buffers(drive, 0);
 		}
 		debug_log("%s: DMA finished\n", drive->name);
 	}
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 3d6345e..6dd3e8b 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -105,9 +105,9 @@ static int ide_floppy_end_request(ide_drive_t *drive, int uptodate, int nsecs)
 	return 0;
 }
 
-static void idefloppy_update_buffers(ide_drive_t *drive,
-				struct ide_atapi_pc *pc)
+static void idefloppy_update_buffers(ide_drive_t *drive, unsigned int which_pc)
 {
+	struct ide_atapi_pc *pc = drive->pc;
 	struct request *rq = pc->rq;
 	struct bio *bio = rq->bio;
 
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 015b417..94fc3e6 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -370,13 +370,22 @@ static void idetape_output_buffers(ide_drive_t *drive, unsigned int bcount)
 	}
 }
 
-static void idetape_update_buffers(ide_drive_t *drive, struct ide_atapi_pc *pc)
+static void idetape_update_buffers(ide_drive_t *drive, unsigned int which_pc)
 {
-	struct idetape_bh *bh = pc->bh;
+	struct idetape_bh *bh;
+	struct ide_atapi_pc *pc;
+	idetape_tape_t *tape = drive->driver_data;
 	struct request *rq = drive->hwif->hwgroup->rq;
 	int count;
 	unsigned int bcount = rq->data_len;
 
+	if (which_pc)
+		pc = tape->failed_pc;
+	else
+		pc = drive->pc;
+
+	bh = pc->bh;
+
 	if (rq_data_dir(rq) == WRITE)
 		return;
 	while (bcount) {
@@ -416,7 +425,7 @@ static void idetape_analyze_error(ide_drive_t *drive, u8 *sense)
 		rq->data_len = drive->pc_req_xfer -
 			tape->blk_size *
 			get_unaligned_be32(&sense[3]);
-		idetape_update_buffers(drive, pc);
+		idetape_update_buffers(drive, 1);
 	}
 
 	/*
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 291600c..ac4d30f 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -663,7 +663,7 @@ struct ide_drive_s {
 	/* callback for packet commands */
 	void (*pc_callback)(struct ide_drive_s *, int);
 
-	void (*pc_update_buffers)(struct ide_drive_s *, struct ide_atapi_pc *);
+	void (*pc_update_buffers)(struct ide_drive_s *, unsigned int);
 	int  (*pc_io_buffers)(struct ide_drive_s *, unsigned int, int);
 
 	unsigned long atapi_flags;
-- 
1.6.0.4


WARNING: multiple messages have this Message-ID (diff)
From: Borislav Petkov <petkovbb@googlemail.com>
To: <bzolnier@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
	Borislav Petkov <petkovbb@gmail.com>
Subject: [PATCH 9/9] ide-atapi: remove pc arg to drive->pc_update_buffers
Date: Tue, 16 Dec 2008 08:36:09 +0100	[thread overview]
Message-ID: <1229412969-3552-10-git-send-email-petkovbb@gmail.com> (raw)
In-Reply-To: <1229412969-3552-1-git-send-email-petkovbb@gmail.com>

... however, since this is called with different pc's in ide-tape also, use a
temporary int arg to differentiate between the call sites.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
---
 drivers/ide/ide-atapi.c  |    2 +-
 drivers/ide/ide-floppy.c |    4 ++--
 drivers/ide/ide-tape.c   |   15 ++++++++++++---
 include/linux/ide.h      |    2 +-
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index 160d085..e83f5e3 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -339,7 +339,7 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
 		} else {
 			rq->data_len = drive->pc_req_xfer;
 			if (drive->pc_update_buffers)
-				drive->pc_update_buffers(drive, pc);
+				drive->pc_update_buffers(drive, 0);
 		}
 		debug_log("%s: DMA finished\n", drive->name);
 	}
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 3d6345e..6dd3e8b 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -105,9 +105,9 @@ static int ide_floppy_end_request(ide_drive_t *drive, int uptodate, int nsecs)
 	return 0;
 }
 
-static void idefloppy_update_buffers(ide_drive_t *drive,
-				struct ide_atapi_pc *pc)
+static void idefloppy_update_buffers(ide_drive_t *drive, unsigned int which_pc)
 {
+	struct ide_atapi_pc *pc = drive->pc;
 	struct request *rq = pc->rq;
 	struct bio *bio = rq->bio;
 
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 015b417..94fc3e6 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -370,13 +370,22 @@ static void idetape_output_buffers(ide_drive_t *drive, unsigned int bcount)
 	}
 }
 
-static void idetape_update_buffers(ide_drive_t *drive, struct ide_atapi_pc *pc)
+static void idetape_update_buffers(ide_drive_t *drive, unsigned int which_pc)
 {
-	struct idetape_bh *bh = pc->bh;
+	struct idetape_bh *bh;
+	struct ide_atapi_pc *pc;
+	idetape_tape_t *tape = drive->driver_data;
 	struct request *rq = drive->hwif->hwgroup->rq;
 	int count;
 	unsigned int bcount = rq->data_len;
 
+	if (which_pc)
+		pc = tape->failed_pc;
+	else
+		pc = drive->pc;
+
+	bh = pc->bh;
+
 	if (rq_data_dir(rq) == WRITE)
 		return;
 	while (bcount) {
@@ -416,7 +425,7 @@ static void idetape_analyze_error(ide_drive_t *drive, u8 *sense)
 		rq->data_len = drive->pc_req_xfer -
 			tape->blk_size *
 			get_unaligned_be32(&sense[3]);
-		idetape_update_buffers(drive, pc);
+		idetape_update_buffers(drive, 1);
 	}
 
 	/*
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 291600c..ac4d30f 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -663,7 +663,7 @@ struct ide_drive_s {
 	/* callback for packet commands */
 	void (*pc_callback)(struct ide_drive_s *, int);
 
-	void (*pc_update_buffers)(struct ide_drive_s *, struct ide_atapi_pc *);
+	void (*pc_update_buffers)(struct ide_drive_s *, unsigned int);
 	int  (*pc_io_buffers)(struct ide_drive_s *, unsigned int, int);
 
 	unsigned long atapi_flags;
-- 
1.6.0.4


  parent reply	other threads:[~2008-12-16  7:36 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-16  7:36 [PATCH 0/9] ide-atapi: remove ide_atapi_pc from the irq handler Borislav Petkov
2008-12-16  7:36 ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 1/9] ide-atapi: remove PC_FLAG_WRITING atapi flag Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 2/9] ide-atapi: replace pc->flags with drive->pc_flags Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 3/9] ide-atapi: replace pc->buf with rq->data in the irq handler Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 4/9] ide-atapi: replace pc->req_xfer with drive->pc_req_xfer Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 5/9] ide-atapi: replace pc->buf_size with drive->pc_buf_size Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 6/9] ide-atapi: remove pc arg to drive->pc_io_buffers Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 7/9] ide-atapi: use rq pointer directly instead of pc->rq deref Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` [PATCH 8/9] ide-atapi: replace pc->error with drive->pc_error Borislav Petkov
2008-12-16  7:36   ` Borislav Petkov
2008-12-16  7:36 ` Borislav Petkov [this message]
2008-12-16  7:36   ` [PATCH 9/9] ide-atapi: remove pc arg to drive->pc_update_buffers Borislav Petkov
2008-12-16 20:35 ` [PATCH 0/9] ide-atapi: remove ide_atapi_pc from the irq handler Bartlomiej Zolnierkiewicz
2008-12-17  7:25   ` Borislav Petkov
2008-12-17 16:45     ` Bartlomiej Zolnierkiewicz
2008-12-17 19:29       ` Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1229412969-3552-10-git-send-email-petkovbb@gmail.com \
    --to=petkovbb@googlemail.com \
    --cc=bzolnier@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=petkovbb@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.