From: Jeff Garzik <jeff@garzik.org>
To: Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-ide@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: [git patches] libata fixes
Date: Fri, 17 Apr 2009 19:07:49 -0400 [thread overview]
Message-ID: <20090417230749.GA24506@havoc.gtf.org> (raw)
I accidentally pulled the trigger too soon on Alan's 32-bit PIO ioctl
patch, leading to build breakage. This fixes that, plus some other
minor fixes.
Please pull from 'upstream-linus' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git upstream-linus
to receive the following updates:
drivers/ata/pata_legacy.c | 13 ++++----
drivers/ata/pata_via.c | 74 ++++++++++++++++++++++++++++++++++++++++----
drivers/ata/sata_mv.c | 58 +++++++++++++++++++++++++++++------
3 files changed, 122 insertions(+), 23 deletions(-)
Alan Cox (1):
pata_via: Cache and rewrite the device bit
Mark Lord (2):
sata_mv: tidy up qc->tf usage in qc_prep() functions
sata_mv: workaround for multi_count errata sata24
Zhenwen Xu (1):
[libata] fix build error on drivers/ata/pata_legacy.c
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
index 6f985be..f72c6c5 100644
--- a/drivers/ata/pata_legacy.c
+++ b/drivers/ata/pata_legacy.c
@@ -285,10 +285,11 @@ static unsigned int pdc_data_xfer_vlb(struct ata_device *dev,
unsigned char *buf, unsigned int buflen, int rw)
{
int slop = buflen & 3;
+ struct ata_port *ap = dev->link->ap;
+
/* 32bit I/O capable *and* we need to write a whole number of dwords */
if (ata_id_has_dword_io(dev->id) && (slop == 0 || slop == 3)
&& (ap->pflags & ATA_PFLAG_PIO32)) {
- struct ata_port *ap = dev->link->ap;
unsigned long flags;
local_irq_save(flags);
@@ -866,7 +867,7 @@ static struct legacy_controller controllers[] = {
0, 0, NULL },
{"PDC20230", &pdc20230_port_ops, 0x7,
ATA_FLAG_NO_IORDY,
- ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32_CHANGE, NULL },
+ ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, NULL },
{"HT6560A", &ht6560a_port_ops, 0x07,
ATA_FLAG_NO_IORDY, 0, NULL },
{"HT6560B", &ht6560b_port_ops, 0x1F,
@@ -877,13 +878,13 @@ static struct legacy_controller controllers[] = {
0, 0, NULL },
{"QDI6500", &qdi6500_port_ops, 0x07,
ATA_FLAG_NO_IORDY,
- ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32_CHANGE, qdi_port },
+ ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
{"QDI6580", &qdi6580_port_ops, 0x1F,
- 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32_CHANGE, qdi_port },
+ 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
{"QDI6580DP", &qdi6580dp_port_ops, 0x1F,
- 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32_CHANGE, qdi_port },
+ 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
{"W83759A", &winbond_port_ops, 0x1F,
- 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32_CHANGE,
+ 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE,
winbond_port }
};
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index b08e6e0..45657ca 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -62,7 +62,7 @@
#include <linux/dmi.h>
#define DRV_NAME "pata_via"
-#define DRV_VERSION "0.3.3"
+#define DRV_VERSION "0.3.4"
/*
* The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx
@@ -136,6 +136,9 @@ static const struct via_isa_bridge {
{ NULL }
};
+struct via_port {
+ u8 cached_device;
+};
/*
* Cable special cases
@@ -346,14 +349,70 @@ static void via_set_dmamode(struct ata_port *ap, struct ata_device *adev)
*/
static void via_tf_load(struct ata_port *ap, const struct ata_taskfile *tf)
{
- struct ata_taskfile tmp_tf;
+ struct ata_ioports *ioaddr = &ap->ioaddr;
+ struct via_port *vp = ap->private_data;
+ unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
+ int newctl = 0;
+
+ if (tf->ctl != ap->last_ctl) {
+ iowrite8(tf->ctl, ioaddr->ctl_addr);
+ ap->last_ctl = tf->ctl;
+ ata_wait_idle(ap);
+ newctl = 1;
+ }
+
+ if (tf->flags & ATA_TFLAG_DEVICE) {
+ iowrite8(tf->device, ioaddr->device_addr);
+ vp->cached_device = tf->device;
+ } else if (newctl)
+ iowrite8(vp->cached_device, ioaddr->device_addr);
+
+ if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
+ WARN_ON_ONCE(!ioaddr->ctl_addr);
+ iowrite8(tf->hob_feature, ioaddr->feature_addr);
+ iowrite8(tf->hob_nsect, ioaddr->nsect_addr);
+ iowrite8(tf->hob_lbal, ioaddr->lbal_addr);
+ iowrite8(tf->hob_lbam, ioaddr->lbam_addr);
+ iowrite8(tf->hob_lbah, ioaddr->lbah_addr);
+ VPRINTK("hob: feat 0x%X nsect 0x%X, lba 0x%X 0x%X 0x%X\n",
+ tf->hob_feature,
+ tf->hob_nsect,
+ tf->hob_lbal,
+ tf->hob_lbam,
+ tf->hob_lbah);
+ }
- if (ap->ctl != ap->last_ctl && !(tf->flags & ATA_TFLAG_DEVICE)) {
- tmp_tf = *tf;
- tmp_tf.flags |= ATA_TFLAG_DEVICE;
- tf = &tmp_tf;
+ if (is_addr) {
+ iowrite8(tf->feature, ioaddr->feature_addr);
+ iowrite8(tf->nsect, ioaddr->nsect_addr);
+ iowrite8(tf->lbal, ioaddr->lbal_addr);
+ iowrite8(tf->lbam, ioaddr->lbam_addr);
+ iowrite8(tf->lbah, ioaddr->lbah_addr);
+ VPRINTK("feat 0x%X nsect 0x%X lba 0x%X 0x%X 0x%X\n",
+ tf->feature,
+ tf->nsect,
+ tf->lbal,
+ tf->lbam,
+ tf->lbah);
}
- ata_sff_tf_load(ap, tf);
+
+ ata_wait_idle(ap);
+}
+
+static int via_port_start(struct ata_port *ap)
+{
+ struct via_port *vp;
+ struct pci_dev *pdev = to_pci_dev(ap->host->dev);
+
+ int ret = ata_sff_port_start(ap);
+ if (ret < 0)
+ return ret;
+
+ vp = devm_kzalloc(&pdev->dev, sizeof(struct via_port), GFP_KERNEL);
+ if (vp == NULL)
+ return -ENOMEM;
+ ap->private_data = vp;
+ return 0;
}
static struct scsi_host_template via_sht = {
@@ -367,6 +426,7 @@ static struct ata_port_operations via_port_ops = {
.set_dmamode = via_set_dmamode,
.prereset = via_pre_reset,
.sff_tf_load = via_tf_load,
+ .port_start = via_port_start,
};
static struct ata_port_operations via_port_ops_noirq = {
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 37ae5dc..870dcfd 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -1881,6 +1881,39 @@ static u8 mv_bmdma_status(struct ata_port *ap)
return status;
}
+static void mv_rw_multi_errata_sata24(struct ata_queued_cmd *qc)
+{
+ struct ata_taskfile *tf = &qc->tf;
+ /*
+ * Workaround for 88SX60x1 FEr SATA#24.
+ *
+ * Chip may corrupt WRITEs if multi_count >= 4kB.
+ * Note that READs are unaffected.
+ *
+ * It's not clear if this errata really means "4K bytes",
+ * or if it always happens for multi_count > 7
+ * regardless of device sector_size.
+ *
+ * So, for safety, any write with multi_count > 7
+ * gets converted here into a regular PIO write instead:
+ */
+ if ((tf->flags & ATA_TFLAG_WRITE) && is_multi_taskfile(tf)) {
+ if (qc->dev->multi_count > 7) {
+ switch (tf->command) {
+ case ATA_CMD_WRITE_MULTI:
+ tf->command = ATA_CMD_PIO_WRITE;
+ break;
+ case ATA_CMD_WRITE_MULTI_FUA_EXT:
+ tf->flags &= ~ATA_TFLAG_FUA; /* ugh */
+ /* fall through */
+ case ATA_CMD_WRITE_MULTI_EXT:
+ tf->command = ATA_CMD_PIO_WRITE_EXT;
+ break;
+ }
+ }
+ }
+}
+
/**
* mv_qc_prep - Host specific command preparation.
* @qc: queued command to prepare
@@ -1898,17 +1931,24 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
struct ata_port *ap = qc->ap;
struct mv_port_priv *pp = ap->private_data;
__le16 *cw;
- struct ata_taskfile *tf;
+ struct ata_taskfile *tf = &qc->tf;
u16 flags = 0;
unsigned in_index;
- if ((qc->tf.protocol != ATA_PROT_DMA) &&
- (qc->tf.protocol != ATA_PROT_NCQ))
+ switch (tf->protocol) {
+ case ATA_PROT_DMA:
+ case ATA_PROT_NCQ:
+ break; /* continue below */
+ case ATA_PROT_PIO:
+ mv_rw_multi_errata_sata24(qc);
+ return;
+ default:
return;
+ }
/* Fill in command request block
*/
- if (!(qc->tf.flags & ATA_TFLAG_WRITE))
+ if (!(tf->flags & ATA_TFLAG_WRITE))
flags |= CRQB_FLAG_READ;
WARN_ON(MV_MAX_Q_DEPTH <= qc->tag);
flags |= qc->tag << CRQB_TAG_SHIFT;
@@ -1924,7 +1964,6 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
pp->crqb[in_index].ctrl_flags = cpu_to_le16(flags);
cw = &pp->crqb[in_index].ata_cmd[0];
- tf = &qc->tf;
/* Sadly, the CRQB cannot accomodate all registers--there are
* only 11 bytes...so we must pick and choose required
@@ -1990,16 +2029,16 @@ static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
struct ata_port *ap = qc->ap;
struct mv_port_priv *pp = ap->private_data;
struct mv_crqb_iie *crqb;
- struct ata_taskfile *tf;
+ struct ata_taskfile *tf = &qc->tf;
unsigned in_index;
u32 flags = 0;
- if ((qc->tf.protocol != ATA_PROT_DMA) &&
- (qc->tf.protocol != ATA_PROT_NCQ))
+ if ((tf->protocol != ATA_PROT_DMA) &&
+ (tf->protocol != ATA_PROT_NCQ))
return;
/* Fill in Gen IIE command request block */
- if (!(qc->tf.flags & ATA_TFLAG_WRITE))
+ if (!(tf->flags & ATA_TFLAG_WRITE))
flags |= CRQB_FLAG_READ;
WARN_ON(MV_MAX_Q_DEPTH <= qc->tag);
@@ -2015,7 +2054,6 @@ static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
crqb->addr_hi = cpu_to_le32((pp->sg_tbl_dma[qc->tag] >> 16) >> 16);
crqb->flags = cpu_to_le32(flags);
- tf = &qc->tf;
crqb->ata_cmd[0] = cpu_to_le32(
(tf->command << 16) |
(tf->feature << 24)
next reply other threads:[~2009-04-17 23:08 UTC|newest]
Thread overview: 263+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-17 23:07 Jeff Garzik [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-04-08 20:30 Jeff Garzik
2013-01-21 19:48 Jeff Garzik
2013-01-22 18:04 ` Linus Torvalds
2012-11-17 4:39 Jeff Garzik
2012-08-25 14:26 Jeff Garzik
2012-05-03 18:27 Jeff Garzik
2012-05-03 18:31 ` Sergei Shtylyov
2012-05-03 18:38 ` Jeff Garzik
2012-05-04 11:04 ` Sergei Shtylyov
2012-05-04 21:04 ` Calvin Walton
2012-04-18 18:46 Jeff Garzik
2012-04-18 19:34 ` Josh Boyer
2012-04-18 19:45 ` Jeff Garzik
2011-11-24 1:23 Jeff Garzik
2011-11-24 1:32 ` Linus Torvalds
2011-08-19 4:45 Jeff Garzik
2011-06-23 20:52 Jeff Garzik
2010-12-24 18:37 Jeff Garzik
2010-11-12 22:30 Jeff Garzik
2010-09-10 2:41 Jeff Garzik
2010-08-25 23:32 Jeff Garzik
2010-07-01 20:20 Jeff Garzik
2010-06-10 20:09 Jeff Garzik
2010-06-07 20:07 Jeff Garzik
2010-05-05 18:54 Jeff Garzik
2010-04-23 2:17 Jeff Garzik
2010-04-06 15:22 Jeff Garzik
2010-03-23 13:42 Jeff Garzik
2010-03-23 18:06 ` Pavel Roskin
2010-03-25 16:21 ` Tejun Heo
2010-03-26 20:17 ` Pavel Roskin
2010-03-26 21:59 ` Pavel Roskin
2010-03-17 20:04 Jeff Garzik
2010-03-17 22:22 ` Marc Dionne
2010-02-05 1:29 Jeff Garzik
2010-01-12 19:36 Jeff Garzik
2009-12-20 20:45 Jeff Garzik
2009-10-16 10:26 Jeff Garzik
2009-08-12 10:35 Jeff Garzik
2009-07-29 2:02 Jeff Garzik
2009-07-15 3:09 Jeff Garzik
2009-06-05 18:46 Jeff Garzik
2009-06-05 20:16 ` Alan Cox
2009-06-05 21:15 ` Jeff Garzik
2009-05-11 18:37 Jeff Garzik
2009-04-16 19:39 Jeff Garzik
2009-04-16 20:28 ` Mark Lord
2009-04-13 9:27 Jeff Garzik
2009-03-13 19:03 Jeff Garzik
2009-03-05 12:34 Jeff Garzik
2009-02-25 20:36 Jeff Garzik
2009-02-17 21:25 Jeff Garzik
2009-01-27 7:30 Jeff Garzik
2009-01-27 15:50 ` Linus Torvalds
2009-01-27 18:37 ` Jeff Garzik
2009-01-27 19:02 ` Linus Torvalds
2009-01-27 23:04 ` Tejun Heo
2009-01-16 15:27 Jeff Garzik
2009-01-16 17:31 ` Andrew Morton
2009-01-16 18:21 ` Alan Cox
2009-01-16 18:45 ` Sergei Shtylyov
2009-01-16 18:49 ` Grant Grundler
2009-01-16 19:21 ` David Daney
2009-01-16 23:13 ` David Daney
2009-01-13 15:39 Jeff Garzik
2008-12-16 11:05 Jeff Garzik
2008-12-09 5:51 Jeff Garzik
[not found] ` <200812091825.mB9IPRwq027199@lxorguk.ukuu.org.uk>
2008-12-09 18:28 ` Alan Cox
2008-12-01 19:06 Jeff Garzik
2008-11-11 8:06 Jeff Garzik
2008-11-04 6:20 Jeff Garzik
2008-10-31 5:49 Jeff Garzik
2008-10-31 13:20 ` Greg Freemyer
2008-11-02 13:21 ` Jeff Garzik
2008-11-02 20:18 ` Greg Freemyer
2008-11-02 23:42 ` Mark Lord
2008-10-23 0:48 Jeff Garzik
2008-09-13 20:59 Jeff Garzik
2008-06-19 0:59 Jeff Garzik
2008-06-13 7:03 Jeff Garzik
2008-06-04 10:45 Jeff Garzik
2008-05-30 22:13 Jeff Garzik
2008-04-29 22:09 Jeff Garzik
2008-04-25 5:36 Jeff Garzik
2008-04-12 5:28 Jeff Garzik
2008-04-09 7:04 Jeff Garzik
2008-04-04 8:23 Jeff Garzik
2008-03-29 20:09 Jeff Garzik
2008-03-25 2:50 Jeff Garzik
2008-03-17 12:35 Jeff Garzik
2008-03-17 18:29 ` Ingo Molnar
2008-03-17 18:31 ` Ingo Molnar
2008-03-11 1:23 Jeff Garzik
2008-03-05 12:57 Jeff Garzik
2008-02-24 5:35 Jeff Garzik
2008-02-24 17:21 ` Bartlomiej Zolnierkiewicz
2008-02-24 17:07 ` Alan Cox
2008-02-24 17:40 ` Bartlomiej Zolnierkiewicz
2008-02-20 17:25 Jeff Garzik
2008-02-15 21:20 Jeff Garzik
2008-02-11 19:51 Jeff Garzik
2008-01-15 21:42 Jeff Garzik
2008-01-15 3:44 Jeff Garzik
2008-01-10 22:43 Jeff Garzik
2007-12-18 2:00 Jeff Garzik
2007-12-07 20:34 Jeff Garzik
2007-12-07 21:27 ` Frans Pop
2007-12-04 20:10 Jeff Garzik
2007-12-01 23:35 Jeff Garzik
2007-11-26 16:16 Jeff Garzik
2007-11-19 4:36 Tejun Heo
2007-11-21 2:26 ` Jeff Garzik
2007-11-10 9:24 Jeff Garzik
2007-11-06 0:03 Jeff Garzik
2007-11-03 18:13 Jeff Garzik
2007-10-31 9:38 Mikael Pettersson
2007-10-31 9:40 ` Jeff Garzik
2007-10-30 18:45 Jeff Garzik
2007-10-30 18:54 ` Linus Torvalds
2007-10-30 19:12 ` Jeff Garzik
2007-10-30 19:31 ` Linus Torvalds
2007-10-30 19:46 ` Jan Engelhardt
2007-10-30 22:45 ` Junio C Hamano
2007-10-20 3:08 Jeff Garzik
2007-10-18 1:08 Jeff Garzik
2007-10-03 18:51 Jeff Garzik
2007-09-26 4:43 Jeff Garzik
2007-09-20 20:15 Jeff Garzik
2007-09-11 2:15 Jeff Garzik
2007-08-31 9:02 Jeff Garzik
2007-08-23 10:08 Jeff Garzik
2007-08-15 9:44 Jeff Garzik
2007-08-08 1:07 Jeff Garzik
2007-08-01 16:19 Jeff Garzik
2007-07-24 20:56 Jeff Garzik
2007-07-03 15:52 Jeff Garzik
2007-07-03 16:07 ` Alan Cox
2007-07-03 16:21 ` Linus Torvalds
2007-07-03 16:34 ` Alan Cox
2007-07-03 16:42 ` Linus Torvalds
2007-07-03 17:21 ` Alan Cox
2007-07-04 14:11 ` David Woodhouse
2007-07-02 14:52 Jeff Garzik
2007-06-28 14:29 Mikael Pettersson
2007-06-27 7:35 Jeff Garzik
2007-06-27 7:38 ` Andrew Morton
2007-06-27 7:47 ` Jeff Garzik
2007-06-27 15:48 ` Linus Torvalds
2007-06-21 0:06 Jeff Garzik
2007-06-10 3:31 Jeff Garzik
2007-05-26 0:06 Mikael Pettersson
2007-05-26 0:15 ` Jeff Garzik
2007-05-25 22:03 Jeff Garzik
2007-05-25 0:41 Jeff Garzik
2007-05-18 1:38 Jeff Garzik
2007-05-16 5:36 Jeff Garzik
2007-04-04 6:39 Jeff Garzik
2007-03-28 7:32 Jeff Garzik
2007-03-28 7:33 ` Jeff Garzik
2007-03-28 20:53 ` Linus Torvalds
2007-03-28 21:15 ` Andrew Morton
2007-03-28 21:33 ` Chuck Ebbert
2007-03-19 18:37 Jeff Garzik
2007-03-06 9:17 Jeff Garzik
2007-03-03 1:46 Jeff Garzik
2007-03-03 18:54 ` Paul Rolland
2007-03-03 19:33 ` Paul Rolland
2007-03-05 5:19 ` Tejun Heo
2007-03-05 9:52 ` Paul Rolland
2007-03-02 2:08 Jeff Garzik
2007-03-03 18:39 ` Paul Rolland
2007-03-05 5:13 ` Tejun Heo
2007-03-05 9:54 ` Paul Rolland
2007-03-05 15:45 ` Tejun Heo
2007-03-06 7:37 ` Paul Rolland
2007-03-09 12:49 ` Tejun Heo
2007-03-11 11:35 ` Paul Rolland
2007-03-11 16:43 ` Linus Torvalds
2007-03-11 18:34 ` Paul Rolland
2007-03-11 19:20 ` Paul Rolland
2007-03-11 20:04 ` Linus Torvalds
2007-03-11 22:25 ` Paul Rolland
2007-03-12 0:59 ` Linus Torvalds
2007-03-12 6:28 ` Tejun Heo
2007-03-12 6:30 ` Tejun Heo
2007-03-12 8:00 ` Paul Rolland
2007-03-12 8:04 ` Tejun Heo
2007-03-12 9:58 ` Paul Rolland
2007-03-17 17:59 ` Paul Rolland
2007-03-17 18:44 ` Alan Cox
2007-03-17 18:47 ` Paul Rolland
2007-03-17 18:56 ` Alan Cox
2007-03-17 19:29 ` Paul Rolland
2007-03-17 19:56 ` Alan Cox
2007-03-17 19:42 ` Tejun Heo
2007-03-17 19:47 ` Paul Rolland
2007-03-17 20:02 ` Tejun Heo
2007-03-17 20:08 ` Paul Rolland
2007-03-18 4:52 ` Tejun Heo
2007-03-18 10:09 ` Paul Rolland
2007-03-18 10:28 ` Tejun Heo
2007-03-18 10:33 ` Paul Rolland
2007-03-18 10:39 ` Tejun Heo
2007-03-18 10:50 ` Paul Rolland
2007-03-18 11:06 ` Paul Rolland
2007-03-19 4:37 ` Tejun Heo
2007-03-19 7:48 ` Paul Rolland
2007-03-19 7:55 ` Tejun Heo
2007-03-19 11:05 ` Alan Cox
2007-03-12 7:56 ` Paul Rolland
2007-03-17 17:56 ` Paul Rolland
2007-02-02 16:58 Jeff Garzik
2007-02-02 17:13 ` Linus Torvalds
2007-02-02 17:19 ` Jeff Garzik
2007-02-02 19:02 ` Alan
2007-02-02 21:43 ` Andrew Morton
2007-02-02 22:41 ` Linus Torvalds
2007-02-03 0:05 ` alan
2007-02-03 0:58 ` Linus Torvalds
2007-02-07 7:11 ` Conke Hu
2007-01-30 14:27 Jeff Garzik
2007-01-25 23:58 Jeff Garzik
2007-01-24 7:19 Jeff Garzik
2007-01-22 18:55 Jeff Garzik
2006-12-20 21:00 Jeff Garzik
2006-12-20 21:19 ` Stephen Frost
2006-12-16 17:27 Jeff Garzik
2006-11-30 10:48 Jeff Garzik
2006-11-30 16:05 ` Renato S. Yamane
2006-11-30 16:54 ` Renato S. Yamane
2006-11-14 15:04 Jeff Garzik
2006-11-14 16:32 ` Mark Lord
2006-11-14 16:41 ` Jeff Garzik
2006-11-14 18:11 ` Mark Lord
2006-11-02 3:11 Jeff Garzik
2006-11-01 2:13 Jeff Garzik
2006-11-01 14:06 ` John Stoffel
2006-11-01 14:30 ` Alan Cox
2006-11-02 0:02 ` Andrew Morton
2006-11-02 1:06 ` Jeff Garzik
2006-11-02 8:00 ` Jens Axboe
2006-10-21 19:55 Jeff Garzik
2006-10-11 9:05 Jeff Garzik
2006-09-11 12:58 Jeff Garzik
2006-08-24 8:13 Jeff Garzik
2006-08-24 8:29 ` Greg KH
2006-08-24 8:56 ` Greg KH
2006-08-24 9:00 ` Jeff Garzik
2006-08-09 6:25 Jeff Garzik
2006-08-09 18:47 ` Greg KH
2006-08-09 22:45 ` Greg KH
2006-08-10 12:23 ` Jeff Garzik
2006-07-29 5:41 Jeff Garzik
2006-07-17 17:42 Jeff Garzik
2006-05-24 7:05 Jeff Garzik
2006-05-20 4:47 Jeff Garzik
2006-03-31 15:22 Jeff Garzik
2006-02-25 22:03 Jeff Garzik
2006-02-21 5:17 Jeff Garzik
2006-02-17 21:41 Jeff Garzik
2006-02-09 18:47 Jeff Garzik
2005-09-14 13:13 Jeff Garzik
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=20090417230749.GA24506@havoc.gtf.org \
--to=jeff@garzik.org \
--cc=akpm@linux-foundation.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®