From patchwork Thu Jul 7 11:51:52 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: stufever@gmail.com X-Patchwork-Id: 103644 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 12904B6F18 for ; Thu, 7 Jul 2011 21:47:53 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755784Ab1GGLrr (ORCPT ); Thu, 7 Jul 2011 07:47:47 -0400 Received: from mail-iw0-f174.google.com ([209.85.214.174]:61193 "EHLO mail-iw0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755698Ab1GGLrq (ORCPT ); Thu, 7 Jul 2011 07:47:46 -0400 Received: by iwn6 with SMTP id 6so758886iwn.19 for ; Thu, 07 Jul 2011 04:47:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; bh=9FnfJH0iy/PI+O/C2BgCQhFBaUpHrMWGj7mvvL09hUk=; b=NlefgMFmYpBIGt3J9kSEHkbspSlVdZdawxLDrDli/YOVDfWc+8l8bSSw7knZfCb+yZ sIf2BHjp+egJ57rR6/M25JRTWJ6x8mj9ukgXehiwVTK6SP6jYSuEC3lXHgkXCWINHbfv rI3F6wgoZLvadviUtShRKqBWY/ZM7IvD74CxQ= Received: by 10.42.157.10 with SMTP id b10mr782911icx.44.1310039266033; Thu, 07 Jul 2011 04:47:46 -0700 (PDT) Received: from localhost.localdomain ([114.251.86.0]) by mx.google.com with ESMTPS id f13sm5436529ibe.27.2011.07.07.04.47.42 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 07 Jul 2011 04:47:45 -0700 (PDT) From: stufever@gmail.com To: netdev@vger.kernel.org Cc: Wang Shaoyan , Chas Williams (maintainer:ATM), linux-atm-general@lists.sourceforge.net (open list:ATM) Subject: [PATCH] ATM: Fix wrong usage of INIT_WORK Date: Thu, 7 Jul 2011 19:51:52 +0800 Message-Id: <1310039512-17579-1-git-send-email-wangshaoyan.pt@taobao.com> X-Mailer: git-send-email 1.7.4.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Wang Shaoyan If we define FILL_RX_POOLS_IN_BH, the compiler will report error such as drivers/atm/ambassador.c:2159:64: error: macro "INIT_WORK" passed 3 arguments, but takes just 2 because the function INIT_WORK() don't accept "data" now, it only has two arguments, so use the right way to initialise work queue. Cc: Chas Williams (maintainer:ATM) Cc: linux-atm-general@lists.sourceforge.net (open list:ATM) Signed-off-by: Wang Shaoyan --- drivers/atm/ambassador.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c index a5fcb1e..3618c5c 100644 --- a/drivers/atm/ambassador.c +++ b/drivers/atm/ambassador.c @@ -814,7 +814,12 @@ static void fill_rx_pool (amb_dev * dev, unsigned char pool, } // top up all RX pools (can also be called as a bottom half) +#ifdef FILL_RX_POOLS_IN_BH +static void fill_rx_pools (struct work_struct * work) { + amb_dev * dev = container_of(work, amb_dev, bh); +#else static void fill_rx_pools (amb_dev * dev) { +#endif unsigned char pool; PRINTD (DBG_FLOW|DBG_POOL, "fill_rx_pools %p", dev); @@ -1503,7 +1508,11 @@ static void do_housekeeping (unsigned long arg) { // could collect device-specific (not driver/atm-linux) stats here // last resort refill once every ten seconds +#ifdef FILL_RX_POOLS_IN_BH + fill_rx_pools (&dev->bh); +#else fill_rx_pools (dev); +#endif mod_timer(&dev->housekeeping, jiffies + 10*HZ); return; @@ -2156,7 +2165,7 @@ static void setup_dev(amb_dev *dev, struct pci_dev *pci_dev) #ifdef FILL_RX_POOLS_IN_BH // initialise bottom half - INIT_WORK(&dev->bh, (void (*)(void *)) fill_rx_pools, dev); + INIT_WORK(&dev->bh, fill_rx_pools); #endif // semaphore for txer/rxer modifications - we cannot use a