Loading drivers/scsi/libata-core.c +4 −14 Original line number Diff line number Diff line Loading @@ -2301,24 +2301,14 @@ static const char * const ata_dma_blacklist [] = { static int ata_dma_blacklisted(const struct ata_device *dev) { unsigned char model_num[40]; char *s; unsigned int len; unsigned char model_num[41]; int i; ata_dev_id_string(dev->id, model_num, ATA_ID_PROD_OFS, ata_dev_id_c_string(dev->id, model_num, ATA_ID_PROD_OFS, sizeof(model_num)); s = &model_num[0]; len = strnlen(s, sizeof(model_num)); /* ATAPI specifies that empty space is blank-filled; remove blanks */ while ((len > 0) && (s[len - 1] == ' ')) { len--; s[len] = 0; } for (i = 0; i < ARRAY_SIZE(ata_dma_blacklist); i++) if (!strncmp(ata_dma_blacklist[i], s, len)) if (!strcmp(ata_dma_blacklist[i], model_num)) return 1; return 0; Loading drivers/scsi/libata-scsi.c +4 −7 Original line number Diff line number Diff line Loading @@ -1806,15 +1806,12 @@ static int ata_dev_supports_fua(u16 *id) if (!ata_id_has_fua(id)) return 0; model[40] = '\0'; fw[8] = '\0'; ata_dev_id_c_string(id, model, ATA_ID_PROD_OFS, sizeof(model)); ata_dev_id_c_string(id, fw, ATA_ID_FW_REV_OFS, sizeof(fw)); ata_dev_id_string(id, model, ATA_ID_PROD_OFS, sizeof(model) - 1); ata_dev_id_string(id, fw, ATA_ID_FW_REV_OFS, sizeof(fw) - 1); if (strncmp(model, "Maxtor", 6)) if (strcmp(model, "Maxtor")) return 1; if (strncmp(fw, "BANC1G10", 8)) if (strcmp(fw, "BANC1G10")) return 1; return 0; /* blacklisted */ Loading drivers/scsi/sata_sil.c +5 −14 Original line number Diff line number Diff line Loading @@ -337,22 +337,13 @@ static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val) static void sil_dev_config(struct ata_port *ap, struct ata_device *dev) { unsigned int n, quirks = 0; unsigned char model_num[40]; const char *s; unsigned int len; unsigned char model_num[41]; ata_dev_id_string(dev->id, model_num, ATA_ID_PROD_OFS, ata_dev_id_c_string(dev->id, model_num, ATA_ID_PROD_OFS, sizeof(model_num)); s = &model_num[0]; len = strnlen(s, sizeof(model_num)); /* ATAPI specifies that empty space is blank-filled; remove blanks */ while ((len > 0) && (s[len - 1] == ' ')) len--; for (n = 0; sil_blacklist[n].product; n++) if (!memcmp(sil_blacklist[n].product, s, strlen(sil_blacklist[n].product))) { if (!strcmp(sil_blacklist[n].product, model_num)) { quirks = sil_blacklist[n].quirk; break; } Loading @@ -372,7 +363,7 @@ static void sil_dev_config(struct ata_port *ap, struct ata_device *dev) /* limit to udma5 */ if (quirks & SIL_QUIRK_UDMA5MAX) { printk(KERN_INFO "ata%u(%u): applying Maxtor errata fix %s\n", ap->id, dev->devno, s); ap->id, dev->devno, model_num); ap->udma_mask &= ATA_UDMA5; return; } Loading Loading
drivers/scsi/libata-core.c +4 −14 Original line number Diff line number Diff line Loading @@ -2301,24 +2301,14 @@ static const char * const ata_dma_blacklist [] = { static int ata_dma_blacklisted(const struct ata_device *dev) { unsigned char model_num[40]; char *s; unsigned int len; unsigned char model_num[41]; int i; ata_dev_id_string(dev->id, model_num, ATA_ID_PROD_OFS, ata_dev_id_c_string(dev->id, model_num, ATA_ID_PROD_OFS, sizeof(model_num)); s = &model_num[0]; len = strnlen(s, sizeof(model_num)); /* ATAPI specifies that empty space is blank-filled; remove blanks */ while ((len > 0) && (s[len - 1] == ' ')) { len--; s[len] = 0; } for (i = 0; i < ARRAY_SIZE(ata_dma_blacklist); i++) if (!strncmp(ata_dma_blacklist[i], s, len)) if (!strcmp(ata_dma_blacklist[i], model_num)) return 1; return 0; Loading
drivers/scsi/libata-scsi.c +4 −7 Original line number Diff line number Diff line Loading @@ -1806,15 +1806,12 @@ static int ata_dev_supports_fua(u16 *id) if (!ata_id_has_fua(id)) return 0; model[40] = '\0'; fw[8] = '\0'; ata_dev_id_c_string(id, model, ATA_ID_PROD_OFS, sizeof(model)); ata_dev_id_c_string(id, fw, ATA_ID_FW_REV_OFS, sizeof(fw)); ata_dev_id_string(id, model, ATA_ID_PROD_OFS, sizeof(model) - 1); ata_dev_id_string(id, fw, ATA_ID_FW_REV_OFS, sizeof(fw) - 1); if (strncmp(model, "Maxtor", 6)) if (strcmp(model, "Maxtor")) return 1; if (strncmp(fw, "BANC1G10", 8)) if (strcmp(fw, "BANC1G10")) return 1; return 0; /* blacklisted */ Loading
drivers/scsi/sata_sil.c +5 −14 Original line number Diff line number Diff line Loading @@ -337,22 +337,13 @@ static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val) static void sil_dev_config(struct ata_port *ap, struct ata_device *dev) { unsigned int n, quirks = 0; unsigned char model_num[40]; const char *s; unsigned int len; unsigned char model_num[41]; ata_dev_id_string(dev->id, model_num, ATA_ID_PROD_OFS, ata_dev_id_c_string(dev->id, model_num, ATA_ID_PROD_OFS, sizeof(model_num)); s = &model_num[0]; len = strnlen(s, sizeof(model_num)); /* ATAPI specifies that empty space is blank-filled; remove blanks */ while ((len > 0) && (s[len - 1] == ' ')) len--; for (n = 0; sil_blacklist[n].product; n++) if (!memcmp(sil_blacklist[n].product, s, strlen(sil_blacklist[n].product))) { if (!strcmp(sil_blacklist[n].product, model_num)) { quirks = sil_blacklist[n].quirk; break; } Loading @@ -372,7 +363,7 @@ static void sil_dev_config(struct ata_port *ap, struct ata_device *dev) /* limit to udma5 */ if (quirks & SIL_QUIRK_UDMA5MAX) { printk(KERN_INFO "ata%u(%u): applying Maxtor errata fix %s\n", ap->id, dev->devno, s); ap->id, dev->devno, model_num); ap->udma_mask &= ATA_UDMA5; return; } Loading