lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 24 Apr 2007 22:04:53 -0700
From:	"Paul Menage" <menage@...gle.com>
To:	"Vaidyanathan Srinivasan" <svaidy@...ux.vnet.ibm.com>
Cc:	vatsa@...ibm.com, sekharan@...ibm.com,
	ckrm-tech@...ts.sourceforge.net, linux-kernel@...r.kernel.org,
	xemul@...ru, dev@...ru, rohitseth@...gle.com,
	ebiederm@...ssion.com, mbligh@...gle.com,
	containers@...ts.osdl.org, serue@...ibm.com,
	akpm@...ux-foundation.org, devel@...nvz.org
Subject: Re: [ckrm-tech] [PATCH 0/7] Containers (V8): Generic Process Containers

On 4/23/07, Vaidyanathan Srinivasan <svaidy@...ux.vnet.ibm.com> wrote:
> Hi Paul,
>
> In [patch 3/7] Containers (V8): Add generic multi-subsystem API to
> containers, you have forcefully enabled interrupt in
> container_init_subsys() with spin_unlock_irq() which breaks on PPC64.
>
>
> > +static void container_init_subsys(struct container_subsys *ss) {
> > +     int retval;
> > +     struct list_head *l;
> > +     printk(KERN_ERR "Initializing container subsys %s\n",
> > ss->name);
> > +
> > +     /* Create the top container state for this subsystem */
> > +     ss->root = &rootnode;
> > +     retval = ss->create(ss, dummytop);
> > +     BUG_ON(retval);
> > +     init_container_css(ss, dummytop);
> > +
> > +     /* Update all container groups to contain a subsys
> > +      * pointer to this state - since the subsystem is
> > +      * newly registered, all tasks and hence all container
> > +      * groups are in the subsystem's top container. */
> > +     spin_lock_irq(&container_group_lock);
> > +     l = &init_container_group.list;
> > +     do {
> > +             struct container_group *cg =
> > +                     list_entry(l, struct container_group, list);
> > +             cg->subsys[ss->subsys_id] =
> > dummytop->subsys[ss->subsys_id];
> > +             l = l->next;
> > +     } while (l != &init_container_group.list);
> > +     spin_unlock_irq(&container_group_lock);
>
> Interrupt gets enabled here and on PPC64, the kernel takes a pending
> decrementer and crashes because it is too early to handle them.
>
> Use of irqsave and restore routines would fix the problem.

OK, thanks. I'll add that change.

Paul
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ