public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* RE: 2.6.0-test9 regression: panic on Fn+F7 hotkey
@ 2003-10-28  8:14 Li, Shaohua
       [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8D5FDBE-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Li, Shaohua @ 2003-10-28  8:14 UTC (permalink / raw)
  To: Sérgio Monteiro Basto; +Cc: Karol Kozimor, acpi-devel

[-- Attachment #1: Type: text/plain, Size: 3187 bytes --]

Hi,

I missed non-ECDT situation. Try this one. 

Thanks,
Shaohua


> -----Original Message-----
> From: Sérgio Monteiro Basto [mailto:sergiomb-hHo3WeeoaswVhHzd4jOs4w@public.gmane.org]
> Sent: 2003年10月28日 14:23
> To: Li, Shaohua
> Cc: Karol Kozimor; acpi-devel
> Subject: RE: [ACPI] 2.6.0-test9 regression: panic on Fn+F7 hotkey
> 
> Hi
> Pressing Fn+F7 doesnt seems to be in boot time.
> For me acpi_ec_gpe_query.patch in 2.4.23-pre8, hangs my laptop when I
> press lid button, after boot and after login after enter in X, after all
> things up.
> 
> On Tue, 2003-10-28 at 02:30, Li, Shaohua wrote:
> > Hi,
> >   Which time did the panic occur? Boot time? Yes, I made the patch to
> fix some boot time errors.
> > But if boot is ok, the patch should not impact anything.
> 
> but have a lot of impact.
> in my case, boots without problems.
> 
> Please give me more info.
> >
> > Thanks,
> > Shaohua
> >
> >
> > > -----Original Message-----
> > > From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> > > admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Karol Kozimor
> > > Sent: 2003年10月28日 1:08
> > > To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > Subject: [ACPI] 2.6.0-test9 regression: panic on Fn+F7 hotkey
> > >
> > > Hi,
> > > Pressing Fn+F7 to turn the LCD on / off causes 2.6.0-test9 to panic.
> > > That's
> > > AFAIK the single event that causes such a behaviour, other keys work
> fine.
> > > Reverting the acpi_ec_gpe_query.patchi[1] fixes the issue and makes
> the
> > > kernel
> > > run fine.
> > >
> > > [1]:
> > >
> http://www.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/test/2.4.2
> > > 2/20031017152411-acpi_ec_gpe_query.patch
> > >
> > > Best regards,
> > >
> > > --
> > > Karol 'sziwan' Kozimor
> > > sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.net email is sponsored by: The SF.net Donation Program.
> > > Do you like what SourceForge.net is doing for the Open
> > > Source Community?  Make a contribution, and help us add new
> > > features and functionality. Click here: http://sourceforge.net/donate/
> > > _______________________________________________
> > > Acpi-devel mailing list
> > > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > https://lists.sourceforge.net/lists/listinfo/acpi-devel
> >
> >
> > -------------------------------------------------------
> > This SF.net email is sponsored by: The SF.net Donation Program.
> > Do you like what SourceForge.net is doing for the Open
> > Source Community?  Make a contribution, and help us add new
> > features and functionality. Click here: http://sourceforge.net/donate/
> > _______________________________________________
> > Acpi-devel mailing list
> > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > https://lists.sourceforge.net/lists/listinfo/acpi-devel
> --
> SérgioMB
> email: sergiomb-hHo3WeeoaswVhHzd4jOs4w@public.gmane.org
> 
> Who gives me one shell, give me everything.


[-- Attachment #2: ec_gpe.patch2 --]
[-- Type: application/octet-stream, Size: 1888 bytes --]

--- a/drivers/acpi/ec.c	2003-10-28 15:58:44.000000000 +0800
+++ b/drivers/acpi/ec.c	2003-10-28 16:05:17.000000000 +0800
@@ -90,6 +90,14 @@
 /* External interfaces use first EC only, so remember */
 static struct acpi_device *first_ec;
 
+/*
+ * We use kernel thread to handle ec's gpe query, so the query may defer.
+ * The query need a context, which can be freed when we replace ec_ecdt
+ * with EC device. So defered query may have a wrong context.
+ * We use an indication to avoid it
+ */
+static int ec_device_init = 0;
+
 /* --------------------------------------------------------------------------
                              Transaction Management
    -------------------------------------------------------------------------- */
@@ -389,8 +397,11 @@
 
 	acpi_disable_gpe(NULL, ec->gpe_bit, ACPI_ISR);
 
-	status = acpi_os_queue_for_execution(OSD_PRIORITY_GPE,
-		acpi_ec_gpe_query, ec);
+	if (!ec_device_init)
+		acpi_ec_gpe_query(ec); /* directly query when device didn't init */
+	else
+		status = acpi_os_queue_for_execution(OSD_PRIORITY_GPE,
+			acpi_ec_gpe_query, ec);
 }
 
 /* --------------------------------------------------------------------------
@@ -574,6 +585,7 @@
 	sprintf(acpi_device_name(device), "%s", ACPI_EC_DEVICE_NAME);
 	sprintf(acpi_device_class(device), "%s", ACPI_EC_CLASS);
 	acpi_driver_data(device) = ec;
+	ec_device_init = 1;
 
 	/* Use the global lock for all EC transactions? */
 	acpi_evaluate_integer(ec->handle, "_GLK", NULL, &ec->global_lock);
@@ -582,6 +594,7 @@
 	   we now have the *real* EC info, so kill the makeshift one.*/
 	acpi_evaluate_integer(ec->handle, "_UID", NULL, &uid);
 	if (ec_ecdt && ec_ecdt->uid == uid) {
+		acpi_disable_gpe(NULL, ec_ecdt->gpe_bit, ACPI_NOT_ISR);
 		acpi_remove_address_space_handler(ACPI_ROOT_OBJECT,
 			ACPI_ADR_SPACE_EC, &acpi_ec_space_handler);
 	

^ permalink raw reply	[flat|nested] 14+ messages in thread
* RE: 2.6.0-test9 regression: panic on Fn+F7 hotkey
@ 2003-10-28 13:42 Li, Shaohua
       [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8E84DAF-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Li, Shaohua @ 2003-10-28 13:42 UTC (permalink / raw)
  To: Ducrot Bruno; +Cc: Sérgio Monteiro Basto, Karol Kozimor, acpi-devel


Hi,
Sorry, I made a mistake. should be this one.
Because ECDT unusually has similar info with EC. Changing the context should not cause problem. 

--- ec.c	2003-10-09 03:24:07.000000000 +0800
+++ ec.c.new	2003-10-28 21:29:51.000000000 +0800
@@ -93,7 +93,7 @@
 
 /* External interfaces use first EC only, so remember */
 static struct acpi_device *first_ec;
-
+static struct acpi_device *ec_context;
 /* --------------------------------------------------------------------------
                              Transaction Management
    -------------------------------------------------------------------------- */
@@ -342,7 +342,7 @@
 acpi_ec_gpe_query (
 	void			*ec_cxt)
 {
-	struct acpi_ec		*ec = (struct acpi_ec *) ec_cxt;
+	struct acpi_ec		*ec = ec_context;
 	u32			value = 0;
 	unsigned long		flags = 0;
 	static char		object_name[5] = {'_','Q','0','0','\0'};
@@ -581,7 +581,7 @@
 	sprintf(acpi_device_name(device), "%s", ACPI_EC_DEVICE_NAME);
 	sprintf(acpi_device_class(device), "%s", ACPI_EC_CLASS);
 	acpi_driver_data(device) = ec;
-
+	ec_context = ec;
 	/* Use the global lock for all EC transactions? */
 	acpi_evaluate_integer(ec->handle, "_GLK", NULL, &ec->global_lock);
 
@@ -793,7 +793,7 @@
 	/* use the GL just to be safe */
 	ec_ecdt->global_lock = TRUE;
 	ec_ecdt->uid = ecdt_ptr->uid;
-
+	ec_context = ec_ecdt;
 	status = acpi_get_handle(NULL, ecdt_ptr->ec_id, &ec_ecdt->handle);
 	if (ACPI_FAILURE(status)) {
 		goto error;


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/

^ permalink raw reply	[flat|nested] 14+ messages in thread
* RE: 2.6.0-test9 regression: panic on Fn+F7 hotkey
@ 2003-10-28 12:33 Li, Shaohua
       [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8D5FDC1-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Li, Shaohua @ 2003-10-28 12:33 UTC (permalink / raw)
  To: Ducrot Bruno; +Cc: Sérgio Monteiro Basto, Karol Kozimor, acpi-devel


> -----Original Message-----
> From: Ducrot Bruno [mailto:ducrot-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org]
> Sent: 2003年10月28日 18:04
> To: Li, Shaohua
> Cc: Sérgio Monteiro Basto; Karol Kozimor; acpi-devel
> Subject: Re: [ACPI] 2.6.0-test9 regression: panic on Fn+F7 hotkey
> 
> On Tue, Oct 28, 2003 at 04:14:56PM +0800, Li, Shaohua wrote:
> > Hi,
> >
> > I missed non-ECDT situation. Try this one.
> >
> 
> Please don't apply.  This is not OK.  You missed the
> point that an interrupt handler can not sleep.  Anyway,
> from my point-of-view, ec.c is not buggy, but
> events/exviface.c::acpi_remove_.*().
> 
> IMHO, we should have our own acpi workqueue, at first, and
> then wait for completion when removing any events handlers.
> Those, the correct fix should be in osl.c, and in events/evxface.c
> calling this wait for completition implemented in osl.c.

   yes, I know it's a bad idea to execute GPE query in interrupt handler. I do such thing is because this situation is rare. The interrupts seldom occur before EC device is initialized. 

   But even though acpi has own workqueue, When replace ECDT with EC, we still have a wrong context. 

   I think a better solution is when replace ECDT with EC, we can change the context in the event queue. Or we can use indirectly accessed context. Like this:

--- ec.c	2003-10-09 03:24:07.000000000 +0800
+++ ec.c.new	2003-10-28 20:17:05.643232728 +0800
@@ -93,7 +93,7 @@
 
 /* External interfaces use first EC only, so remember */
 static struct acpi_device *first_ec;
-
+static struct acpi_device *ec_context = NULL;
 /* --------------------------------------------------------------------------
                              Transaction Management
    -------------------------------------------------------------------------- */
@@ -386,7 +386,7 @@
 	void			*data)
 {
 	acpi_status		status = AE_OK;
-	struct acpi_ec		*ec = (struct acpi_ec *) data;
+	struct acpi_ec		*ec = ec_context;
 
 	if (!ec)
 		return;
@@ -581,7 +581,7 @@
 	sprintf(acpi_device_name(device), "%s", ACPI_EC_DEVICE_NAME);
 	sprintf(acpi_device_class(device), "%s", ACPI_EC_CLASS);
 	acpi_driver_data(device) = ec;
-
+	ec_context = ec;
 	/* Use the global lock for all EC transactions? */
 	acpi_evaluate_integer(ec->handle, "_GLK", NULL, &ec->global_lock);
 
@@ -793,7 +793,7 @@
 	/* use the GL just to be safe */
 	ec_ecdt->global_lock = TRUE;
 	ec_ecdt->uid = ecdt_ptr->uid;
-
+	ec_context = ec_ecdt;
 	status = acpi_get_handle(NULL, ecdt_ptr->ec_id, &ec_ecdt->handle);
 	if (ACPI_FAILURE(status)) {
 		goto error;


In general, ECDT includes similar info as EC device. does this one make sense?

Thanks,
shaohua


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/

^ permalink raw reply	[flat|nested] 14+ messages in thread
* RE: 2.6.0-test9 regression: panic on Fn+F7 hotkey
@ 2003-10-28  2:30 Li, Shaohua
       [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8E84DA8-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Li, Shaohua @ 2003-10-28  2:30 UTC (permalink / raw)
  To: Karol Kozimor; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Hi,
  Which time did the panic occur? Boot time? Yes, I made the patch to fix some boot time errors. But if boot is ok, the patch should not impact anything. Please give me more info.

Thanks,
Shaohua


> -----Original Message-----
> From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Karol Kozimor
> Sent: 2003年10月28日 1:08
> To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: [ACPI] 2.6.0-test9 regression: panic on Fn+F7 hotkey
> 
> Hi,
> Pressing Fn+F7 to turn the LCD on / off causes 2.6.0-test9 to panic.
> That's
> AFAIK the single event that causes such a behaviour, other keys work fine.
> Reverting the acpi_ec_gpe_query.patchi[1] fixes the issue and makes the
> kernel
> run fine.
> 
> [1]:
> http://www.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/test/2.4.2
> 2/20031017152411-acpi_ec_gpe_query.patch
> 
> Best regards,
> 
> --
> Karol 'sziwan' Kozimor
> sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: The SF.net Donation Program.
> Do you like what SourceForge.net is doing for the Open
> Source Community?  Make a contribution, and help us add new
> features and functionality. Click here: http://sourceforge.net/donate/
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/

^ permalink raw reply	[flat|nested] 14+ messages in thread
* 2.6.0-test9 regression: panic on Fn+F7 hotkey
@ 2003-10-27 17:08 Karol Kozimor
       [not found] ` <20031027170800.GC11206-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Karol Kozimor @ 2003-10-27 17:08 UTC (permalink / raw)
  To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Hi,
Pressing Fn+F7 to turn the LCD on / off causes 2.6.0-test9 to panic. That's
AFAIK the single event that causes such a behaviour, other keys work fine.
Reverting the acpi_ec_gpe_query.patchi[1] fixes the issue and makes the kernel
run fine.

[1]:
http://www.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/test/2.4.22/20031017152411-acpi_ec_gpe_query.patch

Best regards,

-- 
Karol 'sziwan' Kozimor
sziwan-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/

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

end of thread, other threads:[~2003-11-03 12:17 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-10-28  8:14 2.6.0-test9 regression: panic on Fn+F7 hotkey Li, Shaohua
     [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8D5FDBE-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2003-10-28 10:03   ` Ducrot Bruno
  -- strict thread matches above, loose matches on Subject: below --
2003-10-28 13:42 Li, Shaohua
     [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8E84DAF-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2003-10-28 13:59   ` Ducrot Bruno
2003-10-28 12:33 Li, Shaohua
     [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8D5FDC1-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2003-10-28 13:57   ` Ducrot Bruno
2003-10-28  2:30 Li, Shaohua
     [not found] ` <571ACEFD467F7749BC50E0A98C17CDD8E84DA8-4yWAQGcml64gGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2003-10-28  6:22   ` Sérgio Monteiro Basto
2003-10-27 17:08 Karol Kozimor
     [not found] ` <20031027170800.GC11206-DETuoxkZsSqrDJvtcaxF/A@public.gmane.org>
2003-11-03  9:37   ` Luca Capello
     [not found]     ` <3FA621EC.5010000-wlebWZzHoyE@public.gmane.org>
2003-11-03 10:58       ` Nikolaus Filus
     [not found]         ` <20031103105802.GB909-u75qzGzWA6cb1SvskN2V4Q@public.gmane.org>
2003-11-03 11:10           ` Ducrot Bruno
2003-11-03 11:27           ` Luca Capello
     [not found]             ` <3FA63BB8.60503-wlebWZzHoyE@public.gmane.org>
2003-11-03 12:17               ` Karol Kozimor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox