]> git.hungrycats.org Git - linux/commit
[PATCH] ia64: fix critical perfmon2 bugs
authorStéphane Eranian <eranian@hpl.hp.com>
Thu, 23 Oct 2003 10:51:51 +0000 (03:51 -0700)
committerDavid Mosberger <davidm@tiger.hpl.hp.com>
Thu, 23 Oct 2003 10:51:51 +0000 (03:51 -0700)
commit7502ff99ebd26e9898a54c54618f0144b9331c36
tree8dda99b4c3fcaed27335c67771370c6af83e42e3
parentfe6f05989b4b3ada6861330a6f29eb4109bdceea
[PATCH] ia64: fix critical perfmon2 bugs

This patch fixes the following issues:

- fix a nasty corner case by which a task could inherit psr.pp/psr.up
  that could be stale by the time it runs. psr.pp/psr.up bits must be
  cleared on fork and inherited on execve(). Test case provided by
  John Levon.

- mask interrupts when locking the pfm stat structure. We don't want
  to take PMU interrupts in the middle of this kind of critical
  section.

- fix a bug in pfm_close() for context which use asynchronous
  notifications.  You cannot call fasync_helper() with interrupts
  disabled because it reenables them. There was no real danger of
  moving the call outside our critical section.

- fix a bug in in pfm_flush_pmds() where you can leave the freeze bit
  set in the pmc saved state.

- updated dump_pmu_state()

- cleanup the BUG_ON() usage
arch/ia64/kernel/perfmon.c
arch/ia64/kernel/process.c