PCI: switchtec: Return -EFAULT for copy_to_user() errors
authorBjorn Helgaas <bhelgaas@google.com>
Fri, 16 Dec 2022 16:21:26 +0000 (10:21 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 18 Jan 2023 17:11:20 +0000 (11:11 -0600)
commitddc10938e08cd7aac63d8385f7305f7889df5179
tree04d06350883c6fa34c37bd7d1e4f8d0d473a6d31
parent4e353ff40a830c9c5a9feee13d1cacbc3f803e8f
PCI: switchtec: Return -EFAULT for copy_to_user() errors

switchtec_dev_read() didn't handle copy_to_user() errors correctly: it
assigned "rc = -EFAULT", but actually returned either "size", -ENXIO, or
-EBADMSG instead.

Update the failure cases to unlock mrpc_mutex and return -EFAULT directly.

Link: https://lore.kernel.org/r/20221216162126.207863-3-helgaas@kernel.org
Fixes: 080b47def5e5 ("MicroSemi Switchtec management interface driver")
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
drivers/pci/switch/switchtec.c