more gcc3.4 inline fixes [7/10]
Subsystems (7)
SCSI Megaraid SCSI/SAS drivers AIC7XXX / AIC79XX SCSI driver IBM ServeRAID RAID driver +3 more subsystems
PATCH 1/1 more gcc3.4 inline fixes [7/10]
drivers/scsi/sim710.c renamed from drivers/scsi/sim710.c~ +166 -166
@@ -921,172 +921,6 @@ } -/* A quick wrapper for sim710_intr_handle to grab the spin lock */ - -static void -do_sim710_intr_handle (int irq,void *dev_id,struct pt_regs *regs) -{ -unsigned long flags; - -spin_lock_irqsave (&io_request_lock, flags); -sim710_intr_handle (irq, dev_id, regs); -spin_unlock_irqrestore (&io_request_lock, flags); -} - - -/* A "high" level interrupt handler */ - -static void -sim710_intr_handle (int irq,void *dev_id,struct pt_regs *regs) -{ -struct Scsi_Host * host = (struct Scsi_Host *)dev_id; -struct sim710_hostdata *hostdata = (struct sim710_hostdata *)host->hostdata[0 ]; -Scsi_Cmnd * cmd; -unsigned char istat, dstat; -unsigned char sstat0; -u32 scratch, dsps, resume_offset =0 ; - - istat =NCR_read8 (ISTAT_REG ); -if (!(istat & (ISTAT_SIP |ISTAT_DIP ))) -return ; -else { - sim710_intrs++; - dsps =NCR_read32 (DSPS_REG ); - hostdata->state =STATE_HALTED ; - sstat0 = dstat =0 ; - scratch =NCR_read32 (SCRATCH_REG ); -if (istat &ISTAT_SIP ) { - sstat0 =NCR_read8 (SSTAT0_REG ); - } -if (istat &ISTAT_DIP ) { -udelay (10 );/* Some comment somewhere about 10cycles -* between accesses to sstat0 and dstat ??? */ - dstat =NCR_read8 (DSTAT_REG ); - } -DEB (DEB_INTS ,printk ("scsi%d: Int %d, istat %02x, sstat0 %02x " -"dstat %02x, dsp [%04x], scratch %02x\n" , - host->host_no, sim710_intrs, istat, sstat0, dstat, - (u32 *)(bus_to_virt (NCR_read32 (DSP_REG ))) - hostdata->script, - scratch)); -if (scratch &0x100 ) { -u8 *p = hostdata->msgin_buf; - -DEB (DEB_INTS ,printk (" msgin_buf: %02x %02x %02x %02x\n" , - p[0 ], p[1 ], p[2 ], p[3 ])); - } -if ((dstat &DSTAT_SIR ) && dsps == A_int_reselected) { -/* Reselected. Identify the target from LCRC_REG, and -* update current command. If we were trying to select -* a device, then that command needs to go back on the -* issue_queue for later. -*/ -unsigned char lcrc =NCR_read8 (LCRC_REG_10 ); -int id =0 ; - -if (!(lcrc &0x7f )) { -printk ("scsi%d: Reselected with LCRC = %02x\n" , - host->host_no, lcrc); - cmd =NULL ; - } -else { -while (!(lcrc &1 )) { - id++; - lcrc >>=1 ; - } -DEB (DEB_DISC ,printk ("scsi%d: Reselected by ID %d\n" , - host->host_no, id)); -if (hostdata->running) { -/* Clear SIGP */ - (void )NCR_read8 (CTEST2_REG_700 ); - -DEB (DEB_DISC ,printk ("scsi%d: Select of %d interrupted " -"by reselect from %d (%p)\n" , - host->host_no, hostdata->running->target, - id, hostdata->target[id].cur_cmd)); - cmd = hostdata->running; - hostdata->target[cmd->target].cur_cmd =NULL ; - cmd->SCp.ptr = (unsigned char *) hostdata->issue_queue; - hostdata->issue_queue = cmd; - } - cmd = hostdata->running = hostdata->target[id].cur_cmd; - } - } -else - cmd = hostdata->running; - -if (!cmd) { -printk ("scsi%d: No active command!\n" , host->host_no); -printk ("scsi%d: Int %d, istat %02x, sstat0 %02x " -"dstat %02x, dsp [%04x], scratch %02x, dsps %08x\n" , - host->host_no, sim710_intrs, istat, sstat0, dstat, - (u32 *)(bus_to_virt (NCR_read32 (DSP_REG ))) - hostdata->script, -NCR_read32 (SCRATCH_REG ), dsps); -/* resume_offset is zero, which will cause a host reset */ - } -else if (sstat0 &SSTAT0_700_STO ) { -DEB (DEB_TOUT ,printk ("scsi%d: Selection timeout\n" , host->host_no)); - cmd->result =DID_NO_CONNECT <<16 ; -SCSI_DONE (cmd); - hostdata->target[cmd->target].cur_cmd =NULL ; - resume_offset = Ent_reselect; - } -else if (sstat0 & (SSTAT0_SGE |SSTAT0_UDC |SSTAT0_RST |SSTAT0_PAR )) { -printk ("scsi%d: Serious error, sstat0 = %02x\n" , host->host_no, - sstat0); - sim710_errors++; -/* resume_offset is zero, which will cause a host reset */ - } -else if (dstat & (DSTAT_BF |DSTAT_ABRT |DSTAT_SSI |DSTAT_WTD )) { -printk ("scsi%d: Serious error, dstat = %02x\n" , host->host_no, - dstat); - sim710_errors++; -/* resume_offset is zero, which will cause a host reset */ - } -else if (dstat &DSTAT_SIR ) - resume_offset =handle_script_int (host, cmd); -else if (sstat0 &SSTAT0_MA ) - resume_offset =handle_phase_mismatch (host, cmd); -else if (dstat &DSTAT_IID ) { -/* This can be due to a quick reselect while doing a WAIT -* DISCONNECT. -*/ - resume_offset =handle_idd (host, cmd); - } -else { - sim710_errors++; -printk ("scsi%d: Spurious interrupt!\n" , host->host_no); -/* resume_offset is zero, which will cause a host reset */ - } - } - -if (resume_offset) { -if (resume_offset == Ent_reselect) { - hostdata->running =NULL ; - hostdata->state =STATE_IDLE ; - } -else - hostdata->state =STATE_BUSY ; -DEB (DEB_RESUME ,printk ("scsi%d: Resuming at script[0x%x]\n" , - host->host_no, resume_offset/4 )); -#ifdef DEBUG_LIMIT_INTS - if (sim710_intrs < DEBUG_LIMIT_INTS) -#endif - { -NCR_write32 (SCRATCH_REG ,0 ); -NCR_write32 (DSP_REG ,virt_to_bus (hostdata->script+resume_offset/4 )); - } -if (resume_offset == Ent_reselect) -run_process_issue_queue (hostdata); - } -else { -printk ("scsi%d: Failed to handle interrupt. Failing commands " -"and resetting SCSI bus and chip\n" , host->host_no); -mdelay (1000 );/* Give chance to read screen!! */ -full_reset (host); - } -} - -static void run_command (struct sim710_hostdata *hostdata,Scsi_Cmnd *cmd) {
@@ -1284,6 +1118,172 @@ } +/* A quick wrapper for sim710_intr_handle to grab the spin lock */ + +static void +do_sim710_intr_handle (int irq,void *dev_id,struct pt_regs *regs) +{ +unsigned long flags; + +spin_lock_irqsave (&io_request_lock, flags); +sim710_intr_handle (irq, dev_id, regs); +spin_unlock_irqrestore (&io_request_lock, flags); +} + + +/* A "high" level interrupt handler */ + +static void +sim710_intr_handle (int irq,void *dev_id,struct pt_regs *regs) +{ +struct Scsi_Host * host = (struct Scsi_Host *)dev_id; +struct sim710_hostdata *hostdata = (struct sim710_hostdata *)host->hostdata[0 ]; +Scsi_Cmnd * cmd; +unsigned char istat, dstat; +unsigned char sstat0; +u32 scratch, dsps, resume_offset =0 ; + + istat =NCR_read8 (ISTAT_REG ); +if (!(istat & (ISTAT_SIP |ISTAT_DIP ))) +return ; +else { + sim710_intrs++; + dsps =NCR_read32 (DSPS_REG ); + hostdata->state =STATE_HALTED ; + sstat0 = dstat =0 ; + scratch =NCR_read32 (SCRATCH_REG ); +if (istat &ISTAT_SIP ) { + sstat0 =NCR_read8 (SSTAT0_REG ); + } +if (istat &ISTAT_DIP ) { +udelay (10 );/* Some comment somewhere about 10cycles +* between accesses to sstat0 and dstat ??? */ + dstat =NCR_read8 (DSTAT_REG ); + } +DEB (DEB_INTS ,printk ("scsi%d: Int %d, istat %02x, sstat0 %02x " +"dstat %02x, dsp [%04x], scratch %02x\n" , + host->host_no, sim710_intrs, istat, sstat0, dstat, + (u32 *)(bus_to_virt (NCR_read32 (DSP_REG ))) - hostdata->script, + scratch)); +if (scratch &0x100 ) { +u8 *p = hostdata->msgin_buf; + +DEB (DEB_INTS ,printk (" msgin_buf: %02x %02x %02x %02x\n" , + p[0 ], p[1 ], p[2 ], p[3 ])); + } +if ((dstat &DSTAT_SIR ) && dsps == A_int_reselected) { +/* Reselected. Identify the target from LCRC_REG, and +* update current command. If we were trying to select +* a device, then that command needs to go back on the +* issue_queue for later. +*/ +unsigned char lcrc =NCR_read8 (LCRC_REG_10 ); +int id =0 ; + +if (!(lcrc &0x7f )) { +printk ("scsi%d: Reselected with LCRC = %02x\n" , + host->host_no, lcrc); + cmd =NULL ; + } +else { +while (!(lcrc &1 )) { + id++; + lcrc >>=1 ; + } +DEB (DEB_DISC ,printk ("scsi%d: Reselected by ID %d\n" , + host->host_no, id)); +if (hostdata->running) { +/* Clear SIGP */ + (void )NCR_read8 (CTEST2_REG_700 ); + +DEB (DEB_DISC ,printk ("scsi%d: Select of %d interrupted " +"by reselect from %d (%p)\n" , + host->host_no, hostdata->running->target, + id, hostdata->target[id].cur_cmd)); + cmd = hostdata->running; + hostdata->target[cmd->target].cur_cmd =NULL ; + cmd->SCp.ptr = (unsigned char *) hostdata->issue_queue; + hostdata->issue_queue = cmd; + } + cmd = hostdata->running = hostdata->target[id].cur_cmd; + } + } +else + cmd = hostdata->running; + +if (!cmd) { +printk ("scsi%d: No active command!\n" , host->host_no); +printk ("scsi%d: Int %d, istat %02x, sstat0 %02x " +"dstat %02x, dsp [%04x], scratch %02x, dsps %08x\n" , + host->host_no, sim710_intrs, istat, sstat0, dstat, + (u32 *)(bus_to_virt (NCR_read32 (DSP_REG ))) - hostdata->script, +NCR_read32 (SCRATCH_REG ), dsps); +/* resume_offset is zero, which will cause a host reset */ + } +else if (sstat0 &SSTAT0_700_STO ) { +DEB (DEB_TOUT ,printk ("scsi%d: Selection timeout\n" , host->host_no)); + cmd->result =DID_NO_CONNECT <<16 ; +SCSI_DONE (cmd); + hostdata->target[cmd->target].cur_cmd =NULL ; + resume_offset = Ent_reselect; + } +else if (sstat0 & (SSTAT0_SGE |SSTAT0_UDC |SSTAT0_RST |SSTAT0_PAR )) { +printk ("scsi%d: Serious error, sstat0 = %02x\n" , host->host_no, + sstat0); + sim710_errors++; +/* resume_offset is zero, which will cause a host reset */ + } +else if (dstat & (DSTAT_BF |DSTAT_ABRT |DSTAT_SSI |DSTAT_WTD )) { +printk ("scsi%d: Serious error, dstat = %02x\n" , host->host_no, + dstat); + sim710_errors++; +/* resume_offset is zero, which will cause a host reset */ + } +else if (dstat &DSTAT_SIR ) + resume_offset =handle_script_int (host, cmd); +else if (sstat0 &SSTAT0_MA ) + resume_offset =handle_phase_mismatch (host, cmd); +else if (dstat &DSTAT_IID ) { +/* This can be due to a quick reselect while doing a WAIT +* DISCONNECT. +*/ + resume_offset =handle_idd (host, cmd); + } +else { + sim710_errors++; +printk ("scsi%d: Spurious interrupt!\n" , host->host_no); +/* resume_offset is zero, which will cause a host reset */ + } + } + +if (resume_offset) { +if (resume_offset == Ent_reselect) { + hostdata->running =NULL ; + hostdata->state =STATE_IDLE ; + } +else + hostdata->state =STATE_BUSY ; +DEB (DEB_RESUME ,printk ("scsi%d: Resuming at script[0x%x]\n" , + host->host_no, resume_offset/4 )); +#ifdef DEBUG_LIMIT_INTS + if (sim710_intrs < DEBUG_LIMIT_INTS) +#endif + { +NCR_write32 (SCRATCH_REG ,0 ); +NCR_write32 (DSP_REG ,virt_to_bus (hostdata->script+resume_offset/4 )); + } +if (resume_offset == Ent_reselect) +run_process_issue_queue (hostdata); + } +else { +printk ("scsi%d: Failed to handle interrupt. Failing commands " +"and resetting SCSI bus and chip\n" , host->host_no); +mdelay (1000 );/* Give chance to read screen!! */ +full_reset (host); + } +} + +int sim710_queuecommand (Scsi_Cmnd * cmd,void (*done)(Scsi_Cmnd *)) {
drivers/scsi/ips.c renamed from drivers/scsi/ips.c~ +375 -375
799 lines not on this page · raw message
drivers/scsi/qla1280.c renamed from drivers/scsi/qla1280.c~ +35 -34
81 lines not on this page · raw message
drivers/scsi/scsiiom.c renamed from drivers/scsi/scsiiom.c~ +59 -61
147 lines not on this page · raw message
drivers/scsi/AM53C974.c renamed from drivers/scsi/AM53C974.c~ +72 -72
162 lines not on this page · raw message
drivers/scsi/megaraid.c renamed from drivers/scsi/megaraid.c~ +18 -18
@@ -3471,6 +3471,24 @@return count; } +static inline void mega_freeSgList (mega_host_config * megaCfg) +{ +int i; + +for (i =0 ; i < megaCfg->max_cmds; i++) { +if (megaCfg->scbList[i].sgList) +pci_free_consistent (megaCfg->dev, +sizeof (mega_64sglist) * +MAX_SGLIST , + megaCfg->scbList[i].sgList, + megaCfg->scbList[i]. + dma_sghandle64); +#if LINUX_VERSION_CODE <KERNEL_VERSION (2 ,4 ,0 )/* 0x020400 */ +kfree (megaCfg->scbList[i].sgList);/* free sgList */ +#endif + } +} +/*--------------------------------------------------------------------- * Release the controller's resources *---------------------------------------------------------------------*/
@@ -3880,24 +3898,6 @@return ; } -static inline void mega_freeSgList (mega_host_config * megaCfg) -{ -int i; - -for (i =0 ; i < megaCfg->max_cmds; i++) { -if (megaCfg->scbList[i].sgList) -pci_free_consistent (megaCfg->dev, -sizeof (mega_64sglist) * -MAX_SGLIST , - megaCfg->scbList[i].sgList, - megaCfg->scbList[i]. - dma_sghandle64); -#if LINUX_VERSION_CODE <KERNEL_VERSION (2 ,4 ,0 )/* 0x020400 */ -kfree (megaCfg->scbList[i].sgList);/* free sgList */ -#endif - } -} -/*---------------------------------------------- * Get information about the card/driver *----------------------------------------------*/
drivers/scsi/megaraid2.c renamed from drivers/scsi/megaraid2.c~ +241 -241
572 lines not on this page · raw message
drivers/scsi/megaraid2.h renamed from drivers/scsi/megaraid2.h~ +2 -8
@@ -1091,14 +1091,12 @@static int megaraid_detect (Scsi_Host_Template *);static void mega_find_card (Scsi_Host_Template *,u16 ,u16 );static int mega_query_adapter (adapter_t *); -static inline int issue_scb (adapter_t *,scb_t *); +static int issue_scb (adapter_t *,scb_t *);static int mega_setup_mailbox (adapter_t *);static int megaraid_queue (Scsi_Cmnd *,void (*)(Scsi_Cmnd *));static scb_t *mega_build_cmd (adapter_t *,Scsi_Cmnd *,int *); -static inline scb_t *mega_allocate_scb (adapter_t *,Scsi_Cmnd *);static void __mega_runpendq (adapter_t *); -static inline void mega_runpendq (adapter_t *);static int issue_scb_block (adapter_t *,u_char *);static void megaraid_isr_memmapped (int ,void *,struct pt_regs *);
@@ -1115,9 +1113,8 @@static int mega_build_sglist (adapter_t *adapter,scb_t *scb,u32 *buffer,u32 *length); -static inline int mega_busywait_mbox (adapter_t *);static int __mega_busywait_mbox (adapter_t *); -static inline void mega_cmd_done (adapter_t *,u8 [],int ,int ); +static void mega_cmd_done (adapter_t *,u8 [],int ,int );static inline void mega_free_sgl (adapter_t *adapter);static void mega_8_to_40ld (mraid_inquiry *inquiry,mega_inquiry3 *enquiry3,mega_product_info *);
@@ -1167,8 +1164,6 @@static int mega_adapinq (adapter_t *,dma_addr_t );static int mega_internal_dev_inquiry (adapter_t *,u8 ,u8 ,dma_addr_t ); -static inline caddr_t mega_allocate_inquiry (dma_addr_t *,struct pci_dev *); -static inline void mega_free_inquiry (caddr_t ,dma_addr_t ,struct pci_dev *);static int mega_print_inquiry (char *,char *);#endif
@@ -1179,7 +1174,6 @@ scb_t *, Scsi_Cmnd *, int, int);static void mega_enum_raid_scsi (adapter_t *);static void mega_get_boot_drv (adapter_t *); -static inline int mega_get_ldrv_num (adapter_t *,Scsi_Cmnd *,int );static int mega_support_random_del (adapter_t *);static int mega_del_logdrv (adapter_t *,int );static int mega_do_del_logdrv (adapter_t *,int );
drivers/scsi/nsp32.c renamed from drivers/scsi/nsp32.c~ +42 -43
97 lines not on this page · raw message
drivers/scsi/aic7xxx/aic79xx_osm.c renamed from drivers/scsi/aic7xxx/aic79xx_osm.c~ +13 -13
@@ -2871,6 +2871,19 @@ahd_unlock (ahd, &s); } +static __inlineint +ahd_linux_dv_fallback (struct ahd_softc *ahd,struct ahd_devinfo *devinfo) +{ +u_long s; +int retval; + +ahd_lock (ahd, &s); + retval =ahd_linux_fallback (ahd, devinfo); +ahd_unlock (ahd, &s); + +return (retval); +} + static void ahd_linux_dv_transition(struct ahd_softc *ahd, struct scsi_cmnd *cmd, struct ahd_devinfo *devinfo,
@@ -3517,19 +3530,6 @@ cmd->cmnd[4 ] = le |SSS_START ; } -static __inlineint -ahd_linux_dv_fallback (struct ahd_softc *ahd,struct ahd_devinfo *devinfo) -{ -u_long s; -int retval; - -ahd_lock (ahd, &s); - retval =ahd_linux_fallback (ahd, devinfo); -ahd_unlock (ahd, &s); - -return (retval); -} -static int ahd_linux_fallback (struct ahd_softc *ahd,struct ahd_devinfo *devinfo) {