mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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



  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®