From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C496C35247 for ; Wed, 5 Feb 2020 18:02:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4BB4B2467B for ; Wed, 5 Feb 2020 18:02:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727398AbgBESCY convert rfc822-to-8bit (ORCPT ); Wed, 5 Feb 2020 13:02:24 -0500 Received: from mail-yw1-f68.google.com ([209.85.161.68]:37980 "EHLO mail-yw1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726957AbgBESCY (ORCPT ); Wed, 5 Feb 2020 13:02:24 -0500 Received: by mail-yw1-f68.google.com with SMTP id 10so3220455ywv.5; Wed, 05 Feb 2020 10:02:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=D8m3zpziTMf/1DK49oOTnKVovL2jn4pQ/YQP25fOkNM=; b=Ypjh5SB/RW49YJWn7G7gMd7QmGSzXdi7rMgkcIyhZuNdSKX4F5NsmAttgjN09erHGw rrHjbKnPupz5TDJIfhDMoKKJA4x3gnz4Ut/YeAx0V3wjCAOYZI/TGgpgsJJzem7SUINg xbuUIG6PT22aCz447r2g8S+Myl2qmBHUoR3r3jeiwimPNi0ruuwDu8HhpsrLysKf6Qz3 SsGe3wu7VJk6HxUKGvYcAaAh6YVcPe4lBY+hVkEOJrNvVMcWfSof4AYH+MwIeRamWnnx shfamKVQ78pF61lIQQq2rp6IbwV0533wdOnJbFqCD0jwx/qIgDU/9/oms043LAmX710n BLxA== X-Gm-Message-State: APjAAAWrwml6sjqR0CQe6uRjbajZYg5MJcw2SjCuV+nNY71+htNl6KQr Fz/zpONHMSjnJUPU50VBd/Vzh6H2I5i3+P4QndE= X-Google-Smtp-Source: APXvYqy1c38uBLDGGJ341PM5j5TAAE218gACbT2CX03aRP9JBZDvgjxAa+vHL8pEHWA2sJuLGbVLFN8YC44c7Jnxe0Q= X-Received: by 2002:a25:8804:: with SMTP id c4mr7889151ybl.387.1580925742108; Wed, 05 Feb 2020 10:02:22 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Date: Wed, 5 Feb 2020 19:02:10 +0100 Message-ID: Subject: Re: [PATCH 1/3] fbdev/g364fb: Fix build failure To: Finn Thain Cc: Ralf Baechle , Paul Burton , James Hogan , Thomas Bogendoerfer , "open list:BROADCOM NVRAM DRIVER" , open list , Bartlomiej Zolnierkiewicz , dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org, Laurent Vivier , Thomas Bogendoerfer Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Feb 2, 2020 at 3:41 AM Finn Thain wrote: > > This patch resolves these compiler errors and warnings -- > > CC drivers/video/fbdev/g364fb.o > drivers/video/fbdev/g364fb.c: In function 'g364fb_cursor': > drivers/video/fbdev/g364fb.c:137:9: error: 'x' undeclared (first use in this function) > drivers/video/fbdev/g364fb.c:137:9: note: each undeclared identifier is reported only once for each function it appears in > drivers/video/fbdev/g364fb.c:137:7: error: implicit declaration of function 'fontwidth' [-Werror=implicit-function-declaration] > drivers/video/fbdev/g364fb.c:137:23: error: 'p' undeclared (first use in this function) > drivers/video/fbdev/g364fb.c:137:38: error: 'y' undeclared (first use in this function) > drivers/video/fbdev/g364fb.c:137:7: error: implicit declaration of function 'fontheight' [-Werror=implicit-function-declaration] > drivers/video/fbdev/g364fb.c: In function 'g364fb_init': > drivers/video/fbdev/g364fb.c:233:24: error: 'fbvar' undeclared (first use in this function) > drivers/video/fbdev/g364fb.c:234:24: error: 'xres' undeclared (first use in this function) 18 years unnoticed... > drivers/video/fbdev/g364fb.c:201:14: warning: unused variable 'j' [-Wunused-variable] > drivers/video/fbdev/g364fb.c:197:25: warning: unused variable 'pal_ptr' [-Wunused-variable] > > The MIPS Magnum framebuffer console now works when tested in QEMU. > > Cc: Bartlomiej Zolnierkiewicz > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") This commit is the kernel 'git origin' import, not the proper reference. The actual change is between v2.5.17/2.5.19: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/diff/drivers/video/g364fb.c?id=b30e6e183a728923267 Date: 2002-05-22 07:52:33... The same commit introduced the changes in g364fb_cursor(), which was implemented previous to v2.4.0 so it is hard to follow from there. Nobody complains during 18 years so I doubt anyone care that g364fb_cursor() is removed. And by removing it, you improve the kernel quality, so: Reviewed-by: Philippe Mathieu-Daudé (Maybe remove the unhelpful 'Fixes' tag). > Signed-off-by: Finn Thain > --- > drivers/video/fbdev/g364fb.c | 29 +++-------------------------- > 1 file changed, 3 insertions(+), 26 deletions(-) > > diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c > index 223896cc5f7d..fb26230a3c7b 100644 > --- a/drivers/video/fbdev/g364fb.c > +++ b/drivers/video/fbdev/g364fb.c > @@ -108,7 +108,6 @@ static int g364fb_pan_display(struct fb_var_screeninfo *var, > static int g364fb_setcolreg(u_int regno, u_int red, u_int green, > u_int blue, u_int transp, > struct fb_info *info); > -static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor); > static int g364fb_blank(int blank, struct fb_info *info); > > static struct fb_ops g364fb_ops = { > @@ -119,28 +118,8 @@ static struct fb_ops g364fb_ops = { > .fb_fillrect = cfb_fillrect, > .fb_copyarea = cfb_copyarea, > .fb_imageblit = cfb_imageblit, > - .fb_cursor = g364fb_cursor, > }; > > -int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor) > -{ > - > - switch (cursor->enable) { > - case CM_ERASE: > - *(unsigned int *) CTLA_REG |= CURS_TOGGLE; > - break; > - > - case CM_MOVE: > - case CM_DRAW: > - *(unsigned int *) CTLA_REG &= ~CURS_TOGGLE; > - *(unsigned int *) CURS_POS_REG = > - ((x * fontwidth(p)) << 12) | ((y * fontheight(p)) - > - info->var.yoffset); > - break; > - } > - return 0; > -} > - > /* > * Pan or Wrap the Display > * > @@ -194,11 +173,9 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green, > */ > int __init g364fb_init(void) > { > - volatile unsigned int *pal_ptr = > - (volatile unsigned int *) CLR_PAL_REG; > volatile unsigned int *curs_pal_ptr = > (volatile unsigned int *) CURS_PAL_REG; > - int mem, i, j; > + int mem, i; > > if (fb_get_options("g364fb", NULL)) > return -ENODEV; > @@ -230,8 +207,8 @@ int __init g364fb_init(void) > */ > *(unsigned short *) (CURS_PAT_REG + 14 * 64) = 0xffff; > *(unsigned short *) (CURS_PAT_REG + 15 * 64) = 0xffff; > - fb_var.xres_virtual = fbvar.xres; > - fb_fix.line_length = (xres / 8) * fb_var.bits_per_pixel; > + fb_var.xres_virtual = fb_var.xres; > + fb_fix.line_length = fb_var.xres_virtual * fb_var.bits_per_pixel / 8; > fb_fix.smem_start = 0x40000000; /* physical address */ > /* get size of video memory; this is special for the JAZZ hardware */ > mem = (r4030_read_reg32(JAZZ_R4030_CONFIG) >> 8) & 3; > -- > 2.24.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Date: Wed, 05 Feb 2020 18:02:10 +0000 Subject: Re: [PATCH 1/3] fbdev/g364fb: Fix build failure Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: Finn Thain Cc: linux-fbdev@vger.kernel.org, Thomas Bogendoerfer , Paul Burton , Bartlomiej Zolnierkiewicz , James Hogan , open list , Ralf Baechle , "open list:BROADCOM NVRAM DRIVER" , Thomas Bogendoerfer , dri-devel@lists.freedesktop.org, Laurent Vivier On Sun, Feb 2, 2020 at 3:41 AM Finn Thain wrot= e: > > This patch resolves these compiler errors and warnings -- > > CC drivers/video/fbdev/g364fb.o > drivers/video/fbdev/g364fb.c: In function 'g364fb_cursor': > drivers/video/fbdev/g364fb.c:137:9: error: 'x' undeclared (first use in t= his function) > drivers/video/fbdev/g364fb.c:137:9: note: each undeclared identifier is r= eported only once for each function it appears in > drivers/video/fbdev/g364fb.c:137:7: error: implicit declaration of functi= on 'fontwidth' [-Werror=3Dimplicit-function-declaration] > drivers/video/fbdev/g364fb.c:137:23: error: 'p' undeclared (first use in = this function) > drivers/video/fbdev/g364fb.c:137:38: error: 'y' undeclared (first use in = this function) > drivers/video/fbdev/g364fb.c:137:7: error: implicit declaration of functi= on 'fontheight' [-Werror=3Dimplicit-function-declaration] > drivers/video/fbdev/g364fb.c: In function 'g364fb_init': > drivers/video/fbdev/g364fb.c:233:24: error: 'fbvar' undeclared (first use= in this function) > drivers/video/fbdev/g364fb.c:234:24: error: 'xres' undeclared (first use = in this function) 18 years unnoticed... > drivers/video/fbdev/g364fb.c:201:14: warning: unused variable 'j' [-Wunus= ed-variable] > drivers/video/fbdev/g364fb.c:197:25: warning: unused variable 'pal_ptr' [= -Wunused-variable] > > The MIPS Magnum framebuffer console now works when tested in QEMU. > > Cc: Bartlomiej Zolnierkiewicz > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") This commit is the kernel 'git origin' import, not the proper reference. The actual change is between v2.5.17/2.5.19: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/diff/drive= rs/video/g364fb.c?id=B30e6e183a728923267 Date: 2002-05-22 07:52:33... The same commit introduced the changes in g364fb_cursor(), which was implemented previous to v2.4.0 so it is hard to follow from there. Nobody complains during 18 years so I doubt anyone care that g364fb_cursor() is removed. And by removing it, you improve the kernel quality, so: Reviewed-by: Philippe Mathieu-Daud=C3=A9 (Maybe remove the unhelpful 'Fixes' tag). > Signed-off-by: Finn Thain > --- > drivers/video/fbdev/g364fb.c | 29 +++-------------------------- > 1 file changed, 3 insertions(+), 26 deletions(-) > > diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c > index 223896cc5f7d..fb26230a3c7b 100644 > --- a/drivers/video/fbdev/g364fb.c > +++ b/drivers/video/fbdev/g364fb.c > @@ -108,7 +108,6 @@ static int g364fb_pan_display(struct fb_var_screeninf= o *var, > static int g364fb_setcolreg(u_int regno, u_int red, u_int green, > u_int blue, u_int transp, > struct fb_info *info); > -static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor); > static int g364fb_blank(int blank, struct fb_info *info); > > static struct fb_ops g364fb_ops =3D { > @@ -119,28 +118,8 @@ static struct fb_ops g364fb_ops =3D { > .fb_fillrect =3D cfb_fillrect, > .fb_copyarea =3D cfb_copyarea, > .fb_imageblit =3D cfb_imageblit, > - .fb_cursor =3D g364fb_cursor, > }; > > -int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor) > -{ > - > - switch (cursor->enable) { > - case CM_ERASE: > - *(unsigned int *) CTLA_REG |=3D CURS_TOGGLE; > - break; > - > - case CM_MOVE: > - case CM_DRAW: > - *(unsigned int *) CTLA_REG &=3D ~CURS_TOGGLE; > - *(unsigned int *) CURS_POS_REG > - ((x = * fontwidth(p)) << 12) | ((y * fontheight(p)) - > - info->var.yoffset); > - break; > - } > - return 0; > -} > - > /* > * Pan or Wrap the Display > * > @@ -194,11 +173,9 @@ static int g364fb_setcolreg(u_int regno, u_int red, = u_int green, > */ > int __init g364fb_init(void) > { > - volatile unsigned int *pal_ptr > - (volatile unsigned i= nt *) CLR_PAL_REG; > volatile unsigned int *curs_pal_ptr > (volatile unsig= ned int *) CURS_PAL_REG; > - int mem, i, j; > + int mem, i; > > if (fb_get_options("g364fb", NULL)) > return -ENODEV; > @@ -230,8 +207,8 @@ int __init g364fb_init(void) > */ > *(unsigned short *) (CURS_PAT_REG + 14 * 64) =3D 0xffff; > *(unsigned short *) (CURS_PAT_REG + 15 * 64) =3D 0xffff; > - fb_var.xres_virtual =3D fbvar.xres; > - fb_fix.line_length =3D (xres / 8) * fb_var.bits_per_pixel; > + fb_var.xres_virtual =3D fb_var.xres; > + fb_fix.line_length =3D fb_var.xres_virtual * fb_var.bits_per_pixe= l / 8; > fb_fix.smem_start =3D 0x40000000; /* physical address */ > /* get size of video memory; this is special for the JAZZ hardwar= e */ > mem =3D (r4030_read_reg32(JAZZ_R4030_CONFIG) >> 8) & 3; > -- > 2.24.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 10632C2D0B1 for ; Thu, 6 Feb 2020 08:18:34 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C64D020720 for ; Thu, 6 Feb 2020 08:18:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C64D020720 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 289566F9E9; Thu, 6 Feb 2020 08:17:55 +0000 (UTC) Received: from mail-yw1-f67.google.com (mail-yw1-f67.google.com [209.85.161.67]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6C9136F91B for ; Wed, 5 Feb 2020 18:02:23 +0000 (UTC) Received: by mail-yw1-f67.google.com with SMTP id l22so3191421ywc.8 for ; Wed, 05 Feb 2020 10:02:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=D8m3zpziTMf/1DK49oOTnKVovL2jn4pQ/YQP25fOkNM=; b=idfhujGlKUIbmMqUbI1XKrYuoPvqRFg03LWBGxvkYWhdZLrPawozUmuIf3P8DK7A2x pEdcnZdPHPjBHLaqxhgJ7fYrMg7LvB/2VUO0c36mgeT2+hTBTWeXQLsRbsHw2bn+rYOb QpHYmER4Rl+bCaOOqiu06Kuy1VTlBfMUYlXQpGgNhW3XasM9muo7zj8TDGHBcoGaBdQk 8Hw4LM9l1qU487hnbyjMJpK6aUaFU5rfB933BQOeBv1m7ffO/lpJ6j2CeJ57SQcA2TvA 8TYltnR5Gt/w45n6C+zV4sDQ13/YoucNiP2YE5MC4gYRVeqiaZb3Z6rbmuFjqmaYzBhx +T+A== X-Gm-Message-State: APjAAAXoFCYLoIk2ZglvbFZsibb8G7OG0wZ2YdmDavUTVeLigMHBlAHN ePDRxnIHEVnv8KEh+F/n2Y/grnfifgqgPOZ2Gq4= X-Google-Smtp-Source: APXvYqy1c38uBLDGGJ341PM5j5TAAE218gACbT2CX03aRP9JBZDvgjxAa+vHL8pEHWA2sJuLGbVLFN8YC44c7Jnxe0Q= X-Received: by 2002:a25:8804:: with SMTP id c4mr7889151ybl.387.1580925742108; Wed, 05 Feb 2020 10:02:22 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Date: Wed, 5 Feb 2020 19:02:10 +0100 Message-ID: Subject: Re: [PATCH 1/3] fbdev/g364fb: Fix build failure To: Finn Thain X-Mailman-Approved-At: Thu, 06 Feb 2020 08:17:51 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-fbdev@vger.kernel.org, Thomas Bogendoerfer , Paul Burton , Bartlomiej Zolnierkiewicz , James Hogan , open list , Ralf Baechle , "open list:BROADCOM NVRAM DRIVER" , Thomas Bogendoerfer , dri-devel@lists.freedesktop.org, Laurent Vivier Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gU3VuLCBGZWIgMiwgMjAyMCBhdCAzOjQxIEFNIEZpbm4gVGhhaW4gPGZ0aGFpbkB0ZWxlZ3Jh cGhpY3MuY29tLmF1PiB3cm90ZToKPgo+IFRoaXMgcGF0Y2ggcmVzb2x2ZXMgdGhlc2UgY29tcGls ZXIgZXJyb3JzIGFuZCB3YXJuaW5ncyAtLQo+Cj4gICBDQyAgICAgIGRyaXZlcnMvdmlkZW8vZmJk ZXYvZzM2NGZiLm8KPiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2czNjRmYi5jOiBJbiBmdW5jdGlvbiAn ZzM2NGZiX2N1cnNvcic6Cj4gZHJpdmVycy92aWRlby9mYmRldi9nMzY0ZmIuYzoxMzc6OTogZXJy b3I6ICd4JyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKPiBkcml2ZXJz L3ZpZGVvL2ZiZGV2L2czNjRmYi5jOjEzNzo5OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRp ZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBp bgo+IGRyaXZlcnMvdmlkZW8vZmJkZXYvZzM2NGZiLmM6MTM3Ojc6IGVycm9yOiBpbXBsaWNpdCBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZm9udHdpZHRoJyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5j dGlvbi1kZWNsYXJhdGlvbl0KPiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2czNjRmYi5jOjEzNzoyMzog ZXJyb3I6ICdwJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKPiBkcml2 ZXJzL3ZpZGVvL2ZiZGV2L2czNjRmYi5jOjEzNzozODogZXJyb3I6ICd5JyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKPiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2czNjRmYi5j OjEzNzo3OiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2ZvbnRoZWln aHQnIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQo+IGRyaXZlcnMvdmlk ZW8vZmJkZXYvZzM2NGZiLmM6IEluIGZ1bmN0aW9uICdnMzY0ZmJfaW5pdCc6Cj4gZHJpdmVycy92 aWRlby9mYmRldi9nMzY0ZmIuYzoyMzM6MjQ6IGVycm9yOiAnZmJ2YXInIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQo+IGRyaXZlcnMvdmlkZW8vZmJkZXYvZzM2NGZiLmM6 MjM0OjI0OiBlcnJvcjogJ3hyZXMnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQoKMTggeWVhcnMgdW5ub3RpY2VkLi4uCgo+IGRyaXZlcnMvdmlkZW8vZmJkZXYvZzM2NGZi LmM6MjAxOjE0OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2onIFstV3VudXNlZC12YXJpYWJs ZV0KPiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2czNjRmYi5jOjE5NzoyNTogd2FybmluZzogdW51c2Vk IHZhcmlhYmxlICdwYWxfcHRyJyBbLVd1bnVzZWQtdmFyaWFibGVdCj4KPiBUaGUgTUlQUyBNYWdu dW0gZnJhbWVidWZmZXIgY29uc29sZSBub3cgd29ya3Mgd2hlbiB0ZXN0ZWQgaW4gUUVNVS4KPgo+ IENjOiBCYXJ0bG9taWVqIFpvbG5pZXJraWV3aWN6IDxiLnpvbG5pZXJraWVAc2Ftc3VuZy5jb20+ Cj4gRml4ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQoKVGhpcyBjb21taXQg aXMgdGhlIGtlcm5lbCAnZ2l0IG9yaWdpbicgaW1wb3J0LCBub3QgdGhlIHByb3BlciByZWZlcmVu Y2UuCgpUaGUgYWN0dWFsIGNoYW5nZSBpcyBiZXR3ZWVuIHYyLjUuMTcvMi41LjE5OgpodHRwczov L2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90Z2x4L2hpc3RvcnkuZ2l0 L2RpZmYvZHJpdmVycy92aWRlby9nMzY0ZmIuYz9pZD1iMzBlNmUxODNhNzI4OTIzMjY3CkRhdGU6 IDIwMDItMDUtMjIgMDc6NTI6MzMuLi4KClRoZSBzYW1lIGNvbW1pdCBpbnRyb2R1Y2VkIHRoZSBj aGFuZ2VzIGluIGczNjRmYl9jdXJzb3IoKSwgd2hpY2ggd2FzCmltcGxlbWVudGVkIHByZXZpb3Vz IHRvIHYyLjQuMCBzbyBpdCBpcyBoYXJkIHRvIGZvbGxvdyBmcm9tIHRoZXJlLgoKTm9ib2R5IGNv bXBsYWlucyBkdXJpbmcgMTggeWVhcnMgc28gSSBkb3VidCBhbnlvbmUgY2FyZSB0aGF0CmczNjRm Yl9jdXJzb3IoKSBpcyByZW1vdmVkLgpBbmQgYnkgcmVtb3ZpbmcgaXQsIHlvdSBpbXByb3ZlIHRo ZSBrZXJuZWwgcXVhbGl0eSwgc286ClJldmlld2VkLWJ5OiBQaGlsaXBwZSBNYXRoaWV1LURhdWTD qSA8ZjRidWdAYW1zYXQub3JnPgooTWF5YmUgcmVtb3ZlIHRoZSB1bmhlbHBmdWwgJ0ZpeGVzJyB0 YWcpLgoKPiBTaWduZWQtb2ZmLWJ5OiBGaW5uIFRoYWluIDxmdGhhaW5AdGVsZWdyYXBoaWNzLmNv bS5hdT4KPiAtLS0KPiAgZHJpdmVycy92aWRlby9mYmRldi9nMzY0ZmIuYyB8IDI5ICsrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDI2IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZzM2 NGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2czNjRmYi5jCj4gaW5kZXggMjIzODk2Y2M1Zjdk Li5mYjI2MjMwYTNjN2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9nMzY0ZmIu Ywo+ICsrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZzM2NGZiLmMKPiBAQCAtMTA4LDcgKzEwOCw2 IEBAIHN0YXRpYyBpbnQgZzM2NGZiX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5m byAqdmFyLAo+ICBzdGF0aWMgaW50IGczNjRmYl9zZXRjb2xyZWcodV9pbnQgcmVnbm8sIHVfaW50 IHJlZCwgdV9pbnQgZ3JlZW4sCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfaW50IGJs dWUsIHVfaW50IHRyYW5zcCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZi X2luZm8gKmluZm8pOwo+IC1zdGF0aWMgaW50IGczNjRmYl9jdXJzb3Ioc3RydWN0IGZiX2luZm8g KmluZm8sIHN0cnVjdCBmYl9jdXJzb3IgKmN1cnNvcik7Cj4gIHN0YXRpYyBpbnQgZzM2NGZiX2Js YW5rKGludCBibGFuaywgc3RydWN0IGZiX2luZm8gKmluZm8pOwo+Cj4gIHN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIGczNjRmYl9vcHMgPSB7Cj4gQEAgLTExOSwyOCArMTE4LDggQEAgc3RhdGljIHN0cnVj dCBmYl9vcHMgZzM2NGZiX29wcyA9IHsKPiAgICAgICAgIC5mYl9maWxscmVjdCAgICA9IGNmYl9m aWxscmVjdCwKPiAgICAgICAgIC5mYl9jb3B5YXJlYSAgICA9IGNmYl9jb3B5YXJlYSwKPiAgICAg ICAgIC5mYl9pbWFnZWJsaXQgICA9IGNmYl9pbWFnZWJsaXQsCj4gLSAgICAgICAuZmJfY3Vyc29y ICAgICAgPSBnMzY0ZmJfY3Vyc29yLAo+ICB9Owo+Cj4gLWludCBnMzY0ZmJfY3Vyc29yKHN0cnVj dCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgZmJfY3Vyc29yICpjdXJzb3IpCj4gLXsKPiAtCj4gLSAg ICAgICBzd2l0Y2ggKGN1cnNvci0+ZW5hYmxlKSB7Cj4gLSAgICAgICBjYXNlIENNX0VSQVNFOgo+ IC0gICAgICAgICAgICAgICAqKHVuc2lnbmVkIGludCAqKSBDVExBX1JFRyB8PSBDVVJTX1RPR0dM RTsKPiAtICAgICAgICAgICAgICAgYnJlYWs7Cj4gLQo+IC0gICAgICAgY2FzZSBDTV9NT1ZFOgo+ IC0gICAgICAgY2FzZSBDTV9EUkFXOgo+IC0gICAgICAgICAgICAgICAqKHVuc2lnbmVkIGludCAq KSBDVExBX1JFRyAmPSB+Q1VSU19UT0dHTEU7Cj4gLSAgICAgICAgICAgICAgICoodW5zaWduZWQg aW50ICopIENVUlNfUE9TX1JFRyA9Cj4gLSAgICAgICAgICAgICAgICAgICAoKHggKiBmb250d2lk dGgocCkpIDw8IDEyKSB8ICgoeSAqIGZvbnRoZWlnaHQocCkpIC0KPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnZhci55b2Zmc2V0KTsKPiAt ICAgICAgICAgICAgICAgYnJlYWs7Cj4gLSAgICAgICB9Cj4gLSAgICAgICByZXR1cm4gMDsKPiAt fQo+IC0KPiAgLyoKPiAgICogIFBhbiBvciBXcmFwIHRoZSBEaXNwbGF5Cj4gICAqCj4gQEAgLTE5 NCwxMSArMTczLDkgQEAgc3RhdGljIGludCBnMzY0ZmJfc2V0Y29scmVnKHVfaW50IHJlZ25vLCB1 X2ludCByZWQsIHVfaW50IGdyZWVuLAo+ICAgKi8KPiAgaW50IF9faW5pdCBnMzY0ZmJfaW5pdCh2 b2lkKQo+ICB7Cj4gLSAgICAgICB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnBhbF9wdHIgPQo+IC0g ICAgICAgICAgICh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgQ0xSX1BBTF9SRUc7Cj4gICAgICAg ICB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKmN1cnNfcGFsX3B0ciA9Cj4gICAgICAgICAgICAgKHZv bGF0aWxlIHVuc2lnbmVkIGludCAqKSBDVVJTX1BBTF9SRUc7Cj4gLSAgICAgICBpbnQgbWVtLCBp LCBqOwo+ICsgICAgICAgaW50IG1lbSwgaTsKPgo+ICAgICAgICAgaWYgKGZiX2dldF9vcHRpb25z KCJnMzY0ZmIiLCBOVUxMKSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4gQEAg LTIzMCw4ICsyMDcsOCBAQCBpbnQgX19pbml0IGczNjRmYl9pbml0KHZvaWQpCj4gICAgICAgICAg Ki8KPiAgICAgICAgICoodW5zaWduZWQgc2hvcnQgKikgKENVUlNfUEFUX1JFRyArIDE0ICogNjQp ID0gMHhmZmZmOwo+ICAgICAgICAgKih1bnNpZ25lZCBzaG9ydCAqKSAoQ1VSU19QQVRfUkVHICsg MTUgKiA2NCkgPSAweGZmZmY7Cj4gLSAgICAgICBmYl92YXIueHJlc192aXJ0dWFsID0gZmJ2YXIu eHJlczsKPiAtICAgICAgIGZiX2ZpeC5saW5lX2xlbmd0aCA9ICh4cmVzIC8gOCkgKiBmYl92YXIu Yml0c19wZXJfcGl4ZWw7Cj4gKyAgICAgICBmYl92YXIueHJlc192aXJ0dWFsID0gZmJfdmFyLnhy ZXM7Cj4gKyAgICAgICBmYl9maXgubGluZV9sZW5ndGggPSBmYl92YXIueHJlc192aXJ0dWFsICog ZmJfdmFyLmJpdHNfcGVyX3BpeGVsIC8gODsKPiAgICAgICAgIGZiX2ZpeC5zbWVtX3N0YXJ0ID0g MHg0MDAwMDAwMDsgLyogcGh5c2ljYWwgYWRkcmVzcyAqLwo+ICAgICAgICAgLyogZ2V0IHNpemUg b2YgdmlkZW8gbWVtb3J5OyB0aGlzIGlzIHNwZWNpYWwgZm9yIHRoZSBKQVpaIGhhcmR3YXJlICov Cj4gICAgICAgICBtZW0gPSAocjQwMzBfcmVhZF9yZWczMihKQVpaX1I0MDMwX0NPTkZJRykgPj4g OCkgJiAzOwo+IC0tCj4gMi4yNC4xCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==