s390x/pci: separate s390_sclp_configure function
Split s390_sclp_configure() into separate functions for sclp configuring and deconfiguring in order to make the code more readable. Signed-off-by: Yi Min Zhao <zyimin@linux.vnet.ibm.com> Reviewed-by: Pierre Morel <pmorel@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
		
							parent
							
								
									bac45d5147
								
							
						
					
					
						commit
						8f5cb69313
					
				| 
						 | 
				
			
			@ -106,22 +106,42 @@ S390PCIBusDevice *s390_pci_find_dev_by_fid(uint32_t fid)
 | 
			
		|||
    return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void s390_pci_sclp_configure(int configure, SCCB *sccb)
 | 
			
		||||
void s390_pci_sclp_configure(SCCB *sccb)
 | 
			
		||||
{
 | 
			
		||||
    PciCfgSccb *psccb = (PciCfgSccb *)sccb;
 | 
			
		||||
    S390PCIBusDevice *pbdev = s390_pci_find_dev_by_fid(be32_to_cpu(psccb->aid));
 | 
			
		||||
    uint16_t rc;
 | 
			
		||||
 | 
			
		||||
    if (pbdev) {
 | 
			
		||||
        if ((configure == 1 && pbdev->configured == true) ||
 | 
			
		||||
            (configure == 0 && pbdev->configured == false)) {
 | 
			
		||||
        if (pbdev->configured) {
 | 
			
		||||
            rc = SCLP_RC_NO_ACTION_REQUIRED;
 | 
			
		||||
        } else {
 | 
			
		||||
            pbdev->configured = !pbdev->configured;
 | 
			
		||||
            pbdev->configured = true;
 | 
			
		||||
            rc = SCLP_RC_NORMAL_COMPLETION;
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        DPRINTF("sclp config %d no dev found\n", configure);
 | 
			
		||||
        DPRINTF("sclp config no dev found\n");
 | 
			
		||||
        rc = SCLP_RC_ADAPTER_ID_NOT_RECOGNIZED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    psccb->header.response_code = cpu_to_be16(rc);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void s390_pci_sclp_deconfigure(SCCB *sccb)
 | 
			
		||||
{
 | 
			
		||||
    PciCfgSccb *psccb = (PciCfgSccb *)sccb;
 | 
			
		||||
    S390PCIBusDevice *pbdev = s390_pci_find_dev_by_fid(be32_to_cpu(psccb->aid));
 | 
			
		||||
    uint16_t rc;
 | 
			
		||||
 | 
			
		||||
    if (pbdev) {
 | 
			
		||||
        if (!pbdev->configured) {
 | 
			
		||||
            rc = SCLP_RC_NO_ACTION_REQUIRED;
 | 
			
		||||
        } else {
 | 
			
		||||
            pbdev->configured = false;
 | 
			
		||||
            rc = SCLP_RC_NORMAL_COMPLETION;
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        DPRINTF("sclp deconfig no dev found\n");
 | 
			
		||||
        rc = SCLP_RC_ADAPTER_ID_NOT_RECOGNIZED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -247,7 +247,8 @@ typedef struct S390pciState {
 | 
			
		|||
 | 
			
		||||
int chsc_sei_nt2_get_event(void *res);
 | 
			
		||||
int chsc_sei_nt2_have_event(void);
 | 
			
		||||
void s390_pci_sclp_configure(int configure, SCCB *sccb);
 | 
			
		||||
void s390_pci_sclp_configure(SCCB *sccb);
 | 
			
		||||
void s390_pci_sclp_deconfigure(SCCB *sccb);
 | 
			
		||||
void s390_pcihost_iommu_configure(S390PCIBusDevice *pbdev, bool enable);
 | 
			
		||||
S390PCIBusDevice *s390_pci_find_dev_by_idx(uint32_t idx);
 | 
			
		||||
S390PCIBusDevice *s390_pci_find_dev_by_fh(uint32_t fh);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -357,10 +357,10 @@ static void sclp_execute(SCLPDevice *sclp, SCCB *sccb, uint32_t code)
 | 
			
		|||
        sclp_c->unassign_storage(sclp, sccb);
 | 
			
		||||
        break;
 | 
			
		||||
    case SCLP_CMDW_CONFIGURE_PCI:
 | 
			
		||||
        s390_pci_sclp_configure(1, sccb);
 | 
			
		||||
        s390_pci_sclp_configure(sccb);
 | 
			
		||||
        break;
 | 
			
		||||
    case SCLP_CMDW_DECONFIGURE_PCI:
 | 
			
		||||
        s390_pci_sclp_configure(0, sccb);
 | 
			
		||||
        s390_pci_sclp_deconfigure(sccb);
 | 
			
		||||
        break;
 | 
			
		||||
    default:
 | 
			
		||||
        efc->command_handler(ef, sccb, code);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue