The patch didn't apply properly automatically: it was rejected because
the context was incorrect. I've tried adding it manually by using vi.
We'll see what happens when I recompile the kernel but I'm not so
hopeful.

Here's the diff I ended up with: osl.c is the linux kernel src for
Ubuntu as of 2.6.24-24 osl.c.new is what I created manually after
applying your proposed patch.

diff osl.c osl.c.new 
183c183
< acpi_status acpi_os_initialize1(void)
---
> static void bind_to_cpu0(struct work_struct *work)
185,197c185,215
<       /*
<        * Initialize PCI configuration space access, as we'll need to access
<        * it while walking the namespace (bus 0 and root bridges w/ _BBNs).
<        */
<       if (!raw_pci_ops) {
<               printk(KERN_ERR PREFIX
<                      "Access to PCI configuration space unavailable\n");
<               return AE_NULL_ENTRY;
<       }
<       kacpid_wq = create_singlethread_workqueue("kacpid");
<       kacpi_notify_wq = create_singlethread_workqueue("kacpi_notify");
<       BUG_ON(!kacpid_wq);
<       BUG_ON(!kacpi_notify_wq);
---
>        set_cpus_allowed(current, cpumask_of_cpu(0));
>        kfree(work);
> }
> 
> static void bind_workqueue(struct workqueue_struct *wq)
> {
>        struct work_struct *work;
> 
>        work = kzalloc(sizeof(struct work_struct), GFP_KERNEL);
>        INIT_WORK(work, bind_to_cpu0);
>        queue_work(wq, work);
> }
> 
>  acpi_status acpi_os_initialize1(void)
>  {
>        /*
>         * On some machines, a software-initiated SMI causes corruption unless
>         * the SMI runs on CPU 0.  An SMI can be initiated by any AML, but
>         * typically it's done in GPE-related methods that are run via
>         * workqueues, so we can avoid the known corruption cases by binding
>         * the workqueues to CPU 0.
>         */
>         kacpid_wq = create_singlethread_workqueue("kacpid");
>         bind_workqueue(kacpid_wq);
>         kacpi_notify_wq = create_singlethread_workqueue("kacpi_notify");
>         bind_workqueue(kacpi_notify_wq);
>         kacpi_hotplug_wq = create_singlethread_workqueue("kacpi_hotplug");
>         bind_workqueue(kacpi_hotplug_wq);
>         BUG_ON(!kacpid_wq);
>         BUG_ON(!kacpi_notify_wq);
>         BUG_ON(!kacpi_hotplug_wq);

-- 
Hardy/Gutsy crashes when the lid is closed on a HP 6710b, HP 6510b and HP 2510p
https://bugs.launchpad.net/bugs/157691
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to