Re: [PATCH 1/5] HDQ Driver for OMAP2430/3430

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Tue, 14 Oct 2008 14:21:50 +0530 "Madhusudhan Chikkature" <madhu.cr@xxxxxx> wrote:
> 
> ----- Original Message ----- 
> From: "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>
> To: "Madhusudhan Chikkature" <madhu.cr@xxxxxx>
> Cc: <gadiyar@xxxxxx>; <johnpol@xxxxxxxxxxx>; <linux-kernel@xxxxxxxxxxxxxxx>; <linux-omap@xxxxxxxxxxxxxxx>
> Sent: Monday, October 13, 2008 9:23 PM
> Subject: Re: [PATCH 1/5] HDQ Driver for OMAP2430/3430
> 
> 
> >> On Mon, 13 Oct 2008 18:55:43 +0530 "Madhusudhan Chikkature" <madhu.cr@xxxxxx> wrote:
> >> 
> >> ----- Original Message ----- 
> >> From: "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>
> >> To: "Gadiyar, Anand" <gadiyar@xxxxxx>
> >> Cc: <johnpol@xxxxxxxxxxx>; <linux-kernel@xxxxxxxxxxxxxxx>; <linux-omap@xxxxxxxxxxxxxxx>; <madhu.cr@xxxxxx>
> >> Sent: Saturday, October 11, 2008 2:08 AM
> >> Subject: Re: [PATCH 1/5] HDQ Driver for OMAP2430/3430
> >> 
> >> 
> >> >> +       /* set the GO bit */
> >> >> +       hdq_reg_merge(hdq_data, OMAP_HDQ_CTRL_STATUS, OMAP_HDQ_CTRL_STATUS_GO,
> >> >> +               OMAP_HDQ_CTRL_STATUS_DIR | OMAP_HDQ_CTRL_STATUS_GO);
> >> >> +       /* wait for the TXCOMPLETE bit */
> >> >> +       ret = wait_event_interruptible_timeout(hdq_wait_queue,
> >> >> +               hdq_data->hdq_irqstatus, OMAP_HDQ_TIMEOUT);
> >> >> +       if (ret < 0) {
> >> >> +               dev_dbg(hdq_data->dev, "wait interrupted");
> >> >> +               return -EINTR;
> >> >> +       }
> >> > 
> >> > Is this desirable?  The user hits ^C and the driver bails out?
> >> > 
> >> > I assume so, but was this tested?
> >> 
> >> Andrew, What is the test scenario you mean here? A user hitting ^C when the driver is waiting for the TXCOMPLETE bit?
> > 
> > Yes.
> > 
> 
> Yes. It is desired to return an error if the condition in the wait is not met. I need to change the check for return value to check for zero and neg value.
> 
> I spent some time to test this perticular scenario.I could not really see any impact of hitting ^C when an application is 
> transfering data in the background. When the h/w is programmed to transfer data and the driver issues a wait, I see that 
> TXCOMPLETE interrupt comes immediately and wakes up as expected. 
> 
> So guess I am unable to hit ^C exactly when the driver is waiting in wait_event_interruptible_timeout(before the condition 
> is met) for it to catch the signal. Is it generally suggested to use wait_event_timeout so that ^C signal is not caught?
> 

I think it's reasonable to permit the driver's operations to be interrupted
in this manner.  It's done in quite a few other places.  But the problem is
actually *testing* it.

I guess one could do a whitebox-style test.  Add new code like:

	{
		static int x;
		if (!(x++ % 1000)) {
			printk("hit ^c now\n");
			msleep(2000);
		}
	}

in the right place.

Tricky.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux