These functions can return an error, but some callers expect they don't, and unconditionally access VGA registers afterwards and call vga_put.
Signed-off-by: Simon Richter <[email protected]> --- include/linux/vgaarb.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index 97129a1bbb7d..de683d499dfa 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h @@ -27,7 +27,8 @@ struct pci_dev; #ifdef CONFIG_VGA_ARB void vga_set_legacy_decoding(struct pci_dev *pdev, unsigned int decodes); -int vga_get(struct pci_dev *pdev, unsigned int rsrc, int interruptible); +int __must_check vga_get(struct pci_dev *pdev, unsigned int rsrc, + int interruptible); void vga_put(struct pci_dev *pdev, unsigned int rsrc); struct pci_dev *vga_default_device(void); void vga_set_default_device(struct pci_dev *pdev); @@ -39,7 +40,7 @@ static inline void vga_set_legacy_decoding(struct pci_dev *pdev, unsigned int decodes) { }; -static inline int vga_get(struct pci_dev *pdev, unsigned int rsrc, +static inline int __must_check vga_get(struct pci_dev *pdev, unsigned int rsrc, int interruptible) { return 0; @@ -74,7 +75,7 @@ static inline int vga_client_register(struct pci_dev *pdev, * * On success, release the VGA resource again with vga_put(). */ -static inline int vga_get_interruptible(struct pci_dev *pdev, +static inline int __must_check vga_get_interruptible(struct pci_dev *pdev, unsigned int rsrc) { return vga_get(pdev, rsrc, 1); @@ -89,7 +90,7 @@ static inline int vga_get_interruptible(struct pci_dev *pdev, * * On success, release the VGA resource again with vga_put(). */ -static inline int vga_get_uninterruptible(struct pci_dev *pdev, +static inline int __must_check vga_get_uninterruptible(struct pci_dev *pdev, unsigned int rsrc) { return vga_get(pdev, rsrc, 0); -- 2.47.3
