On Mon, 12 Feb 2018 10:51:52 -0800, Guenter Roeck wrote: > On Mon, Feb 12, 2018 at 11:10:41AM +0100, Jean Delvare wrote: > > On Sat, 30 Dec 2017 08:50:57 -0800, Guenter Roeck wrote: > > > @@ -298,12 +295,15 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, > > > else > > > smb_en = (aux) ? 0x28 : 0x2c; > > > > > > - mutex_lock(&piix4_mutex_sb800); > > > + if (!request_muxed_region(SB800_PIIX4_SMB_IDX, 2, "sb800_piix4_smb")) > > > + return -EBUSY; > > > > This would happen if and only if another driver has requested the > > region already but without IORESOURCE_MUXED, right? Don't you want to > > Or if its call to alloc_resource() fails. OK, two things which are not supposed to happen, so failing is the right thing to do. > > write an error message then? I don't think request_muxed_region() will > > do, and probe failing with -EBUSY but no error message logged would be > > hard to diagnose. > > NP, though the analysis is quite simple - /proc/iomem will show the culprit. I'm confused. How would the user know what to look for in /proc/iomem (or, I believe, /proc/ioports actually) if the driver does not print which resource allocation failed? If the information is already printed somewhere, then I agree there's no point adding a message. But from the code I could not find it. -- Jean Delvare SUSE L3 Support