Chapter 8. Hardware Enablement

Additional device IDs added to Intel NVMe driver

This patch adds the device IDs 0x0a53 and 0x0a54 to the Intel NVMe driver. This allows alignment of the I/O to the stripe size specified in the vendor specific controller Identify field, which can significantly improve performance. (BZ#1372088)

Fix for continuous probe of 82599ES when no SFP is installed

Using an Intel 82599ES card without SFP modules installed, could lead to excessive polling of the hardware and performance issues. The ixgbe driver has been updated to prevent this happening and to respond correctly should an SFP added at a later date. (BZ#1304849)

The bnx2x driver needs less time to recover after a parity event

Previously, the bnx2x driver waited for transmission completions when recovering from a parity event, which substantially increased the recovery time. With this update, bnx2x does not wait for transmission completion in the described circumstances. As a result, the recovery of bnx2x after a parity event now takes less time. (BZ#1300681)

Fix for inaccessible CIFS shares when using kerberos and multiuser

When reconnecting to a share that requires signed authentication, it is necessary to ensure that the client is able to sign requests if required. This patch ensures that signing will happen correctly. (BZ#1323053)

Firmware hangs with qlcnic driver

To prevent hangs, the driver has been updated to ensure that all writes are complete before the hardware fetches any pending transmission descriptors (BZ#1342659)

Updated microcode for AMD Processors

This release includes version(84F) of the AMD microcode, resolving issues with AMD Family Processors from 10h to 15h inclusively. (BZ#1322525)

Hang affecting raid1d when handling a mix of read and write errors

When hot removing or adding devices from a RAID1 array, the raid1d daemon could deadlock and become unresponsive in the freeze_array() function. This update includes bio_end_io_list writes in the nr_queued variable to prevent the hang from occurring. (BZ#1320595)

A race condition no longer occurs with IMSM RAID arrays running an mdadm reshape operation

With Intel Matrix Storage Manager (IMSM) RAID arrays running an mdadm reshape operation, a race condition could previously allow a second reshape to be launched on the same array before the first operation was completed, and the reshaping operation did not complete correctly. With this update, the race condition no longer occurs, and a second reshape operation cannot be started before the first operation is completed. (BZ#1340768)

Resolved kernel panic with Intel x520 FCoE hardware

Because FIP selection time was being reset for every FCoE controller advertisement received, FCF selection was being prevented.
As a result, when using FCoE as a root fs, the kernel would drop to a dracut shell with a panic message during boot.
This fix resets the FIP selection timer for the first authenticated controller advertisement only, allowing FCF selection to proceed. (BZ#1230719)

Resolution for large memory leak when using O_DIRECT I/O on an md device with DIX enabled

To prevent un-reclaimed memory, block IO integrity data is explicitly freed during the callback when bio is freed. (BZ#1268434)

SMM thermal interrupts are now handled properly

On some systems, enabling hardware p-states could cause a hang during boot due to improper handling of thermal interrupts from the SMM (System Management Mode). This patch allows the kernel to correctly handle the thermal interrupts. (BZ#1327715)

The kernel no longer panics after running the ipmitool command

In some cases, running the ipmitool command caused a kernel panic due to a race condition in the ipmi message handler. This update fixes the race condition, and the kernel panic no longer occurs in the described scenario. (BZ#1347189)

The operating system with SRP devices configured for auto startup on boot now boots correctly

Previously, a kernel crash on boot sometimes occurred when the operating system had the SCSI Remote Protocol (SRP) devices configured for auto startup on boot. This update fixes the srp_queuecommand() function, and the operating system now boots without problems in the described circumstances. (BZ#1321094)

The kernel no longer panics after running the halt -p command

When shutting down the system by running the halt -p command, a kernel panic occurred due to a conflict between the kernel offlining CPUs and the sched command, which used the sched group and the sched domain data without first checking the data. The underlying source code has been fixed by adding a check to avoid the conflict. As a result, the described scenario no longer produces a kernel panic. (BZ#1313035)

The ixgbe driver has been updated to the latest upstream version

This fix resoves a potential problem with stale pool mappings, which can result in MAC addresses being inadvertently cleared. (BZ#1346399)

Resolution for unavailability of shared IPMI on Intel 10G network cards

This updated driver ensures that the IPMI interface remains available when the network ports are powered down. (BZ#1316845)

Fix for kernel panic with HPSA drivers

Some configurations of HPSA devices caused hardware to be set offline incorrectly, when the driver should have waited for existing IO to complete, additional NMI code has been added to prevent this. (BZ#1083110)

Resolution for multiple ACPI errors on Intel CPUs

This fix addresses both ACPI namespace lookup errors and ACPI AE_AML_INFINITE_LOOP errors being repeatedly logged on some newer Intel CPUs. (BZ#1324697)

Resolution for VPD error messages in dmesg.

Some hardware incorrectly identifies itself as supporting VPD (Vital Product Data) information, when in fact it does not. This fix ensures the kernel now works around most cases of devices with poor or malformed VPD capabilities. (BZ#1289559)

Fixed performance problems when using Intel Xeon Coprocessor x100 product family and more than 255 CPUs

When Red Hat Enterprise Linux 6 was booted on a computer with Intel Xeon Coprocessor x100 Product Family with more than 255 CPUs, the kernel did not enumerate processor table entries in the correct order. Consequently, the system's performance was suboptimal. With this update, a patchset has been provided that ensures that the aforementioned entries are handled in the correct order, thus fixing this bug. (BZ#1247218)

Incorrect paths in scripts for IBM RSCT (Reliable Scalable Cluster Technology)

A bug in the update scripts for IBM RSCT caused the machine type and serial number to not be updated after migration. These paths have been corrected to enable migration and update. (BZ#1348279)

The weak-modules function now checks external symbols before failing a module as not compatible

When adding a module with a different version number to the current kernel, weak-modules checks for exported symbols in that kernel.
In some cases, the symbols required are provided by other modules. This fix ensures that the symbols provided by other modules are checked before marking the new module as incompatible. (BZ#1284935)

Fix for TRIM support being disabled on large RAID4/5/6 devices.

Due to an error calculating the limit of TRIM support, it was possible that larger RAID devices would disable TRIM.
With this update, max_discard_sectors and the volume stripe size are compared using the correct numerical units. TRIM support now works as expected. (BZ#1295969)

Resolution for VPD error messages in dmesg.

Some hardware incorrectly identifies itself as supporting VPD (Vital Product Data) information, when in fact it does not. This fix ensures the kernel now works around most cases of devices with poor or malformed VPD capabilities. (BZ#1324680)

Resolution for the alsaloop daemon consuming 100% CPU

Under some configurations, the alsaloop daemon could improperly use all CPU time for one or more CPUs. This fix resolves the issue by the addition of new error checking code. (BZ#1108292)

Resolution for IBM Power systems showing incorrect network link state

Using the ip addr command on IBM Power systems would incorrectly show some network hardware as having a link state of UNKNOWN. This has been fixed. (BZ#1089134)

Problem with obtaining Kerberos credentials after the session owner logs out no longer occurs

When mounting a Common Internet File System (CIFS) share using Kerberos authentication, the session key was previously revoked when the user owning the session logged out. Consequently, long running daemon processes started by the session were not able to use the request_key mechanism to obtain Kerberos credentials. With this update, the kernel packages have been fixed by creating a new keyring used to cache the CIFS Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO) upcalls. As a result, the session key no longer affects the SPNEGO keys, and the problem with obtaining Kerberos credentials no longer occurs. (BZ#1267754)

Resolution for dropped VLAN frames when using the e1000 driver

The bridge driver was failing to pass vlan registrations to the underlying physical devices. This resulted in frames for any vlans attached to a bridge were being lost.
The driver now calls vlan_rx_register() for any physical devices attached to a bridge when a vlan is modified, added, or deleted. This ensures VLANs and bridges work on RHEL 6. (BZ#1313663)

Resolution for kernel warning messages from vmxnet3 devices when softirq is disabled

Because of improper locking when softirq was disabled, warning messages and call traces were being captured in syslog.
The locking mechanism has been updated to not hold locks in this scenario, resolving the warnings. (BZ#1311537)

Fix for being unable to start system when using Trusted Boot (tboot) on a KVM machine

Because some hardware registers are not available to a KVM guest, tboot is unable to test for compatibility and returns a General Protection Fault (GPF). Although GPFs are reported, the user sees only a blank screen and no error message as the tboot process continues to retry access to the registers.
To resolve this, tboot now checks for Virtual Machine eXtensions (VMX) support before reading the feature control Model-Specific Register (MSR). (BZ#1323660)

Fix for failed install of tboot

The installation of tboot fails if the MANPATH environment variable is defined and has more than one directory
As MANPATH should not used in this manner, the installation directory has been changed to $(DISTDIR)/usr/share/man which resolves the issue. (BZ#1321857)

Fix for Memory online failed messages with VMware ESXi

When booting a guest on VMware ESXi hosts, an error is reported about enabling memory that has already been added.
The memory window (range) reported as an error is harmless, as both the E820 tables and the ACPI memory device are trying to add the ranges.
In normal usage these errors are redundant, the code has been changed to only report them if kernel verbosity is increased. (BZ#1255272)

Resolution for the bnx2 driver using inappropriate spinlock functions

When netconsole was enabled, the bnx2 driver used spinlock_bh() and spinunlock_bh() in code that could be called in IRQ context. In this case, spinunlock_bh() incorrectly enabled interrupts. To fix this bug, the code has been altered to use spinlock_irqsave() and spinunlock_irqrestore() instead. (BZ#1291369)

Fix for Xen platforms being unable to select TSC as a clocksource

Additional code has been added to ensure that clocksource=tsc on the kernel command line will correctly select the kernel Time Stamp Counter (TSC) as the clock source. (BZ#1356231)

Additional code to support HP Pixart optical mouse

To prevent a problem, where some Hewlett Packard Pixart mice were unusable because of a constant connect and disconnect cycle, code has been backported from RHEL 7 and upstream. (BZ#1295575)

Fix for link flapping with igbvf driver and MSI-X interrupts

The igbvf driver was switching the carrier signal off every time an MSI-X interrupt was requested. This could be triggered by calling dhclient on the interface, or by configuring a multicast address.
As a result, the interface would be set down and up repeatedly during normal operation (link flapping), with log messages similar to:
kernel: igbvf 0000:00:05.0: Link is Up 1000 Mbps Full Duplex
This patch removes the carrier off operation when requesting an MSI-X interrupt, which removes the problem. (BZ#1304114)

Fix for system panic when booting with ixgbe driver configured with bonding and VLANs

With some configurations using device bonding and 802.1q VLANs, the ixgbe driver would cause a kernel panic during boot.
Code has been added to ensure that both the VLAN port number is correctly stored and the Answer to Reset (ATR) mechanism handles IPv6 extensions properly, preventing this behavior. (BZ#1339563)

Resolution for VPD error messages in dmesg.

Some hardware incorrectly identifies itself as supporting VPD (Vital Product Data) information, when in fact it does not. This fix ensures the kernel now works around most cases of devices with poor or malformed VPD capabilities. (BZ#1340999)

Include upstream code to fix a system crash due to an invalid pointer in CIFS

It was possible to crash a system in find_writable_file() because it called a version of use-after-free() that had errors.
This release incorporates upstream code to correct the issue. (BZ#1295008)