if (quirks & SIL_QUIRK_MOD15WRITE) { 
if ((ap->flags & SIL_FLAG_MOD15WRITE) && (quirks & SIL_QUIRK_MOD15WRITE)) { 
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;	ata_dev_id_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))) {			quirks = sil_blacklist[n].quirk;			break;		}	/* limit requests to 15 sectors */	if (quirks & SIL_QUIRK_MOD15WRITE) {		printk(KERN_INFO "ata%u(%u): applying Seagate errata fix\n",		       ap->id, dev->devno);		ap->host->max_sectors = 15;		ap->host->hostt->max_sectors = 15;		dev->flags |= ATA_DFLAG_LOCK_SECTORS;		return;	}	/* 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->udma_mask &= ATA_UDMA5;		return;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e4deec6304cbd5fd08bf573eccc68787945071c2/sata_sil.c/buggy/drivers/scsi/sata_sil.c