From e978cfb4584e001b951ac1cff9b7c8d3e12136d891fed9f1e8e937ad847f7baa Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Fri, 2 Oct 2009 13:59:58 +0000 Subject: [PATCH] Accepting request 21604 from home:vuntz:branches:Base:System Copy from home:vuntz:branches:Base:System/libatasmart via accept of submit request 21604 revision 4. Request was accepted with message: Forwarding to openSUSE:Factory OBS-URL: https://build.opensuse.org/request/show/21604 OBS-URL: https://build.opensuse.org/package/show/Base:System/libatasmart?expand=0&rev=4 --- libatasmart-jmicron.patch | 43 +++++++++++++++++++++++++++++++++++++++ libatasmart.changes | 6 ++++++ libatasmart.spec | 3 +++ 3 files changed, 52 insertions(+) create mode 100644 libatasmart-jmicron.patch diff --git a/libatasmart-jmicron.patch b/libatasmart-jmicron.patch new file mode 100644 index 0000000..b5351ec --- /dev/null +++ b/libatasmart-jmicron.patch @@ -0,0 +1,43 @@ +X-Git-Url: http://git.0pointer.de/?p=libatasmart.git;a=blobdiff_plain;f=atasmart.c;h=01d3cb2cca0817963b91f7f1c9cd72fde8b10b91;hp=b6bcb90b1662ca0a99fe89cf5c8aeb4cdbcc7e49;hb=HEAD;hpb=7e8f3350aea65ed203305c8e7e4fc1cfd4656393 + +diff --git a/atasmart.c b/atasmart.c +index b6bcb90..01d3cb2 100644 +--- a/atasmart.c ++++ b/atasmart.c +@@ -2474,15 +2474,30 @@ static int disk_find_type(SkDisk *d, dev_t devnum) { + goto finish; + } + +- if ((vid == 0x0c0b && pid == 0xb159) || +- (vid == 0x04fc && pid == 0x0c25) || +- (vid == 0x04fc && pid == 0x0c15)) +- d->type = SK_DISK_TYPE_SUNPLUS; +- else if ((vid == 0x152d && pid == 0x2329) || +- (vid == 0x152d && pid == 0x2336) || ++ if ((vid == 0x152d && pid == 0x2329) || + (vid == 0x152d && pid == 0x2338) || + (vid == 0x152d && pid == 0x2339)) ++ /* Some JMicron bridges seem to choke on SMART ++ * commands, so let's explicitly black list ++ * them here. ++ * ++ * https://bugzilla.redhat.com/show_bug.cgi?id=515881 ++ * ++ * At least some of the JMicron bridges with ++ * these vids/pids choke on the jmicron access ++ * mode. To make sure we don't break things ++ * for people we now disable this by ++ * default.*/ ++ d->type = SK_DISK_TYPE_NONE; ++ else if ((vid == 0x152d && pid == 0x2336)) ++ /* This JMicron bridge seems to always work ++ * with SMART commands send with the jmicron ++ * access mode. */ + d->type = SK_DISK_TYPE_JMICRON; ++ else if ((vid == 0x0c0b && pid == 0xb159) || ++ (vid == 0x04fc && pid == 0x0c25) || ++ (vid == 0x04fc && pid == 0x0c15)) ++ d->type = SK_DISK_TYPE_SUNPLUS; + else + d->type = SK_DISK_TYPE_ATA_PASSTHROUGH_12; + diff --git a/libatasmart.changes b/libatasmart.changes index d0cdbc7..086101c 100644 --- a/libatasmart.changes +++ b/libatasmart.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Oct 2 15:08:43 CEST 2009 - vuntz@opensuse.org + +- Add libatasmart-jmicron.patch to fix issues with some bridges not + working well. See rh#515881 for details. + ------------------------------------------------------------------- Wed Sep 9 18:32:00 CEST 2009 - vuntz@opensuse.org diff --git a/libatasmart.spec b/libatasmart.spec index 732b8d5..978d235 100644 --- a/libatasmart.spec +++ b/libatasmart.spec @@ -26,6 +26,8 @@ Summary: ATA S.M.A.R.T. Disk Health Monitoring Library Url: http://git.0pointer.de/?p=libatasmart.git;a=summary Group: System/Libraries Source: %{name}-%{version}.tar.bz2 +# PATCH-FIX-UPSTREAM libatasmart-jmicron.patch vuntz@opensuse.org -- Taken from git +Patch0: libatasmart-jmicron.patch BuildRequires: libudev-devel BuildRequires: pkgconfig BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -65,6 +67,7 @@ health monitoring. %prep %setup -q +%patch0 -p1 %build %configure --disable-static