--- linux-2.6.8-rc3/arch/i386/crypto/Makefile.orig 2004-08-07 14:54:25.000000000 +0200 +++ linux-2.6.8-rc3/arch/i386/crypto/Makefile 2004-08-07 18:41:49.000000000 +0200 @@ -6,4 +6,4 @@ obj-$(CONFIG_CRYPTO_AES_586) += aes-i586.o -aes-i586-y := aes-i586-asm.o aes.o +aes-i586-objs := aes-i586-asm.o aes.o --- linux-2.6.8/drivers/scsi/scsi_sysfs.c.orig 2004-08-14 14:36:42.953272032 +0200 +++ linux-2.6.8/drivers/scsi/scsi_sysfs.c 2004-08-14 14:36:47.490582256 +0200 @@ -190,6 +190,7 @@ .name = "scsi", .match = scsi_bus_match, }; +EXPORT_SYMBOL(scsi_bus_type); int scsi_sysfs_register(void) { --- linux-2.6.9-rc1/drivers/scsi/qla2xxx/qla_os.c.orig 2004-08-29 16:44:20.000000000 +0200 +++ linux-2.6.9-rc1/drivers/scsi/qla2xxx/qla_os.c 2004-08-29 18:39:44.022077312 +0200 @@ -229,72 +229,10 @@ void qla2x00_cmd_timeout(srb_t *); -static __inline__ void qla2x00_callback(scsi_qla_host_t *, struct scsi_cmnd *); -static __inline__ void sp_put(struct scsi_qla_host * ha, srb_t *sp); -static __inline__ void sp_get(struct scsi_qla_host * ha, srb_t *sp); -static __inline__ void -qla2x00_delete_from_done_queue(scsi_qla_host_t *, srb_t *); - -/************************************************************************** -* sp_put -* -* Description: -* Decrement reference count and call the callback if we're the last -* owner of the specified sp. Will get the host_lock before calling -* the callback. -* -* Input: -* ha - pointer to the scsi_qla_host_t where the callback is to occur. -* sp - pointer to srb_t structure to use. -* -* Returns: -* -**************************************************************************/ -static inline void -sp_put(struct scsi_qla_host * ha, srb_t *sp) -{ - if (atomic_read(&sp->ref_count) == 0) { - qla_printk(KERN_INFO, ha, - "%s(): **** SP->ref_count not zero\n", - __func__); - DEBUG2(BUG();) - - return; - } - - if (!atomic_dec_and_test(&sp->ref_count)) { - return; - } - - qla2x00_callback(ha, sp->cmd); -} - -/************************************************************************** -* sp_get -* -* Description: -* Increment reference count of the specified sp. -* -* Input: -* sp - pointer to srb_t structure to use. -* -* Returns: -* -**************************************************************************/ +static inline void sp_put(struct scsi_qla_host * ha, srb_t *sp); +static inline void sp_get(struct scsi_qla_host * ha, srb_t *sp); static inline void -sp_get(struct scsi_qla_host * ha, srb_t *sp) -{ - atomic_inc(&sp->ref_count); - - if (atomic_read(&sp->ref_count) > 2) { - qla_printk(KERN_INFO, ha, - "%s(): **** SP->ref_count greater than two\n", - __func__); - DEBUG2(BUG();) - - return; - } -} +qla2x00_delete_from_done_queue(scsi_qla_host_t *, srb_t *); /* * qla2x00_callback @@ -366,6 +304,68 @@ (*(cmd)->scsi_done)(cmd); } +/************************************************************************** +* sp_put +* +* Description: +* Decrement reference count and call the callback if we're the last +* owner of the specified sp. Will get the host_lock before calling +* the callback. +* +* Input: +* ha - pointer to the scsi_qla_host_t where the callback is to occur. +* sp - pointer to srb_t structure to use. +* +* Returns: +* +**************************************************************************/ +static inline void +sp_put(struct scsi_qla_host * ha, srb_t *sp) +{ + if (atomic_read(&sp->ref_count) == 0) { + qla_printk(KERN_INFO, ha, + "%s(): **** SP->ref_count not zero\n", + __func__); + DEBUG2(BUG();) + + return; + } + + if (!atomic_dec_and_test(&sp->ref_count)) { + return; + } + + qla2x00_callback(ha, sp->cmd); +} + +/************************************************************************** +* sp_get +* +* Description: +* Increment reference count of the specified sp. +* +* Input: +* sp - pointer to srb_t structure to use. +* +* Returns: +* +**************************************************************************/ +static inline void +sp_get(struct scsi_qla_host * ha, srb_t *sp) +{ + atomic_inc(&sp->ref_count); + + if (atomic_read(&sp->ref_count) > 2) { + qla_printk(KERN_INFO, ha, + "%s(): **** SP->ref_count greater than two\n", + __func__); + DEBUG2(BUG();) + + return; + } +} + + static inline void qla2x00_delete_from_done_queue(scsi_qla_host_t *dest_ha, srb_t *sp) { --- linux-2.6.9-rc1/drivers/scsi/qla2xxx/qla_rscn.c.orig 2004-08-24 09:02:26.000000000 +0200 +++ linux-2.6.9-rc1/drivers/scsi/qla2xxx/qla_rscn.c 2004-08-29 18:50:47.678186248 +0200 @@ -242,6 +242,20 @@ } /** + * qla2x00_remove_iodesc_timer() - Remove an active timer from an IO descriptor. + * @iodesc: io descriptor + */ +static inline void +qla2x00_remove_iodesc_timer(struct io_descriptor *iodesc) +{ + if (iodesc->timer.function != NULL) { + del_timer_sync(&iodesc->timer); + iodesc->timer.data = (unsigned long) NULL; + iodesc->timer.function = NULL; + } +} + +/** * qla2x00_init_io_descriptors() - Initialize the pool of IO descriptors. * @ha: HA context */ @@ -311,19 +325,6 @@ add_timer(&iodesc->timer); } -/** - * qla2x00_remove_iodesc_timer() - Remove an active timer from an IO descriptor. - * @iodesc: io descriptor - */ -static inline void -qla2x00_remove_iodesc_timer(struct io_descriptor *iodesc) -{ - if (iodesc->timer.function != NULL) { - del_timer_sync(&iodesc->timer); - iodesc->timer.data = (unsigned long) NULL; - iodesc->timer.function = NULL; - } -} /** * IO descriptor support routines. diff -puN include/linux/spinlock.h~fix_outofline_spinlocks include/linux/spinlock.h --- gr_work/include/linux/spinlock.h~fix_outofline_spinlocks 2004-09-05 02:05:53.243858818 -0500 +++ gr_work-anton/include/linux/spinlock.h 2004-09-05 02:06:06.177805993 -0500 @@ -38,7 +38,7 @@ #ifdef CONFIG_SMP #include -#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);