Merge branch 'for-linus' of git://brick.kernel.dk/data/git/linux-2.6-block

* 'for-linus' of git://brick.kernel.dk/data/git/linux-2.6-block:
[PATCH] scsi: kill overeager "not-ready" messages
[PATCH] it821x: fix ide dma setup bug
[PATCH] ide: if the id fields looks screwy, disable DMA
[PATCH] ide: option to disable cache flushes for buggy drives

+16 -10
+1 -1
drivers/ide/ide-disk.c
··· 776 776 * not available so we don't need to recheck that. 777 777 */ 778 778 capacity = idedisk_capacity(drive); 779 - barrier = ide_id_has_flush_cache(id) && 779 + barrier = ide_id_has_flush_cache(id) && !drive->noflush && 780 780 (drive->addressing == 0 || capacity <= (1ULL << 28) || 781 781 ide_id_has_flush_cache_ext(id)); 782 782
+1 -1
drivers/ide/ide-dma.c
··· 750 750 goto bug_dma_off; 751 751 printk(", DMA"); 752 752 } else if (id->field_valid & 1) { 753 - printk(", BUG"); 753 + goto bug_dma_off; 754 754 } 755 755 return; 756 756 bug_dma_off:
+4 -1
drivers/ide/ide.c
··· 1539 1539 const char *hd_words[] = { 1540 1540 "none", "noprobe", "nowerr", "cdrom", "serialize", 1541 1541 "autotune", "noautotune", "minus8", "swapdata", "bswap", 1542 - "minus11", "remap", "remap63", "scsi", NULL }; 1542 + "noflush", "remap", "remap63", "scsi", NULL }; 1543 1543 unit = s[2] - 'a'; 1544 1544 hw = unit / MAX_DRIVES; 1545 1545 unit = unit % MAX_DRIVES; ··· 1577 1577 case -9: /* "swapdata" */ 1578 1578 case -10: /* "bswap" */ 1579 1579 drive->bswap = 1; 1580 + goto done; 1581 + case -11: /* noflush */ 1582 + drive->noflush = 1; 1580 1583 goto done; 1581 1584 case -12: /* "remap" */ 1582 1585 drive->remap_0_to_1 = 1;
+8 -3
drivers/ide/pci/it821x.c
··· 498 498 { 499 499 u8 speed = ide_dma_speed(drive, it821x_ratemask(drive)); 500 500 501 - config_it821x_chipset_for_pio(drive, !speed); 502 - it821x_tune_chipset(drive, speed); 503 - return ide_dma_enable(drive); 501 + if (speed) { 502 + config_it821x_chipset_for_pio(drive, 0); 503 + it821x_tune_chipset(drive, speed); 504 + 505 + return ide_dma_enable(drive); 506 + } 507 + 508 + return 0; 504 509 } 505 510 506 511 /**
+1 -4
drivers/scsi/scsi_ioctl.c
··· 110 110 sshdr.asc, sshdr.ascq); 111 111 break; 112 112 case NOT_READY: /* This happens if there is no disc in drive */ 113 - if (sdev->removable && (cmd[0] != TEST_UNIT_READY)) { 114 - printk(KERN_INFO "Device not ready. Make sure" 115 - " there is a disc in the drive.\n"); 113 + if (sdev->removable) 116 114 break; 117 - } 118 115 case UNIT_ATTENTION: 119 116 if (sdev->removable) { 120 117 sdev->changed = 1;
+1
include/linux/ide.h
··· 571 571 u8 waiting_for_dma; /* dma currently in progress */ 572 572 u8 unmask; /* okay to unmask other irqs */ 573 573 u8 bswap; /* byte swap data */ 574 + u8 noflush; /* don't attempt flushes */ 574 575 u8 dsc_overlap; /* DSC overlap */ 575 576 u8 nice1; /* give potential excess bandwidth */ 576 577