lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ADE657CA350FB648AAC2C43247A983F00206AA91647C@AUSP01VMBX24.collaborationhost.net>
Date:	Thu, 19 Jul 2012 12:20:27 -0500
From:	H Hartley Sweeten <hartleys@...ionengravers.com>
To:	Ian Abbott <abbotti@....co.uk>, Ian Abbott <ian.abbott@....co.uk>
CC:	Linux Kernel <linux-kernel@...r.kernel.org>,
	"devel@...verdev.osuosl.org" <devel@...verdev.osuosl.org>,
	"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>
Subject: RE: [PATCH 30/90] staging: comedi: amplc_dio200: store the pci_dev
 in the comedi_device

On Thursday, July 19, 2012 3:27 AM, Ian Abbott wrote:
> On 2012-07-19 11:10, Ian Abbott wrote:
>> On 2012-07-19 02:37, H Hartley Sweeten wrote:
>>> Use the hw_dev pointer in the comedi_device struct to hold the
>>> pci_dev instead of carrying it in the private data.
>>>
>>> Since the pci_dev is no longer held in the provate data, we can
>>> also cleanup the detach a bit. Remove the IS_ENABLED() tests in
>>> the detach. If the pci_dev is non NULL it's a PCI device otherwise
>>> it's an ISA device. Using IS_ENABLED() to omit the code paths
>>> makes the code a bit confusing and doesn't save much.
>>
>> No, you really need to check thisboard->bustype in the detach() because
>> hw_dev might be NULL for a PCI board if the attach() failed.
>
> Actually, your patch wouldn't do any harm as dev->iobase would be 0.  It 
> would just go through the "failed ISA device" path instead of the 
> "failed PCI device" path.  It would be more robust to check 
> thisboard->bustype though.

Would this be cleaner:

	If (dev->iobase) {
		If (pcidev)
			comedi_pci_disable(pcidev);
		else
			release_region(dev->iobase, DIO200_IO_SIZE);
	}
	If (pcidev)
		pci_dev_put(pcidev);

Same number of lines but the i/o disable/release and the put of the pcidev
would then be distinctly separate.

Regards,
Hartley

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ