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: <49C7C423.5010202@cs.wisc.edu>
Date:	Mon, 23 Mar 2009 12:17:23 -0500
From:	Mike Christie <michaelc@...wisc.edu>
To:	Jing Huang <huangj@...cade.COM>
CC:	James.Bottomley@...senPartnership.com,
	Krishna Gudipati <kgudipat@...cade.COM>,
	linux-kernel@...r.kernel.org, linux-scsi@...r.kernel.org,
	Ramkumar Vadivelu <rvadivel@...cade.COM>,
	Vinodh Ravindran <vravindr@...cade.COM>
Subject: Re: [PATCH 1/5] bfa: Brocade BFA FC SCSI driver (bfad)

Jing Huang wrote:
>>> +
>>> +	im_port->shost->hostdata[0] = (unsigned long)im_port;
>>
>>
>> I think I asked about this before. Why do you just not allocate the
> bfad
>> or im_port in the hostdata? What is the struct hierarchy? Do you have
>> one bfad for the entire HBA/pci_device then have a im_port for each
> port
>> on the hba?
>>
> 
> Thanks for review the code again. Yes, we have one bfad for each HBA
> port/pci device, and one im_port (im stands for initiator mode) for each
> scsi_host/vport. We can certainly allocate im_port in scsi_host_alloc()
> as you suggest, but currently we allocate all possible fc4 port
> (initiator/tgt/ipfc) in one function, and it is just more convenient to
> do it in one place.

I think the refcounting is off though. For example in the shutdown case, 
if someone is accessing a scsi host sysfs attr, bfad_im_scsi_host_free 
would release the drivers refcounts on the scsi_host and free the 
im_port, but the sysfs code could still be accessing the im port. The 
shost would still be there because the sysfs code took a refcount on 
kobject/kref, but the im port is now gone. When you allocate the port 
struct in the hostdata with scsi_host_alloc this type of issue is 
handled for you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ