SOURCES (LINUX_2_6): kernel-hotfixes.patch, linux-2.6-sata-sil-mod...
pluto
pluto at pld-linux.org
Sat Oct 1 00:47:14 CEST 2005
Author: pluto Date: Fri Sep 30 22:47:14 2005 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- updated for 2.6.14.
---- Files affected:
SOURCES:
kernel-hotfixes.patch (1.1.2.57 -> 1.1.2.58) , linux-2.6-sata-sil-mod15write-workaround.patch (1.1.2.3 -> 1.1.2.4)
---- Diffs:
================================================================
Index: SOURCES/kernel-hotfixes.patch
diff -u SOURCES/kernel-hotfixes.patch:1.1.2.57 SOURCES/kernel-hotfixes.patch:1.1.2.58
--- SOURCES/kernel-hotfixes.patch:1.1.2.57 Fri Jun 24 17:29:16 2005
+++ SOURCES/kernel-hotfixes.patch Sat Oct 1 00:47:09 2005
@@ -1,16 +1,3 @@
-
-
---- a/include/linux/spinlock.h 2004-09-05 02:05:53.243858818 -0500
-+++ b/include/linux/spinlock.h 2004-09-05 02:06:06.177805993 -0500
-@@ -38,7 +38,7 @@
- #ifdef CONFIG_SMP
- #include <asm/spinlock.h>
-
--#define __lockfunc fastcall __attribute__((section(".spinlock.text")))
-+#define __lockfunc fastcall __attribute__((section(".lock.text")))
-
- int __lockfunc _spin_trylock(spinlock_t *lock);
- int __lockfunc _write_trylock(rwlock_t *lock);
--- a/arch/i386/mm/init.c 2004-09-26 03:43:57.944613000 +1000
+++ b/arch/i386/mm/init.c 2004-09-28 02:37:21.787922000 +1000
@@ -41,6 +41,7 @@
@@ -120,17 +107,6 @@
#endif
#ifndef TRUE
---- a/include/asm-alpha/spinlock.h 2005-03-19 07:34:59.000000000 +0100
-+++ b/include/asm-alpha/spinlock.h 2005-03-22 18:26:26.000000000 +0100
-@@ -153,6 +153,8 @@
- }
- #endif /* CONFIG_DEBUG_RWLOCK */
-
-+#define _raw_read_trylock(lock) generic_raw_read_trylock(lock)
-+
- static inline int _raw_write_trylock(rwlock_t * lock)
- {
- long regx;
--- a/arch/alpha/kernel/alpha_ksyms.c 2005-03-13 07:44:05.000000000 +0100
+++ b/arch/alpha/kernel/alpha_ksyms.c 2005-03-15 23:20:00.405832368 +0100
@@ -67,6 +67,9 @@
================================================================
Index: SOURCES/linux-2.6-sata-sil-mod15write-workaround.patch
diff -u SOURCES/linux-2.6-sata-sil-mod15write-workaround.patch:1.1.2.3 SOURCES/linux-2.6-sata-sil-mod15write-workaround.patch:1.1.2.4
--- SOURCES/linux-2.6-sata-sil-mod15write-workaround.patch:1.1.2.3 Wed Jun 22 20:51:50 2005
+++ SOURCES/linux-2.6-sata-sil-mod15write-workaround.patch Sat Oct 1 00:47:09 2005
@@ -76,9 +76,9 @@
# 2005/03/15 16:36:21+09:00 tj at htj.dyndns.org +139 -11
# initial implementaion of mod15write workaround
#
---- linux-2.6.11.6/drivers/scsi/sata_sil.c.orig 2005-03-31 19:40:17.000000000 +0200
-+++ linux-2.6.11.6/drivers/scsi/sata_sil.c 2005-03-31 19:41:52.000000000 +0200
-@@ -71,9 +71,12 @@
+--- linux-2.6.14-rc2/drivers/scsi/sata_sil.c.orig 2005-09-20 03:00:41.000000000 +0000
++++ linux-2.6.14-rc2/drivers/scsi/sata_sil.c 2005-09-30 22:38:19.044283080 +0000
+@@ -82,9 +82,12 @@
static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
static void sil_dev_config(struct ata_port *ap, struct ata_device *dev);
@@ -89,9 +89,9 @@
static void sil_post_set_mode (struct ata_port *ap);
+static void sil_host_stop (struct ata_host_set *host_set);
+
static struct pci_device_id sil_pci_tbl[] = {
- { 0x1095, 0x3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112 },
-@@ -152,16 +155,16 @@
+@@ -164,16 +167,16 @@
.bmdma_start = ata_bmdma_start,
.bmdma_stop = ata_bmdma_stop,
.bmdma_status = ata_bmdma_status,
@@ -106,12 +106,12 @@
.scr_write = sil_scr_write,
.port_start = ata_port_start,
.port_stop = ata_port_stop,
-- .host_stop = ata_host_stop,
+- .host_stop = ata_pci_host_stop,
+ .host_stop = sil_host_stop,
};
static struct ata_port_info sil_port_info[] = {
-@@ -201,6 +205,53 @@
+@@ -226,6 +229,53 @@
/* ... port 3 */
};
@@ -165,7 +165,7 @@
MODULE_AUTHOR("Jeff Garzik");
MODULE_DESCRIPTION("low-level driver for Silicon Image SATA controller");
MODULE_LICENSE("GPL");
-@@ -241,6 +292,227 @@
+@@ -268,6 +318,227 @@
readl(addr); /* flush */
}
@@ -393,7 +393,7 @@
static inline unsigned long sil_scr_addr(struct ata_port *ap, unsigned int sc_reg)
{
unsigned long offset = ap->ioaddr.scr_addr;
-@@ -275,6 +547,12 @@
+@@ -302,6 +573,12 @@
writel(val, mmio);
}
@@ -406,7 +406,7 @@
/**
* sil_dev_config - Apply device/host-specific errata fixups
* @ap: Port containing device to be examined
-@@ -285,17 +563,12 @@
+@@ -312,17 +589,12 @@
* We apply two errata fixups which are specific to Silicon Image,
* a Seagate and a Maxtor fixup.
*
@@ -426,7 +426,7 @@
* 20040111 - Seagate drives affected by the Mod15Write bug are blacklisted
* The Maxtor quirk is in the blacklist, but I'm keeping the original
* pessimistic fix for the following reasons...
-@@ -303,6 +576,15 @@
+@@ -330,6 +602,15 @@
* Windows driver, maybe only one is affected. More info would be greatly
* appreciated.
* - But then again UDMA5 is hardly anything to complain about
@@ -442,7 +442,7 @@
*/
static void sil_dev_config(struct ata_port *ap, struct ata_device *dev)
{
-@@ -310,6 +592,7 @@
+@@ -337,6 +618,7 @@
unsigned char model_num[40];
const char *s;
unsigned int len;
@@ -450,13 +450,13 @@
ata_dev_id_string(dev->id, model_num, ATA_ID_PROD_OFS,
sizeof(model_num));
-@@ -327,15 +610,23 @@
+@@ -354,16 +636,21 @@
break;
}
-
+
- /* limit requests to 15 sectors */
+ /* Activate mod15write quirk workaround */
- if (quirks & SIL_QUIRK_MOD15WRITE) {
+ if ((ap->flags & SIL_FLAG_MOD15WRITE) && (quirks & SIL_QUIRK_MOD15WRITE)) {
+ struct sil_m15w_cxt *cxt;
+
printk(KERN_INFO "ata%u(%u): applying Seagate errata fix\n",
@@ -464,21 +464,20 @@
- ap->host->max_sectors = 15;
- ap->host->hostt->max_sectors = 15;
- dev->flags |= ATA_DFLAG_LOCK_SECTORS;
-+
+ cxt = ap->host_set->private_data;
+ cxt += ap->port_no * ATA_MAX_QUEUE;
+ for (i = 0; i < ATA_MAX_QUEUE; i++)
+ ap->qcmd[i].private_data = cxt++;
-+
return;
}
+-
+ /* Clear qcmd->private_data if mod15write quirk isn't present */
+ for (i = 0; i < ATA_MAX_QUEUE; i++)
+ ap->qcmd[i].private_data = NULL;
-
/* limit to udma5 */
if (quirks & SIL_QUIRK_UDMA5MAX) {
-@@ -349,7 +640,8 @@
+ printk(KERN_INFO "ata%u(%u): applying Maxtor errata fix %s\n",
+@@ -376,7 +663,8 @@
static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
{
static int printed_version;
@@ -486,9 +485,9 @@
+ struct ata_probe_ent *probe_ent;
+ struct sil_m15w_cxt *m15w_cxt;
unsigned long base;
- void *mmio_base;
+ void __iomem *mmio_base;
int rc;
-@@ -382,11 +674,17 @@
+@@ -409,11 +697,17 @@
if (rc)
goto err_out_regions;
@@ -510,15 +509,15 @@
memset(probe_ent, 0, sizeof(*probe_ent));
INIT_LIST_HEAD(&probe_ent->node);
-@@ -400,6 +698,7 @@
+@@ -427,6 +721,7 @@
probe_ent->irq = pdev->irq;
probe_ent->irq_flags = SA_SHIRQ;
probe_ent->host_flags = sil_port_info[ent->driver_data].host_flags;
+ probe_ent->private_data = m15w_cxt;
- mmio_base = ioremap(pci_resource_start(pdev, 5),
- pci_resource_len(pdev, 5));
-@@ -466,6 +765,8 @@
+ mmio_base = pci_iomap(pdev, 5, 0);
+ if (mmio_base == NULL) {
+@@ -502,6 +797,8 @@
err_out_free_ent:
kfree(probe_ent);
================================================================
---- CVS-web:
http://cvs.pld-linux.org/SOURCES/kernel-hotfixes.patch?r1=1.1.2.57&r2=1.1.2.58&f=u
http://cvs.pld-linux.org/SOURCES/linux-2.6-sata-sil-mod15write-workaround.patch?r1=1.1.2.3&r2=1.1.2.4&f=u
More information about the pld-cvs-commit
mailing list