Archive for the ‘kernel’ Category

kernel news – 11.03.2013

Posted: March 11, 2013 in kernel

-Linus Torvalds announces kernel 3.9-rc2:

Hey, things have been reasonable calm. Sure, Dave Jones has been
messing with trinity and we’ve had some excitement from that, but Al
is back, and is hopefully now busy virtually riding to the rescue on a
white horse. But otherwise it’s been good for this phase in the rc

The diffstat is reasonably flat (good sign), with wireless network
drivers standing out. And that’s mainly due to a new driver for the
ASIX AX88179_178A USB gigabit controller.

Other than network drivers, we’ve got some drm updates, md and gpio,
btrfs, etworking, arm, sound.. Stuff all over the place, but nothing
horribly scary. Considering that some rc2′s are too big to post a
shortlog for, I’m happy.

And let’s just keep it that way, ok?


-Greg Ungerer has m68knommu fixes for 3.9:

Hi Linus,

Can you please pull the m68knommu git tree, for-linus branch.

It contains a few small fixes for the non-MMU m68k platforms. Fixes some
compilation problems, some broken header definitions, removes an unused
config option and adds a name for the old 68000 CPU support.

-Dmitry Torokhov and input updates for -rc2:

Except for the largish
change to the ALPS driver adding “Dolphin V1″ support and Wacom getting
a new signature of yet another device, the rest are straightforward
driver fixes.

-Prabhakar Lad has DaVinci media driver fixes and cleanups:

The first patch fixes module build for VPBE driver
and the second patch fixes the module build for VPIF

kernel news – 05.03.2012

Posted: March 5, 2013 in kernel

-David Miller and networking:

A moderately sized pile of fixes, some specifically for merge window
introduced regressions although we others are for longer standing
items and have been queued up for -stable.

I’m kind of tired of all the RDS protocol bugs over the years, to be
honest, it’s way out of proportion to the number of people who
actually use it.

1) Fix missing range initialization in netfilter IPSET, from Jozsef

2) ieee80211_local->tim_lock needs to use BH disabling, from Johannes

3) Fix DMA syncing in SFC driver, from Ben Hutchings.

4) Fix regression in BOND device MAC address setting, from Jiri Pirko.

5) Missing usb_free_urb in ISDN Hisax driver, from Marina Makienko.

6) Fix UDP checksumming in bnx2x driver for 57710 and 57711 chips, fix
from Dmitry Kravkov.

7) Missing cfgspace_lock initialization in BCMA driver.

8) Validate parameter size for SCTP assoc stats getsockopt(), from
Guenter Roeck.

9) Fix SCTP association hangs, from Lee A. Roberts.

10) Fix jumbo frame handling in r8169, from Francois Romieu.

11) Fix phy_device memory leak, from Petr Malat.

12) Omit trailing FCS from frames received in BGMAC driver, from Hauke

13) Missing socket refcount release in L2TP, from Guillaume Nault.

14) sctp_endpoint_init should respect passed in gfp_t, rather than
use GFP_KERNEL unconditionally. From Dan Carpenter.

15) Add AISX AX88179 USB driver, from Freddy Xin.

16) Remove MAINTAINERS entries for drivers deleted during the
merge window, from Cesar Eduardo Barros.

17) RDS protocol can try to allocate huge amounts of memory,
check that the user’s request length makes sense, from Cong

18) SCTP should use the provided KMALLOC_MAX_SIZE instead of it’s
own, bogus, definition. From Cong Wang.

19) Fix deadlocks in FEC driver by moving TX reclaim into NAPI poll,
from Frank Li. Also, fix a build error introduced in the merge

20) Fix bogus purging of default routes in ipv6, from Lorenzo

21) Don’t double count RTT measurements when we leave the TCP
receive fast path, from Neal Cardwell.

-Rusty Russel has a “virtio randomness fix”:

Nasty side-effect of vmalloc’ing modules: their static vars cannot be put
into scatterlists. Jens has a check queued for this, so it shouldn’t happen

-Benjamin Herrenschmidt has powerpc fixes for -rc1:

Here are a few powerpc bits & fixes for rc1. A couple of str*cpy fixes,
some fixes in handling the FSCR register on Power8 (controls the
enabling of processor features), a 32-bit build fix and a couple more

kernel news – 04.03.2013

Posted: March 4, 2013 in kernel

-Helge Deller has parisc updates:

Second round of patches for the parisc architecture for Linux 3.9

The most important fix in this branch is the switch of io_setup,
io_getevents and io_submit syscalls to use the available compat
syscalls when running 32bit userspace on 64bit kernel.
Other than that it’s mostly removal of compile warnings.

-Here are a new series of stable kernels, as announced by Greg KH:
3.0.68, 3.4.35 and 3.8.2.

-Thomas Gleixner updates core-urgent and irq-urgent:

* Single bugfix for a regression introduced with the conversion of the
stop machine threads to the generic smpboot thread management
* “e5ab012: nohz: Make tick_nohz_irq_exit() irq safe” is the first
commit in the series and the minimal necessary bugfix, which needs
to go back into stable.

* The remanining commits enforce irq disabling in irq_exit(), sanitize
the hardirq/softirq preempt count transition and remove a bunch of
not longer necessary conditionals.

-Linus Torvalds announces kernel 3.9-rc1:

It’s been two weeks (ok, thirteen days, but close enough), and the
merge window is closed, and I’ve cut the 3.9-rc1 release.

I don’t know if it’s just me, but this merge window had more “Uhhuh”
moments than I’m used to. I stopped merging a couple of times, because
we had bugs that looked really scary, but thankfully each time people
were on them like paparazzi on Justin Bieber. Special thanks to Peter,
Ted and Rafael (and the people who reported the bugs too!) for being
so responsive. It could have been so much worse.

As usual, there’s changes all over the place. We’ve got two new
architectures (metag and arc), and we’ve got tons of arm work (as
usual), with even more platforms falling under the generic umbrella.
MIPS tried to keep up by doing whitespace cleanup, but those arm
people with their platform changes kept ahead

And we’ve got filesystem updates to just about everything out there,
although btrfs (initial raid56 code, snapshot work and fsync
performance) and ext4 (hole punching, extent caches, also fsync
performance) had the big changes.

But most of the updates (~60%) are on the driver side, as usual. The
bulk is in GPU, networking, staging, pinctrl, sound, but it’s all

There is a lot of stuff there, and as usual even the shortlog is
really too big to pst or read through. I’d suggest using git to check
whatever particular area you’re interested in..

-Pekka Enberg has late changes to SLAB for -rc1:

Hi Linus,

I managed to miss the merge window. Sorry about that!

Please consider pull the latest SLAB tree from:

git:// slab/for-linus

It contains more of Christoph’s SLAB unification work that reduce the
differences between different slab allocators. The code has been sitting
in linux-next without problems.

If you feel this is inappropriate for -rc2, just skip the pull and I’ll
requeue it for 3.10.

kernel news – 28.02.2013

Posted: February 28, 2013 in kernel
Tags: ,

-H. Peter Anvin has x86/efi changes for -rc1:

* Improve the initrd handling in the EFI boot stub by allowing
forward slashes in the pathname – from Chun-Yi Lee.

* Cleanup code duplication in the EFI mixed kernel/firmware code -
from Satoru Takeuchi.

* efivarfs bug fixes for more strict filename validation, with lots
of input from Al Viro.

-Mauro Carvalho Chehab has a pull request concerning EDAC for 3.8:

- Some fixes at edac drivers (i7core_edac, sb_edac, i3200_edac);
- error injection support for i5100, when EDAC debug is enabled;
- fix edac when it is loaded builtin (early init for the subsystem);
- a “Firmware First” EDAC driver, allowing ghes to report errors via
EDAC (ghes-edac).

With regards to ghes-edac, this fixes a longstanding BZ at Red Hat that
happens with Nehalem and Sandy Bridge CPUs: when both GHES and i7core_edac
or sb_edac are running, the error reports are unpredictable, as both BIOS
and OS race to access the registers. With ghes-edac, the EDAC core will
refuse to register any other concurrent memory error driver.

This patchset moves the ghes struct definitions to a separate header file
(include/acpi/ghes.h) and adds 3 hooks at apei/ghes.c to register/unregister
and to report errors via ghes-edac. Those changes were acked by ghes driver
maintainer (Huang).

kernel news – 25.02.2013

Posted: February 25, 2013 in kernel

-Bjorn Helgaas has PCI changes:

PCI changes for the v3.9 merge window:

Host bridge hotplug
– Major overhaul of ACPI host bridge add/start (Rafael Wysocki, Yinghai Lu)
– Major overhaul of PCI/ACPI binding (Rafael Wysocki, Yinghai Lu)
– Split out ACPI host bridge and ACPI PCI device hotplug (Yinghai Lu)
– Stop caching _PRT and make independent of bus numbers (Yinghai Lu)

PCI device hotplug
– Clean up cpqphp dead code (Sasha Levin)
– Disable ARI unless device and upstream bridge support it (Yijing Wang)
– Initialize all hot-added devices (not functions 0-7) (Yijing Wang)

Power management
– Don’t touch ASPM if disabled (Joe Lawrence)
– Fix ASPM link state management (Myron Stowe)

– Fix PCI_EXP_FLAGS accessor (Alex Williamson)
– Disable Bus Master in pci_device_shutdown (Konstantin Khlebnikov)
– Document hotplug resource and MPS parameters (Yijing Wang)
– Add accessor for PCIe capabilities (Myron Stowe)
– Drop pciehp suspend/resume messages (Paul Bolle)
– Make pci_slot built-in only (not a module) (Jiang Liu)
– Remove unused PCI/ACPI bind ops (Jiang Liu)
– Removed used pci_root_bus (Bjorn Helgaas)

-Rafael J. Wysocki has ACPI and PM fixes for -rc1:

- Fixes for blackfin and microblaze build problems introduced by the
removal of global pm_idle. From Lars-Peter Clausen.

- OPP core build fix from Shawn Guo.

- Error condition check fix for the new imx6q-cpufreq driver from
Wei Yongjun.

- Fix for an AER driver crash related to the lack of APEI
initialization for acpi=off. From yours truly.

- Fix for the USB breakage on Thinkpad T430 related to ACPI power
resources and PCI wakeup reported by Dave and Fabio (you know
about this one).

-Chris Ball and MMC:

– Support for packed commands in eMMC 4.5. (This requires a host
capability to be turned on. It increases write throughput by 20%+,
but may also increase average write latency; more testing needed.)
– Add DT bindings for capability flags.
– Add mmc_of_parse() for shared DT parsing between drivers.

– android-goldfish: New MMC driver for the Android Goldfish emulator.
– mvsdio: Add DT bindings, pinctrl, use slot-gpio for card detection.
– omap_hsmmc: Fix boot hangs with RPMB partitions.
– sdhci-bcm2835: New driver for controller used by Raspberry Pi.
– sdhci-esdhc-imx: Add 8-bit data, auto CMD23 support, use slot-gpio.
– sh_mmcif: Add support for eMMC DDR, bundled MMCIF IRQs.
– tmio_mmc: Add DT bindings, support for vccq regulator.

-Alex Williamson has VFIO updates for -rc1:

- Fixes PCIe v1 extended capability support
- Cleans up read/write access functions
- Fix Removal test to properly wait until devices are unused
- Enable pcieport driver usage for non-accessible devices w/in groups
- Extensions for PCI VGA support

-Jaegeuk updates f2fs, the new SSD-oriented filesystem:

[Major bug fixes]
o Store device file information correctly
o Fix -EIO handling with respect to power-off-recovery
o Allocate blocks with global locks
o Fix wrong calculation of the SSR cost

o Get rid of fake on-stack dentries

o Support (un)freeze_fs
o Enhance the f2fs_gc flow
o Support 32-bit binary execution on 64-bit kernel

-Thierry Reding has pwm changes:

A new driver has been added to support the PWM mode of the timer counter
blocks found on Atmel AT91 SoCs. The VT8500 driver now supports changing
the PWM signal polarity and the TI drivers (EHRPWM and ECAP) gained
suspend and resume functionality.

User drivers can now query the core for whether access to a PWM device
will sleep (if the PWM chip is on a slow bus such as I2C or SPI).

The pwm-backlight driver now handles the backlight BL_CORE_FBBLANK state
in addition to the FB layer’s blanking states.

To round things off, a few fixes and cleanups are also included.

kernel news – 22.02.2013

Posted: February 22, 2013 in kernel

-Martin Schwidefsky has s390 patches for the merge window:

The most prominent change in this patch set is the software dirty bit
patch for s390. It removes __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY and
the page_test_and_clear_dirty primitive which makes the common memory
management code a bit less obscure. Heiko fixed most of the PCI related
fallout, more often than not missing GENERIC_HARDIRQS dependencies.
Notable is one of the 3270 patches which adds an export to tty_io to
be able to resize a tty. The rest is the usual bunch of cleanups and
bug fixes.

There is a merge conflict in arch/s390/Kconfig between the current
upstream and the s390 branch. The cause is the Heikos Kconfig sorting
vs the removal of HAVE_IRQ_WORK. The correct merge is the sorted list
without the HAVE_IRQ_WORK select.

-Jiri Kosina updates trivial and HID:

- new support of a group of Win7/Win8 multitouch devices, from Benjamin
- fix for compat interface brokenness in uhid, from Dmitry Torokhov
- conversion of drivers to use hid_driver helper, by H Hartley Sweeten
- HID over I2C transport received ACPI enumeration support, written by
Mika Westerberg
- there is an ongoing effort to make HID sensor hubs independent of USB
transport. The first self-contained part of this work is provided here,
done by Mika Westerberg
- a few smaller fixes here and there, support for a couple new devices

-Takashi Iwai has sound updates for -rc1:

The biggest change in this update is the unification of HD-audio codec
parsers. Now the HD-audio codec is parsed in a generic parser code
which is invoked by each HD-audio codec driver. Some background
information is found in David Henningsson’s blog entry:

Other than that, some random updates/fixes like USB-audio and a bunch
of small AoC updates as usual.

-Greg KH has updates for driver-core:

There are two major series here, both of which touch lots of drivers all
over the kernel, and will cause you some merge conflicts:
– add a new function called devm_ioremap_resource() to properly be
able to check return values.

-The same Greg Kroah-Hartman announces kernels 3.0.66 and 3.4.33.

-Yet the same Greg has tty/serial and char/misc patches:

Here’s the big tty/serial driver patches for 3.9-rc1.

More tty port rework and fixes from Jiri here, as well as lots of
individual serial driver updates and fixes.

All of these have been in the linux-next tree for a while.
Here’s the big char/misc driver patches for 3.9-rc1.

Nothing major here, just lots of different driver updates (mei, hyperv, ipack,
extcon, vmci, etc.).

All of these have been in the linux-next tree for a while.

-David Howells updates linux-trace, and I recommend you read this if
you’re into EFI booting :

It provides a facility by which keys can be added dynamically to a kernel that
is running in secure-boot mode. To permit a key to be loaded under such a
condition, we require that the new key be signed by a key that we already have
(and trust) – where keys that we “already have” could include those embedded in
the kernel, those in the UEFI database and those in cryptographic hardware.

Now, “keyctl add” will already handle X.509 certificates that are so signed,
but Microsoft’s signing service will only sign runnable EFI PE binaries.

We could require that the user reboot into the BIOS, add the key, and then
switch back, but under some circumstances we want to be able to do this whilst
the kernel is running.

The way we have come up with to get around this is to embed an X.509
certificate containing the key in a section called “.keylist” in an EFI PE
binary and then get the binary signed by Microsoft. The key can then be passed
to the kernel by passing the signed binary:

keyctl padd asymmetric “” {ID of .system_keyring} flags:

KEY_FLAG_TRUSTED – this key is trusted.

KEY_FLAG_TRUSTED_ONLY – only links to trusted keys can be made to this

I’m not sure that this is the best mechanism by which to filter keyring
additions, but it’s not currently visible to the user, and so can be changed.
One thing we might want to consider is using X.509 extension fields to contain
bitfields that indicate what is permitted of the key inside an X.509
certificate. These contribute to the X.509 cryptographic digest and so are

What these patches then do is allow you to add new keys by signing them with a
key a user will already have. There can be more than one source for these
keys: firstly, there is a key built into the kernel for module signing
purposes, and secondly, we have patches under development for extracting keys
from the UEFI signature database.

Note: Though we don’t actually execute the PE binary container to get at the
key, the binary must be executable in the EFI environment for Microsoft to sign

The test wrapper I’m using is this:


efi_main (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *systab)
InitializeLib(image_handle, systab);
Print(L”This program contains a list of public keys.\n”);

extern __attribute__((section(“.keylist”))) const uint8_t certificate_list[];
extern __attribute__((section(“.keylist”))) const uint8_t certificate_list_end[];
asm(“.section .keylist,\”a\”\n”
“.incbin \”signing_key.x509\”\n”

and is built from pekey.c by something like this:

CPPFLAGS := -nostdinc -I /usr/include/efi -I /usr/include/efi/x86_64

CFLAGS := -O2 -fpic \
-Wall -fshort-wchar -fno-strict-aliasing \
-fno-merge-constants -mno-red-zone

LDSCRIPT := /usr/lib64/gnuefi/
CRT0 := /usr/lib64/gnuefi/crt0-efi-x86_64.o
X509 := magrathea
KEY := /data/modsign/linux-modsign/signing_key.priv

pekey.efi.signed: pekey.efi
pesign -i $< -o $@ -c $(X509) -p $(KEY) -s -f

objcopy \
-j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
-j .rela -j .reloc -j .keylist –target=efi-app-x86_64 $< $@ pekey.o
$(LD) -nostdlib -T $(LDSCRIPT) -shared -Bsymbolic $(CRT0) $< -o $@ \
-L /usr/lib64 -lefi -lgnuefi \
-L /usr/lib/gcc/x86_64-redhat-linux/4.7.2 -lgcc

pekey.o: pekey.c Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@

-Arnd Bergmann announces 3.9 changes for arm-soc:

Here is the usual arm-soc set of pull requests. There is a total
of 645 non-merge changesets, which this time is dominated by the
sh-mobile platform cleanups in size. In the effort to modernize
the way that ARM platform code is structured, sh-mobile has been
a little late to the game, but they are making up for that now.

Another topic that keeps both the patch count and the total
number of changed lines high is the work to remove platform
specific header files. This will keep going on for at least
one or two releases I fear, but we are already seeing the
fruits of it, and now have a total of 18 platforms that started
out separately and can now be built as ‘multiplatform’ together
with others.

We have reduced the number of separate branches for you a bit,
trying to make things easier for us, and getting fewer conflicts
between the arm-soc branches. These nine branches contain all
the important changes, but there are three more branches with
stuff that came late before the merge window. If everything
goes well, we will send pull requests for those next week,
or leave them for 3.10 if there are problems.

Olof has done almost all the merges again for this round,
since I was on parental leave for half the time, but I’m
sending out the pull requests now since he is currently at

The merge conflicts I mention in the tags are all for conflicts
between the arm-soc branches. There are a few more conflicts
with other stuff you already pulled, but it all looks simple
as well. I have uploaded a ‘for-linus’ branch to the arm-soc
tree with the resolutions I used.

-Bob Liu has blackfin updates, Vinod Koul updates slave-dmaengine

This is fairly big pull by my standards as I had missed last merge window.
So we have the support for device tree for slave-dmaengine, large updates to
dw_dmac driver from Andy for reusing on different architectures. Along with this
we have fixes on bunch of the drivers

and H. Peter Anvin updates x86/microcode.

-Vineet Gupta introduces arch/arc (Synopsys ARC) CPU support for -rc1:

I would like to introduce the Linux port to ARC Processors (from Synopsys) for
3.9-rc1. The patch-set has been discussed on the public lists since Nov and has
received a fair bit of review, specially from Arnd, tglx, Al and other subsystem
maintainers for DeviceTree, kgdb …..

The arch bits are in arch/arc, some asm-generic changes (acked by Arnd), a minor
change to PARISC (acked by Helge).

The series is a touch bigger for a new port for 2 main reasons:
1. It enables a basic kernel in first sub-series and adds ptrace/kgdb/.. later
2. Some of the fallout of review (DeviceTree support, multi-platform-image
support) were added on top of orig series, primarily to record the revision history.

-Greg KH again with USB patches aimed at -rc1:

Nothing major, lots of gadget fixes, and of course, xhci stuff.

All of this has been in linux-next for a while, with the exception of
the last 3 patches, which were reverts of patches in the tree that
caused problems, they went in yesterday.

-James Bottomley announces the first round of SCSI updates, and this concludes
today’s news.

kernel news – 21.02.2013

Posted: February 21, 2013 in kernel

-Mark Brown has regmap and regulator updates, as follows:

regmap: Updates for v3.9

Several nice new features and performance improvements here, especially
the first:

– Support for using the cache infrastructure without the physical I/O,
allowing devices which don’t fit the physical model regmap has to
take advantage of the cache infrastructure, contributed by Andrey
– Several small improvements to the support for wake capable IRQs.
– Support for asynchronous I/O, allowing us to come much closer to
saturating fast buses like SPI.
– Support for simple array caches, giving higher performance for use
with MMIO devices.
– Restoration of the use of bulk reads for handling interrupts, giving
a performance improvement.
– Support for 24 bit register addresses.
– More performance improvements for debugfs.
regulator: Updates for v3.9

A fairly quiet release for the regulator API, the bulk of the changes
being lots of small cleanups and API updates contributed by Axel Lin
with just a small set of larger changes:

- New driver for LP8755
- DT support for S5M8767, TPS51632, TPS6507x and TPS65090
- Support for writing a “commit changes” bit in the regmap helper

-Linus Waleij has pinctrl changes for 3.9:

Hi Linus,

this is the bulk of pin control changes for v3.9. Most of the description
is in the signed tag. They are rotated in linux-next, changes to other
subsystems are ACKed, and I tested to pull it all into the HEAD of
your tree for a tester and everything when smooth.

The most interesting change by far is how the device core grabs
pinctrl default handles avoiding the need to stick boilerplate into
driver consumers.

-Guenter Roweck has hwmon updates for -rc1:

New drivers for MAX6697 and compatibles and for INA209.
Added support for IT8771E, IT8772E, MAX34460, MAX34461, MCP98244,
and ADT7420 to existing drivers.
Added support for additional attributes to various drivers.
Replaced SENSORS_LIMIT with clamp_val; retire SENSORS_LIMIT;
Clean up PMBus code to reduce its size; clean up adt7410 driver.
A couple of minor bug fixes as well as documentation cleanup.

Out-of-tree change: Replace SENSORS_LIMIT with clamp_val in
platform/x86/eeepc-laptop driver.

-Catalin Marinas announces arm64 patches for 3.9:

- SMP support for the PSCI booting protocol (power state coordination
- Simple earlyprintk support.
- Platform devices populated by default from the DT (SoC-agnostic).
- CONTEXTIDR support (used by external trace tools).

-Mauro Carvalho Chehab and media updates:

- Some cleanups at V4L2 documentation;
- new drivers: ts2020 frontend, ov9650 sensor, s5c73m3 sensor,
sh-mobile veu mem2mem driver, radio-ma901, davinci_vpfe staging
- Lots of missing MAINTAINERS entries added;
- several em28xx driver improvements, including its conversion to
- several fixups on drivers to make them to better comply with the API;
- DVB core: add support for DVBv5 stats, allowing the implementation of
statistics for new standards like ISDB;
- mb86a20s: add statistics to the driver;
- lots of new board additions, cleanups, and driver improvements.

-David Miller has a simple pull request for sparc:

Mostly more sparc64 THP bug fixes, and a refactoring of SMP bootup on sparc32
from Sam Ravnborg.

-Al Viro updates signal:

* a bunch of signal-related syscalls (both native and compat) unified.
* a bunch of compat syscalls switched to COMPAT_SYSCALL_DEFINE (fixing several
potential problems with missing argument validation, while we are at it)
* a lot of now-pointless wrappers killed
* a couple of architectures (cris and hexagon) forgot to save altstack settings
into sigframe, even though they used the (uninitialized) values in sigreturn;
* microblaze fixes for delivery of multiple signals arriving at once
* saner set of helpers for signal delivery introduced, several architectures
switched to using those.

That’s the first pile; another one will come a bit later and will contain
SYSCALL_DEFINE-related patches.

-Eric W. Biederman has user-namespace changes :

This set of changes starts with a few small enhnacements to the user
namespace. reboot support, allowing more arbitrary mappings, and
support for mounting devpts, ramfs, tmpfs, and mqueuefs as just the user
namespace root.

I do my best to document that if you care about limiting your
unprivileged users that when you have the user namespace support enabled
you will need to enable memory control groups.

There is a minor bug fix to prevent overflowing the stack if someone
creates way too many user namespaces.

The bulk of the changes are a continuation of the kuid/kgid push down
work through the filesystems. These changes make using uids and gids
typesafe which ensures that these filesystems are safe to use when
multiple user namespaces are in use. The filesystems converted for 3.9
are ceph, 9p, afs, ocfs2, gfs2, ncpfs, nfs, nfsd, and cifs. The changes
for these filesystems were a little more involved so I split the changes
into smaller hopefully obviously correct changes.

XFS is the only filesystem that remains. I was hoping I could get that
in this release so that user namespace support would be enabled with an
allyesconfig or an allmodconfig but it looks like the xfs changes need
another couple of days before it they are ready.

-Marcello Tosatti has KVM updates for the merge window:

[...] KVM updates for the 3.9 merge window, including x86 real
mode emulation fixes, stronger memory slot interface restrictions,
mmu_lock spinlock hold time reduction, improved handling of large
page faults on shadow, initial APICv HW acceleration support,
s390 channel IO based virtio, amongst others.

-Trond Myklebust updates the client part of NFS:

NFS client bugfixes for Linux 3.9

- Fix an Oops in the pNFS layoutget code
- Fix a number of NFSv4 and v4.1 state recovery deadlocks and hangs
due to the interaction of the session drain lock and state management
- Remove task->tk_xprt, which was hiding a lot of RCU dereferencing bugs
- Fix a long standing NFSv3 posix lock recovery bug.
- Revert commit 324d003b0cd82151adbaecefef57b73f7959a469. It turned out
that the root cause of the deadlock was due to interactions with the
workqueues that have now been resolved.

-David Miller has networking updates:

1) Checkpoint/restarted TCP sockets now can properly propagate the TCP
timestamp offset. From Andrey Vagin.

2) VMWARE VM VSOCK layer, from Andy King.

3) Much improved support for virtual functions and SR-IOV in bnx2x,
from Ariel ELior.

4) All protocols on ipv4 and ipv6 are now network namespace aware,
and all the compatability checks for initial-namespace-only
protocols is removed. Thanks to Tom Parkin for helping deal
with the last major holdout, L2TP.

5) IPV6 support in netpoll and network namespace support in pktgen,
from Cong Wang.

6) Multiple Registration Protocol (MRP) and Multiple VLAN Registration
Protocol (MVRP) support, from David Ward.

7) Compute packet lengths more accurately in the packet scheduler, from
Eric Dumazet.

8) Use per-task page fragment allocator in skb_append_datato_frags(),
also from Eric Dumazet.

9) Add support for connection tracking labels in netfilter, from Florian

10) Fix default multicast group joining on ipv6, and add anti-spoofing
checks to 6to4 and 6rd. From Hannes Frederic Sowa.

11) Make ipv4/ipv6 fragmentation memory limits more reasonable in
modern times, rearrange inet frag datastructures for better
cacheline locality, and move more operations outside of locking.
From Jesper Dangaard Brouer.

12) Instead of strict master slave relationships, allow arbitrary
scenerios with “upper device lists”. From Jiri Pirko.

13) Improve rate limiting accuracy in TBF and act_police, also from Jiri

14) Add a BPF filter netfilter match target, from Willem de Bruijn.

15) Orphan and delete a bunch of pre-historic networking drivers from
Paul Gortmaker.

16) Add TSO support for GRE tunnels, from Pravin B SHelar. Although this
still needs some minor bug fixing before it’s %100 correct in all

17) Handle unresolved IPSEC states like ARP, with a resolution packet
queue. From Steffen Klassert.

18) Remove TCP Appropriate Byte Count support (ABC), from Stephen
Hemminger. This was long overdue.

19) Support SO_REUSEPORT, from Tom Herbert.

20) Allow locking a socket BPF filter, so that it cannot change after
a process drops capabilities.

21) Add VLAN filtering to bridge, from Vlad Yasevich.

22) Bring ipv6 on-par with ipv4 and do not cache neighbour entries in
the ipv6 routes, from YOSHIFUJI Hideaki.

-Jingoo-Han updates samsung-fb and exynos-dp, and that seems to be all.

kernel news – 20.02.2013

Posted: February 20, 2013 in kernel

-Since the merge window madness has started, here’s Steven Whitehouse
with a patchset for GFS2 :

This is one of the smallest collections of patches for the merge
window for some time. There are some clean ups relating to the
transaction code and the shrinker, which are mostly in preparation
for further development, but also make the code much easier to
follow in these areas.

There is a patch which allows the use of ->writepages even in the
default ordered write mode for all writebacks. This results in
sending larger i/os to the block layer, and a subsequent increase
in performance. It also reduces the number of different i/o paths
by one.

There is also a bug fix reinstating the withdraw ack system which
somehow got lost when the lock modules were merged into GFS2.

-James Hogan and arch/metag for 3.9-rc1:

Here is the arch/metag/ tree for v3.9-rc1. Arnd said he’s happy to ack
it (the additional changes since then have been mostly further cleanups
and fixes for when merged with other trees).

-Borislav Petkov has a small pull request regarding amd64 EDAC:

Hi Linus,

please pull the following updates for (mostly) AMD’s side of EDAC. It is
basically a new family enablement stuff – the rest is trivial cleanups.

-Rafael J. Wysocki has ACPI and PM updates for -rc1:


- Rework of the ACPI namespace scanning code. Reduces code size and
complexity, removes some really ugly stuff. Requisite for PCI host
bridge hotplug support queued up in the PCI tree. From yours truly
with bits from Bjorn Helgaas, Jiang Liu, Mika Westerberg,
Toshi Kani, and Yinghai Lu.

- ACPI power resources handling and ACPI device PM update. Adds
missing support for power resource priorities and system levels,
changes device PM to follow the spec more closely, fixes bugs
and exposes ACPI power resources information to user space for
powertop etc.

- ACPICA update to version 20130117. Bug fixes, more new ACPI 5
features, code cleanups, new interface for walking device resource
lists, reduction of divergences between the kernel code and ACPICA
upstream. From Bob Moore and Lv Zheng with smaller bits from
Aaron Lu, Chao Guan, Jesper Juhl, and Tim Gardner.

- Support for Intel Lynxpoint LPSS from Mika Westerberg.

- cpuidle update adding support for Intel Haswell, causing the C1
state to be used (along with C1E) by intel_idle and removing the
global definition of pm_idle. From Len Brown.

- cpuidle fixes and cleanups from Daniel Lezcano.

- cpufreq fixes and cleanups. Reduction of code duplication, locking
fixes, simplifications all over the place. From Viresh Kumar and
Fabio Baltieri with smaller bits from Stratos Karafotis and
Rickard Andersson.

- Intel P-states driver for Sandy Bridge processors. Departs from
the cpufreq’s tradition of separating governors from the low-level
driver code and saves energy more efficiently as a result. From
Dirk Brandewie.

- cpufreq driver for Marvell Kirkwood SoCs from Andrew Lunn.

- cpufreq fixes related to ordering issues between acpi-cpufreq and
powernow-k8 from Borislav Petkov and Matthew Garrett.

- cpufreq support for Calxeda Highbank processors from Mark Langsdorf
and Rob Herring.

- cpufreq driver for the Freescale i.MX6Q SoC and cpufreq-cpu0 update
from Shawn Guo.

- cpufreq Exynos fixes and cleanups from Jonghwan Choi, Sachin Kamat,
and Inderpal Singh.

- Support for “lightweight suspsend” that stops the suspend sequence
after suspending devices and waits for a wakup interrupt at that
point. The changes were relatively small and the users of
autosleep may find this useful. From Zhang Rui.

- Removal of the deprecated power trace API from Paul Gortmaker.

-Grant Likely and devicetree:

All around device tree changes destined for v3.8. Aside from the
documentation updates the highlights in this branch include:
- Kbuild changes for using CPP with .dts files
- locking fix from preempt_rt patchset
- include DT alias names in device uevent
- Selftest bugfixes and improvements
- New function for counting phandles stanzas in a property
- constify argument to of_node_full_name()
- Various bug fixes

This tree did also contain a commit to use platform_device_add instead
of open-coding the device add code, but it caused problems with amba
devices and needed to be reverted.

-Grant Likely and SPI:

Changes to both core spi code and spi device drivers. The driver
changes are the usual set of bug fixes and platform enablement. Core
code changes include:
- More intelligent assignment of SPI bus numbers when using DT
- Fixes to initialization and documentation of chipselect gpio array.
- Pull checks for bits_per_word and transfer speed out of drivers and
into core code
- Ensure temporary DMA buffers are DMA safe

-Ingo Molnar has RCU, perf, smp/hotplug, timer,x86/{apic,asm,boot,build,cpu,debug
,hyperv,uv} and irq/core changes.

-Steven Whitehouse has a GFS2-related pull request:

This is one of the smallest collections of patches for the merge
window for some time. There are some clean ups relating to the
transaction code and the shrinker, which are mostly in preparation
for further development, but also make the code much easier to
follow in these areas.

There is a patch which allows the use of ->writepages even in the
default ordered write mode for all writebacks. This results in
sending larger i/os to the block layer, and a subsequent increase
in performance. It also reduces the number of different i/o paths
by one.

There is also a bug fix reinstating the withdraw ack system which
somehow got lost when the lock modules were merged into GFS2.

-Tejun Heo has workqueue cleanups for -rc1:

This is part of on-going cleanups to remove / minimize usages of
workqueue interfaces which are deprecated and/or misleading. This
round drops a number of usages of [delayed_]work_pending(), which are
dangerous as they lack any form of synchronization and thus often lead
to buggy / unnecessary code. There are a couple legitimate use cases
in kernel. Hopefully, they can be converted and
[delayed_]work_pending() can be removed completely. Even if not,
removing most of misuses should make it more difficult to find
examples of misuses and thus slow down growth of them.

-From the same Tejun Heo, we have async changes as well:

These are followups for the earlier deadlock issue involving async
ending up waiting for itself through block requesting module[1]. The
following changes are made by these commits.

* Instead of requesting default elevator on each request_queue init,
block now requests it once early during boot.

* Kmod triggers warning if invoked from an async worker.

* Async synchronization implementation has been reimplemented. It’s a
lot simpler now.

This branch depends on wq/for-3.9 for current_is_async() and this pull
request assumes that wq/for-3.9 is already pulled in. It also
contains a pull from 3.8-rc4 to base async synchronization
reimplementation on top of async fixes there.

-Remember Tejun Heo? Here he is again with cgroup changes:

These are cgroup changes for 3.9-rc1. Nothing too drastic.

* Removal of synchronize_rcu() from userland visible paths.

* Various fixes and cleanups from Li.

* cgroup_rightmost_descendant() added which will be used by cpuset
changes (it will be a separate pull request).

-Even more stuff from him, here are cpuset changes:

* Synchornization has seen a lot of changes with focus on decoupling
cpuset synchronization from cgroup internal locking. After this
change, there only remain a couple of mostly trivial dependencies on
cgroup_lock outside cgroup core proper. cgroup_lock is scheduled to
be unexported in this devel cycle. This will finally remove the
fragile locking order around cgroup (cgroup locking wants to /
should be one of the outermost but yet has been acquired from deep
inside individual controllers).

* At this point, Li is most knowlegeable with cpuset and taking over
the maintainership of cpuset.

This depends on cgroup_rightmost_descendant() implemented in
cgroup/for-3.9 and this pull request assumes that cgroup/for-3.9 is
already pulled in.

-Mike Turquette has clk changes:

The common clock framework changes for 3.9 are almost entirely fixes.
None are dire enough to be Cc’d to stable which may be interpreted to
mean that users of the framework are reaching stability. Lots of new
adoption of this framework is via DeviceTree data and that comes through
the respective architecture and platform trees instead of through the
clk framework tree. Two new features are improved debugfs output and an
improvement to how DT clocks are initialized by reusing a common method.

-Ben Myers updates XFS:

Please pull these XFS updates for 3.9-rc1. Here there are
primarily fixes for regressions and bugs, but there are a few cleanups
too. There are fixes for compound buffers, quota asserts, dir v2 block
compaction, mount behavior, use-after-free with AIO, swap extents, an
unmount hang, speculative preallocation, write verifiers, the allocator
stack switch, recursion on xa_lock, an xfs_buf_find oops, and a memory
barrier in xfs_ifunlock. Cleanups include the removal of unused
XFS_TRANS_DEBUG routines, removal of obsolete simple_strto*, removal of
boolean_t, removal of the rest of boolean_t, and replacement of a
hardcoded 128 with the log header size when calculating log space

-Tejun Heo (!) has workqueue core changes:

This is pull request for workqueue core changes. A lot of
reorganization is going on mostly to prepare for worker pools with
custom attributes so that workqueue can replace custom pool
implementations in places including writeback and btrfs and make CPU
assignment in crypto more flexible.

workqueue evolved from purely per-cpu design and implementation, so
there are a lot of assumptions regarding being bound to CPUs and even
unbound workqueues are implemented as an extension of the model -
workqueues running on the special unbound CPU. Bulk of changes this
round are about promoting worker_pools as the top level abstraction
replacing global_cwq (global cpu workqueue). At this point, I’m
fairly confident about getting custom worker pools working pretty
soon and ready for the next merge window.

Lai’s patches are replacing the convoluted mb() dancing workqueue has
been doing with much simpler mechanism which only depends on
assignment atomicity of long. For details, please read the commit
message of 0b3dae68ac (“workqueue: simplify is-work-item-queued-here
test”). While the change ends up adding one pointer to struct
delayed_work, the inflation in percentage is less than five percent
and it decouples delayed_work logic a lot more cleaner from usual work
handling, removes the unusual memory barrier dancing, and allows for
further simplification, so I think the trade-off is acceptable.

There will be two more workqueue related pull requests and there are
some shared commits among them. I’ll write further pull requests
assuming this pull request is pulled first.

-Ben Hutchings announces stable kernel 3.2.39.

-Dmitry Torokhov has input updates:

[...] 2 new touchpad drivers – Cypress APA I2C Trackpad and
Cypress PS/2 touchpad and a big update to ALPS driver from Kevin
Cernekee that adds support for “Rushmore” touchpads and paves way for
adding support for “Dolphin” touchpads.

There is also a new input driver for Goldfish emulator and also Android
keyreset driver was folded into SysRq code.

A few more drivers were updated with device tree bindings and others
got some small cleanups and fixes.

-Miklos Szeredi has fuse updates:

The biggest part of this pull request is a patch series from Maxim
Patlasov to optimize scatter-gather direct IO. There’s also the
addition of a “readdirplus” API, poll events and various fixes and

There’s a one line change outside of fuse to mm/filemap.c which makes
the argument of iov_iter_single_seg_count() const, required by Maxim’s

-Ingo Molnar and x86/platform:

* Support for the Technologic Systems TS-5500 platform,
by Vivien Didelot

* Improved NUMA support on AMD systems:

Add support for federated systems where multiple memory
controllers can exist and see each other over multiple PCI
domains. This basically means that AMD node ids can be more
than 8 now and the code handling this is taught to
incorporate PCI domain into those IDs.

* Support for the Goldfish virtual Android emulator,
by Jun Nakajima, Intel, Google, et al.

* Misc fixlets.

kernel news – 15.02.2013

Posted: February 15, 2013 in kernel

-Roger Quadros has fixes for ehci-omap aimed at 3.9, also Roger has a pull
request titled “OMAP USB Host cleanup for 3.9″, and speaking of which,
here’s Tomi Valkeinen with omapdss fixes for 3.8:

It’d be great if these two late fixes would still make it into 3.8. The other
one fixes ARM kernel compilation when using ‘allyesconfig’, and the other makes
DPI displays function again on OMAP3630 boards.

-Bjorn Helgaas announces a PCI update for 3.8:

This is another fix for v3.8. It fixes an oops that happens when a
Thunderbolt adapter is unplugged (remove device, poll for PME events on
no-longer-existing device, oops).

-H. Peter Anvin has one more x86 fix in the “please don’t brick my Samsung”

efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by “noefi” boot parameter

-Greg KH announces three new stable kernels: 3.7.8, 3.4.31 and 3.0.64 .

-David Miller has a few SPARC fixes:

A couple small fixes for sparc including some THP brown-paper-bag

1) During the merging of all the THP support for various architectures,
sparc missed adding a HAVE_ARCH_TRANSPARENT_HUGEPAGE to it’s Kconfig,

2) Sparc needs to be mindful of hugepages in get_user_pages_fast().

3) Fix memory leak in SBUS probe, from Cong Ding.

4) The sunvdc virtual disk client driver has a test of the bitmask of
vdisk server supported operations which was off by one bit.

-Arnaldo Carvalho de Melo has perf/core improvements and fixes:

. Fix cleanup in case of kzalloc failure, from Daniel Baluta.

. Limit unwind support to x86 archs, fix from Jiri Olsa.

. Initial GTK+ annotate browser, from Namhyung Kim.

. Fix build with bison 2.3 and older, from Vinson Lee.

-Konrad Rzeszutek Wilk has a Xen pull request for Jens Axboe, like this:

Hey Jens,

Please git pull the following branch:

git:// stable/for-jens-3.8

which has fixes to the blkback that I hope you can push to Linus for 3.8.
The one that is quite vicious is the “xen-blkfront: drop the use of
llist_for_each_entry_safe”. It is a fix to re-do an “free-ing” loop – otherwise
we hit a GCC 4.1.1 bug (so RHEL5 based) that turns the loop in an unbound one.

kernel news – 14.02.2013

Posted: February 14, 2013 in kernel

-Nicolas Ferre and at91:

More DT modifications for AT91. Now that I am sure that
the drivers modification are picked-up by MTD.
Changes the use ECC to hardware ECC (named PMECC) for
SoCs that are using it and their associated Evaluation Kits:
- at91sam9x5-ek
- at91sam9n12-ek

-H. Peter Anvin has a final batch of x86 fixes for 3.8:

One (hopefully) last batch of x86 fixes. You asked for the patch by
patch justifications, so here they are:

x86, MCE: Retract most UAPI exports

This one unexports from userspace a bunch of definitions which
should never have been exported. We really want to create an
accidental legacy here.

x86, doc: Add a bootloader ID for OVMF

This is a documentation-only patch, just recording the official
assignment of a boot loader ID.

x86: Do not leak kernel page mapping locations

Security: avoid making it needlessly easy for user space to probe
the kernel memory layout.

x86/mm: Check if PUD is large when validating a kernel address

Prevent failures using /proc/kcore when using 1G pages.

x86/apic: Work around boot failure on HP ProLiant DL980 G7 Server systems

Works around a BIOS problem causing boot failures on affected hardware.

-David Miller has a networking pull request:

This is primarily to get those r8169 reverts sorted, but other
fixes have accumulated meanwhile.

1) Revert two r8169 changes to fix suspend/resume for some users,
from Francois Romieu.

2) PCI dma mapping errors in atl1c are not checked for and this cause
hard crashes for some users, from Xiong Huang.

3) In 3.8.x we merged the removal of the EXPERIMENTAL dependency for
‘dlm’ but the same patch for ‘sctp’ got lost somewhere, resulting
in the potential for build errors since there are cross dependencies.
From Kees Cook.

4) SCTP’s ipv6 socket route validation makes boolean tests incorrectly,
fix from Daniel Borkmann.

5) mac80211 does sizeof(ptr) instead of (sizeof(ptr) * nelem), from Cong

6) arp_rcv() can crash on shared non-linear packets, from Eric Dumazet.

7) Avoid crashes in macvtap by setting ->gso_type consistently in ixgbe,
qlcnic, and bnx2x drivers. From Michael S. Tsirkin and Alexander Duyck.

8) Trinity fuzzer spots infinite loop in __skb_recv_datagram(), fix from
Eric Dumazet.

9) STP protocol frames should use high packet priority, otherwise an
overloaded bridge can get stuck. From Stephen Hemminger.

10) The HTB packet scheduler was converted some time ago to store
internal timestamps in nanoseconds, but we don’t convert back into
psched ticks for the user during dumps. Fix from Jiri Pirko.

11) mwl8k channel table doesn’t set the .band field properly, resulting
in NULL pointer derefs. Fix from Jonas Gorski.

12) mac80211 doesn’t accumulate channels properly during a scan so we
can downgrade heavily to a much less desirable connection speed.
Fix from Johannes Berg.

13) PHY probe failure in stmmac can result in resource leaks and
double MDIO registery later, from Giuseppe CAVALLARO.

14) Correct ipv6 checksumming in ip6t_NPT netfilter module, also fix
address prefix mangling, from YOSHIFUJI Hideaki.

-Konrad Rzeszutek Wilk has two xen fixes for -rc7:

- A simple bug-fix for redundant NULL check.
– CVE-2013-0228/XSA-42: x86/xen: don’t assume %ds is usable in xen_iret for 32-bit PVOPS.

-Chanwoo Choi has patch set in the form of a pull request for extcon:

This patchset add a few new feature of extcon-max8997
and fix minor issue of extcon-max8997/77693.

Update extcon-max8997 driver
- Consolidate duplicate code
- Set default uart/usb path for internal line of muic device
- Set default ADC debounce time
- Use wq to check cable state after certain delay
- Code clean to move defined constant to header file
- Make max8997_extcon_cable static

Update extcon-max77693 driver
- Make max77693_extcon_cable static

-Daniel Vetter has fb helper cleanups:

This is the drm fb helper cleanup, mostly motivated by strange things I’ve
seen in my locking rework and the i915 modeset revamp. Compared to the
original submission I’ve reinstated the setup flexibility you’d like to
retain, kerneldoc has been reviewed by Laurent Pinchart and Rob Clark
reviewed the code changes.

Quick overview of the changes:
- Cleaned-up library interface for drivers using the fb helper, also
simplified the fb allocation callback since no driver supported
reallocating the fb on-the-fly. And the fbdev/fbcon code keeps pointers
to the old mapping around anyway, so reallocating backing storage will
be much more work.
- No longer call the crtc helper “disable everything” function at init
time, but allow drivers to do so. Motivated by i915′s fastboot effort
and allows us to drop a bunch of noop dummy functions just to avoid
calling NULL function pointers from i915.ko.
- Properly clear old state when doing modeset calls, the fb helper left
some old modes in there and unconditionally set an fb (even when
disabling a crtc). The crtc helpers didn’t care, but i915 modeset code
can now drop a few special cases.
- Full kerneldoc for the fb helper. Yay!
- My version of the “don’t sleep in panic ->unblank calls”. The patch is
already in -mm, I guess Andrew can drop it as soon as this pull lands in

Imo the fb helper looks now rather nice, and there’s only a few pieces
left to fix up further:
- Removing the duplicated gamma handling.
- Reviewing the locking in the panic/sysrq/kgdb handlers some more.
- Maybe move some function pointers only used by the fb helper from the
crtc helper structs to the fb helper structs. Currently those vtable
misplacements are the last thing tying fb/crtc helpers together.
- Locking around init/teardown still looks a bit fishy. But that ties into
the console_lock madness, so I’m not volunteering

-Paul Gortmaker has a somewhat historical pull request: the IBM PC-XT
MFM 8-bit ISA hard disk driver is off from drivers/block/xd.c :


Please pull the following to get the removal of the original IBM PC-XT
hard disk driver from the block layer (drivers/block/xd.c).

As near as I can tell, it hasn’t seen a run time fix in over a dozen
years, and with drive sizes of 10-20MB, and performance of about 128kB/s
maximum, it is no surprise that it has been completely unused for well
over a decade.

The removal was originally posted[1] well over a month ago, and since
then, there has been nobody objecting to the removal, aside from someone
who had mistakenly confused it with a completely different driver (hd.c)

I’ve done a test merge followed by an allmodconfig/allyesconfig for
x86-64 on the “for-next” branch of:


to ensure that there was no Makefile/Kconfig fallout since the 3.8-rc2
the original commit was created and tested on.