I finally updated my desktop from openSUSE 11.2 to openSUSE 12.1. At first sight everything was more or less working, but when switching the machine off, I discovered it cannot be done without manually pushing the case button. All possible combinations of poweroff, shutdown and similar led just to the system halt, but the screen was showing the last messages and the fans were working on. Only the reset button could restart the machine.
The new init environment, systemd, was my first suspect. I started playing with it -- but only to discover only one of my CPUs is enabled (I have D865PERL motherboard with Pentium 4 with hyper-threading) . I identified the acpi=off option in the grub menu and removed the restriction... only to find that I can no longer even boot. The system froze during startup, each time at a slightly different time with a slightly different message (e.g. "BUG: unable to handle kernel initcall acpi_processor_init +0x0/0x100 [processor] returned with preemption imbalance", or "BUG: unable to handle paging request", or "scheduling with atomic", or just plain SIGSEGV or kernel panic).
I tried switching to different kernels (default, desktop, and vanilla), but the behaviour was the same. Even switching to systemv-init did not help.
I am currently running with hyper threading disabled at BIOS level. Therefore, I can boot with full acpi support and turn my machine off. However, I am running only one thread.
Googling for more information, I stumbled upon this thread:
Using their recommendation, namely adding processor.nocst=1 to boot options, solved the issue. Yay!
I bought a new computer. It has an Intel Core i5-2400 chip and boots without problems :-)