Re: [PATCH] sym53c8xx timer and smp fixes

Jeff Garzik
2001-06-01T08:13:36Z

Tim Hockin wrote:
> spinlock_t sym53c8xx_lock = SPIN_LOCK_UNLOCKED;
> +spinlock_t sym53c8xx_host_lock = SPIN_LOCK_UNLOCKED;
> #define NCR_LOCK_DRIVER(flags) spin_lock_irqsave(&sym53c8xx_lock, flags)
> #define NCR_UNLOCK_DRIVER(flags) spin_unlock_irqrestore(&sym53c8xx_lock,flags)
> +#define NCR_LOCK_HOSTS(flags) spin_lock_irqsave(&sym53c8xx_host_lock, flags)
> +#define NCR_UNLOCK_HOSTS(flags) spin_unlock_irqrestore(&sym53c8xx_host_lock,flags)
>
> #define NCR_INIT_LOCK_NCB(np) spin_lock_init(&np->smp_lock);
> #define NCR_LOCK_NCB(np, flags) spin_lock_irqsave(&np->smp_lock, flags)
> @@ -650,6 +655,8 @@
>
> #define NCR_LOCK_DRIVER(flags) do { save_flags(flags); cli(); } while (0)
> #define NCR_UNLOCK_DRIVER(flags) do { restore_flags(flags); } while (0)
> +#define NCR_LOCK_HOSTS(flags) do { save_flags(flags); cli(); } while (0)
> +#define NCR_UNLOCK_HOSTS(flags) do { restore_flags(flags); } while (0)
>
> #define NCR_INIT_LOCK_NCB(np) do { } while (0)
> #define NCR_LOCK_NCB(np, flags) do { save_flags(flags); cli(); } while (0)
> @@ -695,7 +702,7 @@

so, this driver is mixed spinlocks and save/restore_flags? Any chance
this can be converted to all spinlocks?

> #ifdef SCSI_NCR_DYNAMIC_DMA_MAPPING
> - if (pci_set_dma_mask(pdev, (dma_addr_t) (0xffffffffUL))) {
> + if (!pci_dma_supported(pdev, (dma_addr_t) (0xffffffffUL))) {

totally wrong. you are going backwards.

--
Jeff Garzik | Disbelief, that's why you fail.
Building 1024 |
MandrakeSoft |