Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp4849915ybb; Tue, 24 Mar 2020 06:30:43 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtfDpYw+7zymm0XASugD9w8gg4kPATmnBQvy34EFJjbi0cOYEI65qUDmlcEOsrGqX2UBMzv X-Received: by 2002:aca:c390:: with SMTP id t138mr3225864oif.117.1585056643431; Tue, 24 Mar 2020 06:30:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585056643; cv=none; d=google.com; s=arc-20160816; b=gC6X2QuKpCzD6N0/82MxN1B4V+0zwMKk2f90V2GKBmQ9Ffbi0src0p+SYXOFVpgkwR ORPJ/GtIKs5CoTThdYCjhy3kwJRaRg18pAjHzersUL+lR1IFFLh/xutpSmnslQYBkY/m hNtbx3oGMtdJARRvUQXb7ltZFJ1i+LKOnyOXKwv3QvxFWaD7ktnDTD23b2R3OUXLSooT Zcu8SLDFWyso1mhYkEfqhSWgwGPfTShaSGQGKXDmFc4gjzrya8pdi04x7b0CIFGsvEQ5 g7gycjs8utJLLRxzA/exJWDe07B35I4QIeORB2W+NV9rtgwlZ2+8N2ndAJHjezRiJx1i KtWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:content-transfer-encoding:mime-version :message-id:date:subject:cc:from:dkim-signature; bh=J59vOQButIA7wOzAY9wmajFYSXUMpXsPzQxaHYbQv0o=; b=n4kjuCpaqnwdzWRZPbuqX046SUHOxdNGTYR6B2gwVDFxzbjU3OmK51J2fYj8+jFUDv F40z0OzEVcXW92FiGT0lGOPkSddyiMtJXL0uID4agjQ95MVomDRVtierVJYuU1L+Qsvr I+SxKfibb6mMzH9fNFgAapmhKNpuK+w5tno3snAgWiVM/Odc5yDX3iAYatN2EKsqwb3m paiT3Bhxi0E3sxqWkhyA6/H9N1Bx2foUcqPdfIdkL1QBUqW9n8XbAlKQ0i8nIJcMHsz+ 1xM7pYv7lSmbSrFt4qlUlI6dDXbCo8xmseWBmpdonrE6Aumo+WcWX9wLEJGcsTxOSVsb 6ZyA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=duqJNACt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l15si4118869oth.29.2020.03.24.06.30.30; Tue, 24 Mar 2020 06:30:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=duqJNACt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728935AbgCXN3V (ORCPT + 99 others); Tue, 24 Mar 2020 09:29:21 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:42068 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729518AbgCXNYC (ORCPT ); Tue, 24 Mar 2020 09:24:02 -0400 Received: by mail-pf1-f194.google.com with SMTP id 22so5666440pfa.9; Tue, 24 Mar 2020 06:24:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=J59vOQButIA7wOzAY9wmajFYSXUMpXsPzQxaHYbQv0o=; b=duqJNACteTZSXSWcZF+gw1gKTJ4q1aUrfnAY8rwv1olCQqbbh2Ieil2rGE28zWqW3N jGzY6h6Xgd0f/k30hX8o57PFadqh2jKETuPVzX8vwAssZlz5pPGqwJiuzZSM3aR4swVU FxmlGfJLVFvEMBi0/LJjGqquKL866NuDSzfVlWxpAuXd/1BWw/1+mXcJ0mVVVIUSKKWz y+BKGvYDHary7SK/O5BJ3X/8vmBQy0a6K+GmIYS96bRriWhDd85terlO2mrXxQ8xdu52 U52SS2J29H1F4dqDlA4XfVa/KRcJ/u7GKgELhyNTAUFciHaVFdDDX5Kd5eWqg2UG3r5X 1Qqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=J59vOQButIA7wOzAY9wmajFYSXUMpXsPzQxaHYbQv0o=; b=G26+GEc+7lY1wDuwBpI3QgRIhB/Ot7mGNJUrudUFGykbLIBmgvCOdcA2jrm6t6W67m B1NvpJTMkgNnNBtAI4BIz5OKgBYVlx0armIiz/20cR0KSqgf6qxv9Orf7Ziqf7MTXLYI 3p5q9WRAl9qxRY/kbYeJ0L9nBbiDBRcosvKDeCOkDmoxnsZdJM85b68MY0gVzM6Xr7ag ylTqoZk37CUt9FsR261+FB7mrcOJP5NbAwSycYM6ISvV6nAVcRPKoq/q9ztx0d1Irz2P TGyuALJoC0XRodqAAkUkzXBzweZZkAcYn6NA1gCBt2UpWfKtDP9l2PvoWGIZbWtPdd7h cq9A== X-Gm-Message-State: ANhLgQ2fJO787p43Kz/Tq8jS8J7N76xbNk/JZNUVXRb1fQazsyhOz8DT duuyH0yEk8v45favuW4dGAE= X-Received: by 2002:a65:6910:: with SMTP id s16mr1545967pgq.426.1585056241100; Tue, 24 Mar 2020 06:24:01 -0700 (PDT) Received: from suzukaze.ipads-lab.se.sjtu.edu.cn ([202.120.40.82]) by smtp.gmail.com with ESMTPSA id g11sm15874883pfm.4.2020.03.24.06.23.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Mar 2020 06:24:00 -0700 (PDT) From: Chuhong Yuan Cc: Bartlomiej Zolnierkiewicz , dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, Chuhong Yuan Subject: [PATCH v4] video: fbdev: arcfb: add missed free_irq and fix the order of request_irq Date: Tue, 24 Mar 2020 21:23:53 +0800 Message-Id: <20200324132353.21785-1-hslester96@gmail.com> X-Mailer: git-send-email 2.25.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The driver forgets to free irq in remove which is requested in probe. Add the missed call to fix it. Also, the position of request_irq() in probe should be put before register_framebuffer(). Signed-off-by: Chuhong Yuan --- Changes in v4: - Use info->par->irq instead of par->irq to avoid dereferencing NULL pointer. drivers/video/fbdev/arcfb.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c index 314ab82e01c0..6f7838979f0a 100644 --- a/drivers/video/fbdev/arcfb.c +++ b/drivers/video/fbdev/arcfb.c @@ -544,10 +544,6 @@ static int arcfb_probe(struct platform_device *dev) par->cslut[1] = 0x06; info->flags = FBINFO_FLAG_DEFAULT; spin_lock_init(&par->lock); - retval = register_framebuffer(info); - if (retval < 0) - goto err1; - platform_set_drvdata(dev, info); if (irq) { par->irq = irq; if (request_irq(par->irq, &arcfb_interrupt, IRQF_SHARED, @@ -558,6 +554,10 @@ static int arcfb_probe(struct platform_device *dev) goto err1; } } + retval = register_framebuffer(info); + if (retval < 0) + goto err1; + platform_set_drvdata(dev, info); fb_info(info, "Arc frame buffer device, using %dK of video memory\n", videomemorysize >> 10); @@ -593,6 +593,8 @@ static int arcfb_remove(struct platform_device *dev) if (info) { unregister_framebuffer(info); + if (irq) + free_irq(((struct arcfb_par *)(info->par))->irq, info); vfree((void __force *)info->screen_base); framebuffer_release(info); } -- 2.25.2