• Dean Nelson's avatar
    PCI: cleanup error return for pcix get and set mmrbc functions · 7c9e2b1c
    Dean Nelson authored
    pcix_get_mmrbc() returns the maximum memory read byte count (mmrbc), if
    successful, or an appropriate error value, if not.
    
    Distinguishing errors from correct values and understanding the meaning of an
    error can be somewhat confusing in that:
    
    	correct values: 512, 1024, 2048, 4096
    	errors: -EINVAL  			-22
     		PCIBIOS_FUNC_NOT_SUPPORTED	0x81
    		PCIBIOS_BAD_VENDOR_ID		0x83
    		PCIBIOS_DEVICE_NOT_FOUND	0x86
    		PCIBIOS_BAD_REGISTER_NUMBER	0x87
    		PCIBIOS_SET_FAILED		0x88
    		PCIBIOS_BUFFER_TOO_SMALL	0x89
    
    The PCIBIOS_ errors are returned from the PCI functions generated by the
    PCI_OP_READ() and PCI_OP_WRITE() macros.
    
    In a similar manner, pcix_set_mmrbc() also returns the PCIBIOS_ error values
    returned from pci_read_config_[word|dword]() and pci_write_config_word().
    
    Following pcix_get_max_mmrbc()'s example, the following patch simply returns
    -EINVAL for all PCIBIOS_ errors encountered by pcix_get_mmrbc(), and -EINVAL
    or -EIO for those encountered by pcix_set_mmrbc().
    
    This simplification was chosen in light of the fact that none of the current
    callers of these functions are interested in the specific type of error
    encountered. In the future, should this change, one could simply create a
    function that maps each PCIBIOS_ error to a corresponding unique errno value,
    which could be called by pcix_get_max_mmrbc(), pcix_get_mmrbc(), and
    pcix_set_mmrbc().
    
    Additionally, this patch eliminates some unnecessary variables.
    
    Cc: stable@kernel.org
    Signed-off-by: default avatarDean Nelson <dnelson@redhat.com>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    7c9e2b1c
pci.c 78.2 KB