linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] completions: lockdep annotate on stack completions
@ 2006-09-28  9:52 Peter Zijlstra
  2006-09-28 11:46 ` Benjamin Herrenschmidt
  2006-10-01 18:03 ` Jens Axboe
  0 siblings, 2 replies; 3+ messages in thread
From: Peter Zijlstra @ 2006-09-28  9:52 UTC (permalink / raw)
  To: linux-kernel
  Cc: Andrew Morton, Ingo Molnar, Arjan van de Ven,
	James E.J. Bottomley, Jens Axboe, Benjamin Herrenschmidt,
	Russell King


All on stack DECLARE_COMPLETIONs should be replaced by:
  DECLARE_COMPLETION_ONSTACK

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Ingo Molnar <mingo@elte.hu>
---
 arch/arm/kernel/ecard.c                      |    2 +-
 arch/i386/kernel/smpboot.c                   |    2 +-
 arch/powerpc/platforms/powermac/cpufreq_64.c |    2 +-
 arch/powerpc/platforms/powermac/nvram.c      |    4 ++--
 block/as-iosched.c                           |    2 +-
 block/cfq-iosched.c                          |    2 +-
 drivers/block/DAC960.c                       |    2 +-
 drivers/block/cciss.c                        |    6 +++---
 drivers/block/cciss_scsi.c                   |    2 +-
 drivers/block/paride/pd.c                    |    2 +-
 drivers/block/pktcdvd.c                      |    2 +-
 drivers/ide/ide-tape.c                       |    2 +-
 drivers/macintosh/smu.c                      |    4 ++--
 drivers/macintosh/windfarm_smu_controls.c    |    2 +-
 drivers/macintosh/windfarm_smu_sensors.c     |    2 +-
 drivers/s390/scsi/zfcp_scsi.c                |    2 +-
 drivers/scsi/53c700.c                        |    2 +-
 drivers/scsi/aic7xxx/aic79xx_osm.c           |    4 ++--
 drivers/scsi/aic7xxx/aic7xxx_osm.c           |    2 +-
 drivers/scsi/gdth.c                          |    4 ++--
 drivers/scsi/qla1280.c                       |    4 ++--
 drivers/usb/gadget/inode.c                   |    2 +-
 drivers/usb/gadget/omap_udc.c                |    2 +-
 net/ipv4/ipvs/ip_vs_sync.c                   |    2 +-
 24 files changed, 31 insertions(+), 31 deletions(-)

Index: linux-2.6/arch/arm/kernel/ecard.c
===================================================================
--- linux-2.6.orig/arch/arm/kernel/ecard.c
+++ linux-2.6/arch/arm/kernel/ecard.c
@@ -295,7 +295,7 @@ ecard_task(void * unused)
  */
 static void ecard_call(struct ecard_request *req)
 {
-	DECLARE_COMPLETION(completion);
+	DECLARE_COMPLETION_ONSTACK(completion);
 
 	req->complete = &completion;
 
Index: linux-2.6/arch/i386/kernel/smpboot.c
===================================================================
--- linux-2.6.orig/arch/i386/kernel/smpboot.c
+++ linux-2.6/arch/i386/kernel/smpboot.c
@@ -1058,7 +1058,7 @@ static void __cpuinit do_warm_boot_cpu(v
 
 static int __cpuinit __smp_prepare_cpu(int cpu)
 {
-	DECLARE_COMPLETION(done);
+	DECLARE_COMPLETION_ONSTACK(done);
 	struct warm_boot_cpu_info info;
 	struct work_struct task;
 	int	apicid, ret;
Index: linux-2.6/arch/powerpc/platforms/powermac/cpufreq_64.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/powermac/cpufreq_64.c
+++ linux-2.6/arch/powerpc/platforms/powermac/cpufreq_64.c
@@ -104,7 +104,7 @@ static void g5_smu_switch_volt(int speed
 {
 	struct smu_simple_cmd	cmd;
 
-	DECLARE_COMPLETION(comp);
+	DECLARE_COMPLETION_ONSTACK(comp);
 	smu_queue_simple(&cmd, SMU_CMD_POWER_COMMAND, 8, smu_done_complete,
 			 &comp, 'V', 'S', 'L', 'E', 'W',
 			 0xff, g5_fvt_cur+1, speed_mode);
Index: linux-2.6/arch/powerpc/platforms/powermac/nvram.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/powermac/nvram.c
+++ linux-2.6/arch/powerpc/platforms/powermac/nvram.c
@@ -195,7 +195,7 @@ static void pmu_nvram_complete(struct ad
 static unsigned char pmu_nvram_read_byte(int addr)
 {
 	struct adb_request req;
-	DECLARE_COMPLETION(req_complete); 
+	DECLARE_COMPLETION_ONSTACK(req_complete);
 	
 	req.arg = system_state == SYSTEM_RUNNING ? &req_complete : NULL;
 	if (pmu_request(&req, pmu_nvram_complete, 3, PMU_READ_NVRAM,
@@ -211,7 +211,7 @@ static unsigned char pmu_nvram_read_byte
 static void pmu_nvram_write_byte(int addr, unsigned char val)
 {
 	struct adb_request req;
-	DECLARE_COMPLETION(req_complete); 
+	DECLARE_COMPLETION_ONSTACK(req_complete);
 	
 	req.arg = system_state == SYSTEM_RUNNING ? &req_complete : NULL;
 	if (pmu_request(&req, pmu_nvram_complete, 4, PMU_WRITE_NVRAM,
Index: linux-2.6/block/as-iosched.c
===================================================================
--- linux-2.6.orig/block/as-iosched.c
+++ linux-2.6/block/as-iosched.c
@@ -1828,7 +1828,7 @@ static int __init as_init(void)
 
 static void __exit as_exit(void)
 {
-	DECLARE_COMPLETION(all_gone);
+	DECLARE_COMPLETION_ONSTACK(all_gone);
 	elv_unregister(&iosched_as);
 	ioc_gone = &all_gone;
 	/* ioc_gone's update must be visible before reading ioc_count */
Index: linux-2.6/block/cfq-iosched.c
===================================================================
--- linux-2.6.orig/block/cfq-iosched.c
+++ linux-2.6/block/cfq-iosched.c
@@ -2463,7 +2463,7 @@ static int __init cfq_init(void)
 
 static void __exit cfq_exit(void)
 {
-	DECLARE_COMPLETION(all_gone);
+	DECLARE_COMPLETION_ONSTACK(all_gone);
 	elv_unregister(&iosched_cfq);
 	ioc_gone = &all_gone;
 	/* ioc_gone's update must be visible before reading ioc_count */
Index: linux-2.6/drivers/block/DAC960.c
===================================================================
--- linux-2.6.orig/drivers/block/DAC960.c
+++ linux-2.6/drivers/block/DAC960.c
@@ -770,7 +770,7 @@ static void DAC960_P_QueueCommand(DAC960
 static void DAC960_ExecuteCommand(DAC960_Command_T *Command)
 {
   DAC960_Controller_T *Controller = Command->Controller;
-  DECLARE_COMPLETION(Completion);
+  DECLARE_COMPLETION_ONSTACK(Completion);
   unsigned long flags;
   Command->Completion = &Completion;
 
Index: linux-2.6/drivers/block/cciss.c
===================================================================
--- linux-2.6.orig/drivers/block/cciss.c
+++ linux-2.6/drivers/block/cciss.c
@@ -879,7 +879,7 @@ static int cciss_ioctl(struct inode *ino
 			char *buff = NULL;
 			u64bit temp64;
 			unsigned long flags;
-			DECLARE_COMPLETION(wait);
+			DECLARE_COMPLETION_ONSTACK(wait);
 
 			if (!arg)
 				return -EINVAL;
@@ -997,7 +997,7 @@ static int cciss_ioctl(struct inode *ino
 			BYTE sg_used = 0;
 			int status = 0;
 			int i;
-			DECLARE_COMPLETION(wait);
+			DECLARE_COMPLETION_ONSTACK(wait);
 			__u32 left;
 			__u32 sz;
 			BYTE __user *data_ptr;
@@ -1792,7 +1792,7 @@ static int sendcmd_withirq(__u8 cmd,
 	u64bit buff_dma_handle;
 	unsigned long flags;
 	int return_status;
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 
 	if ((c = cmd_alloc(h, 0)) == NULL)
 		return -ENOMEM;
Index: linux-2.6/drivers/block/cciss_scsi.c
===================================================================
--- linux-2.6.orig/drivers/block/cciss_scsi.c
+++ linux-2.6/drivers/block/cciss_scsi.c
@@ -766,7 +766,7 @@ cciss_scsi_do_simple_cmd(ctlr_info_t *c,
 			int direction)
 {
 	unsigned long flags;
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 
 	cp->cmd_type = CMD_IOCTL_PEND;		// treat this like an ioctl 
 	cp->scsi_cmd = NULL;
Index: linux-2.6/drivers/block/paride/pd.c
===================================================================
--- linux-2.6.orig/drivers/block/paride/pd.c
+++ linux-2.6/drivers/block/paride/pd.c
@@ -713,7 +713,7 @@ static void do_pd_request(request_queue_
 static int pd_special_command(struct pd_unit *disk,
 		      enum action (*func)(struct pd_unit *disk))
 {
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 	struct request rq;
 	int err = 0;
 
Index: linux-2.6/drivers/block/pktcdvd.c
===================================================================
--- linux-2.6.orig/drivers/block/pktcdvd.c
+++ linux-2.6/drivers/block/pktcdvd.c
@@ -348,7 +348,7 @@ static int pkt_generic_packet(struct pkt
 	char sense[SCSI_SENSE_BUFFERSIZE];
 	request_queue_t *q;
 	struct request *rq;
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 	int err = 0;
 
 	q = bdev_get_queue(pd->bdev);
Index: linux-2.6/drivers/ide/ide-tape.c
===================================================================
--- linux-2.6.orig/drivers/ide/ide-tape.c
+++ linux-2.6/drivers/ide/ide-tape.c
@@ -2764,7 +2764,7 @@ static void idetape_add_stage_tail (ide_
  */
 static void idetape_wait_for_request (ide_drive_t *drive, struct request *rq)
 {
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 	idetape_tape_t *tape = drive->driver_data;
 
 #if IDETAPE_DEBUG_BUGS
Index: linux-2.6/drivers/macintosh/smu.c
===================================================================
--- linux-2.6.orig/drivers/macintosh/smu.c
+++ linux-2.6/drivers/macintosh/smu.c
@@ -870,7 +870,7 @@ int smu_queue_i2c(struct smu_i2c_cmd *cm
 
 static int smu_read_datablock(u8 *dest, unsigned int addr, unsigned int len)
 {
-	DECLARE_COMPLETION(comp);
+	DECLARE_COMPLETION_ONSTACK(comp);
 	unsigned int chunk;
 	struct smu_cmd cmd;
 	int rc;
@@ -917,7 +917,7 @@ static int smu_read_datablock(u8 *dest, 
 
 static struct smu_sdbp_header *smu_create_sdb_partition(int id)
 {
-	DECLARE_COMPLETION(comp);
+	DECLARE_COMPLETION_ONSTACK(comp);
 	struct smu_simple_cmd cmd;
 	unsigned int addr, len, tlen;
 	struct smu_sdbp_header *hdr;
Index: linux-2.6/drivers/macintosh/windfarm_smu_controls.c
===================================================================
--- linux-2.6.orig/drivers/macintosh/windfarm_smu_controls.c
+++ linux-2.6/drivers/macintosh/windfarm_smu_controls.c
@@ -56,7 +56,7 @@ static int smu_set_fan(int pwm, u8 id, u
 {
 	struct smu_cmd cmd;
 	u8 buffer[16];
-	DECLARE_COMPLETION(comp);
+	DECLARE_COMPLETION_ONSTACK(comp);
 	int rc;
 
 	/* Fill SMU command structure */
Index: linux-2.6/drivers/macintosh/windfarm_smu_sensors.c
===================================================================
--- linux-2.6.orig/drivers/macintosh/windfarm_smu_sensors.c
+++ linux-2.6/drivers/macintosh/windfarm_smu_sensors.c
@@ -67,7 +67,7 @@ static void smu_ads_release(struct wf_se
 static int smu_read_adc(u8 id, s32 *value)
 {
 	struct smu_simple_cmd	cmd;
-	DECLARE_COMPLETION(comp);
+	DECLARE_COMPLETION_ONSTACK(comp);
 	int rc;
 
 	rc = smu_queue_simple(&cmd, SMU_CMD_READ_ADC, 1,
Index: linux-2.6/drivers/s390/scsi/zfcp_scsi.c
===================================================================
--- linux-2.6.orig/drivers/s390/scsi/zfcp_scsi.c
+++ linux-2.6/drivers/s390/scsi/zfcp_scsi.c
@@ -301,7 +301,7 @@ zfcp_scsi_command_sync(struct zfcp_unit 
 		       int use_timer)
 {
 	int ret;
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 
 	scpnt->SCp.ptr = (void *) &wait;  /* silent re-use */
 	scpnt->scsi_done = zfcp_scsi_command_sync_handler;
Index: linux-2.6/drivers/scsi/53c700.c
===================================================================
--- linux-2.6.orig/drivers/scsi/53c700.c
+++ linux-2.6/drivers/scsi/53c700.c
@@ -1939,7 +1939,7 @@ NCR_700_abort(struct scsi_cmnd * SCp)
 STATIC int
 NCR_700_bus_reset(struct scsi_cmnd * SCp)
 {
-	DECLARE_COMPLETION(complete);
+	DECLARE_COMPLETION_ONSTACK(complete);
 	struct NCR_700_Host_Parameters *hostdata = 
 		(struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0];
 
Index: linux-2.6/drivers/scsi/aic7xxx/aic79xx_osm.c
===================================================================
--- linux-2.6.orig/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ linux-2.6/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -646,7 +646,7 @@ ahd_linux_dev_reset(struct scsi_cmnd *cm
 	struct	ahd_initiator_tinfo *tinfo;
 	struct	ahd_tmode_tstate *tstate;
 	unsigned long flags;
-	DECLARE_COMPLETION(done);
+	DECLARE_COMPLETION_ONSTACK(done);
 
 	reset_scb = NULL;
 	paused = FALSE;
@@ -2251,7 +2251,7 @@ done:
 	if (paused)
 		ahd_unpause(ahd);
 	if (wait) {
-		DECLARE_COMPLETION(done);
+		DECLARE_COMPLETION_ONSTACK(done);
 
 		ahd->platform_data->eh_done = &done;
 		ahd_unlock(ahd, &flags);
Index: linux-2.6/drivers/scsi/aic7xxx/aic7xxx_osm.c
===================================================================
--- linux-2.6.orig/drivers/scsi/aic7xxx/aic7xxx_osm.c
+++ linux-2.6/drivers/scsi/aic7xxx/aic7xxx_osm.c
@@ -2335,7 +2335,7 @@ done:
 	if (paused)
 		ahc_unpause(ahc);
 	if (wait) {
-		DECLARE_COMPLETION(done);
+		DECLARE_COMPLETION_ONSTACK(done);
 
 		ahc->platform_data->eh_done = &done;
 		ahc_unlock(ahc, &flags);
Index: linux-2.6/drivers/scsi/gdth.c
===================================================================
--- linux-2.6.orig/drivers/scsi/gdth.c
+++ linux-2.6/drivers/scsi/gdth.c
@@ -724,7 +724,7 @@ int __gdth_execute(struct scsi_device *s
                    int timeout, u32 *info)
 {
     Scsi_Cmnd *scp;
-    DECLARE_COMPLETION(wait);
+    DECLARE_COMPLETION_ONSTACK(wait);
     int rval;
 
     scp = kmalloc(sizeof(*scp), GFP_KERNEL);
@@ -764,7 +764,7 @@ int __gdth_execute(struct scsi_device *s
 {
     Scsi_Cmnd *scp = scsi_allocate_device(sdev, 1, FALSE);
     unsigned bufflen = gdtcmd ? sizeof(gdth_cmd_str) : 0;
-    DECLARE_COMPLETION(wait);
+    DECLARE_COMPLETION_ONSTACK(wait);
     int rval;
 
     if (!scp)
Index: linux-2.6/drivers/scsi/qla1280.c
===================================================================
--- linux-2.6.orig/drivers/scsi/qla1280.c
+++ linux-2.6/drivers/scsi/qla1280.c
@@ -813,7 +813,7 @@ qla1280_error_action(struct scsi_cmnd *c
 	uint16_t data;
 	unsigned char *handle;
 	int result, i;
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 	struct timer_list timer;
 
 	ha = (struct scsi_qla_host *)(CMD_HOST(cmd)->hostdata);
@@ -2406,7 +2406,7 @@ qla1280_mailbox_command(struct scsi_qla_
 	uint16_t *optr, *iptr;
 	uint16_t __iomem *mptr;
 	uint16_t data;
-	DECLARE_COMPLETION(wait);
+	DECLARE_COMPLETION_ONSTACK(wait);
 	struct timer_list timer;
 
 	ENTER("qla1280_mailbox_command");
Index: linux-2.6/drivers/usb/gadget/inode.c
===================================================================
--- linux-2.6.orig/drivers/usb/gadget/inode.c
+++ linux-2.6/drivers/usb/gadget/inode.c
@@ -342,7 +342,7 @@ fail:
 static ssize_t
 ep_io (struct ep_data *epdata, void *buf, unsigned len)
 {
-	DECLARE_COMPLETION (done);
+	DECLARE_COMPLETION_ONSTACK (done);
 	int value;
 
 	spin_lock_irq (&epdata->dev->lock);
Index: linux-2.6/drivers/usb/gadget/omap_udc.c
===================================================================
--- linux-2.6.orig/drivers/usb/gadget/omap_udc.c
+++ linux-2.6/drivers/usb/gadget/omap_udc.c
@@ -2869,7 +2869,7 @@ cleanup0:
 
 static int __exit omap_udc_remove(struct platform_device *pdev)
 {
-	DECLARE_COMPLETION(done);
+	DECLARE_COMPLETION_ONSTACK(done);
 
 	if (!udc)
 		return -ENODEV;
Index: linux-2.6/net/ipv4/ipvs/ip_vs_sync.c
===================================================================
--- linux-2.6.orig/net/ipv4/ipvs/ip_vs_sync.c
+++ linux-2.6/net/ipv4/ipvs/ip_vs_sync.c
@@ -836,7 +836,7 @@ static int fork_sync_thread(void *startu
 
 int start_sync_thread(int state, char *mcast_ifn, __u8 syncid)
 {
-	DECLARE_COMPLETION(startup);
+	DECLARE_COMPLETION_ONSTACK(startup);
 	pid_t pid;
 
 	if ((state == IP_VS_STATE_MASTER && sync_master_pid) ||



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] completions: lockdep annotate on stack completions
  2006-09-28  9:52 [PATCH] completions: lockdep annotate on stack completions Peter Zijlstra
@ 2006-09-28 11:46 ` Benjamin Herrenschmidt
  2006-10-01 18:03 ` Jens Axboe
  1 sibling, 0 replies; 3+ messages in thread
From: Benjamin Herrenschmidt @ 2006-09-28 11:46 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: linux-kernel, Andrew Morton, Ingo Molnar, Arjan van de Ven,
	James E.J. Bottomley, Jens Axboe, Russell King

On Thu, 2006-09-28 at 11:52 +0200, Peter Zijlstra wrote:
> All on stack DECLARE_COMPLETIONs should be replaced by:
>   DECLARE_COMPLETION_ONSTACK
> 
> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Acked-by: Ingo Molnar <mingo@elte.hu>

As far as the powerpc/macintosh bits are concernd, it's fine

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

> ---
>  arch/arm/kernel/ecard.c                      |    2 +-
>  arch/i386/kernel/smpboot.c                   |    2 +-
>  arch/powerpc/platforms/powermac/cpufreq_64.c |    2 +-
>  arch/powerpc/platforms/powermac/nvram.c      |    4 ++--
>  block/as-iosched.c                           |    2 +-
>  block/cfq-iosched.c                          |    2 +-
>  drivers/block/DAC960.c                       |    2 +-
>  drivers/block/cciss.c                        |    6 +++---
>  drivers/block/cciss_scsi.c                   |    2 +-
>  drivers/block/paride/pd.c                    |    2 +-
>  drivers/block/pktcdvd.c                      |    2 +-
>  drivers/ide/ide-tape.c                       |    2 +-
>  drivers/macintosh/smu.c                      |    4 ++--
>  drivers/macintosh/windfarm_smu_controls.c    |    2 +-
>  drivers/macintosh/windfarm_smu_sensors.c     |    2 +-
>  drivers/s390/scsi/zfcp_scsi.c                |    2 +-
>  drivers/scsi/53c700.c                        |    2 +-
>  drivers/scsi/aic7xxx/aic79xx_osm.c           |    4 ++--
>  drivers/scsi/aic7xxx/aic7xxx_osm.c           |    2 +-
>  drivers/scsi/gdth.c                          |    4 ++--
>  drivers/scsi/qla1280.c                       |    4 ++--
>  drivers/usb/gadget/inode.c                   |    2 +-
>  drivers/usb/gadget/omap_udc.c                |    2 +-
>  net/ipv4/ipvs/ip_vs_sync.c                   |    2 +-
>  24 files changed, 31 insertions(+), 31 deletions(-)
> 
> Index: linux-2.6/arch/arm/kernel/ecard.c
> ===================================================================
> --- linux-2.6.orig/arch/arm/kernel/ecard.c
> +++ linux-2.6/arch/arm/kernel/ecard.c
> @@ -295,7 +295,7 @@ ecard_task(void * unused)
>   */
>  static void ecard_call(struct ecard_request *req)
>  {
> -	DECLARE_COMPLETION(completion);
> +	DECLARE_COMPLETION_ONSTACK(completion);
>  
>  	req->complete = &completion;
>  
> Index: linux-2.6/arch/i386/kernel/smpboot.c
> ===================================================================
> --- linux-2.6.orig/arch/i386/kernel/smpboot.c
> +++ linux-2.6/arch/i386/kernel/smpboot.c
> @@ -1058,7 +1058,7 @@ static void __cpuinit do_warm_boot_cpu(v
>  
>  static int __cpuinit __smp_prepare_cpu(int cpu)
>  {
> -	DECLARE_COMPLETION(done);
> +	DECLARE_COMPLETION_ONSTACK(done);
>  	struct warm_boot_cpu_info info;
>  	struct work_struct task;
>  	int	apicid, ret;
> Index: linux-2.6/arch/powerpc/platforms/powermac/cpufreq_64.c
> ===================================================================
> --- linux-2.6.orig/arch/powerpc/platforms/powermac/cpufreq_64.c
> +++ linux-2.6/arch/powerpc/platforms/powermac/cpufreq_64.c
> @@ -104,7 +104,7 @@ static void g5_smu_switch_volt(int speed
>  {
>  	struct smu_simple_cmd	cmd;
>  
> -	DECLARE_COMPLETION(comp);
> +	DECLARE_COMPLETION_ONSTACK(comp);
>  	smu_queue_simple(&cmd, SMU_CMD_POWER_COMMAND, 8, smu_done_complete,
>  			 &comp, 'V', 'S', 'L', 'E', 'W',
>  			 0xff, g5_fvt_cur+1, speed_mode);
> Index: linux-2.6/arch/powerpc/platforms/powermac/nvram.c
> ===================================================================
> --- linux-2.6.orig/arch/powerpc/platforms/powermac/nvram.c
> +++ linux-2.6/arch/powerpc/platforms/powermac/nvram.c
> @@ -195,7 +195,7 @@ static void pmu_nvram_complete(struct ad
>  static unsigned char pmu_nvram_read_byte(int addr)
>  {
>  	struct adb_request req;
> -	DECLARE_COMPLETION(req_complete); 
> +	DECLARE_COMPLETION_ONSTACK(req_complete);
>  	
>  	req.arg = system_state == SYSTEM_RUNNING ? &req_complete : NULL;
>  	if (pmu_request(&req, pmu_nvram_complete, 3, PMU_READ_NVRAM,
> @@ -211,7 +211,7 @@ static unsigned char pmu_nvram_read_byte
>  static void pmu_nvram_write_byte(int addr, unsigned char val)
>  {
>  	struct adb_request req;
> -	DECLARE_COMPLETION(req_complete); 
> +	DECLARE_COMPLETION_ONSTACK(req_complete);
>  	
>  	req.arg = system_state == SYSTEM_RUNNING ? &req_complete : NULL;
>  	if (pmu_request(&req, pmu_nvram_complete, 4, PMU_WRITE_NVRAM,
> Index: linux-2.6/block/as-iosched.c
> ===================================================================
> --- linux-2.6.orig/block/as-iosched.c
> +++ linux-2.6/block/as-iosched.c
> @@ -1828,7 +1828,7 @@ static int __init as_init(void)
>  
>  static void __exit as_exit(void)
>  {
> -	DECLARE_COMPLETION(all_gone);
> +	DECLARE_COMPLETION_ONSTACK(all_gone);
>  	elv_unregister(&iosched_as);
>  	ioc_gone = &all_gone;
>  	/* ioc_gone's update must be visible before reading ioc_count */
> Index: linux-2.6/block/cfq-iosched.c
> ===================================================================
> --- linux-2.6.orig/block/cfq-iosched.c
> +++ linux-2.6/block/cfq-iosched.c
> @@ -2463,7 +2463,7 @@ static int __init cfq_init(void)
>  
>  static void __exit cfq_exit(void)
>  {
> -	DECLARE_COMPLETION(all_gone);
> +	DECLARE_COMPLETION_ONSTACK(all_gone);
>  	elv_unregister(&iosched_cfq);
>  	ioc_gone = &all_gone;
>  	/* ioc_gone's update must be visible before reading ioc_count */
> Index: linux-2.6/drivers/block/DAC960.c
> ===================================================================
> --- linux-2.6.orig/drivers/block/DAC960.c
> +++ linux-2.6/drivers/block/DAC960.c
> @@ -770,7 +770,7 @@ static void DAC960_P_QueueCommand(DAC960
>  static void DAC960_ExecuteCommand(DAC960_Command_T *Command)
>  {
>    DAC960_Controller_T *Controller = Command->Controller;
> -  DECLARE_COMPLETION(Completion);
> +  DECLARE_COMPLETION_ONSTACK(Completion);
>    unsigned long flags;
>    Command->Completion = &Completion;
>  
> Index: linux-2.6/drivers/block/cciss.c
> ===================================================================
> --- linux-2.6.orig/drivers/block/cciss.c
> +++ linux-2.6/drivers/block/cciss.c
> @@ -879,7 +879,7 @@ static int cciss_ioctl(struct inode *ino
>  			char *buff = NULL;
>  			u64bit temp64;
>  			unsigned long flags;
> -			DECLARE_COMPLETION(wait);
> +			DECLARE_COMPLETION_ONSTACK(wait);
>  
>  			if (!arg)
>  				return -EINVAL;
> @@ -997,7 +997,7 @@ static int cciss_ioctl(struct inode *ino
>  			BYTE sg_used = 0;
>  			int status = 0;
>  			int i;
> -			DECLARE_COMPLETION(wait);
> +			DECLARE_COMPLETION_ONSTACK(wait);
>  			__u32 left;
>  			__u32 sz;
>  			BYTE __user *data_ptr;
> @@ -1792,7 +1792,7 @@ static int sendcmd_withirq(__u8 cmd,
>  	u64bit buff_dma_handle;
>  	unsigned long flags;
>  	int return_status;
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  
>  	if ((c = cmd_alloc(h, 0)) == NULL)
>  		return -ENOMEM;
> Index: linux-2.6/drivers/block/cciss_scsi.c
> ===================================================================
> --- linux-2.6.orig/drivers/block/cciss_scsi.c
> +++ linux-2.6/drivers/block/cciss_scsi.c
> @@ -766,7 +766,7 @@ cciss_scsi_do_simple_cmd(ctlr_info_t *c,
>  			int direction)
>  {
>  	unsigned long flags;
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  
>  	cp->cmd_type = CMD_IOCTL_PEND;		// treat this like an ioctl 
>  	cp->scsi_cmd = NULL;
> Index: linux-2.6/drivers/block/paride/pd.c
> ===================================================================
> --- linux-2.6.orig/drivers/block/paride/pd.c
> +++ linux-2.6/drivers/block/paride/pd.c
> @@ -713,7 +713,7 @@ static void do_pd_request(request_queue_
>  static int pd_special_command(struct pd_unit *disk,
>  		      enum action (*func)(struct pd_unit *disk))
>  {
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  	struct request rq;
>  	int err = 0;
>  
> Index: linux-2.6/drivers/block/pktcdvd.c
> ===================================================================
> --- linux-2.6.orig/drivers/block/pktcdvd.c
> +++ linux-2.6/drivers/block/pktcdvd.c
> @@ -348,7 +348,7 @@ static int pkt_generic_packet(struct pkt
>  	char sense[SCSI_SENSE_BUFFERSIZE];
>  	request_queue_t *q;
>  	struct request *rq;
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  	int err = 0;
>  
>  	q = bdev_get_queue(pd->bdev);
> Index: linux-2.6/drivers/ide/ide-tape.c
> ===================================================================
> --- linux-2.6.orig/drivers/ide/ide-tape.c
> +++ linux-2.6/drivers/ide/ide-tape.c
> @@ -2764,7 +2764,7 @@ static void idetape_add_stage_tail (ide_
>   */
>  static void idetape_wait_for_request (ide_drive_t *drive, struct request *rq)
>  {
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  	idetape_tape_t *tape = drive->driver_data;
>  
>  #if IDETAPE_DEBUG_BUGS
> Index: linux-2.6/drivers/macintosh/smu.c
> ===================================================================
> --- linux-2.6.orig/drivers/macintosh/smu.c
> +++ linux-2.6/drivers/macintosh/smu.c
> @@ -870,7 +870,7 @@ int smu_queue_i2c(struct smu_i2c_cmd *cm
>  
>  static int smu_read_datablock(u8 *dest, unsigned int addr, unsigned int len)
>  {
> -	DECLARE_COMPLETION(comp);
> +	DECLARE_COMPLETION_ONSTACK(comp);
>  	unsigned int chunk;
>  	struct smu_cmd cmd;
>  	int rc;
> @@ -917,7 +917,7 @@ static int smu_read_datablock(u8 *dest, 
>  
>  static struct smu_sdbp_header *smu_create_sdb_partition(int id)
>  {
> -	DECLARE_COMPLETION(comp);
> +	DECLARE_COMPLETION_ONSTACK(comp);
>  	struct smu_simple_cmd cmd;
>  	unsigned int addr, len, tlen;
>  	struct smu_sdbp_header *hdr;
> Index: linux-2.6/drivers/macintosh/windfarm_smu_controls.c
> ===================================================================
> --- linux-2.6.orig/drivers/macintosh/windfarm_smu_controls.c
> +++ linux-2.6/drivers/macintosh/windfarm_smu_controls.c
> @@ -56,7 +56,7 @@ static int smu_set_fan(int pwm, u8 id, u
>  {
>  	struct smu_cmd cmd;
>  	u8 buffer[16];
> -	DECLARE_COMPLETION(comp);
> +	DECLARE_COMPLETION_ONSTACK(comp);
>  	int rc;
>  
>  	/* Fill SMU command structure */
> Index: linux-2.6/drivers/macintosh/windfarm_smu_sensors.c
> ===================================================================
> --- linux-2.6.orig/drivers/macintosh/windfarm_smu_sensors.c
> +++ linux-2.6/drivers/macintosh/windfarm_smu_sensors.c
> @@ -67,7 +67,7 @@ static void smu_ads_release(struct wf_se
>  static int smu_read_adc(u8 id, s32 *value)
>  {
>  	struct smu_simple_cmd	cmd;
> -	DECLARE_COMPLETION(comp);
> +	DECLARE_COMPLETION_ONSTACK(comp);
>  	int rc;
>  
>  	rc = smu_queue_simple(&cmd, SMU_CMD_READ_ADC, 1,
> Index: linux-2.6/drivers/s390/scsi/zfcp_scsi.c
> ===================================================================
> --- linux-2.6.orig/drivers/s390/scsi/zfcp_scsi.c
> +++ linux-2.6/drivers/s390/scsi/zfcp_scsi.c
> @@ -301,7 +301,7 @@ zfcp_scsi_command_sync(struct zfcp_unit 
>  		       int use_timer)
>  {
>  	int ret;
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  
>  	scpnt->SCp.ptr = (void *) &wait;  /* silent re-use */
>  	scpnt->scsi_done = zfcp_scsi_command_sync_handler;
> Index: linux-2.6/drivers/scsi/53c700.c
> ===================================================================
> --- linux-2.6.orig/drivers/scsi/53c700.c
> +++ linux-2.6/drivers/scsi/53c700.c
> @@ -1939,7 +1939,7 @@ NCR_700_abort(struct scsi_cmnd * SCp)
>  STATIC int
>  NCR_700_bus_reset(struct scsi_cmnd * SCp)
>  {
> -	DECLARE_COMPLETION(complete);
> +	DECLARE_COMPLETION_ONSTACK(complete);
>  	struct NCR_700_Host_Parameters *hostdata = 
>  		(struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0];
>  
> Index: linux-2.6/drivers/scsi/aic7xxx/aic79xx_osm.c
> ===================================================================
> --- linux-2.6.orig/drivers/scsi/aic7xxx/aic79xx_osm.c
> +++ linux-2.6/drivers/scsi/aic7xxx/aic79xx_osm.c
> @@ -646,7 +646,7 @@ ahd_linux_dev_reset(struct scsi_cmnd *cm
>  	struct	ahd_initiator_tinfo *tinfo;
>  	struct	ahd_tmode_tstate *tstate;
>  	unsigned long flags;
> -	DECLARE_COMPLETION(done);
> +	DECLARE_COMPLETION_ONSTACK(done);
>  
>  	reset_scb = NULL;
>  	paused = FALSE;
> @@ -2251,7 +2251,7 @@ done:
>  	if (paused)
>  		ahd_unpause(ahd);
>  	if (wait) {
> -		DECLARE_COMPLETION(done);
> +		DECLARE_COMPLETION_ONSTACK(done);
>  
>  		ahd->platform_data->eh_done = &done;
>  		ahd_unlock(ahd, &flags);
> Index: linux-2.6/drivers/scsi/aic7xxx/aic7xxx_osm.c
> ===================================================================
> --- linux-2.6.orig/drivers/scsi/aic7xxx/aic7xxx_osm.c
> +++ linux-2.6/drivers/scsi/aic7xxx/aic7xxx_osm.c
> @@ -2335,7 +2335,7 @@ done:
>  	if (paused)
>  		ahc_unpause(ahc);
>  	if (wait) {
> -		DECLARE_COMPLETION(done);
> +		DECLARE_COMPLETION_ONSTACK(done);
>  
>  		ahc->platform_data->eh_done = &done;
>  		ahc_unlock(ahc, &flags);
> Index: linux-2.6/drivers/scsi/gdth.c
> ===================================================================
> --- linux-2.6.orig/drivers/scsi/gdth.c
> +++ linux-2.6/drivers/scsi/gdth.c
> @@ -724,7 +724,7 @@ int __gdth_execute(struct scsi_device *s
>                     int timeout, u32 *info)
>  {
>      Scsi_Cmnd *scp;
> -    DECLARE_COMPLETION(wait);
> +    DECLARE_COMPLETION_ONSTACK(wait);
>      int rval;
>  
>      scp = kmalloc(sizeof(*scp), GFP_KERNEL);
> @@ -764,7 +764,7 @@ int __gdth_execute(struct scsi_device *s
>  {
>      Scsi_Cmnd *scp = scsi_allocate_device(sdev, 1, FALSE);
>      unsigned bufflen = gdtcmd ? sizeof(gdth_cmd_str) : 0;
> -    DECLARE_COMPLETION(wait);
> +    DECLARE_COMPLETION_ONSTACK(wait);
>      int rval;
>  
>      if (!scp)
> Index: linux-2.6/drivers/scsi/qla1280.c
> ===================================================================
> --- linux-2.6.orig/drivers/scsi/qla1280.c
> +++ linux-2.6/drivers/scsi/qla1280.c
> @@ -813,7 +813,7 @@ qla1280_error_action(struct scsi_cmnd *c
>  	uint16_t data;
>  	unsigned char *handle;
>  	int result, i;
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  	struct timer_list timer;
>  
>  	ha = (struct scsi_qla_host *)(CMD_HOST(cmd)->hostdata);
> @@ -2406,7 +2406,7 @@ qla1280_mailbox_command(struct scsi_qla_
>  	uint16_t *optr, *iptr;
>  	uint16_t __iomem *mptr;
>  	uint16_t data;
> -	DECLARE_COMPLETION(wait);
> +	DECLARE_COMPLETION_ONSTACK(wait);
>  	struct timer_list timer;
>  
>  	ENTER("qla1280_mailbox_command");
> Index: linux-2.6/drivers/usb/gadget/inode.c
> ===================================================================
> --- linux-2.6.orig/drivers/usb/gadget/inode.c
> +++ linux-2.6/drivers/usb/gadget/inode.c
> @@ -342,7 +342,7 @@ fail:
>  static ssize_t
>  ep_io (struct ep_data *epdata, void *buf, unsigned len)
>  {
> -	DECLARE_COMPLETION (done);
> +	DECLARE_COMPLETION_ONSTACK (done);
>  	int value;
>  
>  	spin_lock_irq (&epdata->dev->lock);
> Index: linux-2.6/drivers/usb/gadget/omap_udc.c
> ===================================================================
> --- linux-2.6.orig/drivers/usb/gadget/omap_udc.c
> +++ linux-2.6/drivers/usb/gadget/omap_udc.c
> @@ -2869,7 +2869,7 @@ cleanup0:
>  
>  static int __exit omap_udc_remove(struct platform_device *pdev)
>  {
> -	DECLARE_COMPLETION(done);
> +	DECLARE_COMPLETION_ONSTACK(done);
>  
>  	if (!udc)
>  		return -ENODEV;
> Index: linux-2.6/net/ipv4/ipvs/ip_vs_sync.c
> ===================================================================
> --- linux-2.6.orig/net/ipv4/ipvs/ip_vs_sync.c
> +++ linux-2.6/net/ipv4/ipvs/ip_vs_sync.c
> @@ -836,7 +836,7 @@ static int fork_sync_thread(void *startu
>  
>  int start_sync_thread(int state, char *mcast_ifn, __u8 syncid)
>  {
> -	DECLARE_COMPLETION(startup);
> +	DECLARE_COMPLETION_ONSTACK(startup);
>  	pid_t pid;
>  
>  	if ((state == IP_VS_STATE_MASTER && sync_master_pid) ||
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] completions: lockdep annotate on stack completions
  2006-09-28  9:52 [PATCH] completions: lockdep annotate on stack completions Peter Zijlstra
  2006-09-28 11:46 ` Benjamin Herrenschmidt
@ 2006-10-01 18:03 ` Jens Axboe
  1 sibling, 0 replies; 3+ messages in thread
From: Jens Axboe @ 2006-10-01 18:03 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: linux-kernel, Andrew Morton, Ingo Molnar, Arjan van de Ven,
	James E.J. Bottomley, Benjamin Herrenschmidt, Russell King

On Thu, Sep 28 2006, Peter Zijlstra wrote:
> 
> All on stack DECLARE_COMPLETIONs should be replaced by:
>   DECLARE_COMPLETION_ONSTACK
> 
> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Acked-by: Ingo Molnar <mingo@elte.hu>

Looks good to me.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-10-01 18:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-09-28  9:52 [PATCH] completions: lockdep annotate on stack completions Peter Zijlstra
2006-09-28 11:46 ` Benjamin Herrenschmidt
2006-10-01 18:03 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).