OSDN Git Service

s390/pci: fix misleading rc in clp_set_pci_fn()
authorNiklas Schnelle <schnelle@linux.ibm.com>
Wed, 21 Jul 2021 17:58:54 +0000 (19:58 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 25 Aug 2021 09:03:33 +0000 (11:03 +0200)
commitf7addcdd527a6dddfebe20c358b87bdb95624612
tree7568cab5944e6d0f050d6afd827692026960acdf
parente8f06683d40e705da2d85bc6bc498e651d1ef31b
s390/pci: fix misleading rc in clp_set_pci_fn()

Currently clp_set_pci_fn() always returns 0 as long as the CLP request
itself succeeds even if the operation itself returns a response code
other than CLP_RC_OK or CLP_RC_SETPCIFN_ALRDY. This is highly misleading
because calling code assumes that a zero rc means that the operation was
successful.

Fix this by returning the response code or cc on failure with the
exception of the special handling for CLP_RC_SETPCIFN_ALRDY. Also let's
not assume that the returned function handle for CLP_RC_SETPCIFN_ALRDY
is 0, we don't need it anyway.

Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/pci/pci.c
arch/s390/pci/pci_clp.c