From: Junio C Hamano <junkio@cox.net>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
bzolnier@gmail.com, linux-ide@vger.kernel.org,
Dave Jones <davej@redhat.com>
Subject: [PATCH 2/3] Unify dma blacklist in ide-dma.c and libata-core.c
Date: Mon, 21 May 2007 22:06:36 -0700 [thread overview]
Message-ID: <7vveela1lv.fsf_-_@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <7v3b1pbgeo.fsf_-_@assigned-by-dhcp.cox.net> (Junio C. Hamano's message of "Mon, 21 May 2007 22:01:35 -0700")
This introduces a shared header file that defines the entries
for two dma blacklists in ide-dma.c and libata-core.c to make it
easier to keep them in sync.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
* Removes more lines than it adds. I am not proud of the
DMA_BLACK_LIST macro in ide-dma.c which relies on the
compiler doing a sane thing for compile time constant
expression to initialize the list, but that hopefully can be
fixed in the next patch.
drivers/ata/libata-core.c | 34 ++++------------------------------
drivers/ide/dma-blacklist.h | 39 +++++++++++++++++++++++++++++++++++++++
drivers/ide/ide-dma.c | 33 +++------------------------------
3 files changed, 46 insertions(+), 60 deletions(-)
create mode 100644 drivers/ide/dma-blacklist.h
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index a6de57e..93b7fa7 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3739,36 +3739,10 @@ struct ata_blacklist_entry {
static const struct ata_blacklist_entry ata_device_blacklist [] = {
/* Devices with DMA related problems under Linux */
- { "WDC AC11000H", NULL, ATA_HORKAGE_NODMA },
- { "WDC AC22100H", NULL, ATA_HORKAGE_NODMA },
- { "WDC AC32500H", NULL, ATA_HORKAGE_NODMA },
- { "WDC AC33100H", NULL, ATA_HORKAGE_NODMA },
- { "WDC AC31600H", NULL, ATA_HORKAGE_NODMA },
- { "WDC AC32100H", "24.09P07", ATA_HORKAGE_NODMA },
- { "WDC AC23200L", "21.10N21", ATA_HORKAGE_NODMA },
- { "Compaq CRD-8241B", NULL, ATA_HORKAGE_NODMA },
- { "CRD-8400B", NULL, ATA_HORKAGE_NODMA },
- { "CRD-8480B", NULL, ATA_HORKAGE_NODMA },
- { "CRD-8482B", NULL, ATA_HORKAGE_NODMA },
- { "CRD-84", NULL, ATA_HORKAGE_NODMA },
- { "SanDisk SDP3B", NULL, ATA_HORKAGE_NODMA },
- { "SanDisk SDP3B-64", NULL, ATA_HORKAGE_NODMA },
- { "SANYO CD-ROM CRD", NULL, ATA_HORKAGE_NODMA },
- { "HITACHI CDR-8", NULL, ATA_HORKAGE_NODMA },
- { "HITACHI CDR-8335", NULL, ATA_HORKAGE_NODMA },
- { "HITACHI CDR-8435", NULL, ATA_HORKAGE_NODMA },
- { "Toshiba CD-ROM XM-6202B", NULL, ATA_HORKAGE_NODMA },
- { "TOSHIBA CD-ROM XM-1702BC", NULL, ATA_HORKAGE_NODMA },
- { "CD-532E-A", NULL, ATA_HORKAGE_NODMA },
- { "E-IDE CD-ROM CR-840",NULL, ATA_HORKAGE_NODMA },
- { "CD-ROM Drive/F5A", NULL, ATA_HORKAGE_NODMA },
- { "WPI CDD-820", NULL, ATA_HORKAGE_NODMA },
- { "SAMSUNG CD-ROM SC-148C", NULL, ATA_HORKAGE_NODMA },
- { "SAMSUNG CD-ROM SC", NULL, ATA_HORKAGE_NODMA },
- { "ATAPI CD-ROM DRIVE 40X MAXIMUM",NULL,ATA_HORKAGE_NODMA },
- { "_NEC DV5800A", NULL, ATA_HORKAGE_NODMA },
- { "SAMSUNG CD-ROM SN-124","N001", ATA_HORKAGE_NODMA },
- { "Seagate STT20000A", NULL, ATA_HORKAGE_NODMA },
+
+#define DMA_BLACK_LIST(model,rev) { (model), (rev), ATA_HORKAGE_NODMA }
+#include "../ide/dma-blacklist.h"
+#undef DMA_BLACK_LIST
/* Weird ATAPI devices */
{ "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 |
diff --git a/drivers/ide/dma-blacklist.h b/drivers/ide/dma-blacklist.h
new file mode 100644
index 0000000..19b4e0c
--- /dev/null
+++ b/drivers/ide/dma-blacklist.h
@@ -0,0 +1,39 @@
+/*
+ * Shared between ide-dma.c::drive_blacklist[] and
+ * ../ata/libata-core.c::ata_device_blacklist[].
+ *
+ * Each of the above users define DMA_BLACK_LIST() macro
+ * which expands these to structure of their liking.
+ */
+
+ DMA_BLACK_LIST("WDC AC11000H", NULL),
+ DMA_BLACK_LIST("WDC AC22100H", NULL),
+ DMA_BLACK_LIST("WDC AC32500H", NULL),
+ DMA_BLACK_LIST("WDC AC33100H", NULL),
+ DMA_BLACK_LIST("WDC AC31600H", NULL),
+ DMA_BLACK_LIST("WDC AC32100H", "24.09P07"),
+ DMA_BLACK_LIST("WDC AC23200L", "21.10N21"),
+ DMA_BLACK_LIST("Compaq CRD-8241B", NULL),
+ DMA_BLACK_LIST("CRD-8400B", NULL),
+ DMA_BLACK_LIST("CRD-8480B", NULL),
+ DMA_BLACK_LIST("CRD-8482B", NULL),
+ DMA_BLACK_LIST("CRD-84", NULL),
+ DMA_BLACK_LIST("SanDisk SDP3B", NULL),
+ DMA_BLACK_LIST("SanDisk SDP3B-64", NULL),
+ DMA_BLACK_LIST("SANYO CD-ROM CRD", NULL),
+ DMA_BLACK_LIST("HITACHI CDR-8", NULL),
+ DMA_BLACK_LIST("HITACHI CDR-8335", NULL),
+ DMA_BLACK_LIST("HITACHI CDR-8435", NULL),
+ DMA_BLACK_LIST("Toshiba CD-ROM XM-6202B", NULL),
+ DMA_BLACK_LIST("TOSHIBA CD-ROM XM-1702BC", NULL),
+ DMA_BLACK_LIST("CD-532E-A", NULL),
+ DMA_BLACK_LIST("E-IDE CD-ROM CR-840", NULL),
+ DMA_BLACK_LIST("CD-ROM Drive/F5A", NULL),
+ DMA_BLACK_LIST("WPI CDD-820", NULL),
+ DMA_BLACK_LIST("SAMSUNG CD-ROM SC-148C", NULL),
+ DMA_BLACK_LIST("SAMSUNG CD-ROM SC", NULL),
+ DMA_BLACK_LIST("ATAPI CD-ROM DRIVE 40X MAXIMUM", NULL),
+ DMA_BLACK_LIST("_NEC DV5800A", NULL),
+ DMA_BLACK_LIST("SAMSUNG CD-ROM SN-124", "N001"),
+ DMA_BLACK_LIST("Seagate STT20000A", NULL),
+
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c
index ead141e..a6a2074 100644
--- a/drivers/ide/ide-dma.c
+++ b/drivers/ide/ide-dma.c
@@ -100,36 +100,9 @@ static const struct drive_list_entry drive_whitelist [] = {
static const struct drive_list_entry drive_blacklist [] = {
- { "WDC AC11000H" , "ALL" },
- { "WDC AC22100H" , "ALL" },
- { "WDC AC32500H" , "ALL" },
- { "WDC AC33100H" , "ALL" },
- { "WDC AC31600H" , "ALL" },
- { "WDC AC32100H" , "24.09P07" },
- { "WDC AC23200L" , "21.10N21" },
- { "Compaq CRD-8241B" , "ALL" },
- { "CRD-8400B" , "ALL" },
- { "CRD-8480B", "ALL" },
- { "CRD-8482B", "ALL" },
- { "CRD-84" , "ALL" },
- { "SanDisk SDP3B" , "ALL" },
- { "SanDisk SDP3B-64" , "ALL" },
- { "SANYO CD-ROM CRD" , "ALL" },
- { "HITACHI CDR-8" , "ALL" },
- { "HITACHI CDR-8335" , "ALL" },
- { "HITACHI CDR-8435" , "ALL" },
- { "Toshiba CD-ROM XM-6202B" , "ALL" },
- { "TOSHIBA CD-ROM XM-1702BC", "ALL" },
- { "CD-532E-A" , "ALL" },
- { "E-IDE CD-ROM CR-840", "ALL" },
- { "CD-ROM Drive/F5A", "ALL" },
- { "WPI CDD-820", "ALL" },
- { "SAMSUNG CD-ROM SC-148C", "ALL" },
- { "SAMSUNG CD-ROM SC", "ALL" },
- { "ATAPI CD-ROM DRIVE 40X MAXIMUM", "ALL" },
- { "_NEC DV5800A", "ALL" },
- { "SAMSUNG CD-ROM SN-124", "N001" },
- { "Seagate STT20000A", "ALL" },
+#define DMA_BLACK_LIST(model,rev) { (model), (rev==NULL ? "ALL" : (rev)) }
+#include "dma-blacklist.h"
+#undef DMA_BLACK_LIST
{ NULL , NULL }
};
--
1.5.2.24.g93d4
next prev parent reply other threads:[~2007-05-22 5:06 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-21 14:50 Add Seagate STT20000A to DMA blacklist Dave Jones
2007-05-21 16:15 ` Alan Cox
2007-05-21 17:27 ` Dave Jones
2007-05-22 5:01 ` [PATCH] Match DMA blacklist entries between ide-dma.c and libata-core.c Junio C Hamano
2007-05-22 5:06 ` Junio C Hamano [this message]
2007-05-26 16:39 ` [PATCH 2/3] Unify dma blacklist in " Bill Davidsen
2007-05-26 16:59 ` Alan Cox
2007-05-22 5:08 ` [PATCH 3/3] Make ide dma blacklist handling a bit saner Junio C Hamano
2007-05-28 19:41 ` Bartlomiej Zolnierkiewicz
2007-05-28 23:03 ` Junio C Hamano
2007-05-30 22:36 ` Bartlomiej Zolnierkiewicz
2007-05-28 23:10 ` [PATCH 1/3] ide_in_drive_list(): accept NULL as the wildcard for firmware revision Junio C Hamano
2007-05-30 20:43 ` Bartlomiej Zolnierkiewicz
2007-05-28 23:10 ` [PATCH 2/3] mips au1xxx_ide.h: use NULL as firmware-revision wildcard Junio C Hamano
2007-05-30 20:45 ` Bartlomiej Zolnierkiewicz
2007-05-28 23:11 ` [PATCH 3/3] ide_in_drive_list(): "ALL" is not a wildcard anymore Junio C Hamano
2007-05-30 20:47 ` Bartlomiej Zolnierkiewicz
2007-05-24 0:19 ` [PATCH] Match DMA blacklist entries between ide-dma.c and libata-core.c Bartlomiej Zolnierkiewicz
2007-05-24 0:33 ` Add Seagate STT20000A to DMA blacklist Bartlomiej Zolnierkiewicz
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=7vveela1lv.fsf_-_@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=bzolnier@gmail.com \
--cc=davej@redhat.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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®