Commit 75392adf authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://bart.bkbits.net/ide-2.6

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents 44cae784 f7e51939
...@@ -600,7 +600,9 @@ int fastcall do_signal(struct pt_regs *regs, sigset_t *oldset) ...@@ -600,7 +600,9 @@ int fastcall do_signal(struct pt_regs *regs, sigset_t *oldset)
* have been cleared if the watchpoint triggered * have been cleared if the watchpoint triggered
* inside the kernel. * inside the kernel.
*/ */
__asm__("movl %0,%%db7" : : "r" (current->thread.debugreg[7])); if (unlikely(current->thread.debugreg[7])) {
__asm__("movl %0,%%db7" : : "r" (current->thread.debugreg[7]));
}
/* Whee! Actually deliver the signal. */ /* Whee! Actually deliver the signal. */
handle_signal(signr, &info, &ka, oldset, regs); handle_signal(signr, &info, &ka, oldset, regs);
......
...@@ -742,13 +742,13 @@ static unsigned int ata_scsi_rbuf_get(struct scsi_cmnd *cmd, u8 **buf_out) ...@@ -742,13 +742,13 @@ static unsigned int ata_scsi_rbuf_get(struct scsi_cmnd *cmd, u8 **buf_out)
* spin_lock_irqsave(host_set lock) * spin_lock_irqsave(host_set lock)
*/ */
static inline void ata_scsi_rbuf_put(struct scsi_cmnd *cmd) static inline void ata_scsi_rbuf_put(struct scsi_cmnd *cmd, u8 *buf)
{ {
if (cmd->use_sg) { if (cmd->use_sg) {
struct scatterlist *sg; struct scatterlist *sg;
sg = (struct scatterlist *) cmd->request_buffer; sg = (struct scatterlist *) cmd->request_buffer;
kunmap_atomic(sg->page, KM_USER0); kunmap_atomic(buf - sg->offset, KM_USER0);
} }
} }
...@@ -778,7 +778,7 @@ void ata_scsi_rbuf_fill(struct ata_scsi_args *args, ...@@ -778,7 +778,7 @@ void ata_scsi_rbuf_fill(struct ata_scsi_args *args,
buflen = ata_scsi_rbuf_get(cmd, &rbuf); buflen = ata_scsi_rbuf_get(cmd, &rbuf);
memset(rbuf, 0, buflen); memset(rbuf, 0, buflen);
rc = actor(args, rbuf, buflen); rc = actor(args, rbuf, buflen);
ata_scsi_rbuf_put(cmd); ata_scsi_rbuf_put(cmd, rbuf);
if (rc) if (rc)
ata_bad_cdb(cmd, args->done); ata_bad_cdb(cmd, args->done);
...@@ -1264,7 +1264,7 @@ static int atapi_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat) ...@@ -1264,7 +1264,7 @@ static int atapi_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat)
buflen = ata_scsi_rbuf_get(cmd, &buf); buflen = ata_scsi_rbuf_get(cmd, &buf);
buf[2] = 0x5; buf[2] = 0x5;
buf[3] = (buf[3] & 0xf0) | 2; buf[3] = (buf[3] & 0xf0) | 2;
ata_scsi_rbuf_put(cmd); ata_scsi_rbuf_put(cmd, buf);
} }
cmd->result = SAM_STAT_GOOD; cmd->result = SAM_STAT_GOOD;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment