Re: [2.6.18-rc2-mm1] libata ate one PATA channel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Alan Cox wrote:
[--snip--]
I killed hard_port_no by s/ap->hard_port_no/ap->port_no/g without actually reviewing the usages (man, those are a LOT). If all pata drivers always relied on ap->hard_port_no representing the actual port index in the controller, there shouldn't be a problem. But, just in case, please review the change.

Think about the following execution sequence

ati_pci_init_one
primary port already stolen by drivers/ide secondary port free

	legacy_mode = ATA_PORT_SECONDARY
	ata_pci_init_legacy_port

	port_num = 0
	hard_port_num = 1

	*kerunnccchhhhhh*

Ah... You're right.  That will make port_no different from the hw port#.

If this fixes Magallon's problem and you agree with the fix, I'll break it down to two patches and submit'em to you with proper heading and all.

I agree with the theory and the diagnosis. I'm a bit worried about
hard_port_no however and I don't think that bit is safe in the secondary
only corner case. Registering both always and disabling one works for me
as a cleanup.

If you do that then I'll audit all the drivers use of ->port_no against
the patches.

I like 'registering both always and disabling one' approach for partially stolen legacy devices. We can make ->hard_port_no do the job as before, but IMHO it's error-prone and only useful for very limited cases (first legacy port stolen).

Jeff, what do you think?

--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux