Linux 4.4.259
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.4.259 kernel.
All users of the 4.4 kernel series must upgrade.
The updated 4.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm/boot/compressed/head.S | 4 arch/arm/boot/dts/exynos5250-spring.dts | 2 arch/arm/boot/dts/exynos5420-arndale-octa.dts | 2 arch/mips/kernel/vmlinux.lds.S | 1 arch/mips/lantiq/irq.c | 2 arch/mips/mm/c-r4k.c | 2 arch/powerpc/Kconfig | 2 arch/powerpc/platforms/pseries/dlpar.c | 7 - arch/sparc/Kconfig | 2 arch/sparc/lib/memset.S | 1 arch/x86/kernel/reboot.c | 29 ++---- arch/xtensa/platforms/iss/simdisk.c | 1 block/blk-settings.c | 12 ++ drivers/amba/bus.c | 20 ++-- drivers/block/brd.c | 1 drivers/block/floppy.c | 27 +++-- drivers/block/rbd.c | 9 - drivers/block/zram/zram_drv.h | 1 drivers/clk/meson/clk-pll.c | 2 drivers/clocksource/mxs_timer.c | 5 - drivers/dma/fsldma.c | 6 + drivers/gpio/gpio-pcf857x.c | 2 drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c | 22 ++-- drivers/gpu/drm/gma500/psb_drv.c | 2 drivers/hid/hid-core.c | 9 + drivers/i2c/busses/i2c-brcmstb.c | 2 drivers/ide/ide-cd.c | 8 - drivers/ide/ide-cd.h | 6 - drivers/infiniband/core/user_mad.c | 7 + drivers/input/joydev.c | 7 + drivers/input/joystick/xpad.c | 1 drivers/input/serio/i8042-x86ia64io.h | 4 drivers/input/touchscreen/elo.c | 4 drivers/md/dm-era-target.c | 93 ++++++++++++-------- drivers/media/pci/cx25821/cx25821-core.c | 4 drivers/media/pci/saa7134/saa7134-empress.c | 5 - drivers/media/usb/dvb-usb-v2/lmedm04.c | 2 drivers/media/usb/tm6000/tm6000-dvb.c | 4 drivers/media/usb/uvc/uvc_v4l2.c | 18 +-- drivers/mfd/wm831x-auxadc.c | 3 drivers/misc/eeprom/eeprom_93xx46.c | 1 drivers/misc/vmw_vmci/vmci_queue_pair.c | 5 - drivers/mmc/host/usdhi6rol0.c | 4 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 drivers/net/ethernet/intel/igb/igb_main.c | 2 drivers/net/wireless/b43/phy_n.c | 2 drivers/net/xen-netback/interface.c | 9 + drivers/nvdimm/dimm_devs.c | 18 +++ drivers/nvdimm/nd.h | 1 drivers/pci/syscall.c | 10 +- drivers/regulator/axp20x-regulator.c | 7 - drivers/scsi/bnx2fc/Kconfig | 1 drivers/scsi/gdth.h | 3 drivers/spi/spi-s3c24xx-fiq.S | 9 - drivers/staging/rtl8188eu/os_dep/usb_intf.c | 1 drivers/usb/core/quirks.c | 3 drivers/usb/dwc2/hcd_intr.c | 14 ++- drivers/usb/dwc3/gadget.c | 19 +++- drivers/usb/renesas_usbhs/fifo.c | 2 drivers/usb/serial/mos7720.c | 4 drivers/usb/serial/mos7840.c | 4 drivers/usb/serial/option.c | 3 drivers/video/fbdev/Kconfig | 2 fs/btrfs/free-space-cache.c | 6 + fs/btrfs/relocation.c | 4 fs/f2fs/file.c | 3 fs/gfs2/lock_dlm.c | 8 - fs/isofs/dir.c | 1 fs/isofs/namei.c | 1 fs/jffs2/summary.c | 3 fs/jfs/jfs_dmap.c | 2 fs/ntfs/inode.c | 6 + include/linux/blkdev.h | 42 ++++++--- include/linux/device-mapper.h | 2 include/linux/ide.h | 1 include/uapi/linux/msdos_fs.h | 2 kernel/debug/kdb/kdb_private.h | 2 kernel/futex.c | 7 - kernel/module.c | 21 ++++ kernel/tracepoint.c | 80 +++++++++++++---- mm/hugetlb.c | 43 +++++++++ mm/memory.c | 6 - net/bluetooth/a2mp.c | 3 net/bluetooth/hci_core.c | 6 - scripts/recordmcount.pl | 6 + security/keys/trusted.c | 2 sound/soc/codecs/cs42l56.c | 3 tools/perf/tests/sample-parsing.c | 2 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 3 90 files changed, 493 insertions(+), 242 deletions(-)
Adrian Hunter (1):
perf intel-pt: Fix missing CYC processing in PSB
Al Viro (1):
sparc32: fix a user-triggerable oops in clear_user()
Alexander Lobakin (1):
MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
Arnd Bergmann (1):
ARM: s3c: fix fiq for clang IAS
Aswath Govindraju (2):
misc: eeprom_93xx46: Fix module alias to enable module autoprobe
misc: eeprom_93xx46: Add module alias to avoid breaking support for non device tree users
Bart Van Assche (1):
block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h>
Bob Peterson (1):
gfs2: Don't skip dlm unlock if glock has an lvb
Chao Yu (1):
f2fs: fix out-of-repair __setattr_copy()
Christophe JAILLET (4):
media: cx25821: Fix a bug when reallocating some dma memory
dmaengine: fsldma: Fix a resource leak in the remove function
dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function
mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
Christophe Leroy (1):
powerpc/47x: Disable 256k page size
Christopher William Snowhill (1):
Bluetooth: Fix initializing response id after clearing struct
Colin Ian King (2):
b43: N-PHY: Fix the update of coef for the PHY revision >= 3case fs/jfs: fix potential integer overflow on shift of a int
Corinna Vinschen (1):
igb: Remove incorrect "unexpected SYS WRAP" log message
Dan Carpenter (7):
gma500: clean up error handling in init
ASoC: cs42l56: fix up error handling in probe
mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
Input: elo - fix an error code in elo_connect()
Input: joydev - prevent potential read overflow in ioctl
USB: serial: mos7840: fix error code in mos7840_write()
USB: serial: mos7720: fix error code in mos7720_write()
Dan Williams (1):
libnvdimm/dimm: Avoid race between probe and available_slots_show()
David Vrabel (1):
xen-netback: delete NAPI instance when queue fails to initialize
Dinghao Liu (2):
media: media/pci: Fix memleak in empress_init
media: tm6000: Fix memleak in tm6000_start_stream
Edwin Peer (1):
bnxt_en: reverse order of TX disable and carrier off
Fangrui Song (1):
module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
Greg Kroah-Hartman (1):
Linux 4.4.259
Guenter Roeck (2):
usb: dwc2: Abort transaction after errors with unknown reason
usb: dwc2: Make "trimming xfer length" a debug message
Heiner Kallweit (1):
PCI: Align checking of syscall user config accessors
Jarkko Sakkinen (1):
KEYS: trusted: Fix migratable=1 failing
Jialin Zhang (1):
drm/gma500: Fix error return code in psb_driver_load()
Jiri Kosina (1):
floppy: reintroduce O_NDELAY fix
Joe Perches (1):
media: lmedm04: Fix misuse of comma
Jorgen Hansen (1):
VMCI: Use set_page_dirty_lock() when unregistering guest memory
Josef Bacik (1):
btrfs: fix reloc root leak with 0 ref reloc roots on recovery
Juergen Gross (1):
xen/netback: fix spurious event detection for common event case
Krzysztof Kozlowski (2):
ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
Laurent Pinchart (1):
media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
Lech Perczak (1):
USB: serial: option: update interface mapping for ZTE P685M
Marcos Paulo de Souza (1):
Input: i8042 - add ASUS Zenbook Flip to noselftest list
Martin Blumenstingl (1):
clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
Martin Kaiser (1):
staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
Maxim Kiselev (1):
gpio: pcf857x: Fix missing first interrupt
Maxime Ripard (1):
i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
Miaohe Lin (2):
mm/memory.c: fix potential pte_unmap_unlock pte error mm/hugetlb: fix potential double free in hugetlb_register_node() error path
Mikulas Patocka (1):
blk-settings: align max_sectors on "logical_block_size" boundary
Muchun Song (1):
mm: hugetlb: fix a race between freeing and dissolving the page
Namhyung Kim (1):
perf test: Fix unaligned access in sample parsing test
Nathan Chancellor (2):
MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
Nathan Lynch (1):
powerpc/pseries/dlpar: handle ibm, configure-connector delay status
Nikos Tsironis (7):
dm era: Recover committed writeset after crash
dm era: Verify the data block size hasn't changed
dm era: Fix bitset memory leaks
dm era: Use correct value size in equality function of writeset tree dm era: Reinitialize bitset cache before digesting a new writeset dm era: only resize metadata in preresume
dm era: Update in-core bitset after committing the metadata
Olivier Crête (1):
Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox Series X|S
Pan Bian (4):
Bluetooth: drop HCI device reference before return
Bluetooth: Put HCI device if inquiry procedure interrupts
regulator: axp20x: Fix reference cout leak
isofs: release buffer head before return
Peter Zijlstra (1):
futex: Fix OWNER_DEAD fixup
Randy Dunlap (4):
fbdev: aty: SPARC64 requires FB_ATY_CT
HID: core: detect and skip invalid inputs to snto32()
sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
Rong Chen (1):
scripts/recordmcount.pl: support big endian for ARCH sh
Rustam Kovhaev (1):
ntfs: check for valid standard information attribute
Sabyrzhan Tasbolatov (1):
drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
Sean Christopherson (1):
x86/reboot: Force all cpus to exit VMX root if VMX is supported
Shay Drory (1):
IB/umad: Return EIO in case of when device disassociated
Stefan Ursella (1):
usb: quirks: add quirk to start video capture on ELMO L-12F document camera reliable
Steven Rostedt (VMware) (1):
tracepoint: Do not fail unregistering a probe due to memory failure
Sumit Garg (1):
kdb: Make memory allocations more robust
Thinh Nguyen (2):
usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
Tom Rix (2):
jffs2: fix use after free in jffs2_sum_write_data() clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
Uwe Kleine-König (1):
amba: Fix resource leak for drivers without .remove
Vladimir Murzin (1):
ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
Will McVicker (1):
HID: make arrays usage and value to be the same
Yoshihiro Shimoda (1):
usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop()
Zhihao Cheng (1):
btrfs: clarify error returns values in __load_free_space_cache
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 4 -SUBLEVEL = 258 +SUBLEVEL = 259 EXTRAVERSION = NAME = Blurry Fish Butt
arch/arm/boot/compressed/head.S +2 -2
@@ -1074,9 +1074,9 @@ __armv4_mmu_cache_off: __armv7_mmu_cache_off: mrc p15, 0, r0, c1, c0 #ifdef CONFIG_MMU - bic r0, r0, #0x000d + bic r0, r0, #0x0005 #else - bic r0, r0, #0x000c + bic r0, r0, #0x0004 #endif mcr p15, 0, r0, c1, c0 @ turn MMU and cache off mov r12, lr
arch/arm/boot/dts/exynos5250-spring.dts +1 -1
@@ -112,7 +112,7 @@ compatible = "samsung,s5m8767-pmic"; reg = <0x66>; interrupt-parent = <&gpx3>; - interrupts = <2 IRQ_TYPE_NONE>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>; wakeup-source;
arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 -1
@@ -75,7 +75,7 @@ s2mps11,buck4-ramp-enable = <1>; interrupt-parent = <&gpx3>; - interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&s2mps11_irq>;
arch/mips/kernel/vmlinux.lds.S +1 -0
@@ -90,6 +90,7 @@ SECTIONS INIT_TASK_DATA(THREAD_SIZE) NOSAVE_DATA + PAGE_ALIGNED_DATA(PAGE_SIZE) CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT) READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT) DATA_DATA
arch/mips/lantiq/irq.c +1 -1
@@ -245,7 +245,7 @@ static void ltq_hw_irqdispatch(int module)do_IRQ ((int )irq +MIPS_CPU_IRQ_CASCADE + (INT_NUM_IM_OFFSET * module));/* if this is a EBU irq, we need to ack it or get a deadlock */ -if ((irq ==LTQ_ICU_EBU_IRQ ) && (module ==0 ) &<Q_EBU_PCC_ISTAT ) +if (irq ==LTQ_ICU_EBU_IRQ && !module &<Q_EBU_PCC_ISTAT !=0 )ltq_ebu_w32 (ltq_ebu_r32 (LTQ_EBU_PCC_ISTAT ) |0x10 ,LTQ_EBU_PCC_ISTAT ); }
arch/mips/mm/c-r4k.c +1 -1
@@ -1401,7 +1401,7 @@ static int probe_scache(void)return 1 ; } -static void __init loongson2_sc_init (void ) +static void loongson2_sc_init (void ) {struct cpuinfo_mips *c = ¤t_cpu_data;
arch/powerpc/Kconfig +1 -1
@@ -577,7 +577,7 @@ config PPC_64K_PAGES config PPC_256K_PAGES bool "256k page size" - depends on 44x && !STDBINUTILS + depends on 44x && !STDBINUTILS && !PPC_47x help Make the page size 256k.
arch/powerpc/platforms/pseries/dlpar.c +3 -4
@@ -131,7 +131,6 @@ void dlpar_free_cc_nodes(struct device_node *dn)#define NEXT_PROPERTY 3#define PREV_PARENT 4#define MORE_MEMORY 5 -#define CALL_AGAIN -2#define ERR_CFG_USE -9003 struct device_node *dlpar_configure_connector(__be32 drc_index,
@@ -173,6 +172,9 @@ struct device_node *dlpar_configure_connector(__be32 drc_index,spin_unlock (&rtas_data_buf_lock); +if (rtas_busy_delay (rc)) +continue ; +switch (rc) {case COMPLETE :break ;
@@ -225,9 +227,6 @@ struct device_node *dlpar_configure_connector(__be32 drc_index, parent_path = last_dn->parent->full_name;break ; -case CALL_AGAIN : -break ; -case MORE_MEMORY :case ERR_CFG_USE :default :
arch/sparc/Kconfig +1 -1
@@ -539,7 +539,7 @@ config COMPAT bool depends on SPARC64 default y - select COMPAT_BINFMT_ELF + select COMPAT_BINFMT_ELF if BINFMT_ELF select HAVE_UID16 select ARCH_WANT_OLD_COMPAT_IPC select COMPAT_OLD_SIGACTION
arch/sparc/lib/memset.S +1 -0
@@ -137,6 +137,7 @@ __bzero: ZERO_LAST_BLOCKS(%o0, 0x48, %g2) ZERO_LAST_BLOCKS(%o0, 0x08, %g2) 13: + EXT(12b, 13b, 21f) be 8f andcc %o1, 4, %g0
arch/x86/kernel/reboot.c +10 -19
@@ -479,29 +479,20 @@ static void emergency_vmx_disable_all(void)local_irq_disable ();/* -* We need to disable VMX on all CPUs before rebooting, otherwise -* we risk hanging up the machine, because the CPU ignore INIT -* signals when VMX is enabled. +* Disable VMX on all CPUs before rebooting, otherwise we risk hanging +* the machine, because the CPU blocks INIT when it's in VMX root. * -* We can't take any locks and we may be on an inconsistent -* state, so we use NMIs as IPIs to tell the other CPUs to disable -* VMX and halt. +* We can't take any locks and we may be on an inconsistent state, so +* use NMIs as IPIs to tell the other CPUs to exit VMX root and halt. * -* For safety, we will avoid running the nmi_shootdown_cpus() -* stuff unnecessarily, but we don't have a way to check -* if other CPUs have VMX enabled. So we will call it only if the -* CPU we are running on has VMX enabled. -* -* We will miss cases where VMX is not enabled on all CPUs. This -* shouldn't do much harm because KVM always enable VMX on all -* CPUs anyway. But we can miss it on the small window where KVM -* is still enabling VMX. +* Do the NMI shootdown even if VMX if off on _this_ CPU, as that +* doesn't prevent a different CPU from being in VMX root operation. */ -if (cpu_has_vmx () &&cpu_vmx_enabled ()) { -/* Disable VMX on this CPU. */ -cpu_vmxoff (); +if (cpu_has_vmx ()) { +/* Safely force _this_ CPU out of VMX root operation. */ +__cpu_emergency_vmxoff (); -/* Halt and disable VMX on the other CPUs */ +/* Halt and exit VMX root operation on the other CPUs. */ nmi_shootdown_cpus (vmxoff_nmi); }
arch/xtensa/platforms/iss/simdisk.c +0 -1
@@ -21,7 +21,6 @@#include <platform/simcall.h> #define SIMDISK_MAJOR 240 -#define SECTOR_SHIFT 9#define SIMDISK_MINORS 1#define MAX_SIMDISK_COUNT 10
block/blk-settings.c +12 -0
@@ -494,6 +494,14 @@ void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b) }EXPORT_SYMBOL (blk_queue_stack_limits); +static unsigned int blk_round_down_sectors (unsigned int sectors,unsigned int lbs) +{ + sectors =round_down (sectors, lbs >>SECTOR_SHIFT ); +if (sectors <PAGE_SIZE >>SECTOR_SHIFT ) + sectors =PAGE_SIZE >>SECTOR_SHIFT ; +return sectors; +} +/** * blk_stack_limits - adjust queue_limits for stacked devices * @t: the stacking driver limits (top device)
@@ -606,6 +614,10 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, ret =-1 ; } + t->max_sectors =blk_round_down_sectors (t->max_sectors, t->logical_block_size); + t->max_hw_sectors =blk_round_down_sectors (t->max_hw_sectors, t->logical_block_size); + t->max_dev_sectors =blk_round_down_sectors (t->max_dev_sectors, t->logical_block_size); +/* Discard alignment and granularity */ if (b->discard_granularity) { alignment =queue_limit_discard_alignment (b, start);
drivers/amba/bus.c +12 -8
@@ -275,10 +275,11 @@ static int amba_remove(struct device *dev) {struct amba_device *pcdev =to_amba_device (dev);struct amba_driver *drv =to_amba_driver (dev->driver); -int ret; +int ret =0 ;pm_runtime_get_sync (dev); - ret = drv->remove (pcdev); +if (drv->remove) + ret = drv->remove (pcdev);pm_runtime_put_noidle (dev);/* Undo the runtime PM settings in amba_probe() */
@@ -295,7 +296,9 @@ static int amba_remove(struct device *dev)static void amba_shutdown (struct device *dev) {struct amba_driver *drv =to_amba_driver (dev->driver); - drv->shutdown (to_amba_device (dev)); + +if (drv->shutdown) + drv->shutdown (to_amba_device (dev)); }/**
@@ -308,12 +311,13 @@ static void amba_shutdown(struct device *dev)*/ int amba_driver_register (struct amba_driver *drv) { - drv->drv.bus = &amba_bustype; +if (!drv->probe) +return -EINVAL ; -#define SETFN (fn) if (drv->fn) drv->drv.fn = amba_##fn -SETFN (probe); -SETFN (remove); -SETFN (shutdown); + drv->drv.bus = &amba_bustype; + drv->drv.probe = amba_probe; + drv->drv.remove = amba_remove; + drv->drv.shutdown = amba_shutdown;return driver_register (&drv->drv); }
drivers/block/brd.c +0 -1
@@ -22,7 +22,6 @@#include <asm/uaccess.h> -#define SECTOR_SHIFT 9#define PAGE_SECTORS_SHIFT (PAGE_SHIFT - SECTOR_SHIFT)#define PAGE_SECTORS (1 << PAGE_SECTORS_SHIFT)
drivers/block/floppy.c +14 -13
@@ -4066,21 +4066,22 @@ static int floppy_open(struct block_device *bdev, fmode_t mode)if (UFDCS ->rawcmd ==1 )UFDCS ->rawcmd =2 ; -if (!(mode &FMODE_NDELAY )) { -if (mode & (FMODE_READ |FMODE_WRITE )) { -UDRS ->last_checked =0 ; -clear_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags); -check_disk_change (bdev); -if (test_bit (FD_DISK_CHANGED_BIT , &UDRS ->flags)) - goto out; -if (test_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags)) - goto out; - } - res = -EROFS ; -if ((mode &FMODE_WRITE ) && - !test_bit (FD_DISK_WRITABLE_BIT , &UDRS ->flags)) +if (mode & (FMODE_READ |FMODE_WRITE )) { +UDRS ->last_checked =0 ; +clear_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags); +check_disk_change (bdev); +if (test_bit (FD_DISK_CHANGED_BIT , &UDRS ->flags)) + goto out; +if (test_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags)) goto out; } + + res = -EROFS ; + +if ((mode &FMODE_WRITE ) && + !test_bit (FD_DISK_WRITABLE_BIT , &UDRS ->flags)) + goto out; +mutex_unlock (&open_lock);mutex_unlock (&floppy_mutex);return 0 ;
drivers/block/rbd.c +0 -9
@@ -49,15 +49,6 @@#define RBD_DEBUG /* Activate rbd_assert() calls */ -/* -* The basic unit of block I/O is a sector. It is interpreted in a -* number of contexts in Linux (blk, bio, genhd), but the default is -* universally 512 bytes. These symbols are just slightly more -* meaningful than the bare numbers they represent. -*/ -#define SECTOR_SHIFT 9 -#define SECTOR_SIZE (1ULL << SECTOR_SHIFT) -/* * Increment the given counter and return its updated value. * If the counter is already 0 it will not be incremented.
drivers/block/zram/zram_drv.h +0 -1
@@ -36,7 +36,6 @@ static const size_t max_zpage_size = PAGE_SIZE / 4 * 3;/*-- End of configurable params */ -#define SECTOR_SHIFT 9#define SECTORS_PER_PAGE_SHIFT (PAGE_SHIFT - SECTOR_SHIFT)#define SECTORS_PER_PAGE (1 << SECTORS_PER_PAGE_SHIFT)#define ZRAM_LOGICAL_BLOCK_SHIFT 12
drivers/clk/meson/clk-pll.c +1 -1
@@ -138,7 +138,7 @@ static int meson_clk_pll_set_rate(struct clk_hw *hw, unsigned long rate,if (parent_rate ==0 || rate ==0 )return -EINVAL ; - old_rate = rate; + old_rate =clk_hw_get_rate (hw); rate_set =meson_clk_get_pll_settings (pll, rate);if (!rate_set)
drivers/clocksource/mxs_timer.c +1 -4
@@ -154,10 +154,7 @@ static void mxs_irq_clear(char *state)/* Clear pending interrupt */ timrot_irq_acknowledge (); - -#ifdef DEBUG - pr_info("%s: changing mode to %s\n", __func__, state) -#endif /* DEBUG */ +pr_debug ("%s: changing mode to %s\n" , __func__, state); }static int mxs_shutdown (struct clock_event_device *evt)
drivers/dma/fsldma.c +6 -0
@@ -1335,6 +1335,7 @@ static int fsldma_of_probe(struct platform_device *op) {struct fsldma_device *fdev;struct device_node *child; +unsigned int i;int err; fdev =kzalloc (sizeof (*fdev),GFP_KERNEL );
@@ -1416,6 +1417,10 @@ static int fsldma_of_probe(struct platform_device *op)return 0 ; out_free_fdev: +for (i =0 ; i <FSL_DMA_MAX_CHANS_PER_DEVICE ; i++) { +if (fdev->chan[i]) +fsl_dma_chan_remove (fdev->chan[i]); + }irq_dispose_mapping (fdev->irq);kfree (fdev); out_return:
@@ -1436,6 +1441,7 @@ static int fsldma_of_remove(struct platform_device *op)if (fdev->chan[i])fsl_dma_chan_remove (fdev->chan[i]); } +irq_dispose_mapping (fdev->irq);iounmap (fdev->regs);kfree (fdev);
drivers/gpio/gpio-pcf857x.c +1 -1
@@ -370,7 +370,7 @@ static int pcf857x_probe(struct i2c_client *client,* reset state. Otherwise it flags pins to be driven low. */ gpio->out = ~n_latch; - gpio->status = gpio->out; + gpio->status = gpio->read (gpio->client); status =gpiochip_add (&gpio->chip);if (status <0 )
drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c +13 -9
@@ -279,11 +279,8 @@ int oaktrail_hdmi_i2c_init(struct pci_dev *dev) hdmi_dev =pci_get_drvdata (dev); i2c_dev =kzalloc (sizeof (struct hdmi_i2c_dev ),GFP_KERNEL ); -if (i2c_dev ==NULL ) { -DRM_ERROR ("Can't allocate interface\n" ); - ret = -ENOMEM ; - goto exit; - } +if (!i2c_dev) +return -ENOMEM ; i2c_dev->adap = &oaktrail_hdmi_i2c_adapter; i2c_dev->status =I2C_STAT_INIT ;
@@ -300,16 +297,23 @@ int oaktrail_hdmi_i2c_init(struct pci_dev *dev) oaktrail_hdmi_i2c_adapter.name, hdmi_dev);if (ret) {DRM_ERROR ("Failed to request IRQ for I2C controller\n" ); - goto err; + goto free_dev; }/* Adapter registration */ ret =i2c_add_numbered_adapter (&oaktrail_hdmi_i2c_adapter); -return ret; +if (ret) { +DRM_ERROR ("Failed to add I2C adapter\n" ); + goto free_irq; + } -err: +return 0 ; + +free_irq: +free_irq (dev->irq, hdmi_dev); +free_dev:kfree (i2c_dev); -exit: +return ret; }
drivers/gpu/drm/gma500/psb_drv.c +2 -0
@@ -325,6 +325,8 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)if (ret) goto out_err; + ret = -ENOMEM ; + dev_priv->mmu =psb_mmu_driver_init (dev,1 ,0 ,0 );if (!dev_priv->mmu) goto out_err;
drivers/hid/hid-core.c +6 -3
@@ -91,7 +91,7 @@ EXPORT_SYMBOL_GPL(hid_register_report);* Register a new field for this report. */ -static struct hid_field *hid_register_field (struct hid_report *report,unsigned usages,unsigned values) +static struct hid_field *hid_register_field (struct hid_report *report,unsigned usages) {struct hid_field *field;
@@ -102,7 +102,7 @@ static struct hid_field *hid_register_field(struct hid_report *report, unsigned field =kzalloc ((sizeof (struct hid_field ) + usages *sizeof (struct hid_usage ) + - values *sizeof (unsigned )),GFP_KERNEL ); + usages *sizeof (unsigned )),GFP_KERNEL );if (!field)return NULL ;
@@ -281,7 +281,7 @@ static int hid_add_field(struct hid_parser *parser, unsigned report_type, unsign usages =max_t (unsigned, parser->local.usage_index, parser->global.report_count); - field =hid_register_field (report, usages, parser->global.report_count); + field =hid_register_field (report, usages);if (!field)return 0 ;
@@ -1109,6 +1109,9 @@ EXPORT_SYMBOL_GPL(hid_open_report);static s32 snto32 (__u32 value,unsigned n) { +if (!value || !n) +return 0 ; +switch (n) {case 8 :return ((__s8 )value);case 16 :return ((__s16 )value);
drivers/i2c/busses/i2c-brcmstb.c +1 -1
@@ -304,7 +304,7 @@ static int brcmstb_send_i2c_cmd(struct brcmstb_i2c_dev *dev, goto cmd_out; } -if ((CMD_RD ||CMD_WR ) && +if ((cmd ==CMD_RD || cmd ==CMD_WR ) &&bsc_readl (dev, iic_enable) &BSC_IIC_EN_NOACK_MASK ) { rc = -EREMOTEIO ; dev_dbg(dev->device, "controller received NOACK intr for %s\n",
drivers/ide/ide-cd.c +4 -4
@@ -704,7 +704,7 @@ static ide_startstop_t cdrom_start_rw(ide_drive_t *drive, struct request *rq)struct request_queue *q = drive->queue;int write =rq_data_dir (rq) ==WRITE ;unsigned short sectors_per_frame = -queue_logical_block_size (q) >>SECTOR_BITS ; +queue_logical_block_size (q) >>SECTOR_SHIFT ; ide_debug_log(IDE_DBG_RQ, "rq->cmd[0]: 0x%x, rq->cmd_flags: 0x%x, " "secs_per_frame: %u",
@@ -900,7 +900,7 @@ static int cdrom_read_capacity(ide_drive_t *drive, unsigned long *capacity,* end up being bogus. */ blocklen =be32_to_cpu (capbuf.blocklen); - blocklen = (blocklen >>SECTOR_BITS ) <<SECTOR_BITS ; + blocklen = (blocklen >>SECTOR_SHIFT ) <<SECTOR_SHIFT ;switch (blocklen) {case 512 :case 1024 :
@@ -916,7 +916,7 @@ static int cdrom_read_capacity(ide_drive_t *drive, unsigned long *capacity, } *capacity =1 +be32_to_cpu (capbuf.lba); - *sectors_per_frame = blocklen >>SECTOR_BITS ; + *sectors_per_frame = blocklen >>SECTOR_SHIFT ;ide_debug_log (IDE_DBG_PROBE ,"cap: %lu, sectors_per_frame: %lu" , *capacity, *sectors_per_frame);
@@ -993,7 +993,7 @@ int ide_cd_read_toc(ide_drive_t *drive, struct request_sense *sense) drive->probed_capacity = toc->capacity * sectors_per_frame;blk_queue_logical_block_size (drive->queue, - sectors_per_frame <<SECTOR_BITS ); + sectors_per_frame <<SECTOR_SHIFT );/* first read just the header, so we know how long the TOC is */ stat = cdrom_read_tocentry(drive, 0, 1, 0, (char *) &toc->hdr,
drivers/ide/ide-cd.h +1 -5
@@ -20,11 +20,7 @@/************************************************************************/ -#define SECTOR_BITS 9 -#ifndef SECTOR_SIZE -#define SECTOR_SIZE (1 << SECTOR_BITS) -#endif -#define SECTORS_PER_FRAME (CD_FRAMESIZE >> SECTOR_BITS) +#define SECTORS_PER_FRAME (CD_FRAMESIZE >> SECTOR_SHIFT)#define SECTOR_BUFFER_SIZE (CD_FRAMESIZE * 32)/* Capabilities Page size including 8 bytes of Mode Page Header */
drivers/infiniband/core/user_mad.c +6 -1
@@ -342,6 +342,11 @@ static ssize_t ib_umad_read(struct file *filp, char __user *buf,mutex_lock (&file->mutex); +if (file->agents_dead) { +mutex_unlock (&file->mutex); +return -EIO ; + } +while (list_empty (&file->recv_list)) {mutex_unlock (&file->mutex);
@@ -484,7 +489,7 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf, agent =__get_agent (file, packet->mad.hdr.id);if (!agent) { - ret = -EINVAL ; + ret = -EIO ; goto err_up; }
drivers/input/joydev.c +5 -2
@@ -448,7 +448,7 @@ static int joydev_handle_JSIOCSAXMAP(struct joydev *joydev,if (IS_ERR (abspam))return PTR_ERR (abspam); -for (i =0 ; i < joydev->nabs; i++) { +for (i =0 ; i < len && i < joydev->nabs; i++) {if (abspam[i] >ABS_MAX ) { retval = -EINVAL ; goto out;
@@ -472,6 +472,9 @@ static int joydev_handle_JSIOCSBTNMAP(struct joydev *joydev,int i;int retval =0 ; +if (len %sizeof (*keypam)) +return -EINVAL ; + len =min (len,sizeof (joydev->keypam));/* Validate the map. */
@@ -479,7 +482,7 @@ static int joydev_handle_JSIOCSBTNMAP(struct joydev *joydev,if (IS_ERR (keypam))return PTR_ERR (keypam); -for (i =0 ; i < joydev->nkey; i++) { +for (i =0 ; i < (len /2 ) && i < joydev->nkey; i++) {if (keypam[i] >KEY_MAX || keypam[i] <BTN_MISC ) { retval = -EINVAL ; goto out;
drivers/input/joystick/xpad.c +1 -0
@@ -322,6 +322,7 @@ static const struct xpad_device { { 0x1bad, 0xfd00, "Razer Onza TE", 0, XTYPE_XBOX360 }, { 0x1bad, 0xfd01, "Razer Onza", 0, XTYPE_XBOX360 }, { 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE }, + { 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE }, { 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 }, { 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE }, { 0x24c6, 0x5000, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
drivers/input/serio/i8042-x86ia64io.h +4 -0
@@ -579,6 +579,10 @@ static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = { DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"), }, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_CHASSIS_TYPE, "31"), /* Convertible Notebook */ + }, }, { } };
drivers/input/touchscreen/elo.c +3 -1
@@ -345,8 +345,10 @@ static int elo_connect(struct serio *serio, struct serio_driver *drv)switch (elo->id) {case 0 :/* 10-byte protocol */ -if (elo_setup_10 (elo)) +if (elo_setup_10 (elo)) { + err = -EIO ; goto fail3; + }break ;
drivers/md/dm-era-target.c +60 -33
243 lines not on this page · raw message
drivers/media/pci/cx25821/cx25821-core.c +3 -1
@@ -990,8 +990,10 @@ int cx25821_riscmem_alloc(struct pci_dev *pci,__le32 *cpu;dma_addr_t dma =0 ; -if (NULL != risc->cpu && risc->size < size) +if (risc->cpu && risc->size < size) {pci_free_consistent (pci, risc->size, risc->cpu, risc->dma); + risc->cpu =NULL ; + }if (NULL == risc->cpu) { cpu =pci_zalloc_consistent (pci, size, &dma);if (NULL == cpu)
drivers/media/pci/saa7134/saa7134-empress.c +4 -1
@@ -295,8 +295,11 @@ static int empress_init(struct saa7134_dev *dev) q->timestamp_flags =V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC ; q->lock = &dev->lock; err =vb2_queue_init (q); -if (err) +if (err) { +video_device_release (dev->empress_dev); + dev->empress_dev =NULL ;return err; + } dev->empress_dev->queue = q;video_set_drvdata (dev->empress_dev, dev);
drivers/media/usb/dvb-usb-v2/lmedm04.c +1 -1
@@ -445,7 +445,7 @@ static int lme2510_int_read(struct dvb_usb_adapter *adap) ep =usb_pipe_endpoint (d->udev, lme_int->lme_urb->pipe);if (usb_endpoint_type (&ep->desc) ==USB_ENDPOINT_XFER_BULK ) - lme_int->lme_urb->pipe =usb_rcvbulkpipe (d->udev,0xa ), + lme_int->lme_urb->pipe =usb_rcvbulkpipe (d->udev,0xa ); lme_int->lme_urb->transfer_flags |=URB_NO_TRANSFER_DMA_MAP ;
drivers/media/usb/tm6000/tm6000-dvb.c +4 -0
@@ -158,6 +158,10 @@ static int tm6000_start_stream(struct tm6000_core *dev)if (ret <0 ) {printk (KERN_ERR "tm6000: error %i in %s during pipe reset\n" , ret, __func__); + +kfree (dvb->bulk_urb->transfer_buffer); +usb_free_urb (dvb->bulk_urb); + dvb->bulk_urb =NULL ;return ret; }else printk (KERN_ERR "tm6000: pipe resetted\n" );
drivers/media/usb/uvc/uvc_v4l2.c +9 -9
@@ -243,7 +243,9 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, goto done;/* After the probe, update fmt with the values returned from -* negotiation with the device. +* negotiation with the device. Some devices return invalid bFormatIndex +* and bFrameIndex values, in which case we can only assume they have +* accepted the requested format as-is. */ for (i =0 ; i < stream->nformats; ++i) {if (probe->bFormatIndex == stream->format[i].index) {
@@ -252,11 +254,10 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, } } -if (i == stream->nformats) { -uvc_trace (UVC_TRACE_FORMAT ,"Unknown bFormatIndex %u\n" , +if (i == stream->nformats) +uvc_trace (UVC_TRACE_FORMAT , +"Unknown bFormatIndex %u, using default\n" , probe->bFormatIndex); -return -EINVAL ; - }for (i =0 ; i < format->nframes; ++i) {if (probe->bFrameIndex == format->frame[i].bFrameIndex) {
@@ -265,11 +266,10 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, } } -if (i == format->nframes) { -uvc_trace (UVC_TRACE_FORMAT ,"Unknown bFrameIndex %u\n" , +if (i == format->nframes) +uvc_trace (UVC_TRACE_FORMAT , +"Unknown bFrameIndex %u, using default\n" , probe->bFrameIndex); -return -EINVAL ; - } fmt->fmt.pix.width = frame->wWidth; fmt->fmt.pix.height = frame->wHeight;
drivers/mfd/wm831x-auxadc.c +1 -2
@@ -98,11 +98,10 @@ static int wm831x_auxadc_read_irq(struct wm831x *wm831x,wait_for_completion_timeout (&req->done,msecs_to_jiffies (500 ));mutex_lock (&wm831x->auxadc_lock); - -list_del (&req->list); ret = req->val; out: +list_del (&req->list);mutex_unlock (&wm831x->auxadc_lock);kfree (req);
drivers/misc/eeprom/eeprom_93xx46.c +1 -0
@@ -381,3 +381,4 @@ MODULE_LICENSE("GPL");MODULE_DESCRIPTION ("Driver for 93xx46 EEPROMs" );MODULE_AUTHOR ("Anatolij Gustschin <[email protected]>" );MODULE_ALIAS ("spi:93xx46" ); +MODULE_ALIAS ("spi:eeprom-93xx46" );
drivers/misc/vmw_vmci/vmci_queue_pair.c +4 -1
@@ -639,6 +639,9 @@ static struct vmci_queue *qp_host_alloc_queue(u64 size) queue_page_size = num_pages *sizeof (*queue->kernel_if->u.h.page); +if (queue_size + queue_page_size >KMALLOC_MAX_SIZE ) +return NULL ; + queue =kzalloc (queue_size + queue_page_size,GFP_KERNEL );if (queue) { queue->q_header =NULL ;
@@ -732,7 +735,7 @@ static void qp_release_pages(struct page **pages,for (i =0 ; i < num_pages; i++) {if (dirty) -set_page_dirty (pages[i]); +set_page_dirty_lock (pages[i]);page_cache_release (pages[i]); pages[i] =NULL ;
drivers/mmc/host/usdhi6rol0.c +3 -1
@@ -1808,10 +1808,12 @@ static int usdhi6_probe(struct platform_device *pdev) ret =mmc_add_host (mmc);if (ret <0 ) - goto e_clk_off; + goto e_release_dma;return 0 ; +e_release_dma: +usdhi6_dma_release (host); e_clk_off:clk_disable_unprepare (host->clk); e_free_mmc:
drivers/net/ethernet/broadcom/bnxt/bnxt.c +2 -1
@@ -4313,9 +4313,10 @@ static void bnxt_tx_disable(struct bnxt *bp) txr->dev_state =BNXT_DEV_STATE_CLOSING ; } } +/* Drop carrier first to prevent TX timeout */ +netif_carrier_off (bp->dev);/* Stop all TX queues */ netif_tx_disable (bp->dev); -netif_carrier_off (bp->dev); }static void bnxt_tx_enable (struct bnxt *bp)
drivers/net/ethernet/intel/igb/igb_main.c +0 -2
@@ -5421,8 +5421,6 @@ static void igb_tsync_interrupt(struct igb_adapter *adapter) event.type =PTP_CLOCK_PPS ;if (adapter->ptp_caps.pps)ptp_clock_event (adapter->ptp_clock, &event); -else -dev_err (&adapter->pdev->dev,"unexpected SYS WRAP" ); ack |=TSINTR_SYS_WRAP ; }
drivers/net/wireless/b43/phy_n.c +1 -1
@@ -5320,7 +5320,7 @@ static void b43_nphy_restore_cal(struct b43_wldev *dev)for (i =0 ; i <4 ; i++) {if (dev->phy.rev >=3 ) - table[i] = coef[i]; + coef[i] = table[i];else coef[i] =0 ; }
drivers/net/xen-netback/interface.c +6 -3
@@ -161,13 +161,15 @@ irqreturn_t xenvif_interrupt(int irq, void *dev_id) {struct xenvif_queue *queue = dev_id;int old; +bool has_rx, has_tx; old =xenvif_atomic_fetch_or (NETBK_COMMON_EOI , &queue->eoi_pending);WARN (old,"Interrupt while EOI pending\n" ); -/* Use bitwise or as we need to call both functions. */ -if ((!xenvif_handle_tx_interrupt (queue) | - !xenvif_handle_rx_interrupt (queue))) { + has_tx =xenvif_handle_tx_interrupt (queue); + has_rx =xenvif_handle_rx_interrupt (queue); + +if (!has_rx && !has_tx) {atomic_andnot (NETBK_COMMON_EOI , &queue->eoi_pending);xen_irq_lateeoi (irq,XEN_EOI_FLAG_SPURIOUS ); }
@@ -662,6 +664,7 @@ err_tx_unbind: queue->tx_irq =0 ; err_unmap:xenvif_unmap_frontend_rings (queue); +netif_napi_del (&queue->napi); err:return err; }
drivers/nvdimm/dimm_devs.c +15 -3
@@ -303,16 +303,16 @@ static ssize_t state_show(struct device *dev, struct device_attribute *attr, }static DEVICE_ATTR_RO (state); -static ssize_t available_slots_show (struct device *dev, -struct device_attribute *attr,char *buf) +static ssize_t __available_slots_show (struct nvdimm_drvdata *ndd,char *buf) { -struct nvdimm_drvdata *ndd =dev_get_drvdata (dev); +struct device *dev;ssize_t rc;u32 nfree;if (!ndd)return -ENXIO ; + dev = ndd->dev;nvdimm_bus_lock (dev); nfree =nd_label_nfree (ndd);if (nfree -1 > nfree) {
@@ -324,6 +324,18 @@ static ssize_t available_slots_show(struct device *dev,nvdimm_bus_unlock (dev);return rc; } + +static ssize_t available_slots_show (struct device *dev, +struct device_attribute *attr,char *buf) +{ +ssize_t rc; + +device_lock (dev); + rc =__available_slots_show (dev_get_drvdata (dev), buf); +device_unlock (dev); + +return rc; +}static DEVICE_ATTR_RO (available_slots);static struct attribute *nvdimm_attributes[] = {
drivers/nvdimm/nd.h +0 -1
@@ -27,7 +27,6 @@ enum {* BTT instance */ ND_MAX_LANES =256 , -SECTOR_SHIFT =9 ,INT_LBASIZE_ALIGNMENT =64 , #if IS_ENABLED(CONFIG_NVDIMM_PFN) ND_PFN_ALIGN = PAGES_PER_SECTION * PAGE_SIZE,
drivers/pci/syscall.c +5 -5
@@ -21,7 +21,7 @@ SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn,u16 word;u32 dword;long err; -long cfg_ret; +int cfg_ret;if (!capable (CAP_SYS_ADMIN ))return -EPERM ;
@@ -47,7 +47,7 @@ SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn, } err = -EIO ; -if (cfg_ret !=PCIBIOS_SUCCESSFUL ) +if (cfg_ret) goto error;switch (len) {
@@ -105,7 +105,7 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,if (err)break ; err =pci_user_write_config_byte (dev, off, byte); -if (err !=PCIBIOS_SUCCESSFUL ) +if (err) err = -EIO ;break ;
@@ -114,7 +114,7 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,if (err)break ; err =pci_user_write_config_word (dev, off, word); -if (err !=PCIBIOS_SUCCESSFUL ) +if (err) err = -EIO ;break ;
@@ -123,7 +123,7 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,if (err)break ; err =pci_user_write_config_dword (dev, off, dword); -if (err !=PCIBIOS_SUCCESSFUL ) +if (err) err = -EIO ;break ;
drivers/regulator/axp20x-regulator.c +3 -4
@@ -279,7 +279,7 @@ static int axp20x_set_dcdc_freq(struct platform_device *pdev, u32 dcdcfreq)static int axp20x_regulator_parse_dt (struct platform_device *pdev) {struct device_node *np, *regulators; -int ret; +int ret =0 ;u32 dcdcfreq =0 ; np =of_node_get (pdev->dev.parent->of_node);
@@ -294,13 +294,12 @@ static int axp20x_regulator_parse_dt(struct platform_device *pdev) ret =axp20x_set_dcdc_freq (pdev, dcdcfreq);if (ret <0 ) {dev_err (&pdev->dev,"Error setting dcdc frequency: %d\n" , ret); -return ret; } -of_node_put (regulators); } -return 0 ; +of_node_put (np); +return ret; }static int axp20x_set_dcdc_workmode (struct regulator_dev *rdev,int id,u32 workmode)
drivers/scsi/bnx2fc/Kconfig +1 -0
@@ -4,6 +4,7 @@ config SCSI_BNX2X_FCOE depends on (IPV6 || IPV6=n) depends on LIBFC depends on LIBFCOE + depends on MMU select NETDEVICES select ETHERNET select NET_VENDOR_BROADCOM
drivers/scsi/gdth.h +0 -3
@@ -177,9 +177,6 @@#define MSG_SIZE 34/* size of message structure */ #define MSG_REQUEST 0/* async. event: message */ -/* cacheservice defines */ -#define SECTOR_SIZE 0x200/* always 512 bytes per sec. */ -/* DPMEM constants */ #define DPMEM_MAGIC 0xC0FFEE11#define IC_HEADER_BYTES 48
drivers/spi/spi-s3c24xx-fiq.S +3 -6
@@ -36,7 +36,6 @@ @ and an offset to the irq acknowledgment word ENTRY(s3c24xx_spi_fiq_rx) -s3c24xx_spi_fix_rx: .word fiq_rx_end - fiq_rx_start .word fiq_rx_irq_ack - fiq_rx_start fiq_rx_start:
@@ -50,7 +49,7 @@ fiq_rx_start: strb fiq_rtmp, [ fiq_rspi, # S3C2410_SPTDAT ] subs fiq_rcount, fiq_rcount, #1 - subnes pc, lr, #4 @@ return, still have work to do + subsne pc, lr, #4 @@ return, still have work to do @@ set IRQ controller so that next op will trigger IRQ mov fiq_rtmp, #0
@@ -62,7 +61,6 @@ fiq_rx_irq_ack: fiq_rx_end: ENTRY(s3c24xx_spi_fiq_txrx) -s3c24xx_spi_fiq_txrx: .word fiq_txrx_end - fiq_txrx_start .word fiq_txrx_irq_ack - fiq_txrx_start fiq_txrx_start:
@@ -77,7 +75,7 @@ fiq_txrx_start: strb fiq_rtmp, [ fiq_rspi, # S3C2410_SPTDAT ] subs fiq_rcount, fiq_rcount, #1 - subnes pc, lr, #4 @@ return, still have work to do + subsne pc, lr, #4 @@ return, still have work to do mov fiq_rtmp, #0 str fiq_rtmp, [ fiq_rirq, # S3C2410_INTMOD - S3C24XX_VA_IRQ ]
@@ -89,7 +87,6 @@ fiq_txrx_irq_ack: fiq_txrx_end: ENTRY(s3c24xx_spi_fiq_tx) -s3c24xx_spi_fix_tx: .word fiq_tx_end - fiq_tx_start .word fiq_tx_irq_ack - fiq_tx_start fiq_tx_start:
@@ -102,7 +99,7 @@ fiq_tx_start: strb fiq_rtmp, [ fiq_rspi, # S3C2410_SPTDAT ] subs fiq_rcount, fiq_rcount, #1 - subnes pc, lr, #4 @@ return, still have work to do + subsne pc, lr, #4 @@ return, still have work to do mov fiq_rtmp, #0 str fiq_rtmp, [ fiq_rirq, # S3C2410_INTMOD - S3C24XX_VA_IRQ ]
drivers/staging/rtl8188eu/os_dep/usb_intf.c +1 -0
@@ -53,6 +53,7 @@ static struct usb_device_id rtw_usb_id_tbl[] = { {USB_DEVICE(0x2357, 0x0111)}, /* TP-Link TL-WN727N v5.21 */ {USB_DEVICE(0x2C4E, 0x0102)}, /* MERCUSYS MW150US v2 */ {USB_DEVICE(0x0df6, 0x0076)}, /* Sitecom N150 v2 */ + {USB_DEVICE(0x7392, 0xb811)}, /* Edimax EW-7811UN V2 */ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0xffef)}, /* Rosewill RNX-N150NUB */ {} /* Terminating entry */ };
drivers/usb/core/quirks.c +3 -0
@@ -230,6 +230,9 @@ static const struct usb_device_id usb_quirk_list[] = {/* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */ { USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF }, + /* ELMO L-12F document camera */ + { USB_DEVICE(0x09a1, 0x0028), .driver_info = USB_QUIRK_DELAY_CTRL_MSG }, + /* Broadcom BCM92035DGROM BT dongle */ { USB_DEVICE(0x0a5c, 0x2021), .driver_info = USB_QUIRK_RESET_RESUME },
drivers/usb/dwc2/hcd_intr.c +13 -1
@@ -461,7 +461,7 @@ static int dwc2_update_urb_state(struct dwc2_hsotg *hsotg, &short_read);if (urb->actual_length + xfer_length > urb->length) { -dev_warn (hsotg->dev,"%s(): trimming xfer length\n" , __func__); +dev_dbg (hsotg->dev,"%s(): trimming xfer length\n" , __func__); xfer_length = urb->length - urb->actual_length; }
@@ -1915,6 +1915,18 @@ error: qtd->error_count++;dwc2_update_urb_state_abn (hsotg, chan, chnum, qtd->urb, qtd,DWC2_HC_XFER_XACT_ERR ); +/* +* We can get here after a completed transaction +* (urb->actual_length >= urb->length) which was not reported +* as completed. If that is the case, and we do not abort +* the transfer, a transfer of size 0 will be enqueued +* subsequently. If urb->actual_length is not DMA-aligned, +* the buffer will then point to an unaligned address, and +* the resulting behavior is undefined. Bail out in that +* situation. +*/ +if (qtd->urb->actual_length >= qtd->urb->length) + qtd->error_count =3 ;dwc2_hcd_save_data_toggle (hsotg, chan, chnum, qtd);dwc2_halt_channel (hsotg, chan, qtd,DWC2_HC_XFER_XACT_ERR ); }
drivers/usb/dwc3/gadget.c +17 -2
@@ -521,8 +521,23 @@ static int dwc3_gadget_set_ep_config(struct dwc3 *dwc, struct dwc3_ep *dep, params.param0 |=DWC3_DEPCFG_FIFO_NUMBER (dep->number >>1 );if (desc->bInterval) { - params.param1 |=DWC3_DEPCFG_BINTERVAL_M1 (desc->bInterval -1 ); - dep->interval =1 << (desc->bInterval -1 ); +u8 bInterval_m1; + +/* +* Valid range for DEPCFG.bInterval_m1 is from 0 to 13, and it +* must be set to 0 when the controller operates in full-speed. +*/ + bInterval_m1 =min_t (u8, desc->bInterval -1 ,13 ); +if (dwc->gadget.speed ==USB_SPEED_FULL ) + bInterval_m1 =0 ; + +if (usb_endpoint_type (desc) ==USB_ENDPOINT_XFER_INT && + dwc->gadget.speed ==USB_SPEED_FULL ) + dep->interval = desc->bInterval; +else + dep->interval =1 << (desc->bInterval -1 ); + + params.param1 |=DWC3_DEPCFG_BINTERVAL_M1 (bInterval_m1); } return dwc3_send_gadget_ep_cmd(dwc, dep->number,
drivers/usb/renesas_usbhs/fifo.c +2 -0
@@ -140,6 +140,8 @@ struct usbhs_pkt *usbhs_pkt_pop(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt)usbhsf_dma_unmap (pkt); } +usbhs_pipe_running (pipe,0 ); +__usbhsf_pkt_del (pkt); }
drivers/usb/serial/mos7720.c +3 -1
@@ -1239,8 +1239,10 @@ static int mos7720_write(struct tty_struct *tty, struct usb_serial_port *port,if (urb->transfer_buffer ==NULL ) { urb->transfer_buffer =kmalloc (URB_TRANSFER_BUFFER_SIZE ,GFP_ATOMIC ); -if (!urb->transfer_buffer) +if (!urb->transfer_buffer) { + bytes_sent = -ENOMEM ; goto exit; + } } transfer_size =min (count,URB_TRANSFER_BUFFER_SIZE );
drivers/usb/serial/mos7840.c +3 -1
@@ -1362,8 +1362,10 @@ static int mos7840_write(struct tty_struct *tty, struct usb_serial_port *port,if (urb->transfer_buffer ==NULL ) { urb->transfer_buffer =kmalloc (URB_TRANSFER_BUFFER_SIZE ,GFP_ATOMIC ); -if (!urb->transfer_buffer) +if (!urb->transfer_buffer) { + bytes_sent = -ENOMEM ; goto exit; + } } transfer_size =min (count,URB_TRANSFER_BUFFER_SIZE );
drivers/usb/serial/option.c +2 -1
@@ -1551,7 +1551,8 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1272, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1273, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1274, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1275, 0xff, 0xff, 0xff) }, + { USB_DEVICE(ZTE_VENDOR_ID, 0x1275), /* ZTE P685M */ + .driver_info = RSVD(3) | RSVD(4) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1276, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1277, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1278, 0xff, 0xff, 0xff) },
drivers/video/fbdev/Kconfig +1 -1
@@ -1397,6 +1397,7 @@ config FB_ATY select FB_CFB_IMAGEBLIT select FB_BACKLIGHT if FB_ATY_BACKLIGHT select FB_MACMODES if PPC + select FB_ATY_CT if SPARC64 && PCI help This driver supports graphics boards with the ATI Mach64 chips. Say Y if you have such a graphics board.
@@ -1407,7 +1408,6 @@ config FB_ATY config FB_ATY_CT bool "Mach64 CT/VT/GT/LT (incl. 3D RAGE) support" depends on PCI && FB_ATY - default y if SPARC64 && PCI help Say Y here to support use of ATI's 64-bit Rage boards (or other boards based on the Mach64 CT, VT, GT, and LT chipsets) as a
fs/btrfs/free-space-cache.c +5 -1
@@ -754,8 +754,10 @@ static int __load_free_space_cache(struct btrfs_root *root, struct inode *inode,while (num_entries) { e =kmem_cache_zalloc (btrfs_free_space_cachep,GFP_NOFS ); -if (!e) +if (!e) { + ret = -ENOMEM ; goto free_cache; + } ret =io_ctl_read_entry (&io_ctl, e, &type);if (ret) {
@@ -764,6 +766,7 @@ static int __load_free_space_cache(struct btrfs_root *root, struct inode *inode, }if (!e->bytes) { + ret =-1 ;kmem_cache_free (btrfs_free_space_cachep, e); goto free_cache; }
@@ -783,6 +786,7 @@ static int __load_free_space_cache(struct btrfs_root *root, struct inode *inode, num_bitmaps--; e->bitmap =kzalloc (PAGE_CACHE_SIZE ,GFP_NOFS );if (!e->bitmap) { + ret = -ENOMEM ;kmem_cache_free ( btrfs_free_space_cachep, e); goto free_cache;
fs/btrfs/relocation.c +1 -3
@@ -1328,9 +1328,7 @@ static void __del_reloc_root(struct btrfs_root *root)RB_CLEAR_NODE (&node->rb_node); }spin_unlock (&rc->reloc_root_tree.lock); -if (!node) -return ; -BUG_ON ((struct btrfs_root *)node->data != root); +ASSERT (!node || (struct btrfs_root *)node->data == root); }spin_lock (&root->fs_info->trans_lock);
fs/f2fs/file.c +2 -1
@@ -666,7 +666,8 @@ static void __setattr_copy(struct inode *inode, const struct iattr *attr)if (ia_valid &ATTR_MODE ) {umode_t mode = attr->ia_mode; -if (!in_group_p (inode->i_gid) && !capable (CAP_FSETID )) +if (!in_group_p (inode->i_gid) && + !capable_wrt_inode_uidgid (inode,CAP_FSETID )) mode &= ~S_ISGID ;set_acl_inode (fi, mode); }
fs/gfs2/lock_dlm.c +2 -6
@@ -284,7 +284,6 @@ static void gdlm_put_lock(struct gfs2_glock *gl) {struct gfs2_sbd *sdp = gl->gl_name.ln_sbd;struct lm_lockstruct *ls = &sdp->sd_lockstruct; -int lvb_needs_unlock =0 ;int error;if (gl->gl_lksb.sb_lkid ==0 ) {
@@ -297,13 +296,10 @@ static void gdlm_put_lock(struct gfs2_glock *gl)gfs2_sbstats_inc (gl,GFS2_LKS_DCOUNT );gfs2_update_request_times (gl); -/* don't want to skip dlm_unlock writing the lvb when lock is ex */ - -if (gl->gl_lksb.sb_lvbptr && (gl->gl_state ==LM_ST_EXCLUSIVE )) - lvb_needs_unlock =1 ; +/* don't want to skip dlm_unlock writing the lvb when lock has one */ if (test_bit (SDF_SKIP_DLM_UNLOCK , &sdp->sd_flags) && - !lvb_needs_unlock) { + !gl->gl_lksb.sb_lvbptr) {gfs2_glock_free (gl);return ; }
fs/isofs/dir.c +1 -0
@@ -151,6 +151,7 @@ static int do_isofs_readdir(struct inode *inode, struct file *file,printk (KERN_NOTICE "iso9660: Corrupted directory entry" " in block %lu of inode %lu\n" , block, inode->i_ino); +brelse (bh);return -EIO ; }
fs/isofs/namei.c +1 -0
@@ -101,6 +101,7 @@ isofs_find_entry(struct inode *dir, struct dentry *dentry,printk (KERN_NOTICE "iso9660: Corrupted directory entry" " in block %lu of inode %lu\n" , block, dir->i_ino); +brelse (bh);return 0 ; }
fs/jffs2/summary.c +3 -0
@@ -783,6 +783,8 @@ static int jffs2_sum_write_data(struct jffs2_sb_info *c, struct jffs2_eraseblockdbg_summary ("Writing unknown RWCOMPAT_COPY node type %x\n" ,je16_to_cpu (temp->u.nodetype));jffs2_sum_disable_collecting (c->summary); +/* The above call removes the list, nothing more to do */ + goto bail_rwcompat; }else {BUG ();/* unknown node in summary information */ }
@@ -794,6 +796,7 @@ static int jffs2_sum_write_data(struct jffs2_sb_info *c, struct jffs2_eraseblock c->summary->sum_num--; } + bail_rwcompat:jffs2_sum_reset_collected (c->summary);
fs/jfs/jfs_dmap.c +1 -1
@@ -1669,7 +1669,7 @@ s64 dbDiscardAG(struct inode *ip, int agno, s64 minlen) }else if (rc == -ENOSPC ) {/* search for next smaller log2 block */ l2nb =BLKSTOL2 (nblocks) -1 ; - nblocks =1 << l2nb; + nblocks =1LL << l2nb; }else {/* Trim any already allocated blocks */ jfs_error (bmp->db_ipbmap->i_sb,"-EIO\n" );
fs/ntfs/inode.c +6 -0
@@ -661,6 +661,12 @@ static int ntfs_read_locked_inode(struct inode *vi) } a = ctx->attr;/* Get the standard information attribute value. */ +if ((u8 *)a +le16_to_cpu (a->data.resident.value_offset) + +le32_to_cpu (a->data.resident.value_length) > + (u8 *)ctx->mrec + vol->mft_record_size) { +ntfs_error (vi->i_sb,"Corrupt standard information attribute in inode." ); + goto unm_err_out; + } si = (STANDARD_INFORMATION *)((u8 *)a +le16_to_cpu (a->data.resident.value_offset));
include/linux/blkdev.h +31 -11
94 lines not on this page · raw message
include/linux/device-mapper.h +0 -2
@@ -543,8 +543,6 @@ extern struct ratelimit_state dm_ratelimit_state; #define DMEMIT(x...) sz += ((sz >= maxlen) ? \ 0 : scnprintf(result + sz, maxlen - sz, x)) -#define SECTOR_SHIFT 9 -/* * Definitions of return values from target end_io function. */
include/linux/ide.h +0 -1
@@ -128,7 +128,6 @@ struct ide_io_ports {*/ #define PARTN_BITS 6/* number of minor dev bits for partitions */ #define MAX_DRIVES 2/* per interface; 2 assumed by lots of code */ -#define SECTOR_SIZE 512/* * Timeouts for various operations:
include/uapi/linux/msdos_fs.h +2 -0
@@ -9,7 +9,9 @@* The MS-DOS filesystem constants/structures */ +#ifndef SECTOR_SIZE #define SECTOR_SIZE 512/* sector size (bytes) */ +#endif #define SECTOR_BITS 9/* log2(SECTOR_SIZE) */ #define MSDOS_DPB (MSDOS_DPS)/* dir entries per block */ #define MSDOS_DPB_BITS 4/* log2(MSDOS_DPB) */
kernel/debug/kdb/kdb_private.h +1 -1
@@ -234,7 +234,7 @@ extern struct task_struct *kdb_curr_task(int);#define kdb_do_each_thread (g, p) do_each_thread(g, p)#define kdb_while_each_thread (g, p) while_each_thread(g, p) -#define GFP_KDB (in_interrupt() ? GFP_ATOMIC : GFP_KERNEL) +#define GFP_KDB (in_dbg_master() ? GFP_ATOMIC : GFP_KERNEL)extern void *debug_kmalloc (size_t size,gfp_t flags);extern void debug_kfree (void *);
kernel/futex.c +3 -4
@@ -2248,10 +2248,6 @@ static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, oldowner = pi_state->owner; -/* Owner died? */ -if (!pi_state->owner) - newtid |=FUTEX_OWNER_DIED ; -/* * We are here because either: *
@@ -2309,6 +2305,9 @@ retry: } newtid =task_pid_vnr (newowner) |FUTEX_WAITERS ; +/* Owner died? */ +if (!pi_state->owner) + newtid |=FUTEX_OWNER_DIED ;if (get_futex_value_locked (&uval, uaddr)) goto handle_fault;
kernel/module.c +19 -2
@@ -2107,6 +2107,21 @@ static int verify_export_symbols(struct module *mod)return 0 ; } +static bool ignore_undef_symbol (Elf_Half emachine,const char *name) +{ +/* +* On x86, PIC code and Clang non-PIC code may have call foo@PLT. GNU as +* before 2.37 produces an unreferenced _GLOBAL_OFFSET_TABLE_ on x86-64. +* i386 has a similar problem but may not deserve a fix. +* +* If we ever have to ignore many symbols, consider refactoring the code to +* only warn if referenced by a relocation. +*/ +if (emachine ==EM_386 || emachine ==EM_X86_64 ) +return !strcmp (name,"_GLOBAL_OFFSET_TABLE_" ); +return false; +} +/* Change all symbols so that st_value encodes the pointer directly. */ static int simplify_symbols (struct module *mod,const struct load_info *info) {
@@ -2148,8 +2163,10 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)break ; } -/* Ok if weak. */ -if (!ksym &&ELF_ST_BIND (sym[i].st_info) ==STB_WEAK ) +/* Ok if weak or ignored. */ +if (!ksym && + (ELF_ST_BIND (sym[i].st_info) ==STB_WEAK || +ignore_undef_symbol (info->hdr->e_machine, name)))break ; pr_warn("%s: Unknown symbol %s (err %li)\n",
kernel/tracepoint.c +64 -16
122 lines not on this page · raw message
mm/hugetlb.c +42 -1
85 lines not on this page · raw message
mm/memory.c +3 -3
@@ -1686,11 +1686,11 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd, unsigned long addr, unsigned long end, unsigned long pfn, pgprot_t prot) { - pte_t *pte; + pte_t *pte, *mapped_pte;spinlock_t *ptl;int err =0 ; - pte =pte_alloc_map_lock (mm, pmd, addr, &ptl); + mapped_pte = pte =pte_alloc_map_lock (mm, pmd, addr, &ptl);if (!pte)return -ENOMEM ;arch_enter_lazy_mmu_mode ();
@@ -1704,7 +1704,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd, pfn++; }while (pte++, addr +=PAGE_SIZE , addr != end);arch_leave_lazy_mmu_mode (); -pte_unmap_unlock (pte -1 , ptl); +pte_unmap_unlock (mapped_pte, ptl);return err; }
net/bluetooth/a2mp.c +2 -1
@@ -388,9 +388,9 @@ static int a2mp_getampassoc_req(struct amp_mgr *mgr, struct sk_buff *skb, hdev =hci_dev_get (req->id);if (!hdev || hdev->amp_type ==AMP_TYPE_BREDR || tmp) {struct a2mp_amp_assoc_rsp rsp; - rsp.id = req->id;memset (&rsp,0 ,sizeof (rsp)); + rsp.id = req->id;if (tmp) { rsp.status =A2MP_STATUS_COLLISION_OCCURED ;
@@ -519,6 +519,7 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb, assoc =kmemdup (req->amp_assoc, assoc_len,GFP_KERNEL );if (!assoc) {amp_ctrl_put (ctrl); +hci_dev_put (hdev);return -ENOMEM ; }
net/bluetooth/hci_core.c +4 -2
@@ -1372,8 +1372,10 @@ int hci_inquiry(void __user *arg)* cleared). If it is interrupted by a signal, return -EINTR. */ if (wait_on_bit (&hdev->flags,HCI_INQUIRY , -TASK_INTERRUPTIBLE )) -return -EINTR ; +TASK_INTERRUPTIBLE )) { + err = -EINTR ; + goto done; + } }/* for unlimited number of responses we will use buffer with
scripts/recordmcount.pl +5 -1
@@ -259,7 +259,11 @@ if ($arch eq "x86_64") { # force flags for this arch $ld .= " -m shlelf_linux"; - $objcopy .= " -O elf32-sh-linux"; + if ($endian eq "big") { + $objcopy .= " -O elf32-shbig-linux"; + } else { + $objcopy .= " -O elf32-sh-linux"; + } } elsif ($arch eq "powerpc") { $local_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\.?\\S+)";
security/keys/trusted.c +1 -1
@@ -778,7 +778,7 @@ static int getoptions(char *c, struct trusted_key_payload *pay,case Opt_migratable:if (*args[0 ].from =='0' ) pay->migratable =0 ; -else +else if (*args[0 ].from !='1' )return -EINVAL ;break ;case Opt_pcrlock:
sound/soc/codecs/cs42l56.c +2 -1
@@ -1269,6 +1269,7 @@ static int cs42l56_i2c_probe(struct i2c_client *i2c_client,dev_err (&i2c_client->dev,"CS42L56 Device ID (%X). Expected %X\n" , devid,CS42L56_DEVID ); + ret = -EINVAL ; goto err_enable; } alpha_rev = reg &CS42L56_AREV_MASK ;
@@ -1324,7 +1325,7 @@ static int cs42l56_i2c_probe(struct i2c_client *i2c_client, ret =snd_soc_register_codec (&i2c_client->dev, &soc_codec_dev_cs42l56, &cs42l56_dai,1 );if (ret <0 ) -return ret; + goto err_enable;return 0 ;
tools/perf/tests/sample-parsing.c +1 -1
@@ -167,7 +167,7 @@ static int do_test(u64 sample_type, u64 sample_regs, u64 read_format) .data = {1, 211, 212, 213}, };u64 regs[64 ]; -const u64 raw_data[] = {0x123456780a0b0c0dULL ,0x1102030405060708ULL }; +const u32 raw_data[] = {0x12345678 ,0x0a0b0c0d ,0x11020304 ,0x05060708 ,0 };const u64 data[] = {0x2211443366558877ULL ,0 ,0xaabbccddeeff4321ULL };struct perf_sample sample = { .ip = 101,
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +3 -0
@@ -1478,6 +1478,9 @@ static int intel_pt_walk_psbend(struct intel_pt_decoder *decoder)break ;case INTEL_PT_CYC : +intel_pt_calc_cyc_timestamp (decoder); +break ; +case INTEL_PT_VMCS :case INTEL_PT_MNT :case INTEL_PT_PAD :