Archive for the ‘kernel’ Category

kernel news – 06.06.2013

Posted: June 6, 2013 in kernel

-Dave Airlie has drm fixes:

regression fixers for the big 3:
nouveau: hdmi audio, dac load detect, s/r regressions fixed
radeon: long standing system hang fixed, hdmi audio and rs780 fast fb
intel: one old regression, a WARN removal, and a stop X dying fix

otherwise one mgag200 fix, a couple of arm build fixes, and a core use
after free fix.


kernel news – 21.05.2012

Posted: May 21, 2013 in kernel

-Guenter Roeck has hwmon fixes for -rc2:

This pull request adds two more patches to the request I sent out last week.
If there is a reason for not accepting it, I would appreciate if you would
let me know to give me a chance to correct it.

-Konrad Rzeszutek Wilk has xen-stable fixes for -rc1:

* Regression fix in xen privcmd fixing a memory leak.
* Add Documentation for tmem driver.
* Simplify and remove code in the tmem driver.
* Cleanups.

-John W. Linville has a wireless pull request:

This pull request is intended for the 3.10 series. It contains a
variety of fixes for problems discovered during the merge window and
after 3.10-rc1.

For the mac80211 bits, Johannes says the following:

“This is what I have:
* a patch from Felix to fix RCU usage in his rate table code
* a patch from Ilan to add the wdev id to some notifications so they can
actually be used by userspace
* Sasha Levin found an issue in how hwsim handles devices
* a fix for a bug in the wiphy_register() error path that’s been there forever
* three fixes for WoWLAN
* AP mode frame matching was erroneously giving frames to all virtual AP
interfaces (reported by Jouni)
* a fix for HT handling in my CSA changes, found by Sujith
* a fix for some locking simplifications gone wrong
* Ben Greear found more cfg80211/mac80211 state confusion
* and a fix for another bug found by Jouni: local state changes need to be
reported by mac80211 to cfg80211 so it disconnects properly.”

And for the iwlwifi bits, he says:

“I have fixes for a firmware crash during resume, multicast RX,
aggregation and a workaround for a firmware scanning bug.”

Along with those…

Albert Pool adds a USB ID to the rtl8192cu driver.

Arend van Spriel restores a driver option support flag that had been
removed from 3.9 due to a bug in that version of the driver.

Felix Fietkau fixes a trio of ath9k issues with a series of small

Geert Uytterhoeven provides a Kconfig fix for ath9k (which you also
merged, so it isn’t in the diff here).

Larry Finger gives us a fix for a build warning on big-endian systems
for rtlwifi.

Rafał Miłecki adds some core IDs to the bcma driver.

Sujith Manoharan fixes a module unloading crash in ath9k, and corrects
some calibration settings for AR9485.

-Linus Torvalds announces Linux kernel 3.10-rc2:

So it’s been just over a week, and -rc2 is out.

For being an -rc2, it’s not unreasonably sized, but I did take a few
pulls that I wouldn’t have taken later in the rc series. So it’s not
exactly small either. We’ve got arch updates (PPC, MIPS, PA-RISC),
we’ve got driver fixes (net, gpu, target, xen), and we’ve got
filesystem updates (btrfs, ext4 and cepth – rbd).

And various random small fixes. Shortlog appended, it should get
smaller and more readable going forward.

-Dave Airlie has radeon and nouveau DRM fixes:

This is just a set of nouveau and radeon fixes, the nouveau ones fix some
suspend/resume regressions since use of copy engines and some fixes for Z
compression on some newer chipsets.

I’ve got another pull request for some new AMD radeon hw that shouldn’t
touch any existing hw support that I’ll send after this, its based on this
one, so pulling it will get this + that.
Since I know its outside the merge window, but since this is new hw I
thought I’d try and provoke the new hw exception, it just fills in the
blanks in the driver for the new AMD sun and hainan chipsets. The pull is
based on the previous one with the changelog just for the new pieces.

-Steven Rostedt announces the release of kernel, here is the patch:

-Martin Schwidefsky has s390 updates, and that’s about it for today.

kernel news – 16.05.2013

Posted: May 16, 2013 in kernel

-Thomas Gleixner has core, perf, timer and x86 fixes:

* Two fixlets for the fallout of the generic idle task conversion
* Documentation update
* Cure for not using zalloc in the first place, which leads to
random crashes with CPUMASK_OFF_STACK.

* Revert a user space visible change which broke udev

* Add a missing cpu_online early return introduced by the new
full dyntick conversions

* Plug a long standing race in the timer wheel cpu hotplug
code. Sigh…

* Cleanup NOHZ per cpu data on cpu down to prevent stale data
on cpu up.
* Fix for a task exit cleanup race caused by a missing a preempt

* Cleanup of the event notification functions with a massive
reduction of duplicated code
* Fix for a CPU hot-add deadlock in microcode update code

* Fix for idle consolidation fallout

* Documentation update for initial kernel direct mapping

-Nicholas A. Bellinger has target fixes for -rc2:

A handful of fixes + minor changes this time around, along with one
important >= v3.9 regression fix for IBLOCK backends. The highlights

– Use FD_MAX_SECTORS in FILEIO for block_device as well as files (agrover)
– Fix processing of out-of-order CmdSNs with iSBD driver (shlomo)
– Close long-standing target_put_sess_cmd() vs. core_tmr_abort_task() race
with the addition of kref_put_spinlock_irqsave() (joern + greg-kh)
– Fix IBLOCK WCE=1 + DPOFUA=1 backend WRITE regression in >= v3.9 (nab + bootc)

Note these four patches are CC’ed to stable.

Also, there is still some work left to be done on the active I/O
shutdown path in target_wait_for_sess_cmds() used by tcm_qla2xxx +
ib_isert fabrics that is still being discussed on the list, and will
hopefully be resolved soon.

kernel news – 14.05.2013

Posted: May 14, 2013 in kernel

-David Miller and networking:

Several small bug fixes all over:

1) be2net driver uses wrong payload length when submitting MAC list get
requests to the chip. From Sathya Perla.

2) Fix mwifiex memory leak on driver unload, from Amitkumar Karwar.

3) Prevent random memory access in batman-adv, from Marek Lindner.

4) batman-adv doesn’t check for pskb_trim_rcsum() errors, also from Marek

5) Fix fec crashes on rapid link up/down, from Frank Li.

6) Fix inner protocol grovelling in GSO, from Pravin B Shelar.

7) Link event validation fix in qlcnic from Rajesh Borundia.

8) Not all FEC chips can support checksum offload, fix from Shawn Guo.

9) EXPORT_SYMBOL + inline doesn’t make any sense, from Denis Efremov.

10) Fix race in passthru mode during device removal in macvlan, from
Jiri Pirko.

11) Fix RCU hash table lookup socket state race in ipv6, leading to NULL
pointer derefs, from Eric Dumazet.

12) Add several missing HAS_DMA kconfig dependencies, from Geert

13) Fix bogus PCI resource management in 3c59x driver, from Sergei

14) Fix info leak in ipv6 GRE tunnel driver, from Amerigo Wang.

15) Fix device leak in ipv6 IPSEC policy layer, from Cong Wang.

16) DMA mapping leak fix in qlge from Thadeu Lima de Souza Cascardo.

17) Missing iounmap on probe failure in bna driver, from Wei Yongjun.

-Helge Deller announces parisc updates:

The second round of parisc updates for 3.10 includes build fixes and
enhancements to utilize irq stacks, fixes SMP races when updating PTE
and TLB entries by proper locking and makes the search for the correct
cross compiler more robust on Debian and Gentoo.

-Benjamin Herrenschmidt has powerpc fixes (merge branch):

Here are some more powerpc fixes to apply to 3.10. This is mostly bug
fixes (some of them regressions, some of them I deemed worth merging
now) along with some patches from Li Zhong hooking up the new
context tracking stuff (for the new full NO_HZ)

kernel news – 13.05.2013

Posted: May 13, 2013 in kernel

-Greg KH announces the release of kernels 3.0.78, 3.4.45, 3.8.13
(“I’m announcing the release of the 3.8.13 kernel.

NOTE, this is the LAST 3.8.y kernel release, please move to the 3.9.y
kernel series at this time. It is end-of-life, dead, gone, buried, and
put way behind us never to be spoken of again. Seriously, move on, it’s
just not worth it anymore.

And for that specific two-letter hardware company that was insisting in
public that I would be maintaining the 3.8.y kernel as a long-term
kernel so that “you will do our maintenance work for us, for free,”
please see figure one.”) and 3.9.2.

-virtio/lguest fixes are announced by Rusty Russell.

-Mark Brown has a small regmap pull request for 3.10:

A couple of small fixes for the debugfs code – make sure we report
hardware errors back up if we encounter them and fix the display of
register maps that make use of striding.

-Dave Airlie has a few DRM fixes :

Hi Linus,

just a few straggling fixes I hoovered up, and an intel fixes pull from
Daniel which fixes some regressions, and some mgag200 fixes from Matrox.

-Linus Torvalds announces 3.10-rc1:

So this is the biggest -rc1 in the last several years (perhaps ever)
at least as far as counting commits go, even if not necessarily in
actual lines (I didn’t check the statistics on that).

Which was unexpected, because while linux-next was fairly big, it
wasn’t exceptionally so. I’m sure Stephen Rothwell will talk about the
statistics of commits that weren’t in -next, we’ll see if that was the

Anyway, despite the large number of commits, hopefully it’s all
boringly straigthforward. Sure.

Now, even normally, there’s no way to list all the changes, much less
so when it’s an unusually large -rc1. But I can do my “merge shortlog”
again, and it’s worth mentioning (again) that the name attributed to
the merge is *not* necessarily the author of any of the code, it’s
literally just the person who emailed me the pull request. So you can
see this as an approximation of “first-level maintainership” or
something, although even that is somewhat misleading since some of
these things are really done by groups and then there’s one person who
end up sending me the end result.

But it’s somewhat readable, and gives you a reasonable idea of what is
going on. A better idea can be gotten by looking at git directly,
especially since the merge commits often do contain a better
description of what happened. Not that all submaintainers necessarily
always send me that, but most of the merges actually do have
human-readable background information.

It’s possible that I missed something. This really was a busier merge
window than usual. Holler if so,


kernel news – 10.05.2013

Posted: May 10, 2013 in kernel

-Firewire fixes by Stefan Richter:

– fix controller removal when controller is in suspended state
– fix video reception on VIA VT6306 with gstreamer, MythTV, and maybe dv4l
– fix a startup issue with Agere/LSI FW643-e2
– error logging improvements and other small updates

-David Woodhouse has “misc minor cleanups” for 3.10:

– Artem’s removal of dead code continues (RPX, MBX860)
– Two krealloc() abuse fixes

This is some miscellaneous cleanups that don’t really belong anywhere
else (or were ignored), that have been sitting in linux-next for some
time. Two of them are fixes resulting from my audit of krealloc() usage
that don’t seem to have elicited any response when I posted them, and
the other three are patches from Artem removing dead code.

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

These are three urgent ACPICA fixes two of which fix regressions introduced
earlier during this merge window and the third one fixes a potential buffer
overflow that has been there for quite a while (fortunately, it’s not easy
to trigger).

-Chris Mason and btrfs:

These are mostly fixes. The biggest exceptions are Josef’s skinny
extents and Jan Schmidt’s code to rebuild our quota indexes if they get
out of sync (or you enable quotas on an existing filesystem).

The skinny extents are off by default because they are a new variation
on the extent allocation tree format. btrfstune -x enables them, and
the new format makes the extent allocation tree about 30% smaller.

I rebased this a few days ago to rework Dave Sterba’s crc checks on the
super block, but almost all of these go back to rc6, since I though 3.9 was
due any minute.

The biggest missing fix is the tracepoint bug that was hit late in 3.9.
I ran into problems with that in overnight testing and I’m still
tracking it down. I’ll definitely have that fixed for rc2.

-ecryptfs updates as announced by Tyler Hicks:

Improve performance when AES-NI (and most likely other crypto accelerators) is
available by moving to the ablkcipher crypto API. The improvement is more
apparent on faster storage devices. There’s no noticeable change when hardware
crypto is not available.

kernel news – 06.04.2013

Posted: May 6, 2013 in kernel

-Gleb Natapov announces KVM updates for 3.10 merge window:

Highlights of the updates are:

– new emulated device API
– legacy device assignment is now optional
– irqfd interface is more generic and can be shared between arches
– VMCS shadow support and other nested VMX improvements
– APIC virtualization and Posted Interrupt hardware support
– Optimize mmio spte zapping
– BookE: in-kernel MPIC emulation with irqfd support
– Book3S: in-kernel XICS emulation (incomplete)
– Book3S: HV: migration fixes
– BookE: more debug support preparation
– BookE: e6500 support
– reworking of Hyp idmaps
– ioeventfd for virtio-ccw

And many other bug fixes, cleanups and improvements.

-There is a MFD pull request from Samuel Ortiz targetting also 3.10:

Hi Linus,

This is the MFD pull request for the 3.10 merge window. There is one merge
conflict with your tree, and I fixed it for reference in my mfd-3.10-merge

For 3.10 we have a few new MFD drivers for:

– The ChromeOS embedded controller which provides keyboard, battery and power
management services. This controller is accessible through i2c or SPI.

– Silicon Laboratories 476x controller, providing access to their FM chipset
and their audio codec.

– Realtek’s RTS5249, a memory stick, MMC and SD/SDIO PCI based reader.

– Nokia’s Tahvo power button and watchdog device. This device is very similar
to Retu and is thus supported by the same code base.

– STMicroelectronics STMPE1801, a keyboard and GPIO controller supported by
the stmpe driver.

– ST-Ericsson AB8540 and AB8505 power management and voltage converter
controllers through the existing ab8500 code.

Some other drivers got cleaned up or improved. In particular:

– The Linaro/STE guys got the ab8500 driver in sync with their internal code
through a series of optimizations, fixes and improvements.

– The AS3711 and OMAP USB drivers now have DT support.

– The arizona clock and interrupt handling code got improved.

– The wm5102 register patch and boot mechanism also got improved.

-Joerg Roedel has IOMMU updates:

The updates are mostly about the x86 IOMMUs this time. Exceptions are
the groundwork for the PAMU IOMMU from Freescale (for a PPC platform)
and an extension to the IOMMU group interface. On the x86 side this
includes a workaround for VT-d to disable interrupt remapping on broken
chipsets. On the AMD-Vi side the most important new feature is a kernel
command-line interface to override broken information in IVRS ACPI
tables and get interrupt remapping working this way. Besides that there
are small fixes all over the place.

-Ingo Molnar has timers-nohz updates:

his tree from Frederic Weisbecker adds a new, (exciting! core kernel
feature to the timer and scheduler subsystems: ‘full dynticks’, or

This feature extends the nohz variable-size timer tick feature from idle
to busy CPUs (running at most one task) as well, potentially reducing the
number of timer interrupts significantly.

This feature got motivated by real-time folks and the -rt tree, but the
general utility and motivation of full-dynticks runs wider than that:

– HPC workloads get faster: CPUs running a single task should be able to
utilize a maximum amount of CPU power. A periodic timer tick at HZ=1000
can cause a constant overhead of up to 1.0%. This feature removes that
overhead – and speeds up the system by 0.5%-1.0% on typical distro
configs even on modern systems.

– Real-time workload latency reduction: CPUs running critical tasks
should experience as little jitter as possible. The last remaining
source of kernel-related jitter was the periodic timer tick.

– A single task executing on a CPU is a pretty common situation,
especially with an increasing number of cores/CPUs, so this feature
helps desktop and mobile workloads as well.

The cost of the feature is mainly related to increased timer-reprogramming
overhead when a CPU switches its tick period, and thus slightly longer
to-idle and from-idle latency.

Configuration-wise a third mode of operation is added to the existing two
NOHZ kconfig modes:

– CONFIG_HZ_PERIODIC: [formerly !CONFIG_NO_HZ], now explicitly named as a
config option. This is the traditional Linux periodic tick design:
there’s a HZ tick going on all the time, regardless of whether a CPU is
idle or not.

– CONFIG_NO_HZ_IDLE: [formerly CONFIG_NO_HZ=y], this turns off the
periodic tick when a CPU enters idle mode.

– CONFIG_NO_HZ_FULL: this new mode, in addition to turning off the tick
when a CPU is idle, also slows the tick down to 1 Hz (one timer
interrupt per second) when only a single task is running on a CPU.

The .config behavior is compatible: existing !CONFIG_NO_HZ and
CONFIG_NO_HZ=y settings get translated to the new values, without the user
having to configure anything. CONFIG_NO_HZ_FULL is turned off by default.

This feature is based on a lot of infrastructure work that has been
steadily going upstream in the last 2-3 cycles: related RCU support and
non-periodic cputime support in particular is upstream already.

This tree adds the final pieces and activates the feature. The pull
request is marked RFC because:

– it’s marked 64-bit only at the moment – the 32-bit support patch is
small but did not get ready in time.

– it has a number of fresh commits that came in after the merge window.
The overwhelming majority of commits are from before the merge window,
but still some aspects of the tree are fresh and so I marked it RFC.

– it’s a pretty wide-reaching feature with lots of effects – and while
the components have been in testing for some time, the full combination
is still not very widely used. That it’s default-off should reduce its
regression abilities and obviously there are no known regressions with
CONFIG_NO_HZ_FULL=y enabled either.

– the feature is not completely idempotent: there is no 100% equivalent
replacement for a periodic scheduler/timer tick. In particular there’s
ongoing work to map out and reduce its effects on scheduler
load-balancing and statistics. This should not impact correctness
though, there are no known regressions related to this feature at this

– it’s a pretty ambitious feature that with time will likely be enabled
by most Linux distros, and we’d like you to make input on its
design/implementation, if you dislike some aspect we missed. Without
flaming us to crisp!

Future plans:

– there’s ongoing work to reduce 1Hz to 0Hz, to essentially shut
off the periodic tick altogether when there’s a single busy task on a
CPU. We’d first like 1 Hz to be exposed more widely before we go for
the 0 Hz target though.

– once we reach 0 Hz we can and remove the periodic tick assumption from
nr_running>=2 as well, by essentially interrupting busy tasks only as
frequently as the sched_latency constraints require us to do – once
every 4-40 msecs, depending on nr_running.

I am personally leaning towards biting the bullet and doing this in v3.10,
like the -rt tree this effort has been going on for too long – but the
final word is up to you as usual.

More technical details can be found in Documentation/timers/NO_HZ.txt.

-pwm updates for -rc1 from Thierry Reding:

Nothing very exciting this time around. A couple of bug fixes and a lot
of cleanup across the board. The DaVinci 8xx family of SoCs now use the
same driver as the AM33xx family.

Many thanks to Axel Lin and Jingoo Han who have done a great job fixing
various bugs and inconsistencies.