rpms/kernel/FC-4 kernel-2.6.spec, 1.1376, 1.1377 linux-2.6.12rc-ac-ide-fixes.patch, 1.5, 1.6
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Thu Jun 23 01:26:06 UTC 2005
Author: davej
Update of /cvs/dist/rpms/kernel/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv13391
Modified Files:
kernel-2.6.spec linux-2.6.12rc-ac-ide-fixes.patch
Log Message:
Updated IDE fixes.
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/kernel-2.6.spec,v
retrieving revision 1.1376
retrieving revision 1.1377
diff -u -r1.1376 -r1.1377
--- kernel-2.6.spec 22 Jun 2005 23:19:31 -0000 1.1376
+++ kernel-2.6.spec 23 Jun 2005 01:26:04 -0000 1.1377
@@ -755,7 +755,7 @@
# Don't barf on obsolete module parameters.
%patch1700 -p1
# Numerous IDE fixes.
-#%patch1710 -p1
+%patch1710 -p1
# Add missing MODULE_VERSION tags to some modules.
%patch1720 -p1
# Make spinlock debugging panic instead of continue.
linux-2.6.12rc-ac-ide-fixes.patch:
drivers/cdrom/cdrom.c | 3
drivers/ide/Kconfig | 6
drivers/ide/ide-cd.c | 114 ++++-
drivers/ide/ide-disk.c | 12
drivers/ide/ide-dma.c | 1
drivers/ide/ide-io.c | 8
drivers/ide/ide-iops.c | 97 ++---
drivers/ide/pci/Makefile | 1
drivers/ide/pci/cs5520.c | 2
drivers/ide/pci/generic.c | 73 ++-
drivers/ide/pci/hpt366.c | 472 +++++++++++-------------
drivers/ide/pci/it821x.c | 812 ++++++++++++++++++++++++++++++++++++++++++
drivers/ide/pci/serverworks.c | 10
drivers/ide/pci/siimage.c | 8
drivers/ide/pci/trm290.c | 1
drivers/scsi/libata-core.c | 1
include/asm-i386/ide.h | 14
include/linux/ide.h | 4
include/linux/pci_ids.h | 2
19 files changed, 1277 insertions(+), 364 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.5 -r 1.6 linux-2.6.12rc-ac-ide-fixes.patch
Index: linux-2.6.12rc-ac-ide-fixes.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/linux-2.6.12rc-ac-ide-fixes.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- linux-2.6.12rc-ac-ide-fixes.patch 1 Jun 2005 05:13:54 -0000 1.5
+++ linux-2.6.12rc-ac-ide-fixes.patch 23 Jun 2005 01:26:04 -0000 1.6
@@ -1,6 +1,6 @@
-diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.12rc3/drivers/cdrom/cdrom.c linux-2.6.12rc3-minoride/drivers/cdrom/cdrom.c
---- linux.vanilla-2.6.12rc3/drivers/cdrom/cdrom.c 2005-04-27 15:59:27.000000000 +0100
-+++ linux-2.6.12rc3-minoride/drivers/cdrom/cdrom.c 2005-04-29 14:51:39.000000000 +0100
+diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.12/drivers/cdrom/cdrom.c linux-2.6.12/drivers/cdrom/cdrom.c
+--- linux.vanilla-2.6.12/drivers/cdrom/cdrom.c 2005-06-19 11:30:47.000000000 +0100
++++ linux-2.6.12/drivers/cdrom/cdrom.c 2005-06-21 13:46:29.000000000 +0100
@@ -1131,7 +1131,8 @@
This ensures that the drive gets unlocked after a mount fails. This
is a goto to avoid bloating the driver with redundant code. */
@@ -11,980 +11,9 @@
if (CDROM_CAN(CDC_LOCK) && cdi->options & CDO_LOCK) {
cdo->lock_door(cdi, 0);
cdinfo(CD_OPEN, "door unlocked.\n");
-diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.12rc3/drivers/ide/arm/icside.c linux-2.6.12rc3-minoride/drivers/ide/arm/icside.c
---- linux.vanilla-2.6.12rc3/drivers/ide/arm/icside.c 2005-04-27 16:01:29.000000000 +0100
-+++ linux-2.6.12rc3-minoride/drivers/ide/arm/icside.c 2005-04-29 01:21:18.000000000 +0100
-@@ -502,9 +502,9 @@
- hwif->ide_dma_off_quietly = icside_dma_off_quietly;
- hwif->ide_dma_host_on = icside_dma_host_on;
- hwif->ide_dma_on = icside_dma_on;
-- hwif->dma_setup = icside_dma_setup;
-- hwif->dma_exec_cmd = icside_dma_exec_cmd;
-- hwif->dma_start = icside_dma_start;
-+ hwif->ide_dma_setup = icside_dma_setup;
-+ hwif->ide_dma_exec_cmd = icside_dma_exec_cmd;
-+ hwif->ide_dma_start = icside_dma_start;
- hwif->ide_dma_end = icside_dma_end;
- hwif->ide_dma_test_irq = icside_dma_test_irq;
- hwif->ide_dma_timeout = icside_dma_timeout;
-diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.12rc3/drivers/ide/cris/ide-v10.c linux-2.6.12rc3-minoride/drivers/ide/cris/ide-v10.c
---- linux.vanilla-2.6.12rc3/drivers/ide/cris/ide-v10.c 2005-04-27 15:59:28.000000000 +0100
-+++ linux-2.6.12rc3-minoride/drivers/ide/cris/ide-v10.c 2005-04-29 01:21:18.000000000 +0100
-@@ -332,9 +332,9 @@
- hwif->atapi_output_bytes = &e100_atapi_output_bytes;
- hwif->ide_dma_check = &e100_dma_check;
- hwif->ide_dma_end = &e100_dma_end;
-- hwif->dma_setup = &e100_dma_setup;
-- hwif->dma_exec_cmd = &e100_dma_exec_cmd;
-- hwif->dma_start = &e100_dma_start;
-+ hwif->ide_dma_setup = &e100_dma_setup;
-+ hwif->ide_dma_exec_cmd = &e100_dma_exec_cmd;
-+ hwif->ide_dma_start = &e100_dma_start;
- hwif->OUTB = &etrax100_ide_outb;
- hwif->OUTW = &etrax100_ide_outw;
- hwif->OUTBSYNC = &etrax100_ide_outbsync;
-diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.12rc3/drivers/ide/ide.c linux-2.6.12rc3-minoride/drivers/ide/ide.c
---- linux.vanilla-2.6.12rc3/drivers/ide/ide.c 2005-04-27 16:01:29.000000000 +0100
-+++ linux-2.6.12rc3-minoride/drivers/ide/ide.c 2005-04-29 01:21:18.000000000 +0100
-@@ -175,6 +175,7 @@
- static int initializing; /* set while initializing built-in drivers */
-
- DECLARE_MUTEX(ide_cfg_sem);
-+EXPORT_SYMBOL_GPL(ide_cfg_sem);
- __cacheline_aligned_in_smp DEFINE_SPINLOCK(ide_lock);
-
- #ifdef CONFIG_BLK_DEV_IDEPCI
-@@ -196,19 +197,20 @@
-
- EXPORT_SYMBOL(ide_hwifs);
-
--static struct list_head ide_drives = LIST_HEAD_INIT(ide_drives);
--
-+extern ide_driver_t idedefault_driver;
- /*
- * Do not even *think* about calling this!
- */
- static void init_hwif_data(ide_hwif_t *hwif, unsigned int index)
- {
- unsigned int unit;
-+ unsigned int key = hwif->key;
-
- /* bulk initialize hwif & drive info with zeros */
- memset(hwif, 0, sizeof(ide_hwif_t));
-
- /* fill in any non-zero initial values */
-+ hwif->key = key + 1; /* Protected by ide_cfg_sem */
- hwif->index = index;
- hwif->major = ide_hwif_to_major[index];
-
-@@ -245,6 +247,7 @@
- drive->max_failures = IDE_DEFAULT_MAX_FAILURES;
- drive->using_dma = 0;
- drive->is_flash = 0;
-+ drive->driver = &idedefault_driver;
- drive->vdma = 0;
- INIT_LIST_HEAD(&drive->list);
- sema_init(&drive->gendev_rel_sem, 0);
-@@ -316,6 +319,92 @@
- #endif
- }
-
-+/*
-+ * ide_drive_from_key - turn key into drive
-+ * @kval: persistent key
-+ *
-+ * Convert a key into a drive. Currently the key is packed as
-+ * [keyval] << 16 | hwif << 8 | drive_num. Caller must hold
-+ * ide_settings_sem for the duration of the returned reference
-+ */
-+
-+ide_drive_t *ide_drive_from_key(void *kval)
-+{
-+ unsigned long key = (unsigned long) kval;
-+ int idx = (key >> 8) & 0xFF;
-+ int drive = key & 3;
-+ ide_hwif_t *hwif = &ide_hwifs[idx];
-+ ide_drive_t *ret;
-+
-+ key >>= 16;
-+
-+ if(hwif->configured == 0 || hwif->present == 0 || hwif->drives[drive].dead || hwif->key != key)
-+ ret = NULL;
-+ else
-+ ret = &ide_hwifs[idx].drives[drive];
-+
-+ return ret;
-+}
-+
-+EXPORT_SYMBOL_GPL(ide_drive_from_key);
-+
-+/*
-+ * ide_drive_to_key - turn drive to persistent key
-+ * @drive: drive to use
-+ *
-+ * Convert drive into a key. Currently the key is packed as
-+ * [keyval] << 16 | hwif << 8 | drive_num. Caller must hold
-+ * ide_settings_sem for the duration of the returned reference
-+ */
-+
-+void *ide_drive_to_key(ide_drive_t *drive)
-+{
-+ ide_hwif_t *hwif = HWIF(drive);
-+ unsigned long val;
-+
-+ val = (hwif->index << 8) | (hwif->key << 16) | drive->select.b.unit;
-+ return (void *)val;
-+}
-+
-+/*
-+ * ide_hwif_from_key - turn key into hwif
-+ * @kval: persistent key
-+ *
-+ * Convert a key into a drive. Currently the key is packed as
-+ * [keyval] << 16 | hwif << 8 | drive_num. Caller must hold
-+ * ide_settings_sem for the duration of the returned reference
-+ */
-+
-+ide_hwif_t *ide_hwif_from_key(void *kval)
-+{
-+ unsigned long key = (unsigned long) kval;
-+ int idx = (key >> 8) & 0xFF;
-+ ide_hwif_t *hwif = &ide_hwifs[idx];
-+
-+ key >>= 16;
-+
-+ if(hwif->configured == 0 || hwif->present == 0 || hwif->key != key)
-+ return NULL;
-+ return hwif;
-+}
-+
-+/*
-+ * ide_hwif_to_key - turn drive to persistent key
-+ * @hwif: hwif to use
-+ *
-+ * Convert drive into a key. Currently the key is packed as
-+ * [keyval] << 16 | hwif << 8 | drive_num. Caller must hold
-+ * ide_settings_sem for the duration of the returned reference
-+ */
-+
-+void *ide_hwif_to_key(ide_hwif_t *hwif)
-+{
-+ unsigned long val;
-+
-+ val = (hwif->index << 8) | (hwif->key << 16);
-+ return (void *)val;
-+}
-+
- /**
- * ide_system_bus_speed - guess bus speed
- *
-@@ -359,11 +448,16 @@
- }
-
- /*
-- * drives_lock protects the list of drives, drivers_lock the
-- * list of drivers. Currently nobody takes both at once.
-+ * drives_lock protects the list of drives, drivers lock the
-+ * list of drivers. Currently nobody takes both at once.
-+ * drivers_sem guards the drivers_list for readers that may
-+ * sleep. It must be taken before drivers_lock. Take drivers_sem
-+ * before ide_setting_sem and idecfg_sem before either of the
[...2867 lines suppressed...]
unsigned int failures; /* current failure count */
unsigned int max_failures; /* maximum allowed failure count */
@@ -5016,55 +2524,7 @@
u64 capacity64; /* total number of sectors */
-@@ -763,6 +764,7 @@
- #define IDE_CHIPSET_IS_PCI(c) ((IDE_CHIPSET_PCI_MASK >> (c)) & 1)
-
- struct ide_pci_device_s;
-+struct ide_task_s;
-
- typedef struct hwif_s {
- struct hwif_s *next; /* for linked-list in ide_hwgroup_t */
-@@ -770,6 +772,7 @@
- struct hwgroup_s *hwgroup; /* actually (ide_hwgroup_t *) */
- struct proc_dir_entry *proc; /* /proc/ide/ directory entry */
-
-+ u16 key; /* /proc persistent keying */
- char name[6]; /* name of interface, eg. "ide0" */
-
- /* task file registers for pata and sata */
-@@ -825,6 +828,8 @@
- // u8 (*ratemask)(ide_drive_t *);
- // /* device rate limiter */
- // u8 (*ratefilter)(ide_drive_t *, u8);
-+ /* hwif remove hook, called on unload/pci remove paths*/
-+ void (*remove)(struct hwif_s *);
- #endif
-
- void (*ata_input_data)(ide_drive_t *, void *, u32);
-@@ -833,9 +838,9 @@
- void (*atapi_input_bytes)(ide_drive_t *, void *, u32);
- void (*atapi_output_bytes)(ide_drive_t *, void *, u32);
-
-- int (*dma_setup)(ide_drive_t *);
-- void (*dma_exec_cmd)(ide_drive_t *, u8);
-- void (*dma_start)(ide_drive_t *);
-+ int (*ide_dma_setup)(ide_drive_t *);
-+ void (*ide_dma_exec_cmd)(ide_drive_t *, u8);
-+ void (*ide_dma_start)(ide_drive_t *);
- int (*ide_dma_end)(ide_drive_t *drive);
- int (*ide_dma_check)(ide_drive_t *drive);
- int (*ide_dma_on)(ide_drive_t *drive);
-@@ -896,7 +901,9 @@
-
- unsigned noprobe : 1; /* don't probe for this interface */
- unsigned present : 1; /* this interface exists */
-+ unsigned configured : 1; /* this hwif exists and is set up (may not be "present") */
- unsigned hold : 1; /* this interface is always present */
-+ unsigned user_dev : 1; /* user ioctl created device */
- unsigned serialized : 1; /* serialized all channel operation */
- unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */
- unsigned reset : 1; /* reset after probe */
-@@ -907,6 +914,7 @@
+@@ -908,6 +909,7 @@
unsigned no_dsc : 1; /* 0 default, 1 dsc_overlap disabled */
unsigned auto_poll : 1; /* supports nop auto-poll */
unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */
@@ -5072,99 +2532,10 @@
struct device gendev;
struct semaphore gendev_rel_sem; /* To deal with device release() */
-@@ -1001,6 +1009,11 @@
- extern int ide_write_setting(ide_drive_t *drive, ide_settings_t *setting, int val);
- extern void ide_add_generic_settings(ide_drive_t *drive);
-
-+extern void *ide_drive_to_key(ide_drive_t *drive);
-+extern ide_drive_t *ide_drive_from_key(void *);
-+extern void *ide_hwif_to_key(ide_hwif_t *hwif);
-+extern ide_hwif_t *ide_hwif_from_key(void *);
-+
- /*
- * /proc/ide interface
- */
-@@ -1017,11 +1030,11 @@
- extern void proc_ide_create(void);
- extern void proc_ide_destroy(void);
- extern void create_proc_ide_interfaces(void);
--void destroy_proc_ide_interface(ide_hwif_t *);
-+extern void destroy_proc_ide_interface(ide_hwif_t *);
- extern void ide_add_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *, void *);
- extern void ide_remove_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *);
--read_proc_t proc_ide_read_capacity;
--read_proc_t proc_ide_read_geometry;
-+extern read_proc_t proc_ide_read_capacity;
-+extern read_proc_t proc_ide_read_geometry;
-
- #ifdef CONFIG_BLK_DEV_IDEPCI
- void ide_pci_create_host_proc(const char *, get_info_t *);
-@@ -1125,6 +1138,7 @@
-
- extern int ide_end_request (ide_drive_t *drive, int uptodate, int nrsecs);
- extern int __ide_end_request (ide_drive_t *drive, struct request *rq, int uptodate, int nrsecs);
-+extern int ide_end_dequeued_request (ide_drive_t *drive, struct request *rq, int uptodate, int nrsecs);
-
- /*
- * This is used on exit from the driver to designate the next irq handler
-@@ -1335,18 +1349,18 @@
- extern void ide_scan_pcibus(int scan_direction) __init;
- extern int ide_pci_register_driver(struct pci_driver *driver);
- extern void ide_pci_unregister_driver(struct pci_driver *driver);
--void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *);
-+extern void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *);
- extern void ide_setup_pci_noise (struct pci_dev *dev, struct ide_pci_device_s *d);
-
- extern void default_hwif_iops(ide_hwif_t *);
- extern void default_hwif_mmiops(ide_hwif_t *);
- extern void default_hwif_transport(ide_hwif_t *);
-
--int ide_register_driver(ide_driver_t *driver);
--void ide_unregister_driver(ide_driver_t *driver);
--int ide_register_subdriver(ide_drive_t *, ide_driver_t *);
--int ide_unregister_subdriver (ide_drive_t *drive);
--int ide_replace_subdriver(ide_drive_t *drive, const char *driver);
-+extern int ide_register_driver(ide_driver_t *driver);
-+extern void ide_unregister_driver(ide_driver_t *driver);
-+extern int ide_register_subdriver(ide_drive_t *, ide_driver_t *);
-+extern int ide_unregister_subdriver (ide_drive_t *drive);
-+extern int ide_replace_subdriver(ide_drive_t *drive, const char *driver);
-
- #define ON_BOARD 1
- #define NEVER_BOARD 0
-@@ -1439,14 +1453,15 @@
-
- extern int ide_hwif_request_regions(ide_hwif_t *hwif);
- extern void ide_hwif_release_regions(ide_hwif_t* hwif);
--extern void ide_unregister (unsigned int index);
-+extern int ide_unregister_hwif(ide_hwif_t *hwif);
-+extern int __ide_unregister_hwif(ide_hwif_t *hwif);
-
- void ide_register_region(struct gendisk *);
- void ide_unregister_region(struct gendisk *);
-
--void ide_undecoded_slave(ide_hwif_t *);
-+extern void ide_undecoded_slave(ide_hwif_t *);
-
--int probe_hwif_init_with_fixup(ide_hwif_t *, void (*)(ide_hwif_t *));
-+extern int probe_hwif_init_with_fixup(ide_hwif_t *, void (*)(ide_hwif_t *));
- extern int probe_hwif_init(ide_hwif_t *);
-
- static inline void *ide_get_hwifdata (ide_hwif_t * hwif)
-diff -u --new-file --exclude-from /usr/src/exclude --recursive linux.vanilla-2.6.12rc3/include/linux/pci_ids.h linux-2.6.12rc3-minoride/include/linux/pci_ids.h
---- linux.vanilla-2.6.12rc3/include/linux/pci_ids.h 2005-04-27 16:01:41.000000000 +0100
-+++ linux-2.6.12rc3-minoride/include/linux/pci_ids.h 2005-04-29 01:23:14.000000000 +0100
-@@ -1502,6 +1502,9 @@
- #define PCI_DEVICE_ID_ALLIANCE_AT24 0x6424
- #define PCI_DEVICE_ID_ALLIANCE_AT3D 0x643d
-
-+#define PCI_VENDOR_ID_WORKBIT 0x1145
-+#define PCI_DEVICE_ID_WORKBIT_CB 0xf021
-+
- #define PCI_VENDOR_ID_SYSKONNECT 0x1148
- #define PCI_DEVICE_ID_SYSKONNECT_FP 0x4000
- #define PCI_DEVICE_ID_SYSKONNECT_TR 0x4200
-@@ -1802,6 +1805,8 @@
+diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.12/include/linux/pci_ids.h linux-2.6.12/include/linux/pci_ids.h
+--- linux.vanilla-2.6.12/include/linux/pci_ids.h 2005-06-19 11:30:59.000000000 +0100
++++ linux-2.6.12/include/linux/pci_ids.h 2005-06-20 21:25:36.000000000 +0100
+@@ -1810,6 +1810,8 @@
#define PCI_VENDOR_ID_ITE 0x1283
#define PCI_DEVICE_ID_ITE_IT8172G 0x8172
#define PCI_DEVICE_ID_ITE_IT8172G_AUDIO 0x0801
@@ -5173,36 +2544,3 @@
#define PCI_DEVICE_ID_ITE_8872 0x8872
#define PCI_DEVICE_ID_ITE_IT8330G_0 0xe886
---- linux-2.6.11/include/linux/ide.h~ 2005-05-17 23:56:58.000000000 -0400
-+++ linux-2.6.11/include/linux/ide.h 2005-05-17 23:57:36.000000000 -0400
-@@ -1350,6 +1350,7 @@ extern void ide_scan_pcibus(int scan_dir
- extern int ide_pci_register_driver(struct pci_driver *driver);
- extern void ide_pci_unregister_driver(struct pci_driver *driver);
- extern void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *);
-+extern void ide_pci_remove_hwifs(struct pci_dev *dev);
- extern void ide_setup_pci_noise (struct pci_dev *dev, struct ide_pci_device_s *d);
-
- extern void default_hwif_iops(ide_hwif_t *);
---- linux-2.6.11/include/linux/ide.h~ 2005-05-17 23:55:32.000000000 -0400
-+++ linux-2.6.11/include/linux/ide.h 2005-05-17 23:55:51.000000000 -0400
-@@ -1356,6 +1356,8 @@ extern void default_hwif_iops(ide_hwif_t
- extern void default_hwif_mmiops(ide_hwif_t *);
- extern void default_hwif_transport(ide_hwif_t *);
-
-+extern void removed_hwif_iops (ide_hwif_t *hwif);
-+
- extern int ide_register_driver(ide_driver_t *driver);
- extern void ide_unregister_driver(ide_driver_t *driver);
- extern int ide_register_subdriver(ide_drive_t *, ide_driver_t *);
---- 1/drivers/ide/ide-disk.c~ 2005-05-28 13:48:47.000000000 +0100
-+++ 2/drivers/ide/ide-disk.c 2005-05-28 13:48:47.000000000 +0100
-@@ -500,7 +500,7 @@
- set_max, sectors_to_MB(set_max));
-
- /* Some maxtor support LBA48 but do not accept LBA48 set max... */
-- if (lba48 || set_max < (1ULL << 28))
-+ if (lba48 && set_max >= (1ULL << 28))
- set_max = idedisk_set_max_address_ext(drive, set_max);
- else
- set_max = idedisk_set_max_address(drive, set_max);
-
More information about the fedora-cvs-commits
mailing list