public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dtor_core-yWtbtysYrB+LZ21kGMrzwg@public.gmane.org>
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: Len Brown <len.brow-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: [PATCH 1/4] properly create kobjects in acpi/scan.c
Date: Tue, 24 Aug 2004 01:34:15 -0500	[thread overview]
Message-ID: <200408240134.16962.dtor_core@ameritech.net> (raw)

Hi,

I have a bunch of patches that I would like you to take a look at:

01-acpi-scan-kobject.patch
	- properly create/register kobjects - take reference to the parent
	  since kobject_unregister will try dropping it potentially
	  (if ACPI was ever to release created devices) causing parent be
	  destroyed early) and use kobject_set_name to properly set name.

02-acpi-event-code.patch
	- move event (userspace signalling) code from acpi/bus.c to
          acpi/event.c as too many implementation details were exported,
	  plus some additional fixes to the event handling code.

03-acpi-use-rwsem.patch
	- kill brandead usage of acpi_device_lock & list_for_eacj_safe.
	  list_for_each_safe is only safe in the sense that current
	  element can be safely removed by the same thread that is using
	  list_for_each_safe. List still has to be protected from other
	  threads for entire duration of list traversal.
	  Use acpi_subsys.rwsem instead of acpi_device_lock to protect
	  lists.

Btw, why don't we just convert ACPI to be standard driver core bus with
standard drivers and devices? I could cook up something... The
/sys/firmware/acpi hierarchy is not populated with any useful data yet
so there should be no concern of breakign userspace interface (I am mot
talking about removing /proc/acpi part at the moment).

04-acpi-multiple-readers.patch
	- allow multiple readrs access /proc/acpi/event, every event is
	  delivered to all readers. Also limit number of pending events
	  to 64 (per reader) so if reader is stuck ACPI does not consume
	  all memory.

	  Can be user by various daemons, I could see cpufreqd listening
	  for battery insertion/removal events and debugging is much
	  easier too.

The patches are against last night pull from Linus repo.
	
-- 
Dmitry


===================================================================


ChangeSet@1.1842, 2004-08-24 01:09:40-05:00, dtor_core-yWtbtysYrB+LZ21kGMrzwg@public.gmane.org
  ACPI: Properly create kobj when registering acpi_device:
        - use kobject_set_name to initialize name;
        - take teference to parent's kobj as kobject_unregister
          will drop it
        - do not call kobject_init and kobject_add, just use
          kobject_register as everyone else does.
  
  Signed-off-by: Dmitry Torokhov <dtor-JGs/UdohzUI@public.gmane.org>


 scan.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)


===================================================================



diff -Nru a/drivers/acpi/scan.c b/drivers/acpi/scan.c
--- a/drivers/acpi/scan.c	2004-08-24 01:16:25 -05:00
+++ b/drivers/acpi/scan.c	2004-08-24 01:16:25 -05:00
@@ -66,13 +66,11 @@
 		list_add_tail(&device->g_list,&acpi_device_list);
 	spin_unlock(&acpi_device_lock);
 
-	kobject_init(&device->kobj);
-	strlcpy(device->kobj.name,device->pnp.bus_id,KOBJ_NAME_LEN);
+	kobject_set_name(&device->kobj, device->pnp.bus_id);
 	if (parent)
-		device->kobj.parent = &parent->kobj;
-	device->kobj.ktype = &ktype_acpi_ns;
+		device->kobj.parent = kobject_get(&parent->kobj);
 	device->kobj.kset = &acpi_namespace_kset;
-	kobject_add(&device->kobj);
+	kobject_register(&device->kobj);
 }
 
 static int


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285

             reply	other threads:[~2004-08-24  6:34 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-24  6:34 Dmitry Torokhov [this message]
     [not found] ` <200408240134.16962.dtor_core-yWtbtysYrB+LZ21kGMrzwg@public.gmane.org>
2004-08-24  6:36   ` [PATCH 2/4] event code fixes/cleanup Dmitry Torokhov
     [not found]     ` <200408240136.46113.dtor_core-yWtbtysYrB+LZ21kGMrzwg@public.gmane.org>
2004-08-24  6:37       ` [PATCH 3/4] use acpi_subsys.rwsem in acpi/scan.c Dmitry Torokhov
     [not found]         ` <200408240137.55691.dtor_core-yWtbtysYrB+LZ21kGMrzwg@public.gmane.org>
2004-08-24  6:39           ` [PATCH 4/4] allow multiple /proc/acpi/event readers Dmitry Torokhov
2004-08-24 15:23   ` [PATCH 1/4] properly create kobjects in acpi/scan.c Hiroshi Miura
     [not found]     ` <87zn4ky2zr.wl%miura-yiisDzvROlQdnm+yROfE0A@public.gmane.org>
2004-08-24 16:15       ` Mattia Dongili
2004-08-24 17:03       ` Dmitry Torokhov
2004-08-24 19:50   ` Len Brown
  -- strict thread matches above, loose matches on Subject: below --
2004-08-24 21:45 Keshavamurthy, Anil S
2004-08-24 22:45 ` Dmitry Torokhov
2004-08-24 22:47 Keshavamurthy, Anil S

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200408240134.16962.dtor_core@ameritech.net \
    --to=dtor_core-ywtbtysyrb+lz21kgmrzwg@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=len.brow-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox