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=-6.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 87473C07E85 for ; Tue, 11 Dec 2018 15:43:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4A180208E7 for ; Tue, 11 Dec 2018 15:43:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544542994; bh=l39nIUf8k/xg5kIf9TYpw7uppwqxSlBJVTVK/yyenDQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=1GB+idpa9T3D9w3FiCeU70uPG6q0rWmWSIvIoNsnJlH4wUdzQ4CY7XimvtPjLDU/b LeWx5iyHPVYMcKUof9FgYmJVwuhxXkM5eSdgUaLcOOyFGtT/616wlPXwDStEfgu1Q7 UJfA0WNEhXAiFp9p47FtxhIXjv9nPUnwEsB3vkus= DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4A180208E7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727459AbeLKPnM (ORCPT ); Tue, 11 Dec 2018 10:43:12 -0500 Received: from mail.kernel.org ([198.145.29.99]:59592 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726919AbeLKPnK (ORCPT ); Tue, 11 Dec 2018 10:43:10 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 69A7F2087F; Tue, 11 Dec 2018 15:43:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544542989; bh=l39nIUf8k/xg5kIf9TYpw7uppwqxSlBJVTVK/yyenDQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XG0aqBBWlFHoAPUSLnD0ohshIfxh6mfPjsD3kCRtiDFI9m0MAxs+Ky8nH28Y3oWsR j+L8XuJi3d4yCYvECipvLuPHupt3GQlovmSX8CDDp2coi2DWr7IqWxMlgzk+jAHUrx Mqwb/S8AhLKMEnPOKfM9J+3rCE49IbrUeIa3mGds= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sam Bobroff , Dave Airlie Subject: [PATCH 3.18 25/54] drm/ast: Fix incorrect free on ioregs Date: Tue, 11 Dec 2018 16:41:13 +0100 Message-Id: <20181211151547.395287428@linuxfoundation.org> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20181211151546.010073210@linuxfoundation.org> References: <20181211151546.010073210@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 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 3.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Sam Bobroff commit dc25ab067645eabd037f1a23d49a666f9e0b8c68 upstream. If the platform has no IO space, ioregs is placed next to the already allocated regs. In this case, it should not be separately freed. This prevents a kernel warning from __vunmap "Trying to vfree() nonexistent vm area" when unloading the driver. Fixes: 0dd68309b9c5 ("drm/ast: Try to use MMIO registers when PIO isn't supported") Signed-off-by: Sam Bobroff Cc: Signed-off-by: Dave Airlie Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/ast/ast_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/ast/ast_main.c +++ b/drivers/gpu/drm/ast/ast_main.c @@ -489,7 +489,8 @@ int ast_driver_unload(struct drm_device drm_mode_config_cleanup(dev); ast_mm_fini(ast); - pci_iounmap(dev->pdev, ast->ioregs); + if (ast->ioregs != ast->regs + AST_IO_MM_OFFSET) + pci_iounmap(dev->pdev, ast->ioregs); pci_iounmap(dev->pdev, ast->regs); kfree(ast); return 0;