On Mon, 21 May 2012 16:01:50 +0200 Tomasz Stanislawski t.stanislaws@samsung.com wrote:
+int sg_alloc_table_from_pages(struct sg_table *sgt,
- struct page **pages, unsigned int n_pages,
- unsigned long offset, unsigned long size,
- gfp_t gfp_mask)
I guess a 32-bit n_pages is OK. A 16TB IO seems enough ;)
Do you think that 'unsigned long' for offset is too big?
Ad n_pages. Assuming that Moore's law holds it will take circa 25 years before the limit of 16 TB is reached :) for high-end scatterlist operations. Or I can change the type of n_pages to 'unsigned long' now at no cost :).
By then it will be Someone Else's Problem ;)
+{
- unsigned int chunks;
- unsigned int i;
erk, please choose a different name for this. When a C programmer sees "i", he very much assumes it has type "int". Making it unsigned causes surprise.
And don't rename it to "u"! Let's give it a nice meaningful name. pageno?
The problem is that 'i' is a natural name for a loop counter.
It's also the natural name for an integer. If a C programmer sees "i", he thinks "int". It's a Fortran thing ;)
AFAIK, in the kernel code developers try to avoid Hungarian notation. A name of a variable should reflect its purpose, not its type. I can change the name of 'i' to 'pageno' and 'j' to 'pageno2' (?) but I think it will make the code less reliable.
Well, one could do something radical such as using "p".