On Monday 10 August 2009 11:52:32 am RayH wrote:
> 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.

Yep, that context changed a bit since 2.6.24.  I can't really read
the old-style diffs (try "diff -u" for a newer, more readable
format), but I think you did it right.  Let me know what happens.

> 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