linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] libata-core: support wildcard matching in ata_blacklist_entry
@ 2007-08-09 20:49 David Milburn
  2007-09-20 20:33 ` Jeff Garzik
  0 siblings, 1 reply; 5+ messages in thread
From: David Milburn @ 2007-08-09 20:49 UTC (permalink / raw)
  To: jeff; +Cc: linux-ide, alan, dmilburn

Support the use of '*' in model_num and model_rev entries
in ata_device_blacklist[].

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: David Milburn <dmilburn@redhat.com>
---

 libata-core.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 60e78be..4603bd9 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3796,6 +3796,18 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 	{ }
 };
 
+int strn_pattern_cmp(const char *patt, const char *name, int c)
+{
+	const char *p = strchr(patt, c);
+	int len;
+
+	if (p == NULL)
+		len = strlen(name);
+	else
+		len = p-patt;
+	return strncmp(patt, name, len);
+}
+
 static unsigned long ata_dev_blacklisted(const struct ata_device *dev)
 {
 	unsigned char model_num[ATA_ID_PROD_LEN + 1];
@@ -3806,10 +3818,10 @@ static unsigned long ata_dev_blacklisted(const struct ata_device *dev)
 	ata_id_c_string(dev->id, model_rev, ATA_ID_FW_REV, sizeof(model_rev));
 
 	while (ad->model_num) {
-		if (!strcmp(ad->model_num, model_num)) {
+		if (!strn_pattern_cmp(ad->model_num, model_num, '*')) {
 			if (ad->model_rev == NULL)
 				return ad->horkage;
-			if (!strcmp(ad->model_rev, model_rev))
+			if (!strn_pattern_cmp(ad->model_rev, model_rev, '*'))
 				return ad->horkage;
 		}
 		ad++;

^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [PATCH] libata-core: support wildcard matching in ata_blacklist_entry
@ 2007-08-08 20:20 David Milburn
  2007-08-08 23:31 ` Alan Cox
  0 siblings, 1 reply; 5+ messages in thread
From: David Milburn @ 2007-08-08 20:20 UTC (permalink / raw)
  To: jeff; +Cc: linux-ide, alan, dmilburn

Support the use of '*' in model_num and model_rev entries
in ata_device_blacklist[].

CC: alan@lxorguk.ukuu.org.uk
Signed-off-by: David Milburn <dmilburn@redhat.com>
---

 drivers/ata/libata-core.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 60e78be..1c9c208 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3806,10 +3806,17 @@ static unsigned long ata_dev_blacklisted(const struct ata_device *dev)
 	ata_id_c_string(dev->id, model_rev, ATA_ID_FW_REV, sizeof(model_rev));
 
 	while (ad->model_num) {
-		if (!strcmp(ad->model_num, model_num)) {
+		char *wc;
+		wc = strchr(ad->model_num, '*');
+		if (!strncmp(ad->model_num, model_num, 
+			     wc ? wc - ad->model_num : 
+			     strlen(ad->model_num))) {
 			if (ad->model_rev == NULL)
 				return ad->horkage;
-			if (!strcmp(ad->model_rev, model_rev))
+			wc = strchr(ad->model_rev, '*');
+			if (!strncmp(ad->model_rev, model_rev,
+				     wc ? wc - ad->model_rev : 
+				     strlen(ad->model_rev)))
 				return ad->horkage;
 		}
 		ad++;




^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-09-20 20:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-09 20:49 [PATCH] libata-core: support wildcard matching in ata_blacklist_entry David Milburn
2007-09-20 20:33 ` Jeff Garzik
  -- strict thread matches above, loose matches on Subject: below --
2007-08-08 20:20 David Milburn
2007-08-08 23:31 ` Alan Cox
2007-08-16 19:07   ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).