don't need "=0", that wastes space in initialized data section
> @@ -658,18 +624,19 @@
> struct i2c_client *client;
> int i,j,k,order_nr,len=0,len_total;
> int order[I2C_CLIENT_MAX];
> +#define OUTPUT_LENGTH_PER_LINE 70
>
> - if (count > 4096)
> - return -EINVAL;
> len_total = file->f_pos + count;
> - /* Too bad if this gets longer (unlikely) */
> - if (len_total > 4096)
> - len_total = 4096;
> + if (len_total > (I2C_CLIENT_MAX * OUTPUT_LENGTH_PER_LINE) )
> + /* adjust to maximum file size */
> + len_total = (I2C_CLIENT_MAX * OUTPUT_LENGTH_PER_LINE);
> for (i = 0; i < I2C_ADAP_MAX; i++)
> if (adapters[i]->inode == inode->i_ino) {
> /* We need a bit of slack in the kernel buffer; this makes the
> sprintf safe. */
> - if (! (kbuf = kmalloc(count + 80,GFP_KERNEL)))
> + if (! (kbuf = kmalloc(len_total +
> + OUTPUT_LENGTH_PER_LINE,
> + GFP_KERNEL)))
> return -ENOMEM;
> /* Order will hold the indexes of the clients
this really wants to be converted to seq_printf API...
otherwise, looks ok
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/