From patchwork Thu Jul 9 04:55:39 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vaishali Thakkar X-Patchwork-Id: 493265 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 127F41402C4 for ; Thu, 9 Jul 2015 14:56:15 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=zab01PiT; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751298AbbGIEzw (ORCPT ); Thu, 9 Jul 2015 00:55:52 -0400 Received: from mail-pa0-f49.google.com ([209.85.220.49]:33900 "EHLO mail-pa0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750814AbbGIEzu (ORCPT ); Thu, 9 Jul 2015 00:55:50 -0400 Received: by pabvl15 with SMTP id vl15so143575163pab.1; Wed, 08 Jul 2015 21:55:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=NYwyPyh8SwS4D3ZBbWXp4i1fCunMKboamXIkEdgIIJ0=; b=zab01PiTmjUdoidBTvNjBIC6zWIDsspuwXhP+ZQlgBIx1DhOHMvwAVZGmH05STSniW 9AwiWlLR/3r8tlV1nXfOIAvnkdZCEV/c1Vr2siB4TTgCoP4rk8Zlia5asDY5MCAh3/vi HhXZsKPh87JkLUj9BqRhPH00rxlqKpgrtyTe1lIqHPuZz70+aDMyKpsppRxKRoHVTVrU LYNJJX6twOBG6YlwmUvThrN2mcrEc0UwOEhfViaSr5CmoOkM2HwPfpcnoSeNcDcBIOhP dGfTYIYeM1rUn76mr9pgl7UYgDupt0WhPEv6iK0MSBJEJW8UU1lsAYKyJMo64pjgBnth gs/Q== X-Received: by 10.68.224.35 with SMTP id qz3mr27167237pbc.165.1436417750189; Wed, 08 Jul 2015 21:55:50 -0700 (PDT) Received: from vaishali-Ideapad-Z570 ([106.79.81.57]) by smtp.gmail.com with ESMTPSA id db1sm4277606pdb.50.2015.07.08.21.55.46 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 08 Jul 2015 21:55:49 -0700 (PDT) Date: Thu, 9 Jul 2015 10:25:39 +0530 From: Vaishali Thakkar To: Jon Mason Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] neterion: s2io: Use module_pci_driver Message-ID: <20150709045539.GA7052@vaishali-Ideapad-Z570> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use module_pci_driver for drivers whose init and exit functions only register and unregister, respectively. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @a@ identifier f, x; @@ -static f(...) { return pci_register_driver(&x); } @b depends on a@ identifier e, a.x; statement S; @@ -static e(...) { -pci_unregister_driver(&x); -DBG_PRINT(INIT_DBG,"S"); - } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_pci_driver; @@ -module_exit(e); +module_pci_driver(x); Signed-off-by: Vaishali Thakkar --- drivers/net/ethernet/neterion/s2io.c | 26 +------------------------- drivers/net/ethernet/neterion/s2io.h | 2 -- 2 files changed, 1 insertion(+), 27 deletions(-) diff --git a/drivers/net/ethernet/neterion/s2io.c b/drivers/net/ethernet/neterion/s2io.c index c281117..2d1b942 100644 --- a/drivers/net/ethernet/neterion/s2io.c +++ b/drivers/net/ethernet/neterion/s2io.c @@ -8226,31 +8226,7 @@ static void s2io_rem_nic(struct pci_dev *pdev) pci_disable_device(pdev); } -/** - * s2io_starter - Entry point for the driver - * Description: This function is the entry point for the driver. It verifies - * the module loadable parameters and initializes PCI configuration space. - */ - -static int __init s2io_starter(void) -{ - return pci_register_driver(&s2io_driver); -} - -/** - * s2io_closer - Cleanup routine for the driver - * Description: This function is the cleanup routine for the driver. It - * unregisters the driver. - */ - -static __exit void s2io_closer(void) -{ - pci_unregister_driver(&s2io_driver); - DBG_PRINT(INIT_DBG, "cleanup done\n"); -} - -module_init(s2io_starter); -module_exit(s2io_closer); +module_pci_driver(s2io_driver); static int check_L2_lro_capable(u8 *buffer, struct iphdr **ip, struct tcphdr **tcp, struct RxD_t *rxdp, diff --git a/drivers/net/ethernet/neterion/s2io.h b/drivers/net/ethernet/neterion/s2io.h index d89b6ed..6c5997d 100644 --- a/drivers/net/ethernet/neterion/s2io.h +++ b/drivers/net/ethernet/neterion/s2io.h @@ -1085,8 +1085,6 @@ static void s2io_txpic_intr_handle(struct s2io_nic *sp); static void tx_intr_handler(struct fifo_info *fifo_data); static void s2io_handle_errors(void * dev_id); -static int s2io_starter(void); -static void s2io_closer(void); static void s2io_tx_watchdog(struct net_device *dev); static void s2io_set_multicast(struct net_device *dev); static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp);