By Jonathan Corbet
March 10, 2010
There have been nearly 1600 non-merge changesets incorporated into the mainline
kernel since
last week's
summary; that makes a total of just over 6000 changesets for the
2.6.34-rc1 release. Some of the most significant, user-visible changes merged
since last week include:
- Signal-handling semantics have been changed so that "synchronous"
signals (SIGSEGV, for example) are delivered prior to asynchronous
signals like SIGUSR1. This fixes a problem where synchronous signal
handlers could be invoked with the wrong context, something that
apparently came up occasionally in WINE. Users are unlikely to notice
the change, but it is a slight semantics change that developers may
want to be aware of.
- A new Nouveau driver with an incompatible interface has been merged;
as of this writing, it will break all user-space code which worked
with the older API. See this article for more
information on the Nouveau changes. Nouveau also no longer needs
external firmware for NV50-based cards.
- The direct rendering layer now supports "VGA switcheroo" on systems
which provide more than one graphical processor. For most needs, a
simple, low-power GPU can be used, but the system can switch to the
more power-hungry GPU when its features are needed.
- The umount() system call supports a new
UMOUNT_NOFOLLOW flag which prevents the following of symbolic
links. Without this flag, local users who can perform unprivileged
mounts can use a symbolic link to unmount arbitrary filesystems.
- The exofs filesystem (for object storage devices) has gained support
for groups and for RAID0 striping.
- The LogFS filesystem for
solid-state storage devices has been merged.
- New drivers:
- Media: Wolfson Microelectronics WM8994 codecs, and
Broadcom Crystal HD video decoders (staging).
- Miscellaneous: Freescale MPC512x built-in DMA engines,
Andigilog aSC7621 monitoring chips,
Analog Devices ADT7411 monitoring chips,
Maxim MAX7300 GPIO expanders,
HP Processor Clocking Control interfaces,
DT3155 Digitizers (staging),
Intel SCH GPIO controllers,
Intel Langwell APB Timers,
ST-Ericsson Nomadik/Ux500 I2C controllers,
Maxim Semiconductor MAX8925 power management ICs,
Max63xx watchdog timers,
Technologic TX-72xx watchdog timers, and
Hilscher NetX based fieldbus cards.
Changes visible to kernel developers include:
- There has been a subtle change to the early boot code, wherein the
kernel will open the console device prior to switching to the root
filesystem. That eliminates problems where booting fails on a system
with an empty /dev directory because the console device
cannot be found, and eliminates the need to use devtmpfs in such
situations.
- The kprobes jump
optimization patch has been merged.
- The write_inode() method in struct super_operations
is now passed a pointer to the relevant writeback_control
structure.
- Two new helper functions - sysfs_create_files() and
sysfs_remove_files() - ease the process of creating a whole
array of attribute files.
- The show() and store() methods of struct
class_attribute have seen a prototype change: the associated
struct class_attribute pointer is now passed in. A similar
change has been made to struct sysdev_class_attribute.
- The sem lock found in struct device should no longer
be accessed directly; instead, use device_lock() and
device_unlock().
At "only" 6000 changesets, 2.6.34 looks like a relatively calm
development cycle; both 2.6.32 and 2.6.33 had over 8000 changesets by the
time the -rc1 release came out. It may be that there is less work to be
done, but it may also be that some trees got caught out in the cold by
Linus's decision to close the merge window early. Linus suggested that he
might yet consider a few pull requests, so we might still see some new
features added to this kernel; stay tuned.
(
Log in to post comments)