Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/external/bsd/drm2/include/linux Back out previous, fix P...



details:   https://anonhg.NetBSD.org/src/rev/12df10507751
branches:  trunk
changeset: 804098:12df10507751
user:      riastradh <riastradh%NetBSD.org@localhost>
date:      Sun Nov 23 16:16:29 2014 +0000

description:
Back out previous, fix PR kern/49411 correctly.

frame->header.length is not initialized in the vendor packet case.
Instead, make hdmi_infoframe_header_pack take the packet length and
subtract the size of the header when packing the header.

(Could make it take the payload length instead, but for callers it is
more convenient to have a name for the whole packet length.)

diffstat:

 sys/external/bsd/drm2/include/linux/hdmi.h |  16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diffs (58 lines):

diff -r f77a09bf8921 -r 12df10507751 sys/external/bsd/drm2/include/linux/hdmi.h
--- a/sys/external/bsd/drm2/include/linux/hdmi.h        Sun Nov 23 16:07:10 2014 +0000
+++ b/sys/external/bsd/drm2/include/linux/hdmi.h        Sun Nov 23 16:16:29 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: hdmi.h,v 1.3 2014/11/23 16:07:10 riastradh Exp $       */
+/*     $NetBSD: hdmi.h,v 1.4 2014/11/23 16:16:29 riastradh Exp $       */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -203,7 +203,7 @@
 
        p[0] = header->type;
        p[1] = header->version;
-       p[2] = length;
+       p[2] = (length - HDMI_INFOFRAME_HEADER_SIZE);
        p[3] = 0;               /* checksum */
 
        return HDMI_INFOFRAME_HEADER_SIZE;
@@ -260,8 +260,7 @@
 
        KASSERT(frame->header.length == HDMI_AUDIO_INFOFRAME_SIZE);
 
-       ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length,
-           p, size);
+       ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
        if (ret < 0)
                return ret;
        KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);
@@ -337,8 +336,7 @@
 
        KASSERT(frame->header.length == HDMI_AVI_INFOFRAME_SIZE);
 
-       ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length,
-           p, size);
+       ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
        if (ret < 0)
                return ret;
        KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);
@@ -428,8 +426,7 @@
 
        KASSERT(frame->header.length == HDMI_SPD_INFOFRAME_SIZE);
 
-       ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length,
-           p, size);
+       ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
        if (ret < 0)
                return ret;
        KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);
@@ -496,8 +493,7 @@
        if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF)
                length += 1;
 
-       ret = hdmi_infoframe_header_pack(&frame->header, frame->header.length,
-           p, size);
+       ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
        if (ret < 0)
                return ret;
        KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);



Home | Main Index | Thread Index | Old Index