media: allegro: warn if response message has an unexpected size
The driver uses structs to parse the responses from the VCU and expects a certain size of the responses. However, the size and format of the mails is not stable across firmware versions. Therefore, print a warning if the size does not match the expected size to warn the user that strange things might happen. Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
857a31f1c1
commit
0600130e65
|
@ -1711,6 +1711,12 @@ allegro_handle_create_channel(struct allegro_dev *dev,
|
|||
struct allegro_channel *channel;
|
||||
int err = 0;
|
||||
|
||||
if (msg->header.length != sizeof(*msg) - sizeof(msg->header))
|
||||
v4l2_warn(&dev->v4l2_dev,
|
||||
"received message has %d bytes, but expected %zu\n",
|
||||
msg->header.length,
|
||||
sizeof(*msg) - sizeof(msg->header));
|
||||
|
||||
channel = allegro_find_channel_by_user_id(dev, msg->user_id);
|
||||
if (IS_ERR(channel)) {
|
||||
v4l2_warn(&dev->v4l2_dev,
|
||||
|
@ -1804,6 +1810,12 @@ allegro_handle_encode_frame(struct allegro_dev *dev,
|
|||
{
|
||||
struct allegro_channel *channel;
|
||||
|
||||
if (msg->header.length != sizeof(*msg) - sizeof(msg->header))
|
||||
v4l2_warn(&dev->v4l2_dev,
|
||||
"received message has %d bytes, but expected %zu\n",
|
||||
msg->header.length,
|
||||
sizeof(*msg) - sizeof(msg->header));
|
||||
|
||||
channel = allegro_find_channel_by_channel_id(dev, msg->channel_id);
|
||||
if (IS_ERR(channel)) {
|
||||
v4l2_err(&dev->v4l2_dev,
|
||||
|
|
Loading…
Reference in New Issue