FUJITA Tomonori wrote: > From: Benny Halevy <bhalevy@xxxxxxxxxxx> > Subject: Re: [PATCH 1/19] add data buffer accessors > Date: Mon, 14 May 2007 10:57:08 +0300 > >> FUJITA Tomonori wrote: >>> +#define scsi_for_each_sg(cmd, sg, nseg, __i) \ >>> + for (__i = 0, sg = scsi_sglist(cmd); __i < (nseg); __i++, (sg)++) >>> + >> This feels like a layering violation, why not use for_each_sg()? >> >> +#define scsi_for_each_sg(cmd, sg, nseg, __i) \ >> for_each_sg(scsi_sglist(cmd), (sg), (nseg), (__i)) \ > > As I said before, when for_each_sg is ready, we'll convert > scsi_for_each_sg to use for_each_sg. thanks. works for me. > > >> That said, I'm not sure that scsi_for_each_sg() is worth abstracting >> since the caller can just as well do for_each_sg() directly >> as sketched above... > > I'm not sure why you think it's a layering violation. I'd like to think of struct scatterlist as an abstract data type with its own traversal method that hides its internals. Not a layer per-se but more of an abstraction... > > With scsi_for_each_sg(), many drivers don't need scsi_sglist(). Sure, just my two cents... - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html