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;