Tejun Heo <tj@xxxxxxxxxx> wrote: > Elias Oltmanns wrote: >> Tejun Heo <tj@xxxxxxxxxx> wrote: > >>> Hello, >>> >>> Elias Oltmanns wrote: >>>>> - ata_port_for_each_link(link, ap) { >>>>> - ata_link_for_each_dev(dev, link) >>>>> + ata_for_each_link(link, ap, EDGE) { >>>>> + ata_for_each_dev(dev, link, ALL) >>>> Where did these short forms (EDGE, ALL) spring from? Does this code even >>>> compile? >>> +#define ata_for_each_link(link, ap, mode) \ >>> + for ((link) = ata_link_next(NULL, (ap), ATA_LITER_##mode); (link); \ >>> + (link) = ata_link_next((link), (ap), ATA_LITER_##mode)) >>> + >>> +#define ata_for_each_dev(dev, link, mode) \ >>> + for ((dev) = ata_dev_next(NULL, (link), ATA_DITER_##mode); (dev); \ >>> + (dev) = ata_dev_next((dev), (link), ATA_DITER_##mode)) >> >> Sorry, I should have been more explicit. I was referring to EDGE and ALL >> as opposed to ATA_LITER_EDGE and ATA_DITER_ALL. Unless I've missed >> something, the former aren't defined anywhere in your patch. > > I seriously can't be more explicit. Please take a shower and read my > reply again, especially, the "ATA_[LD]ITER_##mode" part. :-) Oh dear, I really need to drop that idea that a macro does what I think it does. Sorry for the noise. Regards, Elias -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html