162 Commits

Author SHA1 Message Date
Michael Bestas
4cc75538c1 Merge tag 'v4.4.259' into android-msm-wahoo-4.4
This is the 4.4.259 stable release

# gpg: Signature made Wed Mar  3 17:45:51 2021 EET
# gpg:                using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
# gpg: Good signature from "Greg Kroah-Hartman <gregkh@kernel.org>" [full]
# gpg: gregkh@kernel.org: Verified 10 signatures in the past 2 hours.  Encrypted
#      0 messages.

# By Dan Carpenter (7) and others
# Via Greg Kroah-Hartman
* tag 'v4.4.259':
  Linux 4.4.259
  dm era: Update in-core bitset after committing the metadata
  futex: Fix OWNER_DEAD fixup
  dm era: only resize metadata in preresume
  dm era: Reinitialize bitset cache before digesting a new writeset
  dm era: Use correct value size in equality function of writeset tree
  dm era: Fix bitset memory leaks
  dm era: Verify the data block size hasn't changed
  dm era: Recover committed writeset after crash
  gfs2: Don't skip dlm unlock if glock has an lvb
  sparc32: fix a user-triggerable oops in clear_user()
  f2fs: fix out-of-repair __setattr_copy()
  gpio: pcf857x: Fix missing first interrupt
  module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
  libnvdimm/dimm: Avoid race between probe and available_slots_show()
  usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop()
  mm: hugetlb: fix a race between freeing and dissolving the page
  floppy: reintroduce O_NDELAY fix
  x86/reboot: Force all cpus to exit VMX root if VMX is supported
  staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
  drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
  btrfs: fix reloc root leak with 0 ref reloc roots on recovery
  KEYS: trusted: Fix migratable=1 failing
  usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
  usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
  USB: serial: mos7720: fix error code in mos7720_write()
  USB: serial: mos7840: fix error code in mos7840_write()
  USB: serial: option: update interface mapping for ZTE P685M
  Input: i8042 - add ASUS Zenbook Flip to noselftest list
  Input: joydev - prevent potential read overflow in ioctl
  Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox Series X|S
  blk-settings: align max_sectors on "logical_block_size" boundary
  block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h>
  scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
  i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
  mm/hugetlb: fix potential double free in hugetlb_register_node() error path
  mm/memory.c: fix potential pte_unmap_unlock pte error
  PCI: Align checking of syscall user config accessors
  VMCI: Use set_page_dirty_lock() when unregistering guest memory
  misc: eeprom_93xx46: Add module alias to avoid breaking support for non device tree users
  misc: eeprom_93xx46: Fix module alias to enable module autoprobe
  sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
  Input: elo - fix an error code in elo_connect()
  perf test: Fix unaligned access in sample parsing test
  perf intel-pt: Fix missing CYC processing in PSB
  powerpc/pseries/dlpar: handle ibm, configure-connector delay status
  mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
  tracepoint: Do not fail unregistering a probe due to memory failure
  amba: Fix resource leak for drivers without .remove
  ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
  mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
  powerpc/47x: Disable 256k page size
  IB/umad: Return EIO in case of when device disassociated
  isofs: release buffer head before return
  regulator: axp20x: Fix reference cout leak
  clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
  dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function
  dmaengine: fsldma: Fix a resource leak in the remove function
  HID: core: detect and skip invalid inputs to snto32()
  clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
  jffs2: fix use after free in jffs2_sum_write_data()
  fs/jfs: fix potential integer overflow on shift of a int
  btrfs: clarify error returns values in __load_free_space_cache
  media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
  media: cx25821: Fix a bug when reallocating some dma memory
  media: lmedm04: Fix misuse of comma
  ASoC: cs42l56: fix up error handling in probe
  media: tm6000: Fix memleak in tm6000_start_stream
  media: media/pci: Fix memleak in empress_init
  MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
  MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
  gma500: clean up error handling in init
  drm/gma500: Fix error return code in psb_driver_load()
  fbdev: aty: SPARC64 requires FB_ATY_CT
  b43: N-PHY: Fix the update of coef for the PHY revision >= 3case
  xen/netback: fix spurious event detection for common event case
  bnxt_en: reverse order of TX disable and carrier off
  ARM: s3c: fix fiq for clang IAS
  usb: dwc2: Make "trimming xfer length" a debug message
  usb: dwc2: Abort transaction after errors with unknown reason
  Bluetooth: Put HCI device if inquiry procedure interrupts
  Bluetooth: drop HCI device reference before return
  ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
  ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
  Bluetooth: Fix initializing response id after clearing struct
  MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
  kdb: Make memory allocations more robust
  scripts/recordmcount.pl: support big endian for ARCH sh
  igb: Remove incorrect "unexpected SYS WRAP" log message
  ntfs: check for valid standard information attribute
  xen-netback: delete NAPI instance when queue fails to initialize
  usb: quirks: add quirk to start video capture on ELMO L-12F document camera reliable
  HID: make arrays usage and value to be the same

Change-Id: I1e89f14870d9386ef5ad211a4d421745e6b29f89
2021-07-24 19:19:07 +03:00
Sumit Garg
f1c9225ad3 kdb: Make memory allocations more robust
commit 93f7a6d818deef69d0ba652d46bae6fbabbf365c upstream.

Currently kdb uses in_interrupt() to determine whether its library
code has been called from the kgdb trap handler or from a saner calling
context such as driver init. This approach is broken because
in_interrupt() alone isn't able to determine kgdb trap handler entry from
normal task context. This can happen during normal use of basic features
such as breakpoints and can also be trivially reproduced using:
echo g > /proc/sysrq-trigger

We can improve this by adding check for in_dbg_master() instead which
explicitly determines if we are running in debugger context.

Cc: stable@vger.kernel.org
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Link: https://lore.kernel.org/r/1611313556-4004-1-git-send-email-sumit.garg@linaro.org
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-03 16:44:15 +01:00
Nathan Chancellor
de03ddc510 Merge 4.4.242 into android-msm-wahoo-4.4
Changes in 4.4.242: (87 commits)
        SUNRPC: ECONNREFUSED should cause a rebind.
        scripts/setlocalversion: make git describe output more reliable
        powerpc/powernv/opal-dump : Use IRQ_HANDLED instead of numbers in interrupt handler
        efivarfs: Replace invalid slashes with exclamation marks in dentries.
        ravb: Fix bit fields checking in ravb_hwtstamp_get()
        tipc: fix memory leak caused by tipc_buf_append()
        mtd: lpddr: Fix bad logic in print_drs_error
        ata: sata_rcar: Fix DMA boundary mask
        fscrypt: return -EXDEV for incompatible rename or link into encrypted dir
        f2fs crypto: avoid unneeded memory allocation in ->readdir
        powerpc/powernv/smp: Fix spurious DBG() warning
        sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
        f2fs: fix to check segment boundary during SIT page readahead
        um: change sigio_spinlock to a mutex
        xfs: fix realtime bitmap/summary file truncation when growing rt volume
        video: fbdev: pvr2fb: initialize variables
        ath10k: fix VHT NSS calculation when STBC is enabled
        mmc: via-sdmmc: Fix data race bug
        printk: reduce LOG_BUF_SHIFT range for H8300
        kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
        USB: adutux: fix debugging
        drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
        power: supply: test_power: add missing newlines when printing parameters by sysfs
        md/bitmap: md_bitmap_get_counter returns wrong blocks
        clk: ti: clockdomain: fix static checker warning
        net: 9p: initialize sun_server.sun_path to have addr's value only when addr is valid
        drivers: watchdog: rdc321x_wdt: Fix race condition bugs
        ext4: Detect already used quota file early
        gfs2: add validation checks for size of superblock
        memory: emif: Remove bogus debugfs error handling
        ARM: dts: s5pv210: move PMU node out of clock controller
        ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
        md/raid5: fix oops during stripe resizing
        leds: bcm6328, bcm6358: use devres LED registering function
        NFS: fix nfs_path in case of a rename retry
        ACPI / extlog: Check for RDMSR failure
        ACPI: video: use ACPI backlight for HP 635 Notebook
        acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
        w1: mxc_w1: Fix timeout resolution problem leading to bus error
        scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
        btrfs: reschedule if necessary when logging directory items
        vt: keyboard, simplify vt_kdgkbsent
        vt: keyboard, extend func_buf_lock to readers
        dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
        iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
        powerpc/powernv/elog: Fix race while processing OPAL error log event.
        ubifs: dent: Fix some potential memory leaks while iterating entries
        ubi: check kthread_should_stop() after the setting of task state
        ia64: fix build error with !COREDUMP
        ceph: promote to unsigned long long before shifting
        libceph: clear con->out_msg on Policy::stateful_server faults
        9P: Cast to loff_t before multiplying
        ring-buffer: Return 0 on success from ring_buffer_resize()
        vringh: fix __vringh_iov() when riov and wiov are different
        tty: make FONTX ioctl use the tty pointer they were actually passed
        arm64: berlin: Select DW_APB_TIMER_OF
        cachefiles: Handle readpage error correctly
        hil/parisc: Disable HIL driver when it gets stuck
        ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
        ARM: s3c24xx: fix missing system reset
        device property: Keep secondary firmware node secondary by type
        device property: Don't clear secondary pointer for shared primary firmware node
        staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
        xen/events: don't use chip_data for legacy IRQs
        tipc: fix use-after-free in tipc_bcast_get_mode
        gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
        gianfar: Account for Tx PTP timestamp in the skb headroom
        Fonts: Replace discarded const qualifier
        ALSA: usb-audio: Add implicit feedback quirk for Qu-16
        ftrace: Fix recursion check for NMI test
        ftrace: Handle tracing when switching between context
        ARM: dts: sun4i-a10: fix cpu_alert temperature
        x86/kexec: Use up-to-dated screen_info copy to fill boot params
        of: Fix reserved-memory overlap detection
        scsi: core: Don't start concurrent async scan on same host
        vsock: use ns_capable_noaudit() on socket create
        vt: Disable KD_FONT_OP_COPY
        fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
        serial: 8250_mtk: Fix uart_get_baud_rate warning
        serial: txx9: add missing platform_driver_unregister() on error in serial_txx9_init
        USB: serial: cyberjack: fix write-URB completion race
        USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
        USB: serial: option: add Telit FN980 composition 0x1055
        USB: Add NO_LPM quirk for Kingston flash drive
        ARC: stack unwinding: avoid indefinite looping
        Revert "ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE"
        Linux 4.4.242

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	scripts/setlocalversion
2020-11-12 09:49:14 -07:00
Douglas Anderson
747ba0eab5 kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
[ Upstream commit b18b099e04f450cdc77bec72acefcde7042bd1f3 ]

On my system the kernel processes the "kgdb_earlycon" parameter before
the "kgdbcon" parameter.  When we setup "kgdb_earlycon" we'll end up
in kgdb_register_callbacks() and "kgdb_use_con" won't have been set
yet so we'll never get around to starting "kgdbcon".  Let's remedy
this by detecting that the IO module was already registered when
setting "kgdb_use_con" and registering the console then.

As part of this, to avoid pre-declaring things, move the handling of
the "kgdbcon" further down in the file.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20200630151422.1.I4aa062751ff5e281f5116655c976dff545c09a46@changeid
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-11-10 10:22:13 +01:00
Nathan Chancellor
58adc31dac Merge 4.4.241 into android-msm-wahoo-4.4
Changes in 4.4.241: (113 commits)
        ibmveth: Identify ingress large send packets.
        tipc: fix the skb_unshare() in tipc_buf_append()
        net/ipv4: always honour route mtu during forwarding
        r8169: fix data corruption issue on RTL8402
        ALSA: bebob: potential info leak in hwdep_read()
        mm/kasan: print name of mem[set,cpy,move]() caller in report
        mm/kasan: add API to check memory regions
        compiler.h, kasan: Avoid duplicating __read_once_size_nocheck()
        compiler.h: Add read_word_at_a_time() function.
        lib/strscpy: Shut up KASAN false-positives in strscpy()
        x86/mm/ptdump: Fix soft lockup in page table walker
        net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
        net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup
        nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in nfc_genl_fw_download()
        tcp: fix to update snd_wl1 in bulk receiver fast path
        icmp: randomize the global rate limiter
        cifs: remove bogus debug code
        ima: Don't ignore errors from crypto_shash_update()
        EDAC/i5100: Fix error handling order in i5100_init_one()
        crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
        media: Revert "media: exynos4-is: Add missed check for pinctrl_lookup_state()"
        media: m5mols: Check function pointer in m5mols_sensor_power
        media: omap3isp: Fix memleak in isp_probe
        crypto: omap-sham - fix digcnt register handling with export/import
        media: tc358743: initialize variable
        media: ti-vpe: Fix a missing check and reference count leak
        ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
        ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
        wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
        mwifiex: Do not use GFP_KERNEL in atomic context
        drm/gma500: fix error check
        scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
        scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
        backlight: sky81452-backlight: Fix refcount imbalance on error
        VMCI: check return value of get_user_pages_fast() for errors
        tty: serial: earlycon dependency
        tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
        pty: do tty_flip_buffer_push without port->lock in pty_write
        drivers/virt/fsl_hypervisor: Fix error handling path
        video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
        video: fbdev: sis: fix null ptr dereference
        HID: roccat: add bounds checking in kone_sysfs_write_settings()
        ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
        misc: mic: scif: Fix error handling path
        ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
        quota: clear padding in v2r1_mem2diskdqb()
        net: enic: Cure the enic api locking trainwreck
        mfd: sm501: Fix leaks in probe()
        usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
        nl80211: fix non-split wiphy information
        mwifiex: fix double free
        net: korina: fix kfree of rx/tx descriptor array
        IB/mlx4: Adjust delayed work when a dup is observed
        powerpc/pseries: Fix missing of_node_put() in rng_init()
        powerpc/icp-hv: Fix missing of_node_put() in success path
        mtd: lpddr: fix excessive stack usage with clang
        mtd: mtdoops: Don't write panic data twice
        ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
        powerpc/tau: Use appropriate temperature sample interval
        powerpc/tau: Remove duplicated set_thresholds() call
        powerpc/tau: Disable TAU between measurements
        perf intel-pt: Fix "context_switch event has no tid" error
        kdb: Fix pager search for multi-line strings
        powerpc/perf/hv-gpci: Fix starting index value
        cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
        lib/crc32.c: fix trivial typo in preprocessor condition
        vfio/pci: Clear token on bypass registration failure
        Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
        Input: ep93xx_keypad - fix handling of platform_get_irq() error
        Input: omap4-keypad - fix handling of platform_get_irq() error
        Input: sun4i-ps2 - fix handling of platform_get_irq() error
        KVM: x86: emulating RDPID failure shall return #UD rather than #GP
        memory: omap-gpmc: Fix a couple off by ones
        memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
        arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
        powerpc/powernv/dump: Fix race while processing OPAL dump
        media: firewire: fix memory leak
        media: ati_remote: sanity check for both endpoints
        media: exynos4-is: Fix several reference count leaks due to pm_runtime_get_sync
        media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
        media: exynos4-is: Fix a reference count leak
        media: bdisp: Fix runtime PM imbalance on error
        media: media/pci: prevent memory leak in bttv_probe
        media: uvcvideo: Ensure all probed info is returned to v4l2
        mmc: sdio: Check for CISTPL_VERS_1 buffer size
        media: saa7134: avoid a shift overflow
        ntfs: add check for mft record size in superblock
        PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
        scsi: mvumi: Fix error return in mvumi_io_attach()
        scsi: target: core: Add CONTROL field for trace events
        usb: gadget: function: printer: fix use-after-free in __lock_acquire
        udf: Limit sparing table size
        udf: Avoid accessing uninitialized data on failed inode read
        ath9k: hif_usb: fix race condition between usb_get_urb() and usb_kill_anchored_urbs()
        misc: rtsx: Fix memory leak in rtsx_pci_probe
        reiserfs: only call unlock_new_inode() if I_NEW
        xfs: make sure the rt allocator doesn't run off the end
        usb: ohci: Default to per-port over-current protection
        Bluetooth: Only mark socket zapped after unlocking
        scsi: ibmvfc: Fix error return in ibmvfc_probe()
        brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
        rtl8xxxu: prevent potential memory leak
        Fix use after free in get_capset_info callback.
        tty: ipwireless: fix error handling
        ipvs: Fix uninit-value in do_ip_vs_set_ctl()
        reiserfs: Fix memory leak in reiserfs_parse_options()
        brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
        usb: core: Solve race condition in anchor cleanup functions
        ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
        net: korina: cast KSEG0 address to pointer in kfree
        usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
        USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
        Linux 4.4.241

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2020-10-29 13:14:11 -07:00
Daniel Thompson
a7c1b557e6 kdb: Fix pager search for multi-line strings
[ Upstream commit d081a6e353168f15e63eb9e9334757f20343319f ]

Currently using forward search doesn't handle multi-line strings correctly.
The search routine replaces line breaks with \0 during the search and, for
regular searches ("help | grep Common\n"), there is code after the line
has been discarded or printed to replace the break character.

However during a pager search ("help\n" followed by "/Common\n") when the
string is matched we will immediately return to normal output and the code
that should restore the \n becomes unreachable. Fix this by restoring the
replaced character when we disable the search mode and update the comment
accordingly.

Fixes: fb6daa7520 ("kdb: Provide forward search at more prompt")
Link: https://lore.kernel.org/r/20200909141708.338273-1-daniel.thompson@linaro.org
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-29 09:03:06 +01:00
Nathan Chancellor
b7a52ef11a Merge 4.4.230 into android-msm-wahoo-4.4
Changes in 4.4.230: (20 commits)
        btrfs: cow_file_range() num_bytes and disk_num_bytes are same
        btrfs: fix data block group relocation failure due to concurrent scrub
        mm: fix swap cache node allocation mask
        EDAC/amd64: Read back the scrub rate PCI register on F15h
        mm/slub: fix stack overruns with SLUB_STATS
        usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
        kgdb: Avoid suspicious RCU usage warning
        crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
        sched/rt: Show the 'sched_rr_timeslice' SCHED_RR timeslice tuning knob in milliseconds
        hwmon: (max6697) Make sure the OVERT mask is set correctly
        hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
        virtio-blk: free vblk-vqs in error path of virtblk_probe()
        i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
        Revert "ALSA: usb-audio: Improve frames size computation"
        SMB3: Honor 'seal' flag for multiuser mounts
        SMB3: Honor persistent/resilient handle flags for multiuser mounts
        cifs: Fix the target file was deleted when rename failed.
        MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
        netfilter: nf_conntrack_h323: lost .data_len definition for Q.931/ipv6
        Linux 4.4.230

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2020-07-09 19:21:04 -07:00
Douglas Anderson
2339cc6909 kgdb: Avoid suspicious RCU usage warning
[ Upstream commit 440ab9e10e2e6e5fd677473ee6f9e3af0f6904d6 ]

At times when I'm using kgdb I see a splat on my console about
suspicious RCU usage.  I managed to come up with a case that could
reproduce this that looked like this:

  WARNING: suspicious RCU usage
  5.7.0-rc4+ #609 Not tainted
  -----------------------------
  kernel/pid.c:395 find_task_by_pid_ns() needs rcu_read_lock() protection!

  other info that might help us debug this:

    rcu_scheduler_active = 2, debug_locks = 1
  3 locks held by swapper/0/1:
   #0: ffffff81b6b8e988 (&dev->mutex){....}-{3:3}, at: __device_attach+0x40/0x13c
   #1: ffffffd01109e9e8 (dbg_master_lock){....}-{2:2}, at: kgdb_cpu_enter+0x20c/0x7ac
   #2: ffffffd01109ea90 (dbg_slave_lock){....}-{2:2}, at: kgdb_cpu_enter+0x3ec/0x7ac

  stack backtrace:
  CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.7.0-rc4+ #609
  Hardware name: Google Cheza (rev3+) (DT)
  Call trace:
   dump_backtrace+0x0/0x1b8
   show_stack+0x1c/0x24
   dump_stack+0xd4/0x134
   lockdep_rcu_suspicious+0xf0/0x100
   find_task_by_pid_ns+0x5c/0x80
   getthread+0x8c/0xb0
   gdb_serial_stub+0x9d4/0xd04
   kgdb_cpu_enter+0x284/0x7ac
   kgdb_handle_exception+0x174/0x20c
   kgdb_brk_fn+0x24/0x30
   call_break_hook+0x6c/0x7c
   brk_handler+0x20/0x5c
   do_debug_exception+0x1c8/0x22c
   el1_sync_handler+0x3c/0xe4
   el1_sync+0x7c/0x100
   rpmh_rsc_probe+0x38/0x420
   platform_drv_probe+0x94/0xb4
   really_probe+0x134/0x300
   driver_probe_device+0x68/0x100
   __device_attach_driver+0x90/0xa8
   bus_for_each_drv+0x84/0xcc
   __device_attach+0xb4/0x13c
   device_initial_probe+0x18/0x20
   bus_probe_device+0x38/0x98
   device_add+0x38c/0x420

If I understand properly we should just be able to blanket kgdb under
one big RCU read lock and the problem should go away.  We'll add it to
the beast-of-a-function known as kgdb_cpu_enter().

With this I no longer get any splats and things seem to work fine.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20200602154729.v2.1.I70e0d4fd46d5ed2aaf0c98a355e8e1b7a5bb7e4e@changeid
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-07-09 09:35:08 +02:00
Nathan Chancellor
95a91a0f31 Merge 4.4.228 into android-msm-wahoo-4.4
Changes in 4.4.228: (102 commits)
        ipv6: fix IPV6_ADDRFORM operation logic
        vxlan: Avoid infinite loop when suppressing NS messages with invalid options
        scsi: return correct blkprep status code in case scsi_init_io() fails.
        net: phy: marvell: Limit 88m1101 autoneg errata to 88E1145 as well.
        pwm: fsl-ftm: Use flat regmap cache
        igb: improve handling of disconnected adapters
        ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
        sched/fair: Don't NUMA balance for kthreads
        ath9k_htc: Silence undersized packet warnings
        x86_64: Fix jiffies ODR violation
        x86/speculation: Prevent rogue cross-process SSBD shutdown
        x86/reboot/quirks: Add MacBook6,1 reboot quirk
        efi/efivars: Add missing kobject_put() in sysfs entry creation error path
        ALSA: es1688: Add the missed snd_card_free()
        ALSA: usb-audio: Fix inconsistent card PM state after resume
        ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile()
        ACPI: PM: Avoid using power resources if there are none for D0
        cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages
        nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
        spi: bcm2835aux: Fix controller unregister order
        ALSA: pcm: disallow linking stream to itself
        x86/speculation: Change misspelled STIPB to STIBP
        x86/speculation: Add support for STIBP always-on preferred mode
        x86/speculation: Avoid force-disabling IBPB based on STIBP and enhanced IBRS.
        x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect branches.
        spi: dw: fix possible race condition
        spi: dw: Fix controller unregister order
        spi: No need to assign dummy value in spi_unregister_controller()
        spi: Fix controller unregister order
        spi: pxa2xx: Fix controller unregister order
        spi: bcm2835: Fix controller unregister order
        ovl: initialize error in ovl_copy_xattr
        proc: Use new_inode not new_inode_pseudo
        video: fbdev: w100fb: Fix a potential double free.
        KVM: nSVM: leave ASID aside in copy_vmcb_control_area
        KVM: nVMX: Consult only the "basic" exit reason when routing nested exit
        KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts
        ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx
        ath9k: Fix use-after-free Write in ath9k_htc_rx_msg
        ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb
        ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
        Smack: slab-out-of-bounds in vsscanf
        mm/slub: fix a memory leak in sysfs_slab_add()
        fat: don't allow to mount if the FAT length == 0
        can: kvaser_usb: kvaser_usb_leaf: Fix some info-leaks to USB devices
        spi: dw: Zero DMA Tx and Rx configurations on stack
        Bluetooth: Add SCO fallback for invalid LMP parameters error
        kgdb: Prevent infinite recursive entries to the debugger
        spi: dw: Enable interrupts in accordance with DMA xfer mode
        clocksource: dw_apb_timer_of: Fix missing clockevent timers
        btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
        ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
        net: vmxnet3: fix possible buffer overflow caused by bad DMA value in vmxnet3_get_rss()
        staging: android: ion: use vmap instead of vm_map_ram
        e1000: Distribute switch variables for initialization
        media: dvb: return -EREMOTEIO on i2c transfer failure.
        MIPS: Make sparse_init() using top-down allocation
        netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
        lib/mpi: Fix 64-bit MIPS build with Clang
        net: lpc-enet: fix error return code in lpc_mii_init()
        net: allwinner: Fix use correct return type for ndo_start_xmit()
        powerpc/spufs: fix copy_to_user while atomic
        mips: cm: Fix an invalid error code of INTVN_*_ERR
        kgdb: Fix spurious true from in_dbg_master()
        md: don't flush workqueue unconditionally in md_open
        mwifiex: Fix memory corruption in dump_station
        mips: Add udelay lpj numbers adjustment
        x86/mm: Stop printing BRK addresses
        m68k: mac: Don't call via_flush_cache() on Mac IIfx
        macvlan: Skip loopback packets in RX handler
        PCI: Don't disable decoding when mmio_always_on is set
        MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
        ixgbe: fix signed-integer-overflow warning
        spi: dw: Return any value retrieved from the dma_transfer callback
        cpuidle: Fix three reference count leaks
        ima: Fix ima digest hash table key calculation
        ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
        Btrfs: fix unreplayable log after snapshot delete + parent dir fsync
        btrfs: send: emit file capabilities after chown
        btrfs: fix error handling when submitting direct I/O bio
        ima: Directly assign the ima_default_policy pointer to ima_rules
        PCI: Program MPS for RCiEP devices
        e1000e: Relax condition to trigger reset for ME workaround
        carl9170: remove P2P_GO support
        media: go7007: fix a miss of snd_card_free
        b43legacy: Fix case where channel status is corrupted
        b43: Fix connection problem with WPA3
        b43_legacy: Fix connection problem with WPA3
        igb: Report speed and duplex as unknown when device is runtime suspended
        power: vexpress: add suppress_bind_attrs to true
        pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs
        sparc32: fix register window handling in genregs32_[gs]et()
        kernel/cpu_pm: Fix uninitted local in cpu_pm
        ARM: tegra: Correct PL310 Auxiliary Control Register initialization
        drivers/macintosh: Fix memleak in windfarm_pm112 driver
        kbuild: force to build vmlinux if CONFIG_MODVERSION=y
        sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate registrations.
        sunrpc: clean up properly in gss_mech_unregister()
        w1: omap-hdq: cleanup to add missing newline for some dev_dbg
        perf probe: Do not show the skipped events
        perf symbols: Fix debuginfo search for Ubuntu
        Linux 4.4.228

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	arch/x86/kernel/vmlinux.lds.S
2020-06-22 11:21:01 -07:00
Douglas Anderson
8f08be4633 kgdb: Prevent infinite recursive entries to the debugger
[ Upstream commit 3ca676e4ca60d1834bb77535dafe24169cadacef ]

If we detect that we recursively entered the debugger we should hack
our I/O ops to NULL so that the panic() in the next line won't
actually cause another recursion into the debugger.  The first line of
kgdb_panic() will check this and return.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Link: https://lore.kernel.org/r/20200507130644.v4.6.I89de39f68736c9de610e6f241e68d8dbc44bc266@changeid
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-20 10:23:19 +02:00
Nathan Chancellor
4cf66c0bce Merge 4.4.212 into android-msm-wahoo-4.4
Changes in 4.4.212: (184 commits)
        xfs: Sanity check flags of Q_XQUOTARM call
        powerpc/archrandom: fix arch_get_random_seed_int()
        mt7601u: fix bbp version check in mt7601u_wait_bbp_ready
        drm/virtio: fix bounds check in virtio_gpu_cmd_get_capset()
        ALSA: hda: fix unused variable warning
        ALSA: usb-audio: update quirk for B&W PX to remove microphone
        staging: comedi: ni_mio_common: protect register write overflow
        pcrypt: use format specifier in kobject_add
        exportfs: fix 'passing zero to ERR_PTR()' warning
        drm/dp_mst: Skip validating ports during destruction, just ref
        pinctrl: sh-pfc: r8a7740: Add missing REF125CK pin to gether_gmii group
        pinctrl: sh-pfc: r8a7740: Add missing LCD0 marks to lcd0_data24_1 group
        pinctrl: sh-pfc: r8a7791: Remove bogus ctrl marks from qspi_data4_b group
        pinctrl: sh-pfc: r8a7791: Remove bogus marks from vin1_b_data18 group
        pinctrl: sh-pfc: sh73a0: Add missing TO pin to tpu4_to3 group
        pinctrl: sh-pfc: r8a7794: Remove bogus IPSR9 field
        pinctrl: sh-pfc: sh7734: Add missing IPSR11 field
        pinctrl: sh-pfc: sh7269: Add missing PCIOR0 field
        pinctrl: sh-pfc: sh7734: Remove bogus IPSR10 value
        Input: nomadik-ske-keypad - fix a loop timeout test
        clk: highbank: fix refcount leak in hb_clk_init()
        clk: qoriq: fix refcount leak in clockgen_init()
        clk: socfpga: fix refcount leak
        clk: samsung: exynos4: fix refcount leak in exynos4_get_xom()
        clk: imx6q: fix refcount leak in imx6q_clocks_init()
        clk: imx6sx: fix refcount leak in imx6sx_clocks_init()
        clk: imx7d: fix refcount leak in imx7d_clocks_init()
        clk: vf610: fix refcount leak in vf610_clocks_init()
        clk: armada-370: fix refcount leak in a370_clk_init()
        clk: kirkwood: fix refcount leak in kirkwood_clk_init()
        clk: armada-xp: fix refcount leak in axp_clk_init()
        IB/usnic: Fix out of bounds index check in query pkey
        RDMA/ocrdma: Fix out of bounds index check in query pkey
        media: s5p-jpeg: Correct step and max values for V4L2_CID_JPEG_RESTART_INTERVAL
        crypto: tgr192 - fix unaligned memory access
        ASoC: imx-sgtl5000: put of nodes if finding codec fails
        rtc: cmos: ignore bogus century byte
        tty: ipwireless: Fix potential NULL pointer dereference
        rtc: ds1672: fix unintended sign extension
        rtc: 88pm860x: fix unintended sign extension
        rtc: 88pm80x: fix unintended sign extension
        rtc: pm8xxx: fix unintended sign extension
        fbdev: chipsfb: remove set but not used variable 'size'
        pinctrl: sh-pfc: emev2: Add missing pinmux functions
        pinctrl: sh-pfc: r8a7791: Fix scifb2_data_c pin group
        pinctrl: sh-pfc: sh73a0: Fix fsic_spdif pin groups
        block: don't use bio->bi_vcnt to figure out segment number
        vfio_pci: Enable memory accesses before calling pci_map_rom
        cdc-wdm: pass return value of recover_from_urb_loss
        drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON
        drm/nouveau/pmu: don't print reply values if exec is false
        ASoC: qcom: Fix of-node refcount unbalance in apq8016_sbc_parse_of()
        fs/nfs: Fix nfs_parse_devname to not modify it's argument
        clocksource/drivers/sun5i: Fail gracefully when clock rate is unavailable
        ARM: 8847/1: pm: fix HYP/SVC mode mismatch when MCPM is used
        regulator: wm831x-dcdc: Fix list of wm831x_dcdc_ilim from mA to uA
        nios2: ksyms: Add missing symbol exports
        scsi: megaraid_sas: reduce module load time
        xen, cpu_hotplug: Prevent an out of bounds access
        net: sh_eth: fix a missing check of of_get_phy_mode
        media: ivtv: update *pos correctly in ivtv_read_pos()
        media: cx18: update *pos correctly in cx18_read_pos()
        media: wl128x: Fix an error code in fm_download_firmware()
        media: cx23885: check allocation return
        jfs: fix bogus variable self-initialization
        m68k: mac: Fix VIA timer counter accesses
        ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset()
        media: davinci-isif: avoid uninitialized variable use
        spi: tegra114: clear packed bit for unpacked mode
        spi: tegra114: fix for unpacked mode transfers
        soc/fsl/qe: Fix an error code in qe_pin_request()
        spi: bcm2835aux: fix driver to not allow 65535 (=-1) cs-gpios
        ehea: Fix a copy-paste err in ehea_init_port_res
        scsi: qla2xxx: Unregister chrdev if module initialization fails
        ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data"
        hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses
        tipc: set sysctl_tipc_rmem and named_timeout right range
        powerpc: vdso: Make vdso32 installation conditional in vdso_install
        media: ov2659: fix unbalanced mutex_lock/unlock
        6lowpan: Off by one handling ->nexthdr
        dmaengine: axi-dmac: Don't check the number of frames for alignment
        ALSA: usb-audio: Handle the error from snd_usb_mixer_apply_create_quirk()
        packet: in recvmsg msg_name return at least sizeof sockaddr_ll
        ASoC: fix valid stream condition
        IB/mlx5: Add missing XRC options to QP optional params mask
        iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU
        media: omap_vout: potential buffer overflow in vidioc_dqbuf()
        media: davinci/vpbe: array underflow in vpbe_enum_outputs()
        platform/x86: alienware-wmi: printing the wrong error code
        netfilter: ebtables: CONFIG_COMPAT: reject trailing data after last rule
        ARM: riscpc: fix lack of keyboard interrupts after irq conversion
        kdb: do a sanity check on the cpu in kdb_per_cpu()
        backlight: lm3630a: Return 0 on success in update_status functions
        thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power
        spi: spi-fsl-spi: call spi_finalize_current_message() at the end
        misc: sgi-xp: Properly initialize buf in xpc_get_rsvd_page_pa
        iommu: Use right function to get group for device
        signal/cifs: Fix cifs_put_tcp_session to call send_sig instead of force_sig
        inet: frags: call inet_frags_fini() after unregister_pernet_subsys()
        media: vivid: fix incorrect assignment operation when setting video mode
        powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild
        drm/msm/mdp5: Fix mdp5_cfg_init error return
        net/af_iucv: always register net_device notifier
        ASoC: ti: davinci-mcasp: Fix slot mask settings when using multiple AXRs
        rtc: pcf8563: Clear event flags and disable interrupts before requesting irq
        drm/msm/a3xx: remove TPL1 regs from snapshot
        iommu/amd: Make iommu_disable safer
        mfd: intel-lpss: Release IDA resources
        devres: allow const resource arguments
        net: pasemi: fix an use-after-free in pasemi_mac_phy_init()
        scsi: libfc: fix null pointer dereference on a null lport
        libertas_tf: Use correct channel range in lbtf_geo_init
        usb: host: xhci-hub: fix extra endianness conversion
        mic: avoid statically declaring a 'struct device'.
        x86/kgbd: Use NMI_VECTOR not APIC_DM_NMI
        ALSA: aoa: onyx: always initialize register read value
        cifs: fix rmmod regression in cifs.ko caused by force_sig changes
        crypto: caam - free resources in case caam_rng registration failed
        ext4: set error return correctly when ext4_htree_store_dirent fails
        ASoC: es8328: Fix copy-paste error in es8328_right_line_controls
        ASoC: cs4349: Use PM ops 'cs4349_runtime_pm'
        ASoC: wm8737: Fix copy-paste error in wm8737_snd_controls
        signal: Allow cifs and drbd to receive their terminating signals
        dmaengine: dw: platform: Switch to acpi_dma_controller_register()
        mac80211: minstrel_ht: fix per-group max throughput rate initialization
        mips: avoid explicit UB in assignment of mips_io_port_base
        ahci: Do not export local variable ahci_em_messages
        Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()"
        power: supply: Init device wakeup after device_add()
        x86, perf: Fix the dependency of the x86 insn decoder selftest
        bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA
        iio: dac: ad5380: fix incorrect assignment to val
        ath9k: dynack: fix possible deadlock in ath_dynack_node_{de}init
        net: sonic: return NETDEV_TX_OK if failed to map buffer
        Btrfs: fix hang when loading existing inode cache off disk
        hwmon: (shtc1) fix shtc1 and shtw1 id mask
        net: sonic: replace dev_kfree_skb in sonic_send_packet
        net/rds: Fix 'ib_evt_handler_call' element in 'rds_ib_stat_names'
        iommu/amd: Wait for completion of IOTLB flush in attach_device
        net: hisilicon: Fix signedness bug in hix5hd2_dev_probe()
        net: broadcom/bcmsysport: Fix signedness in bcm_sysport_probe()
        net: ethernet: stmmac: Fix signedness bug in ipq806x_gmac_of_parse()
        mac80211: accept deauth frames in IBSS mode
        llc: fix another potential sk_buff leak in llc_ui_sendmsg()
        llc: fix sk_buff refcounting in llc_conn_state_process()
        net: stmmac: fix length of PTP clock's name string
        drm/msm/dsi: Implement reset correctly
        dmaengine: imx-sdma: fix size check for sdma script_number
        net: qca_spi: Move reset_count to struct qcaspi
        media: ov6650: Fix incorrect use of JPEG colorspace
        media: ov6650: Fix some format attributes not under control
        media: ov6650: Fix .get_fmt() V4L2_SUBDEV_FORMAT_TRY support
        MIPS: Loongson: Fix return value of loongson_hwmon_init
        net: neigh: use long type to store jiffies delta
        packet: fix data-race in fanout_flow_is_huge()
        dmaengine: ti: edma: fix missed failure handling
        drm/radeon: fix bad DMA from INTERRUPT_CNTL2
        arm64: dts: juno: Fix UART frequency
        m68k: Call timer_interrupt() with interrupts disabled
        can, slip: Protect tty->disc_data in write_wakeup and close with RCU
        firestream: fix memory leaks
        net: cxgb3_main: Add CAP_NET_ADMIN check to CHELSIO_GET_MEM
        net, ip_tunnel: fix namespaces move
        net_sched: fix datalen for ematch
        net: usb: lan78xx: Add .ndo_features_check
        hwmon: (adt7475) Make volt2reg return same reg as reg2volt input
        Input: keyspan-remote - fix control-message timeouts
        ARM: 8950/1: ftrace/recordmcount: filter relocation types
        mmc: sdhci: fix minimum clock rate for v3 controller
        Input: sur40 - fix interface sanity checks
        Input: gtco - fix endpoint sanity check
        Input: aiptek - fix endpoint sanity check
        hwmon: (nct7802) Fix voltage limits to wrong registers
        scsi: RDMA/isert: Fix a recently introduced regression related to logout
        tracing: xen: Ordered comparison of function pointers
        do_last(): fetch directory ->i_mode and ->i_uid before it's too late
        iio: buffer: align the size of scan bytes to size of the largest element
        scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func
        md: Avoid namespace collision with bitmap API
        bitmap: Add bitmap_alloc(), bitmap_zalloc() and bitmap_free()
        netfilter: ipset: use bitmap infrastructure completely
        net/x25: fix nonblocking connect
        libertas: Fix two buffer overflows at parsing bss descriptor
        Linux 4.4.212

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2020-01-29 17:10:10 -07:00
Dan Carpenter
bfe9388e57 kdb: do a sanity check on the cpu in kdb_per_cpu()
[ Upstream commit b586627e10f57ee3aa8f0cfab0d6f7dc4ae63760 ]

The "whichcpu" comes from argv[3].  The cpu_online() macro looks up the
cpu in a bitmap of online cpus, but if the value is too high then it
could read beyond the end of the bitmap and possibly Oops.

Fixes: 5d5314d679 ("kdb: core for kgdb back end (1 of 2)")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-01-29 10:21:43 +01:00
Nathan Chancellor
59095fd3b1 Merge 4.4.167 into android-msm-wahoo-4.4
Changes in 4.4.167: (91 commits)
        media: em28xx: Fix use-after-free when disconnecting
        Revert "wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout()"
        rapidio/rionet: do not free skb before reading its length
        s390/qeth: fix length check in SNMP processing
        usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2
        kvm: mmu: Fix race in emulated page table writes
        xtensa: enable coprocessors that are being flushed
        xtensa: fix coprocessor context offset definitions
        Btrfs: ensure path name is null terminated at btrfs_control_ioctl
        ALSA: wss: Fix invalid snd_free_pages() at error path
        ALSA: ac97: Fix incorrect bit shift at AC97-SPSA control write
        ALSA: control: Fix race between adding and removing a user element
        ALSA: sparc: Fix invalid snd_free_pages() at error path
        ext2: fix potential use after free
        dmaengine: at_hdmac: fix memory leak in at_dma_xlate()
        dmaengine: at_hdmac: fix module unloading
        btrfs: release metadata before running delayed refs
        USB: usb-storage: Add new IDs to ums-realtek
        usb: core: quirks: add RESET_RESUME quirk for Cherry G230 Stream series
        misc: mic/scif: fix copy-paste error in scif_create_remote_lookup
        Kbuild: suppress packed-not-aligned warning for default setting only
        exec: avoid gcc-8 warning for get_task_comm
        disable stringop truncation warnings for now
        kobject: Replace strncpy with memcpy
        unifdef: use memcpy instead of strncpy
        kernfs: Replace strncpy with memcpy
        ip_tunnel: Fix name string concatenate in __ip_tunnel_create()
        drm: gma500: fix logic error
        scsi: bfa: convert to strlcpy/strlcat
        staging: rts5208: fix gcc-8 logic error warning
        kdb: use memmove instead of overlapping memcpy
        iser: set sector for ambiguous mr status errors
        uprobes: Fix handle_swbp() vs. unregister() + register() race once more
        MIPS: ralink: Fix mt7620 nd_sd pinmux
        mips: fix mips_get_syscall_arg o32 check
        drm/ast: Fix incorrect free on ioregs
        scsi: scsi_devinfo: cleanly zero-pad devinfo strings
        ALSA: trident: Suppress gcc string warning
        scsi: csiostor: Avoid content leaks and casts
        kgdboc: Fix restrict error
        kgdboc: Fix warning with module build
        leds: call led_pwm_set() in leds-pwm to enforce default LED_OFF
        leds: turn off the LED and wait for completion on unregistering LED class device
        leds: leds-gpio: Fix return value check in create_gpio_led()
        Input: xpad - quirk all PDP Xbox One gamepads
        Input: matrix_keypad - check for errors from of_get_named_gpio()
        Input: elan_i2c - add ELAN0620 to the ACPI table
        Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15ARR
        Input: elan_i2c - add support for ELAN0621 touchpad
        btrfs: Always try all copies when reading extent buffers
        Btrfs: fix use-after-free when dumping free space
        ARC: change defconfig defaults to ARCv2
        arc: [devboards] Add support of NFSv3 ACL
        mm: cleancache: fix corruption on missed inode invalidation
        mm: mlock: avoid increase mm->locked_vm on mlock() when already mlock2(,MLOCK_ONFAULT)
        usb: gadget: dummy: fix nonsensical comparisons
        iommu/vt-d: Fix NULL pointer dereference in prq_event_thread()
        iommu/ipmmu-vmsa: Fix crash on early domain free
        can: rcar_can: Fix erroneous registration
        batman-adv: Expand merged fragment buffer for full packet
        bnx2x: Assign unique DMAE channel number for FW DMAE transactions.
        qed: Fix PTT leak in qed_drain()
        qed: Fix reading wrong value in loop condition
        net/mlx4_core: Zero out lkey field in SW2HW_MPT fw command
        net/mlx4_core: Fix uninitialized variable compilation warning
        net/mlx4: Fix UBSAN warning of signed integer overflow
        net: faraday: ftmac100: remove netif_running(netdev) check before disabling interrupts
        iommu/vt-d: Use memunmap to free memremap
        net: amd: add missing of_node_put()
        usb: quirk: add no-LPM quirk on SanDisk Ultra Flair device
        usb: appledisplay: Add 27" Apple Cinema Display
        USB: check usb_get_extra_descriptor for proper size
        ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c
        ALSA: hda: Add support for AMD Stoney Ridge
        ALSA: pcm: Fix starvation on down_write_nonblock()
        ALSA: pcm: Call snd_pcm_unlink() conditionally at closing
        ALSA: pcm: Fix interval evaluation with openmin/max
        virtio/s390: avoid race on vcdev->config
        virtio/s390: fix race in ccw_io_helper()
        SUNRPC: Fix leak of krb5p encode pages
        xhci: Prevent U1/U2 link pm states if exit latency is too long
        Staging: lustre: remove two build warnings
        cifs: Fix separator when building path from dentry
        tty: serial: 8250_mtk: always resume the device in probe.
        kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()
        mac80211_hwsim: Timer should be initialized before device registered
        mac80211: Clear beacon_int in ieee80211_do_stop
        mac80211: ignore tx status for PS stations in ieee80211_tx_status_ext
        mac80211: fix reordering of buffered broadcast packets
        mac80211: ignore NullFunc frames in the duplicate detection
        Linux 4.4.167

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-12-13 08:13:40 -07:00
Arnd Bergmann
e1885163d5 kdb: use memmove instead of overlapping memcpy
commit 2cf2f0d5b91fd1b06a6ae260462fc7945ea84add upstream.

gcc discovered that the memcpy() arguments in kdbnearsym() overlap, so
we should really use memmove(), which is defined to handle that correctly:

In function 'memcpy',
    inlined from 'kdbnearsym' at /git/arm-soc/kernel/debug/kdb/kdb_support.c:132:4:
/git/arm-soc/include/linux/string.h:353:9: error: '__builtin_memcpy' accessing 792 bytes at offsets 0 and 8 overlaps 784 bytes at offset 8 [-Werror=restrict]
  return __builtin_memcpy(p, q, size);

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-13 09:21:29 +01:00
Nathan Chancellor
402b344be5 Merge 4.4.166 into android-msm-wahoo-4.4
Changes in 4.4.166: (85 commits)
        usb: core: Fix hub port connection events lost
        usb: xhci: fix timeout for transition from RExit to U0
        MAINTAINERS: Add Sasha as a stable branch maintainer
        iwlwifi: mvm: support sta_statistics() even on older firmware
        v9fs_dir_readdir: fix double-free on p9stat_read error
        bfs: add sanity check at bfs_fill_super()
        sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer
        gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
        llc: do not use sk_eat_skb()
        drm/ast: change resolution may cause screen blurred
        drm/ast: fixed cursor may disappear sometimes
        can: dev: can_get_echo_skb(): factor out non sending code to __can_get_echo_skb()
        can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to access frame length
        can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb is accessed out of bounds
        can: dev: __can_get_echo_skb(): print error message, if trying to echo non existing skb
        usb: xhci: Prevent bus suspend if a port connect change or polling state is detected
        KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
        cpufreq: imx6q: add return value check for voltage scale
        SUNRPC: Fix a bogus get/put in generic_key_to_expire()
        kdb: Use strscpy with destination buffer size
        powerpc/numa: Suppress "VPHN is not supported" messages
        tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
        of: add helper to lookup compatible child node
        NFC: nfcmrvl_uart: fix OF child-node lookup
        net: bcmgenet: fix OF child-node lookup
        x86/entry: spell EBX register correctly in documentation
        x86/entry/64: Remove %ebx handling from error_entry/exit
        arm64: remove no-op -p linker flag
        ath10k: fix kernel panic due to race in accessing arvif list
        Input: xpad - remove spurious events of wireless xpad 360 controller
        Input: xpad - handle "present" and "gone" correctly
        Input: xpad - update Xbox One Force Feedback Support
        Input: xpad - workaround dead irq_out after suspend/ resume
        Input: xpad - use LED API when identifying wireless controllers
        Input: xpad - correct xbox one pad device name
        Input: xpad - remove unused function
        Input: xpad - add Mad Catz FightStick TE 2 VID/PID
        Input: xpad - prevent spurious input from wired Xbox 360 controllers
        Input: xpad - add more third-party controllers
        Input: xpad - xbox one elite controller support
        Input: xpad - fix rumble on Xbox One controllers with 2015 firmware
        Input: xpad - power off wireless 360 controllers on suspend
        Input: xpad - add product ID for Xbox One S pad
        Input: xpad - fix Xbox One rumble stopping after 2.5 secs
        Input: xpad - correctly sort vendor id's
        Input: xpad - move reporting xbox one home button to common function
        Input: xpad - simplify error condition in init_output
        Input: xpad - don't depend on endpoint order
        Input: xpad - fix stuck mode button on Xbox One S pad
        Input: xpad - restore LED state after device resume
        Input: xpad - support some quirky Xbox One pads
        Input: xpad - sort supported devices by USB ID
        Input: xpad - sync supported devices with xboxdrv
        Input: xpad - add USB IDs for Mad Catz Brawlstick and Razer Sabertooth
        Input: xpad - sync supported devices with 360Controller
        Input: xpad - sync supported devices with XBCD
        Input: xpad - constify usb_device_id
        Input: xpad - fix PowerA init quirk for some gamepad models
        Input: xpad - validate USB endpoint type during probe
        Input: xpad - add support for PDP Xbox One controllers
        Input: xpad - add PDP device id 0x02a4
        Input: xpad - fix some coding style issues
        Input: xpad - avoid using __set_bit() for capabilities
        Input: xpad - add GPD Win 2 Controller USB IDs
        Input: xpad - fix GPD Win 2 controller name
        Input: xpad - add support for Xbox1 PDP Camo series gamepad
        cw1200: Don't leak memory if krealloc failes
        mwifiex: Fix NULL pointer dereference in skb_dequeue()
        mwifiex: fix p2p device doesn't find in scan problem
        netfilter: nf_tables: fix oops when inserting an element into a verdict map
        scsi: ufs: fix bugs related to null pointer access and array size
        scsi: ufshcd: Fix race between clk scaling and ungate work
        scsi: ufs: fix race between clock gating and devfreq scaling work
        scsi: ufshcd: release resources if probe fails
        scsi: qla2xxx: do not queue commands when unloading
        iwlwifi: mvm: fix regulatory domain update when the firmware starts
        tty: wipe buffer.
        tty: wipe buffer if not echoing data
        usb: xhci: fix uninitialized completion when USB3 port got wrong status
        btrfs: Ensure btrfs_trim_fs can trim the whole filesystem
        sched/core: Allow __sched_setscheduler() in interrupts when PI is not used
        namei: allow restricted O_CREAT of FIFOs and regular files
        s390/mm: Check for valid vma before zapping in gmap_discard
        drm/ast: Remove existing framebuffers before loading driver
        Linux 4.4.166

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	drivers/scsi/ufs/ufshcd.c
	kernel/debug/kdb/kdb_io.c
2018-12-01 08:06:44 -07:00
Prarit Bhargava
a4cfd4595d kdb: Use strscpy with destination buffer size
[ Upstream commit c2b94c72d93d0929f48157eef128c4f9d2e603ce ]

gcc 8.1.0 warns with:

kernel/debug/kdb/kdb_support.c: In function ‘kallsyms_symbol_next’:
kernel/debug/kdb/kdb_support.c:239:4: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
     strncpy(prefix_name, name, strlen(name)+1);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/debug/kdb/kdb_support.c:239:31: note: length computed here

Use strscpy() with the destination buffer size, and use ellipses when
displaying truncated symbols.

v2: Use strscpy()

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Jonathan Toppins <jtoppins@redhat.com>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: kgdb-bugreport@lists.sourceforge.net
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2018-12-01 09:46:35 +01:00
Nathan Chancellor
65117ae3b8 Merge 4.4.134 into android-msm-wahoo-4.4
Changes in 4.4.134: (267 commits)
        MIPS: ptrace: Expose FIR register through FP regset
        MIPS: Fix ptrace(2) PTRACE_PEEKUSR and PTRACE_POKEUSR accesses to o32 FGRs
        KVM: Fix spelling mistake: "cop_unsuable" -> "cop_unusable"
        affs_lookup(): close a race with affs_remove_link()
        aio: fix io_destroy(2) vs. lookup_ioctx() race
        ALSA: timer: Fix pause event notification
        mmc: sdhci-iproc: fix 32bit writes for TRANSFER_MODE register
        libata: Blacklist some Sandisk SSDs for NCQ
        libata: blacklist Micron 500IT SSD with MU01 firmware
        xen-swiotlb: fix the check condition for xen_swiotlb_free_coherent
        Revert "ipc/shm: Fix shmat mmap nil-page protection"
        ipc/shm: fix shmat() nil address after round-down when remapping
        kasan: fix memory hotplug during boot
        kernel/sys.c: fix potential Spectre v1 issue
        kernel/signal.c: avoid undefined behaviour in kill_something_info
        xfs: remove racy hasattr check from attr ops
        do d_instantiate/unlock_new_inode combinations safely
        firewire-ohci: work around oversized DMA reads on JMicron controllers
        NFSv4: always set NFS_LOCK_LOST when a lock is lost.
        ALSA: hda - Use IS_REACHABLE() for dependency on input
        ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read()
        kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl
        tracing/hrtimer: Fix tracing bugs by taking all clock bases and modes into account
        PCI: Add function 1 DMA alias quirk for Marvell 9128
        tools lib traceevent: Simplify pointer print logic and fix %pF
        perf callchain: Fix attr.sample_max_stack setting
        tools lib traceevent: Fix get_field_str() for dynamic strings
        dm thin: fix documentation relative to low water mark threshold
        nfs: Do not convert nfs_idmap_cache_timeout to jiffies
        watchdog: sp5100_tco: Fix watchdog disable bit
        kconfig: Don't leak main menus during parsing
        kconfig: Fix automatic menu creation mem leak
        kconfig: Fix expr_free() E_NOT leak
        mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl()
        ipmi/powernv: Fix error return code in ipmi_powernv_probe()
        Btrfs: set plug for fsync
        btrfs: Fix out of bounds access in btrfs_search_slot
        Btrfs: fix scrub to repair raid6 corruption
        scsi: fas216: fix sense buffer initialization
        HID: roccat: prevent an out of bounds read in kovaplus_profile_activated()
        jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path
        powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes
        powerpc/numa: Ensure nodes initialized for hotplug
        RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure
        ntb_transport: Fix bug with max_mw_size parameter
        ocfs2: return -EROFS to mount.ocfs2 if inode block is invalid
        ocfs2/acl: use 'ip_xattr_sem' to protect getting extended attribute
        ocfs2: return error when we attempt to access a dirty bh in jbd2
        mm/mempolicy: fix the check of nodemask from user
        mm/mempolicy: add nodes_empty check in SYSC_migrate_pages
        asm-generic: provide generic_pmdp_establish()
        mm: pin address_space before dereferencing it while isolating an LRU page
        IB/ipoib: Fix for potential no-carrier state
        x86/power: Fix swsusp_arch_resume prototype
        firmware: dmi_scan: Fix handling of empty DMI strings
        ACPI: processor_perflib: Do not send _PPC change notification if not ready
        bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y
        MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS
        xen-netfront: Fix race between device setup and open
        xen/grant-table: Use put_page instead of free_page
        RDS: IB: Fix null pointer issue
        arm64: spinlock: Fix theoretical trylock() A-B-A with LSE atomics
        proc: fix /proc/*/map_files lookup
        cifs: silence compiler warnings showing up with gcc-8.0.0
        bcache: properly set task state in bch_writeback_thread()
        bcache: fix for allocator and register thread race
        bcache: fix for data collapse after re-attaching an attached device
        bcache: return attach error when no cache set exist
        tools/libbpf: handle issues with bpf ELF objects containing .eh_frames
        locking/qspinlock: Ensure node->count is updated before initialising node
        irqchip/gic-v3: Change pr_debug message to pr_devel
        scsi: ufs: Enable quirk to ignore sending WRITE_SAME command
        scsi: bnx2fc: Fix check in SCSI completion handler for timed out request
        scsi: sym53c8xx_2: iterator underflow in sym_getsync()
        scsi: mptfusion: Add bounds check in mptctl_hp_targetinfo()
        scsi: qla2xxx: Avoid triggering undefined behavior in qla2x00_mbx_completion()
        ARC: Fix malformed ARC_EMUL_UNALIGNED default
        usb: gadget: f_uac2: fix bFirstInterface in composite gadget
        usb: gadget: fsl_udc_core: fix ep valid checks
        usb: dwc2: Fix dwc2_hsotg_core_init_disconnected()
        selftests: memfd: add config fragment for fuse
        scsi: storvsc: Increase cmd_per_lun for higher speed devices
        scsi: aacraid: fix shutdown crash when init fails
        scsi: qla4xxx: skip error recovery in case of register disconnect.
        ARM: OMAP2+: timer: fix a kmemleak caused in omap_get_timer_dt
        ARM: OMAP3: Fix prm wake interrupt for resume
        ARM: OMAP1: clock: Fix debugfs_create_*() usage
        NFC: llcp: Limit size of SDP URI
        mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4
        md raid10: fix NULL deference in handle_write_completed()
        drm/exynos: fix comparison to bitshift when dealing with a mask
        usb: musb: fix enumeration after resume
        locking/xchg/alpha: Add unconditional memory barrier to cmpxchg()
        md: raid5: avoid string overflow warning
        kernel/relay.c: limit kmalloc size to KMALLOC_MAX_SIZE
        powerpc/bpf/jit: Fix 32-bit JIT for seccomp_data access
        s390/cio: fix return code after missing interrupt
        s390/cio: clear timer when terminating driver I/O
        ARM: OMAP: Fix dmtimer init for omap1
        smsc75xx: fix smsc75xx_set_features()
        regulatory: add NUL to request alpha2
        locking/xchg/alpha: Fix xchg() and cmpxchg() memory ordering bugs
        x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations
        media: dmxdev: fix error code for invalid ioctls
        md/raid1: fix NULL pointer dereference
        batman-adv: fix packet checksum in receive path
        batman-adv: invalidate checksum on fragment reassembly
        netfilter: ebtables: convert BUG_ONs to WARN_ONs
        nvme-pci: Fix nvme queue cleanup if IRQ setup fails
        clocksource/drivers/fsl_ftm_timer: Fix error return checking
        r8152: fix tx packets accounting
        virtio-gpu: fix ioctl and expose the fixed status to userspace.
        dmaengine: rcar-dmac: fix max_chunk_size for R-Car Gen3
        bcache: fix kcrashes with fio in RAID5 backend dev
        sit: fix IFLA_MTU ignored on NEWLINK
        gianfar: Fix Rx byte accounting for ndev stats
        net/tcp/illinois: replace broken algorithm reference link
        xen/pirq: fix error path cleanup when binding MSIs
        Btrfs: send, fix issuing write op when processing hole in no data mode
        selftests/powerpc: Skip the subpage_prot tests if the syscall is unavailable
        KVM: PPC: Book3S HV: Fix VRMA initialization with 2MB or 1GB memory backing
        watchdog: f71808e_wdt: Fix magic close handling
        e1000e: Fix check_for_link return value with autoneg off
        e1000e: allocate ring descriptors with dma_zalloc_coherent
        usb: musb: call pm_runtime_{get,put}_sync before reading vbus registers
        scsi: mpt3sas: Do not mark fw_event workqueue as WQ_MEM_RECLAIM
        scsi: sd: Keep disk read-only when re-reading partition
        fbdev: Fixing arbitrary kernel leak in case FBIOGETCMAP_SPARC in sbusfb_ioctl_helper().
        xen: xenbus: use put_device() instead of kfree()
        USB: OHCI: Fix NULL dereference in HCDs using HCD_LOCAL_MEM
        netfilter: ebtables: fix erroneous reject of last rule
        bnxt_en: Check valid VNIC ID in bnxt_hwrm_vnic_set_tpa().
        workqueue: use put_device() instead of kfree()
        ipv4: lock mtu in fnhe when received PMTU < net.ipv4.route.min_pmtu
        sunvnet: does not support GSO for sctp
        net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off
        batman-adv: fix header size check in batadv_dbg_arp()
        vti4: Don't count header length twice on tunnel setup
        vti4: Don't override MTU passed on link creation via IFLA_MTU
        perf/cgroup: Fix child event counting bug
        RDMA/ucma: Correct option size check using optlen
        mm/mempolicy.c: avoid use uninitialized preferred_node
        selftests: ftrace: Add probe event argument syntax testcase
        selftests: ftrace: Add a testcase for string type with kprobe_event
        selftests: ftrace: Add a testcase for probepoint
        batman-adv: fix multicast-via-unicast transmission with AP isolation
        batman-adv: fix packet loss for broadcasted DHCP packets to a server
        ARM: 8748/1: mm: Define vdso_start, vdso_end as array
        net: qmi_wwan: add BroadMobi BM806U 2020:2033
        net/usb/qmi_wwan.c: Add USB id for lt4120 modem
        net-usb: add qmi_wwan if on lte modem wistron neweb d18q1
        llc: properly handle dev_queue_xmit() return value
        mm/kmemleak.c: wait for scan completion before disabling free
        net: Fix untag for vlan packets without ethernet header
        net: mvneta: fix enable of all initialized RXQs
        sh: fix debug trap failure to process signals before return to user
        x86/pgtable: Don't set huge PUD/PMD on non-leaf entries
        fs/proc/proc_sysctl.c: fix potential page fault while unregistering sysctl table
        swap: divide-by-zero when zero length swap file on ssd
        sr: get/drop reference to device in revalidate and check_events
        Force log to disk before reading the AGF during a fstrim
        cpufreq: CPPC: Initialize shared perf capabilities of CPUs
        scsi: aacraid: Insure command thread is not recursively stopped
        dp83640: Ensure against premature access to PHY registers after reset
        mm/ksm: fix interaction with THP
        mm: fix races between address_space dereference and free in page_evicatable
        Btrfs: bail out on error during replay_dir_deletes
        Btrfs: fix NULL pointer dereference in log_dir_items
        btrfs: Fix possible softlock on single core machines
        ocfs2/dlm: don't handle migrate lockres if already in shutdown
        sched/rt: Fix rq->clock_update_flags < RQCF_ACT_SKIP warning
        KVM: VMX: raise internal error for exception during invalid protected mode state
        fscache: Fix hanging wait on page discarded by writeback
        sparc64: Make atomic_xchg() an inline function rather than a macro.
        rtc: snvs: Fix usage of snvs_rtc_enable
        net: bgmac: Fix endian access in bgmac_dma_tx_ring_free()
        Bluetooth: btusb: Add USB ID 7392:a611 for Edimax EW-7611ULB
        btrfs: tests/qgroup: Fix wrong tree backref level
        Btrfs: fix copy_items() return value when logging an inode
        btrfs: fix lockdep splat in btrfs_alloc_subvolume_writers
        xen/acpi: off by one in read_acpi_id()
        ACPI: acpi_pad: Fix memory leak in power saving threads
        powerpc/mpic: Check if cpu_possible() in mpic_physmask()
        m68k: set dma and coherent masks for platform FEC ethernets
        parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
        hwmon: (nct6775) Fix writing pwmX_mode
        rtc: hctosys: Ensure system time doesn't overflow time_t
        powerpc/perf: Prevent kernel address leak to userspace via BHRB buffer
        powerpc/perf: Fix kernel address leak via sampling registers
        tools/thermal: tmon: fix for segfault
        selftests: Print the test we're running to /dev/kmsg
        net/mlx5: Protect from command bit overflow
        ath10k: Fix kernel panic while using worker (ath10k_sta_rc_update_wk)
        ima: Fix Kconfig to select TPM 2.0 CRB interface
        ima: Fallback to the builtin hash algorithm
        virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
        arm: dts: socfpga: fix GIC PPI warning
        usb: dwc3: Update DWC_usb31 GTXFIFOSIZ reg fields
        cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path
        clk: Don't show the incorrect clock phase
        zorro: Set up z->dev.dma_mask for the DMA API
        bcache: quit dc->writeback_thread when BCACHE_DEV_DETACHING is set
        ACPICA: Events: add a return on failure from acpi_hw_register_read
        ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c
        i2c: mv64xxx: Apply errata delay only in standard mode
        KVM: lapic: stop advertising DIRECTED_EOI when in-kernel IOAPIC is in use
        xhci: zero usb device slot_id member when disabling and freeing a xhci slot
        MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
        PCI: Restore config space on runtime resume despite being unbound
        ipmi_ssif: Fix kernel panic at msg_done_handler
        usb: dwc2: Fix interval type issue
        usb: gadget: ffs: Let setup() return USB_GADGET_DELAYED_STATUS
        usb: gadget: ffs: Execute copy_to_user() with USER_DS set
        powerpc: Add missing prototype for arch_irq_work_raise()
        ASoC: topology: create TLV data for dapm widgets
        perf/core: Fix perf_output_read_group()
        hwmon: (pmbus/max8688) Accept negative page register values
        hwmon: (pmbus/adm1275) Accept negative page register values
        cdrom: do not call check_disk_change() inside cdrom_open()
        gfs2: Fix fallocate chunk size
        usb: gadget: udc: change comparison to bitshift when dealing with a mask
        usb: gadget: composite: fix incorrect handling of OS desc requests
        x86/devicetree: Initialize device tree before using it
        x86/devicetree: Fix device IRQ settings in DT
        ALSA: vmaster: Propagate slave error
        media: cx23885: Override 888 ImpactVCBe crystal frequency
        media: cx23885: Set subdev host data to clk_freq pointer
        media: s3c-camif: fix out-of-bounds array access
        dmaengine: pl330: fix a race condition in case of threaded irqs
        media: em28xx: USB bulk packet size fix
        clk: rockchip: Prevent calculating mmc phase if clock rate is zero
        enic: enable rq before updating rq descriptors
        hwrng: stm32 - add reset during probe
        staging: rtl8192u: return -ENOMEM on failed allocation of priv->oldaddr
        rtc: tx4939: avoid unintended sign extension on a 24 bit shift
        serial: xuartps: Fix out-of-bounds access through DT alias
        serial: samsung: Fix out-of-bounds access through serial port index
        serial: mxs-auart: Fix out-of-bounds access through serial port index
        serial: imx: Fix out-of-bounds access through serial port index
        serial: fsl_lpuart: Fix out-of-bounds access through DT alias
        serial: arc_uart: Fix out-of-bounds access through DT alias
        PCI: Add function 1 DMA alias quirk for Marvell 88SE9220
        udf: Provide saner default for invalid uid / gid
        media: cx25821: prevent out-of-bounds read on array card
        clk: samsung: s3c2410: Fix PLL rates
        clk: samsung: exynos5260: Fix PLL rates
        clk: samsung: exynos5433: Fix PLL rates
        clk: samsung: exynos5250: Fix PLL rates
        clk: samsung: exynos3250: Fix PLL rates
        crypto: sunxi-ss - Add MODULE_ALIAS to sun4i-ss
        audit: return on memory error to avoid null pointer dereference
        MIPS: Octeon: Fix logging messages with spurious periods after newlines
        drm/rockchip: Respect page offset for PRIME mmap calls
        x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified
        perf tests: Use arch__compare_symbol_names to compare symbols
        perf report: Fix memory corruption in --branch-history mode --branch-history
        selftests/net: fixes psock_fanout eBPF test case
        netlabel: If PF_INET6, check sk_buff ip header version
        scsi: lpfc: Fix issue_lip if link is disabled
        scsi: lpfc: Fix soft lockup in lpfc worker thread during LIP testing
        scsi: lpfc: Fix frequency of Release WQE CQEs
        regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_match()'
        ASoC: samsung: i2s: Ensure the RCLK rate is properly determined
        Bluetooth: btusb: Add device ID for RTL8822BE
        kdb: make "mdr" command repeat
        s390/ftrace: use expoline for indirect branches
        Linux 4.4.134

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	drivers/media/dvb-core/dmxdev.c
	drivers/scsi/sd.c
	drivers/scsi/ufs/ufshcd.c
	drivers/usb/gadget/function/f_fs.c
	fs/ecryptfs/inode.c
2018-05-30 00:55:08 -07:00
Randy Dunlap
e612f1ce05 kdb: make "mdr" command repeat
[ Upstream commit 1e0ce03bf142454f38a5fc050bf4fd698d2d36d8 ]

The "mdr" command should repeat (continue) when only Enter/Return
is pressed, so make it do so.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: kgdb-bugreport@lists.sourceforge.net
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-30 07:49:17 +02:00
Nathan Chancellor
e8abf4dcf6 Merge 4.4.106 into android-msm-wahoo-4.4-oreo-mr1
Changes in 4.4.106: (106 commits)
        can: ti_hecc: Fix napi poll return value for repoll
        can: kvaser_usb: free buf in error paths
        can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()
        can: kvaser_usb: ratelimit errors if incomplete messages are received
        can: kvaser_usb: cancel urb on -EPIPE and -EPROTO
        can: ems_usb: cancel urb on -EPIPE and -EPROTO
        can: esd_usb2: cancel urb on -EPIPE and -EPROTO
        can: usb_8dev: cancel urb on -EPIPE and -EPROTO
        virtio: release virtio index when fail to device_register
        hv: kvp: Avoid reading past allocated blocks from KVP file
        isa: Prevent NULL dereference in isa_bus driver callbacks
        scsi: libsas: align sata_device's rps_resp on a cacheline
        efi: Move some sysfs files to be read-only by root
        ASN.1: fix out-of-bounds read when parsing indefinite length item
        ASN.1: check for error from ASN1_OP_END__ACT actions
        X.509: reject invalid BIT STRING for subjectPublicKey
        x86/PCI: Make broadcom_postcore_init() check acpi_disabled
        ALSA: pcm: prevent UAF in snd_pcm_info
        ALSA: seq: Remove spurious WARN_ON() at timer check
        ALSA: usb-audio: Fix out-of-bound error
        ALSA: usb-audio: Add check return value for usb_string()
        iommu/vt-d: Fix scatterlist offset handling
        s390: fix compat system call table
        kdb: Fix handling of kallsyms_symbol_next() return value
        drm: extra printk() wrapper macros
        drm/exynos: gem: Drop NONCONTIG flag for buffers allocated without IOMMU
        media: dvb: i2c transfers over usb cannot be done from stack
        arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one
        KVM: VMX: remove I/O port 0x80 bypass on Intel hosts
        arm64: fpsimd: Prevent registers leaking from dead tasks
        ARM: BUG if jumping to usermode address in kernel mode
        ARM: avoid faulting on qemu
        scsi: storvsc: Workaround for virtual DVD SCSI version
        thp: reduce indentation level in change_huge_pmd()
        thp: fix MADV_DONTNEED vs. numa balancing race
        mm: drop unused pmdp_huge_get_and_clear_notify()
        Revert "drm/armada: Fix compile fail"
        Revert "spi: SPI_FSL_DSPI should depend on HAS_DMA"
        Revert "s390/kbuild: enable modversions for symbols exported from asm"
        vti6: Don't report path MTU below IPV6_MIN_MTU.
        ARM: OMAP2+: gpmc-onenand: propagate error on initialization failure
        x86/hpet: Prevent might sleep splat on resume
        selftest/powerpc: Fix false failures for skipped tests
        module: set __jump_table alignment to 8
        ARM: OMAP2+: Fix device node reference counts
        ARM: OMAP2+: Release device node after it is no longer needed.
        gpio: altera: Use handle_level_irq when configured as a level_high
        HID: chicony: Add support for another ASUS Zen AiO keyboard
        usb: gadget: configs: plug memory leak
        USB: gadgetfs: Fix a potential memory leak in 'dev_config()'
        kvm: nVMX: VMCLEAR should not cause the vCPU to shut down
        libata: drop WARN from protocol error in ata_sff_qc_issue()
        workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq
        scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters
        irqchip/crossbar: Fix incorrect type of register size
        KVM: nVMX: reset nested_run_pending if the vCPU is going to be reset
        arm: KVM: Survive unknown traps from guests
        arm64: KVM: Survive unknown traps from guests
        spi_ks8995: fix "BUG: key accdaa28 not in .data!"
        bnx2x: prevent crash when accessing PTP with interface down
        bnx2x: fix possible overrun of VFPF multicast addresses array
        bnx2x: do not rollback VF MAC/VLAN filters we did not configure
        ipv6: reorder icmpv6_init() and ip6_mr_init()
        crypto: s5p-sss - Fix completing crypto request in IRQ handler
        i2c: riic: fix restart condition
        zram: set physical queue limits to avoid array out of bounds accesses
        netfilter: don't track fragmented packets
        axonram: Fix gendisk handling
        drm/amd/amdgpu: fix console deadlock if late init failed
        powerpc/powernv/ioda2: Gracefully fail if too many TCE levels requested
        EDAC, i5000, i5400: Fix use of MTR_DRAM_WIDTH macro
        EDAC, i5000, i5400: Fix definition of NRECMEMB register
        kbuild: pkg: use --transform option to prefix paths in tar
        mac80211_hwsim: Fix memory leak in hwsim_new_radio_nl()
        route: also update fnhe_genid when updating a route cache
        route: update fnhe_expires for redirect when the fnhe exists
        lib/genalloc.c: make the avail variable an atomic_long_t
        dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
        NFS: Fix a typo in nfs_rename()
        sunrpc: Fix rpc_task_begin trace point
        block: wake up all tasks blocked in get_request()
        sparc64/mm: set fields in deferred pages
        sctp: do not free asoc when it is already dead in sctp_sendmsg
        sctp: use the right sk after waking up from wait_buf sleep
        atm: horizon: Fix irq release error
        jump_label: Invoke jump_label_test() via early_initcall()
        xfrm: Copy policy family in clone_policy
        IB/mlx4: Increase maximal message size under UD QP
        IB/mlx5: Assign send CQ and recv CQ of UMR QP
        afs: Connect up the CB.ProbeUuid
        ipvlan: fix ipv6 outbound device
        audit: ensure that 'audit=1' actually enables audit for PID 1
        ipmi: Stop timers before cleaning up the module
        s390: always save and restore all registers on context switch
        more bio_map_user_iov() leak fixes
        tipc: fix memory leak in tipc_accept_from_sock()
        rds: Fix NULL pointer dereference in __rds_rdma_map
        sit: update frag_off info
        packet: fix crash in fanout_demux_rollover()
        net/packet: fix a race in packet_bind() and packet_notifier()
        Revert "x86/efi: Build our own page table structures"
        Revert "x86/efi: Hoist page table switching code into efi_call_virt()"
        Revert "x86/mm/pat: Ensure cpa->pfn only contains page frame numbers"
        arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one
        usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping
        Linux 4.4.106

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	arch/arm/include/asm/kvm_arm.h
2017-12-16 08:34:22 -07:00
Daniel Thompson
d6ff4cce9a kdb: Fix handling of kallsyms_symbol_next() return value
commit c07d35338081d107e57cf37572d8cc931a8e32e2 upstream.

kallsyms_symbol_next() returns a boolean (true on success). Currently
kdb_read() tests the return value with an inequality that
unconditionally evaluates to true.

This is fixed in the obvious way and, since the conditional branch is
supposed to be unreachable, we also add a WARN_ON().

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-16 10:33:49 +01:00
Alex Shi
19192a140a Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2017-01-09 12:01:35 +08:00
Alex Shi
eaa88578f2 Merge tag 'v4.4.40' into linux-linaro-lsk-v4.4
This is the 4.4.40 stable release
2017-01-09 12:01:31 +08:00
Douglas Anderson
f93777c915 kernel/debug/debug_core.c: more properly delay for secondary CPUs
commit 2d13bb6494c807bcf3f78af0e96c0b8615a94385 upstream.

We've got a delay loop waiting for secondary CPUs.  That loop uses
loops_per_jiffy.  However, loops_per_jiffy doesn't actually mean how
many tight loops make up a jiffy on all architectures.  It is quite
common to see things like this in the boot log:

  Calibrating delay loop (skipped), value calculated using timer
  frequency.. 48.00 BogoMIPS (lpj=24000)

In my case I was seeing lots of cases where other CPUs timed out
entering the debugger only to print their stack crawls shortly after the
kdb> prompt was written.

Elsewhere in kgdb we already use udelay(), so that should be safe enough
to use to implement our timeout.  We'll delay 1 ms for 1000 times, which
should give us a full second of delay (just like the old code wanted)
but allow us to notice that we're done every 1 ms.

[akpm@linux-foundation.org: simplifications, per Daniel]
Link: http://lkml.kernel.org/r/1477091361-2039-1-git-send-email-dianders@chromium.org
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Brian Norris <briannorris@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-01-06 11:16:16 +01:00
Mark Brown
0f221533ba Merge remote-tracking branch 'lsk/linux-linaro-lsk-v4.4-android' into linux-linaro-lsk-v4.4-android 2016-03-18 09:50:49 +00:00
Kees Cook
97db5772c0 mm/init: Add 'rodata=off' boot cmdline parameter to disable read-only kernel mappings
commit d2aa1acad22f1bdd0cfa67b3861800e392254454 upstream.

It may be useful to debug writes to the readonly sections of memory,
so provide a cmdline "rodata=off" to allow for this. This can be
expanded in the future to support "log" and "write" modes, but that
will need to be architecture-specific.

This also makes KDB software breakpoints more usable, as read-only
mappings can now be disabled on any kernel.

Suggested-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: David Brown <david.brown@linaro.org>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Emese Revfy <re.emese@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mathias Krause <minipli@googlemail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: PaX Team <pageexec@freemail.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: kernel-hardening@lists.openwall.com
Cc: linux-arch <linux-arch@vger.kernel.org>
Link: http://lkml.kernel.org/r/1455748879-21872-3-git-send-email-keescook@chromium.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: David Brown <david.brown@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-03-17 18:51:51 +00:00
Colin Cross
c70fe44edf kdb: support new lines without carriage returns
kdb expects carriage returns through the serial port to terminate
commands.  Modify it to accept the first seen carriage return or
new line as a terminator, but not treat \r\n as two terminators.

Change-Id: I06166017e7703d24310eefcb71c3a7d427088db7
Signed-off-by: Colin Cross <ccross@android.com>
2016-02-16 13:52:21 -08:00
Colin Cross
5516fd7b92 debug: prevent entering debug mode on panic/exception.
On non-developer devices, kgdb prevents the device from rebooting
after a panic.

Incase of panics and exceptions, to allow the device to reboot, prevent
entering debug mode to avoid getting stuck waiting for the user to
interact with debugger.

To avoid entering the debugger on panic/exception without any extra
configuration, panic_timeout is being used which can be set via
/proc/sys/kernel/panic at run time and CONFIG_PANIC_TIMEOUT sets the
default value.

Setting panic_timeout indicates that the user requested machine to
perform unattended reboot after panic. We dont want to get stuck waiting
for the user input incase of panic.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: kgdb-bugreport@lists.sourceforge.net
Cc: linux-kernel@vger.kernel.org
Cc: Android Kernel Team <kernel-team@android.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Colin Cross <ccross@android.com>
[Kiran: Added context to commit message.
panic_timeout is used instead of break_on_panic and
break_on_exception to honor CONFIG_PANIC_TIMEOUT
Modified the commit as per community feedback]
Signed-off-by: Kiran Raparthy <kiran.kumar@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:03 -06:00
Daniel Thompson
32d375f6f2 kdb: Const qualifier for kdb_getstr's prompt argument
All current callers of kdb_getstr() can pass constant pointers via the
prompt argument. This patch adds a const qualification to make explicit
the fact that this is safe.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:03 -06:00
Daniel Thompson
fb6daa7520 kdb: Provide forward search at more prompt
Currently kdb allows the output of comamnds to be filtered using the
| grep feature. This is useful but does not permit the output emitted
shortly after a string match to be examined without wading through the
entire unfiltered output of the command. Such a feature is particularly
useful to navigate function traces because these traces often have a
useful trigger string *before* the point of interest.

This patch reuses the existing filtering logic to introduce a simple
forward search to kdb that can be triggered from the more prompt.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:03 -06:00
Daniel Thompson
ab08e464a2 kdb: Fix a prompt management bug when using | grep
Currently when the "| grep" feature is used to filter the output of a
command then the prompt is not displayed for the subsequent command.
Likewise any characters typed by the user are also not echoed to the
display. This rather disconcerting problem eventually corrects itself
when the user presses Enter and the kdb_grepping_flag is cleared as
kdb_parse() tries to make sense of whatever they typed.

This patch resolves the problem by moving the clearing of this flag
from the middle of command processing to the beginning.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:03 -06:00
Daniel Thompson
5454388113 kdb: Remove stack dump when entering kgdb due to NMI
Issuing a stack dump feels ergonomically wrong when entering due to NMI.

Entering due to NMI is normally a reaction to a user request, either the
NMI button on a server or a "magic knock" on a UART. Therefore the
backtrace behaviour on entry due to NMI should be like SysRq-g (no stack
dump) rather than like oops.

Note also that the stack dump does not offer any information that
cannot be trivial retrieved using the 'bt' command.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:02 -06:00
Daniel Thompson
f7d4ca8bbf kdb: Avoid printing KERN_ levels to consoles
Currently when kdb traps printk messages then the raw log level prefix
(consisting of '\001' followed by a numeral) does not get stripped off
before the message is issued to the various I/O handlers supported by
kdb. This causes annoying visual noise as well as causing problems
grepping for ^. It is also a change of behaviour compared to normal usage
of printk() usage. For example <SysRq>-h ends up with different output to
that of kdb's "sr h".

This patch addresses the problem by stripping log levels from messages
before they are issued to the I/O handlers. printk() which can also
act as an i/o handler in some cases is special cased; if the caller
provided a log level then the prefix will be preserved when sent to
printk().

The addition of non-printable characters to the output of kdb commands is a
regression, albeit and extremely elderly one, introduced by commit
04d2c8c83d ("printk: convert the format for KERN_<LEVEL> to a 2 byte
pattern"). Note also that this patch does *not* restore the original
behaviour from v3.5. Instead it makes printk() from within a kdb command
display the message without any prefix (i.e. like printk() normally does).

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Joe Perches <joe@perches.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:02 -06:00
Jason Wessel
df0036d117 kdb: Fix off by one error in kdb_cpu()
There was a follow on replacement patch against the prior
"kgdb: Timeout if secondary CPUs ignore the roundup".

See: https://lkml.org/lkml/2015/1/7/442

This patch is the delta vs the patch that was committed upstream:
  * Fix an off-by-one error in kdb_cpu().
  * Replace NR_CPUS with CONFIG_NR_CPUS to tell checkpatch that we
    really want a static limit.
  * Removed the "KGDB: " prefix from the pr_crit() in debug_core.c
    (kgdb-next contains a patch which introduced pr_fmt() to this file
    to the tag will now be applied automatically).

Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:02 -06:00
Jay Lan
1467559232 kdb: fix incorrect counts in KDB summary command output
The output of KDB 'summary' command should report MemTotal, MemFree
and Buffers output in kB. Current codes report in unit of pages.

A define of K(x) as
is defined in the code, but not used.

This patch would apply the define to convert the values to kB.
Please include me on Cc on replies. I do not subscribe to linux-kernel.

Signed-off-by: Jay Lan <jlan@sgi.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2015-02-19 12:39:02 -06:00
Linus Torvalds
193934123c Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull module and param fixes from Rusty Russell:
 "Surprising number of fixes this merge window :(

  The first two are minor fallout from the param rework which went in
  this merge window.

  The next three are a series which fixes a longstanding (but never
  previously reported and unlikely , so no CC stable) race between
  kallsyms and freeing the init section.

  Finally, a minor cleanup as our module refcount will now be -1 during
  unload"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
  module: make module_refcount() a signed integer.
  module: fix race in kallsyms resolution during module load success.
  module: remove mod arg from module_free, rename module_memfree().
  module_arch_freeing_init(): new hook for archs before module->module_init freed.
  param: fix uninitialized read with CONFIG_DEBUG_LOCK_ALLOC
  param: initialize store function to NULL if not available.
2015-01-23 06:40:36 +12:00
Rusty Russell
d5db139ab3 module: make module_refcount() a signed integer.
James Bottomley points out that it will be -1 during unload.  It's
only used for diagnostics, so let's not hide that as it could be a
clue as to what's gone wrong.

Cc: Jason Wessel <jason.wessel@windriver.com>
Acked-and-documention-added-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Reviewed-by: Masami Hiramatsu <maasami.hiramatsu.pt@hitachi.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-01-22 11:15:54 +10:30
Fabian Frederick
0f16996cf2 kernel/debug/debug_core.c: Logging clean-up
-Convert printk( to pr_foo()
-Add pr_fmt
-Coalesce formats

Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:53 -06:00
Daniel Thompson
a1465d2f39 kgdb: timeout if secondary CPUs ignore the roundup
Currently if an active CPU fails to respond to a roundup request the CPU
that requested the roundup will become stuck.  This needlessly reduces the
robustness of the debugger.

This patch introduces a timeout allowing the system state to be examined
even when the system contains unresponsive processors.  It also modifies
kdb's cpu command to make it censor attempts to switch to unresponsive
processors and to report their state as (D)ead.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:53 -06:00
Daniel Thompson
b8017177cd kdb: Allow access to sensitive commands to be restricted by default
Currently kiosk mode must be explicitly requested by the bootloader or
userspace. It is convenient to be able to change the default value in a
similar manner to CONFIG_MAGIC_SYSRQ_DEFAULT_MASK.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:52 -06:00
Anton Vorontsov
420c2b1b0d kdb: Add enable mask for groups of commands
Currently all kdb commands are enabled whenever kdb is deployed. This
makes it difficult to deploy kdb to help debug certain types of
systems.

Android phones provide one example; the FIQ debugger found on some
Android devices has a deliberately weak set of commands to allow the
debugger to enabled very late in the production cycle.

Certain kiosk environments offer another interesting case where an
engineer might wish to probe the system state using passive inspection
commands without providing sufficient power for a passer by to root it.

Without any restrictions, obtaining the root rights via KDB is a matter of
a few commands, and works everywhere. For example, log in as a normal
user:

cbou:~$ id
uid=1001(cbou) gid=1001(cbou) groups=1001(cbou)

Now enter KDB (for example via sysrq):

Entering kdb (current=0xffff8800065bc740, pid 920) due to Keyboard Entry
kdb> ps
23 sleeping system daemon (state M) processes suppressed,
use 'ps A' to see all.
Task Addr               Pid   Parent [*] cpu State Thread             Command
0xffff8800065bc740      920      919  1    0   R  0xffff8800065bca20 *bash

0xffff880007078000        1        0  0    0   S  0xffff8800070782e0  init
[...snip...]
0xffff8800065be3c0      918        1  0    0   S  0xffff8800065be6a0  getty
0xffff8800065b9c80      919        1  0    0   S  0xffff8800065b9f60  login
0xffff8800065bc740      920      919  1    0   R  0xffff8800065bca20 *bash

All we need is the offset of cred pointers. We can look up the offset in
the distro's kernel source, but it is unnecessary. We can just start
dumping init's task_struct, until we see the process name:

kdb> md 0xffff880007078000
0xffff880007078000 0000000000000001 ffff88000703c000   ................
0xffff880007078010 0040210000000002 0000000000000000   .....!@.........
[...snip...]
0xffff8800070782b0 ffff8800073e0580 ffff8800073e0580   ..>.......>.....
0xffff8800070782c0 0000000074696e69 0000000000000000   init............

^ Here, 'init'. Creds are just above it, so the offset is 0x02b0.

Now we set up init's creds for our non-privileged shell:

kdb> mm 0xffff8800065bc740+0x02b0 0xffff8800073e0580
0xffff8800065bc9f0 = 0xffff8800073e0580
kdb> mm 0xffff8800065bc740+0x02b8 0xffff8800073e0580
0xffff8800065bc9f8 = 0xffff8800073e0580

And thus gaining the root:

kdb> go
cbou:~$ id
uid=0(root) gid=0(root) groups=0(root)
cbou:~$ bash
root:~#

p.s. No distro enables kdb by default (although, with a nice KDB-over-KMS
feature availability, I would expect at least some would enable it), so
it's not actually some kind of a major issue.

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:52 -06:00
Daniel Thompson
9452e977ac kdb: Categorize kdb commands (similar to SysRq categorization)
This patch introduces several new flags to collect kdb commands into
groups (later allowing them to be optionally disabled).

This follows similar prior art to enable/disable magic sysrq
commands.

The commands have been categorized as follows:

Always on:  go (w/o args), env, set, help, ?, cpu (w/o args), sr,
            dmesg, disable_nmi, defcmd, summary, grephelp
Mem read:   md, mdr, mdp, mds, ef, bt (with args), per_cpu
Mem write:  mm
Reg read:   rd
Reg write:  go (with args), rm
Inspect:    bt (w/o args), btp, bta, btc, btt, ps, pid, lsmod
Flow ctrl:  bp, bl, bph, bc, be, bd, ss
Signal:     kill
Reboot:     reboot
All:        cpu, kgdb, (and all of the above), nmi_console

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:52 -06:00
Anton Vorontsov
e8ab24d9b0 kdb: Remove KDB_REPEAT_NONE flag
Since we now treat KDB_REPEAT_* as flags, there is no need to
pass KDB_REPEAT_NONE. It's just the default behaviour when no
flags are specified.

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:52 -06:00
Anton Vorontsov
04bb171e7a kdb: Use KDB_REPEAT_* values as flags
The actual values of KDB_REPEAT_* enum values and overall logic stayed
the same, but we now treat the values as flags.

This makes it possible to add other flags and combine them, plus makes
the code a lot simpler and shorter. But functionality-wise, there should
be no changes.

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:51 -06:00
Anton Vorontsov
42c884c10b kdb: Rename kdb_register_repeat() to kdb_register_flags()
We're about to add more options for commands behaviour, so let's give
a more generic name to the low-level kdb command registration function.

There are just various renames, no functional changes.

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:51 -06:00
Anton Vorontsov
15a42a9bc9 kdb: Rename kdb_repeat_t to kdb_cmdflags_t, cmd_repeat to cmd_flags
We're about to add more options for command behaviour, so let's expand
the meaning of kdb_repeat_t.

So far we just do various renames, there should be no functional changes.

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:51 -06:00
Anton Vorontsov
a2e5d188aa kdb: Remove currently unused kdbtab_t->cmd_flags
The struct member is never used in the code, so we can remove it.

We will introduce real flags soon by renaming cmd_repeat to cmd_flags.

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2014-11-11 09:31:51 -06:00
Rasmus Villemoes
f9f2bac27c kdb: replace strnicmp with strncasecmp
The kernel used to contain two functions for length-delimited,
case-insensitive string comparison, strnicmp with correct semantics and
a slightly buggy strncasecmp.  The latter is the POSIX name, so strnicmp
was renamed to strncasecmp, and strnicmp made into a wrapper for the new
strncasecmp to avoid breaking existing users.

To allow the compat wrapper strnicmp to be removed at some point in the
future, and to avoid the extra indirection cost, do
s/strnicmp/strncasecmp/g.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-10-14 02:18:25 +02:00
Thomas Gleixner
a9821c741c kdb: Use ktime_get_ts()
do_posix_clock_monotonic_gettime() is a leftover from the initial
posix timer implementation which maps to ktime_get_ts().

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Link: http://lkml.kernel.org/r/20140611234607.261629142@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-06-12 16:18:45 +02:00
Borislav Petkov
a8fe19ebfb kernel/printk: use symbolic defines for console loglevels
... instead of naked numbers.

Stuff in sysrq.c used to set it to 8 which is supposed to mean above
default level so set it to DEBUG instead as we're terminating/killing all
tasks and we want to be verbose there.

Also, correct the check in x86_64_start_kernel which should be >= as
we're clearly issuing the string there for all debug levels, not only
the magical 10.

Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Joe Perches <joe@perches.com>
Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-06-04 16:54:17 -07:00
Peter Zijlstra
4e857c58ef arch: Mass conversion of smp_mb__*()
Mostly scripted conversion of the smp_mb__* barriers.

Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/n/tip-55dhyhocezdw1dg7u19hmh1u@git.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-arch@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2014-04-18 14:20:48 +02:00