aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-12-19watchdog: Convert dev_printk(KERN_<LEVEL> to dev_<level>(Joe Perches1-10/+9
dev_<level> calls take less code than dev_printk(KERN_<LEVEL> and reducing object size is good. Signed-off-by: Joe Perches <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: DA9055 Watchdog driverAshish Jangam3-0/+227
This is the Watchdog patch for the DA9055 PMIC. This patch has got dependency on the DA9055 MFD core. This patch is functionally tested on SMDK6410 Signed-off-by: David Dajun Chen <[email protected]> Signed-off-by: Ashish Jangam <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: omap_wdt: eliminate gotoAaro Koskinen1-7/+4
Eliminate a goto to simplify the code. Signed-off-by: Aaro Koskinen <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: omap_wdt: delete redundant platform_set_drvdata() callsAaro Koskinen1-2/+0
It's not needed to manually reset the driver data. Signed-off-by: Aaro Koskinen <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: omap_wdt: convert to devm_ functionsAaro Koskinen1-37/+13
Use devm_kzalloc(), devm_request_mem_region() ande devm_ioremap() to simplify the code. Signed-off-by: Aaro Koskinen <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: omap_wdt: convert to new watchdog coreAaro Koskinen2-149/+112
Convert omap_wdt to new watchdog core. On OMAP boards, there are usually multiple watchdogs. Since the new watchdog core supports multiple watchdogs, all watchdog drivers used on OMAP should be converted. The legacy watchdog device node is still created, so this should not break existing users. Signed-off-by: Aaro Koskinen <[email protected]> Tested-by: Jarkko Nikula <[email protected]> Tested-by: Lokesh Vutla <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: WatchDog Timer Driver Core: fix commentFabio Porcedda1-1/+1
Signed-off-by: Fabio Porcedda <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: s3c2410_wdt: use clk_prepare_enable and clk_disable_unprepareThomas Abraham1-3/+3
Convert clk_enable/clk_disable to clk_prepare_enable/clk_disable_unprepare calls as required by common clock framework. Signed-off-by: Thomas Abraham <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: imx2_wdt: Select the driver via ARCH_MXCFabio Estevam1-1/+1
With device tree support in place, we should not use IMX_HAVE_PLATFORM_IMX2_WDT as a dependency for selecting the imx2_wdt driver. Use ARCH_MXC symbol instead, so that the driver can be even selected by a device-tree only SoC, such as i.MX6. Signed-off-by: Fabio Estevam <[email protected]> Acked-by: Shawn Guo <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: cpu5wdt.c: add missing del_timer calldevendra.aaru1-0/+1
We do a setup_timer at init stage of the module, but we didn't de-activate the time using del_timer. Signed-off-by: devendra.aaru <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: hpwdt.c: Increase version stringTom Mingarelli1-1/+1
Changing the version of the driver for all the latest patches being applied for kdump fixes. Signed-off-by: Thomas Mingarelli <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: Convert twl4030_wdt to watchdog coreJarkko Nikula2-149/+35
Convert the twl4030_wdt watchdog driver to watchdog core. While at there use devm_kzalloc and set the default timeout in order to be able test this driver with a simple shell script. Signed-off-by: Jarkko Nikula <[email protected]> Tested-by: Aaro Koskinen <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19davinci_wdt: preparation for switch to common clock frameworkKaricheri, Muralidharan1-2/+2
As a first step towards migrating davinci platforms to use common clock framework, replace all instances of clk_enable() with clk_prepare_enable() and clk_disable() with clk_disable_unprepare(). Until the platform is switched to use the CONFIG_HAVE_CLK_PREPARE Kconfig variable, this just adds a might_sleep() call and would work without any issues. This will make it easy later to switch to common clk based implementation of clk driver from DaVinci specific driver. Signed-off-by: Murali Karicheri <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: sp805_wdt.c: use clk_prepare_enable and clk_disable_unprepareJulia Lawall1-9/+2
Clk_prepare_enable and clk_disable_unprepare combine clk_prepare and clk_enable, and clk_disable and clk_unprepare. They make the code more concise, and ensure that clk_unprepare is called when clk_enable fails. A simplified version of the semantic patch that introduces calls to these functions is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression e; @@ - clk_prepare(e); - clk_enable(e); + clk_prepare_enable(e); @@ expression e; @@ - clk_disable(e); - clk_unprepare(e); + clk_disable_unprepare(e); // </smpl> Signed-off-by: Julia Lawall <[email protected]> Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19watchdog: ath79_wdt: convert to use module_platform_driverGabor Juhos1-11/+2
This makes the code a bit smaller by getting rid of some boilerplate code. Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
2012-12-19hwmon-vid: Add support for AMD family 11h to 15h processorsJean Delvare1-0/+10
Since family 11h processors, AMD is exclusively using 7-bit VID codes transmitted using a serial protocol over two pins (clock and data.) Signed-off-by: Jean Delvare <[email protected]> Tested-by: David Hubbard <[email protected]> Reviewed-by: Guenter Roeck <[email protected]>
2012-12-19hwmon: (it87) Support PECI for additional chipsGuenter Roeck1-10/+38
Extend support for reporting and selecting PECI temperature sensors to IT8718, IT8720, IT8782, and IT8783. For IT8721, report the sensor type for temp2 as Intel PECI (6) if the chip is configured to report the PCH temperature. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Report thermal sensor type as Intel PECI if appropriateGuenter Roeck2-4/+19
IT8721 and IT8728 support Intel PECI temperature reporting. Each sensor can be programmed to display the temperature reported on the PECI interface. If configured for Intel PECI, the driver reported the wrong sensor type for the respective thermal sensor. Fix the code to correctly report it as "Intel PECI (6)". Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Manage device specific features with tableGuenter Roeck1-74/+81
This simplifies the code, improves runtime performance, reduces code size (about 280 bytes on x86_64), and makes it easier to add support for new devices. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Replace pwm group macro with direct attribute definitionsGuenter Roeck1-41/+74
Fix checkpatch error: ERROR: Macros with multiple statements should be enclosed in a do - while loop Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Avoid quoted string splits across linesGuenter Roeck1-14/+13
Fix the respective checkpatch warnings. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Save fan registers in 2-dimensional arrayGuenter Roeck1-159/+104
Also unify fan functions to use the same code for 8 and 16 bit fans. This patch reduces code size by approximately 1,200 bytes on x86_64. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Introduce support for tempX_offset sysfs attributeGuenter Roeck2-5/+70
Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Replace macro defining tempX_type sensors with direct definitionsGuenter Roeck1-10/+11
The macro name show_sensor_offset is confusing since it related to the sensor type, not an offset - even more so when we introduce offset attributes later on. Replace it with direct definitions, and replace the show_sensor/set_sensor function names with show_temp_type/set_temp_type. This also resolves a checkpatch error. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Save voltage register values in 2-dimensional arrayGuenter Roeck1-81/+66
Reduces code size (more than 600 bytes on x86_64), and gets rid of some checkpatch errors. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (it87) Save temperature registers in 2-dimensional arrayGuenter Roeck1-63/+35
Cleaner code, fewer checkpatch errors, and reduced code size (saves more than 500 bytes on x86-64). Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
2012-12-19hwmon: (w83627ehf) Get rid of smatch warningsJean Delvare1-0/+4
The smatch static code analyzer complains: drivers/hwmon/w83627ehf.c:911 w83627ehf_update_device() error: buffer overflow 'W83627EHF_REG_TEMP_OFFSET' 3 <= 8 drivers/hwmon/w83627ehf.c:909 w83627ehf_update_device() error: buffer overflow 'data->temp_offset' 3 <= 8 drivers/hwmon/w83627ehf.c:2672 w83627ehf_resume() error: buffer overflow 'W83627EHF_REG_TEMP_OFFSET' 3 <= 8 drivers/hwmon/w83627ehf.c:2673 w83627ehf_resume() error: buffer overflow 'data->temp_offset' 3 <= 8 A deeper analysis of the code shows that these are false positives, as only the lower 3 bits of data->have_temp_offset can be set so the write is never attempted with i >= 3. However this shows that the code isn't very robust and future changes could easily introduce a buffer overflow. So let's add a safety check to prevent that and make smatch happy. Signed-off-by: Jean Delvare <[email protected]> Cc: Peter Huewe <[email protected]> Reviewed-by: Guenter Roeck <[email protected]>
2012-12-19hwmon: (w83627hf) Don't touch nonexistent I2C address registersJean Delvare1-2/+4
Only the W83627HF could be accessed through I2C. All other supported chips are LPC-only, so they do not have I2C address registers. Don't write to nonexistent or reserved registers on these chips. Signed-off-by: Jean Delvare <[email protected]> Acked-by: Guenter Roeck <[email protected]>
2012-12-19hwmon: (w83627ehf) Add support for suspendJean Delvare1-1/+94
On suspend some register values are lost, most notably the Value RAM areas but also other limits and settings. Restore them on resume. Signed-off-by: Jean Delvare <[email protected]> Reviewed-by: Guenter Roeck <[email protected]> Tested-by: Guenter Roeck <[email protected]>
2012-12-19hwmon: (w83627hf) Add support for suspendJean Delvare1-1/+74
On suspend some register values are lost, most notably the Value RAM areas but also other limits. Restore them on resume. On top of that, some fixups are needed to work around BIOS bugs, in particular when the BIOS omits running the same initialization sequence on resume that it does after boot. In that case we have to carry initialization over suspend. Signed-off-by: Jean Delvare <[email protected]> Acked-by: Guenter Roeck <[email protected]> Tested-by: Guenter Roeck <[email protected]>
2012-12-19hwmon: Fix PCI device reference leak in quirkJean Delvare1-12/+14
Thankfully this only affects systems with one specific south bridge and is most probably harmless unless the hwmon module is heavily cycled. Signed-off-by: Jean Delvare <[email protected]> Acked-by: Guenter Roeck <[email protected]>
2012-12-19Merge tag 'xtensa-20121218' of git://github.com/czankel/xtensa-linuxLinus Torvalds81-422/+2140
Pull Xtensa patchset from Chris Zankel: "This contains support of device trees, many fixes, and code clean-ups" * tag 'xtensa-20121218' of git://github.com/czankel/xtensa-linux: (33 commits) xtensa: don't try to build DTB when OF is disabled xtensa: set the correct ethernet address for xtfpga xtensa: clean up files to make them code-style compliant xtensa: provide endianness macro for sparse xtensa: fix RASID SR initialization xtensa: initialize CPENABLE SR when core has one xtensa: reset all timers on initialization Use for_each_compatible_node() macro. xtensa: add XTFPGA DTS xtensa: add support for the XTFPGA boards xtensa: add device trees support xtensa: add IRQ domains support xtensa: add U-Boot image support (uImage). xtensa: clean up boot make rules xtensa: fix mb and wmb definitions xtensa: add s32c1i-based spinlock implementations xtensa: add s32c1i-based bitops implementations xtensa: add s32c1i-based atomic ops implementations xtensa: add s32c1i sanity check xtensa: add trap_set_handler function ...
2012-12-19Merge branch 'x86/nuke386' of ↵Linus Torvalds3-52/+1
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull one final 386 removal patch from Peter Anvin. IRQ 13 FPU error handling is gone. That was not one of the proudest moments in PC history. * 'x86/nuke386' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86, 386 removal: Remove support for IRQ 13 FPU error reporting
2012-12-19Merge branch 'x86-urgent-for-linus' of ↵Linus Torvalds2-1/+11
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull small x86 fixes from Peter Anvin: "A collection of very small fixes, mostly pure documentation." * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86, doc: Document that bootloader ID 4 is used also by iPXE x86, doc: Add a formal bootloader ID for kexec-tools x86, 8042: Enable A20 using KBC to fix S3 resume on some MSI laptops
2012-12-19net: qmi_wwan: add ZTE MF880Bjørn Mork1-0/+1
The driver description files gives these names to the vendor specific functions on this modem: diag: VID_19D2&PID_0284&MI_00 nmea: VID_19D2&PID_0284&MI_01 at: VID_19D2&PID_0284&MI_02 mdm: VID_19D2&PID_0284&MI_03 net: VID_19D2&PID_0284&MI_04 Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19drivers/net: Use of_match_ptr() macro in smsc911x.cSachin Kamat1-1/+3
Add CONFIG_OF guard and use of_match_ptr macro. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19drivers/net: Use of_match_ptr() macro in smc91x.cSachin Kamat1-3/+1
This eliminates having an #ifdef returning NULL for the case when OF is disabled. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19ipv6: addrconf.c: remove unnecessary "if"Cong Ding1-2/+1
the value of err is always negative if it goes to errout, so we don't need to check the value of err. Signed-off-by: Cong Ding <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19bridge: Correctly encode addresses when dumping mdb entriesVlad Yasevich1-2/+4
When dumping mdb table, set the addresses the kernel returns based on the address protocol type. Signed-off-by: Vlad Yasevich <[email protected]> Acked-by: Cong Wang <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19bridge: Do not unregister all PF_BRIDGE rtnl operationsVlad Yasevich4-1/+9
Bridge fdb and link rtnl operations are registered in core/rtnetlink. Bridge mdb operations are registred in bridge/mdb. When removing bridge module, do not unregister ALL PF_BRIDGE ops since that would remove the ops from rtnetlink as well. Do remove mdb ops when bridge is destroyed. Signed-off-by: Vlad Yasevich <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19Merge tag 'for-linus-20121219' of git://git.infradead.org/linux-mtdLinus Torvalds121-1833/+2544
Pull MTD updates from David Woodhouse: - Various cleanups especially in NAND tests - Add support for NAND flash on BCMA bus - DT support for sh_flctl and denali NAND drivers - Kill obsolete/superceded drivers (fortunet, nomadik_nand) - Fix JFFS2 locking bug in ENOMEM failure path - New SPI flash chips, as usual - Support writing in 'reliable mode' for DiskOnChip G4 - Debugfs support in nandsim * tag 'for-linus-20121219' of git://git.infradead.org/linux-mtd: (96 commits) mtd: nand: typo in nand_id_has_period() comments mtd: nand/gpio: use io{read,write}*_rep accessors mtd: block2mtd: throttle writes by calling balance_dirty_pages_ratelimited. mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems mtd: nand/docg4: fix and improve read of factory bbt mtd: nand/docg4: reserve bb marker area in ecclayout mtd: nand/docg4: add support for writing in reliable mode mtd: mxc_nand: reorder part_probes to let cmdline override other sources mtd: mxc_nand: fix unbalanced clk_disable() in error path mtd: nandsim: Introduce debugfs infrastructure mtd: physmap_of: error checking to prevent a NULL pointer dereference mtg: docg3: potential divide by zero in doc_write_oob() mtd: bcm47xxnflash: writing support mtd: tests/read: initialize buffer for whole next page mtd: at91: atmel_nand: return bit flips for the PMECC read_page() mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c mtd: nand: onfi need to be probed in 8 bits mode mtd: nand: add NAND_BUSWIDTH_AUTO to autodetect bus width mtd: nand: print flash size during detection mted: nand_wait_ready timeout fix ...
2012-12-19use generic usbnet_manage_power()Oliver Neukum2-16/+4
This covers the drivers that can use a primitive implementation. Signed-off-by: Oliver Neukum <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19usbnet: generic manage_power()Oliver Neukum2-0/+12
Centralise common code for manage_power() in usbnet by making a generic simple implementation Signed-off-by: Oliver Neukum <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19usbnet: handle PM failure gracefullyOliver Neukum2-7/+9
If a device fails to do remote wakeup, this is no reason to abort an open totally. This patch just continues without runtime PM. Signed-off-by: Oliver Neukum <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19ksz884x: fix receive polling race conditionLennert Buytenhek1-3/+9
The ksz884x driver does receive processing in a custom tasklet, and seems to be assuming that since it takes its private interface spinlock with spin_lock_irq(), it won't be running concurrently with its own interrupt handler, as it cannot be preempted by it, but since its interrupt handler doesn't do any locking whatsoever, the receive processing tasklet and interrupt handler can end up running concurrently on different CPUs. As a result of this, the ksz884x receive path ends up locking up fairly easily, when the receive processing tasklet's reenabling of receive interrupts (due to it being done with polling the receive ring) races with the interrupt handler's disabling of receive interrupts (due to a new receive interrupt coming in) resulting in the receive interrupt being masked but the receive processing tasklet not being scheduled. Fix this by making the ksz884x interrupt handler take its private interface spinlock. This requires upgrading the spin_lock() in the transmit cleanup tasklet to a spin_lock_irq(), as otherwise the IRQ handler can preempt transmit cleanup and deadlock the system, but with those two changes, no more receive lockups have been observed. Reported-by: Chris Healy <[email protected]> Signed-off-by: Lennert Buytenhek <[email protected]> ---- Signed-off-by: David S. Miller <[email protected]>
2012-12-19qlcnic: update driver versionSigned-off-by: Sony Chacko1-2/+2
Signed-off-by: Sony Chacko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19qlcnic: fix unused variable warningsShahed Shaikh4-12/+6
qlcnic_hw.c:370: warning: variable cmd_desc set but not used qlcnic_hw.c:368: warning: variable consumer set but not used qlcnic_main.c:448: warning: variable ref_count set but not used qlcnic_main.c:534: warning: variable mem_base set but not used qlcnic_ctx.c:137: warning: variable tmp_tmpl set but not used qlcnic_ctx.c:133: warning: variable version set but not used qlcnic_minidump.c:200: warning: variable opcode set but not used Signed-off-by: Shahed Shaikh <[email protected]> Signed-off-by: Sony Chacko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-12-19watchdog: Fix disable/enable regressionBjørn Mork1-7/+4
Commit 8d4516904b39 ("watchdog: Fix CPU hotplug regression") causes an oops or hard lockup when doing echo 0 > /proc/sys/kernel/nmi_watchdog echo 1 > /proc/sys/kernel/nmi_watchdog and the kernel is booted with nmi_watchdog=1 (default) Running laptop-mode-tools and disconnecting/connecting AC power will cause this to trigger, making it a common failure scenario on laptops. Instead of bailing out of watchdog_disable() when !watchdog_enabled we can initialize the hrtimer regardless of watchdog_enabled status. This makes it safe to call watchdog_disable() in the nmi_watchdog=0 case, without the negative effect on the enabled => disabled => enabled case. All these tests pass with this patch: - nmi_watchdog=1 echo 0 > /proc/sys/kernel/nmi_watchdog echo 1 > /proc/sys/kernel/nmi_watchdog - nmi_watchdog=0 echo 0 > /sys/devices/system/cpu/cpu1/online - nmi_watchdog=0 echo mem > /sys/power/state Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=51661 Cc: <[email protected]> # v3.7 Cc: Norbert Warmuth <[email protected]> Cc: Joseph Salisbury <[email protected]> Cc: Thomas Gleixner <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2012-12-19mlx4_core: Allow choosing flow steering modeJack Morgenstein4-16/+50
Device managed flow steering will be enabled only under administrator directive provided through setting the existing module parameter log_num_mgm_entry_size to -1 (if the device actually supports flow steering). If flow steering isn't requested or not available, the driver will use the value of log_num_mgm_entry_size and B0 steering. Signed-off-by: Jack Morgenstein <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2012-12-19mlx4_core: Adjustments to Flow Steering activation logic for SR-IOVJack Morgenstein3-25/+62
Separate flow steering capability detection from the decision to activate. For the master (and for native), detect the flow steering capability in mlx4_dev_cap, but activate the appropriate steering type in a new function choose_flow_steering() based on detected data. For VFs, activate flow steering based on what was actually activated by the master, where that info is obtained via QUERY_HCA. This fixes the current VF detection which is wrongly based on QUERY_DEV_CAP. Also, for SR-IOV mode, if flow steering may be activated, do so only if the max number of QPs per rule is sufficient to satisfy one subscription per VF. If not, fall back to B0 mode. This is needed to serve registrations done by L2 network drivers such as mlx4_en and IPoIB when the network stack attempts to join to multicast groups such as all-hosts or the IPoIB broadcast group. Signed-off-by: Jack Morgenstein <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: Roland Dreier <[email protected]>