RE: [PATCH] net/mlx5: reduce stack usage in FW tracer

From: David Laight
Date: Tue Sep 10 2019 - 11:38:32 EST

From: Arnd Bergmann
> Sent: 10 September 2019 09:15
> > I am not sure how this would work, since the format parameters can
> > changes depending on the FW string and the specific traces.
> Ah, so the format string comes from the firmware? I didn't look
> at the code in enough detail to understand why it's done like this,
> only enough to notice that it's rather unusual.

If the format string comes from the firmware you really shouldn't
pass it to any standard printf function.
You must ensure that it doesn't contain any format effectors
that might dereference parameters.
(The code might try to do that.)

Given that 'pointer' format effectors can't be used, the firmware
must also supply the relevant integer ones?
This should mean that all the processing is deferrable until the
trace record is read.

'noinline' just papers over the cracks.
Especially since vasprintf() is likely to use a lot of stack.


Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)