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 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index 97129a1bbb7d..eed524c67c22 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,8 +40,8 @@ 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, - int interruptible) +static inline int __must_check vga_get(struct pci_dev *pdev, unsigned int rsrc, + int interruptible) { return 0; } @@ -74,8 +75,8 @@ 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, - unsigned int rsrc) +static inline int __must_check vga_get_interruptible(struct pci_dev *pdev, + unsigned int rsrc) { return vga_get(pdev, rsrc, 1); } @@ -89,8 +90,8 @@ 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, - unsigned int rsrc) +static inline int __must_check vga_get_uninterruptible(struct pci_dev *pdev, + unsigned int rsrc) { return vga_get(pdev, rsrc, 0); } -- 2.47.3
