mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
Merge android-5.4.8 (de197c5) into msm-5.4
* refs/heads/tmp-de197c5:
Linux 5.4.8
mm/hugetlbfs: fix for_each_hstate() loop in init_hugetlbfs_fs()
mmc: sdhci-of-esdhc: re-implement erratum A-009204 workaround
mmc: sdhci-of-esdhc: fix up erratum A-008171 workaround
vhost/vsock: accept only packets with the right dst_cid
net: ena: fix napi handler misbehavior when the napi budget is zero
net: phylink: fix interface passed to mac_link_up
ipv6/addrconf: only check invalid header values when NETLINK_F_STRICT_CHK is set
bnxt: apply computed clamp value for coalece parameter
gtp: do not allow adding duplicate tid and ms_addr pdp context
gtp: fix an use-after-free in ipv4_pdp_find()
hv_netvsc: Fix tx_table init in rndis_set_subchannel()
tcp/dccp: fix possible race __inet_lookup_established()
tcp: do not send empty skb from tcp_write_xmit()
bonding: fix active-backup transition after link failure
gtp: avoid zero size hashtable
gtp: fix wrong condition in gtp_genl_dump_pdp()
net: marvell: mvpp2: phylink requires the link interrupt
net: dsa: sja1105: Reconcile the meaning of TPID and TPID2 for E/T and P/Q/R/S
net/dst: do not confirm neighbor for vxlan and geneve pmtu update
sit: do not confirm neighbor when do pmtu update
vti: do not confirm neighbor when do pmtu update
tunnel: do not confirm neighbor when do pmtu update
net/dst: add new function skb_dst_update_pmtu_no_confirm
gtp: do not confirm neighbor when do pmtu update
ip6_gre: do not confirm neighbor when do pmtu update
net: add bool confirm_neigh parameter for dst_ops.update_pmtu
mlxsw: spectrum: Use dedicated policer for VRRP packets
mlxsw: spectrum_router: Skip loopback RIFs during MAC validation
bnxt_en: Add missing devlink health reporters for VFs.
bnxt_en: Fix the logic that creates the health reporters.
bnxt_en: Remove unnecessary NULL checks for fw_health
bnxt_en: Fix bp->fw_health allocation and free logic.
bnxt_en: Return error if FW returns more data than dump length
bnxt_en: Free context memory in the open path if firmware has been reset.
bnxt_en: Fix MSIX request logic for RDMA driver.
udp: fix integer overflow while computing available space in sk_rcvbuf
tcp: Fix highest_sack and highest_sack_seq
ptp: fix the race between the release of ptp_clock and cdev
net: stmmac: dwmac-meson8b: Fix the RGMII TX delay on Meson8b/8m2 SoCs
net_sched: sch_fq: properly set sk->sk_pacing_status
net/sched: add delete_empty() to filters and use it in cls_flower
net/sched: act_mirred: Pull mac prior redir to non mac_header_xmit device
net: phy: aquantia: add suspend / resume ops for AQR105
net/mlxfw: Fix out-of-memory error in mfa2 flash burning
net: dsa: bcm_sf2: Fix IP fragment location and behavior
cxgb4/cxgb4vf: fix flow control display for auto negotiation
xfs: fix mount failure crash on invalid iclog memory access
drm: limit to INT_MAX in create_blob ioctl
uaccess: disallow > INT_MAX copy sizes
tomoyo: Don't use nifty names on sockets.
hrtimer: Annotate lockless access to timer->state
net: icmp: fix data-race in cmp_global_allow()
net: add a READ_ONCE() in skb_peek_tail()
inetpeer: fix data-race in inet_putpeer / inet_putpeer
netfilter: bridge: make sure to pull arp header in br_nf_forward_arp()
net/smc: add fallback check to connect()
powerpc: Fix __clear_user() with KUAP enabled
6pack,mkiss: fix possible deadlock
netfilter: ebtables: compat: reject all padding in matches/watchers
Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ detection"
md: make sure desc_nr less than MD_SB_DISKS
sctp: fix err handling of stream initialization
Revert "powerpc/vcpu: Assume dedicated processors as non-preempt"
userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
kernel: sysctl: make drop_caches write-only
mm/hugetlbfs: fix error handling when setting up mounts
selftests: vm: add fragment CONFIG_TEST_VMALLOC
s390: disable preemption when switching to nodat stack with CALL_ON_STACK
mailbox: imx: Fix Tx doorbell shutdown path
ocfs2: fix passing zero to 'PTR_ERR' warning
s390/cpum_sf: Check for SDBT and SDB consistency
s390/unwind: filter out unreliable bogus %r14
libfdt: define INT32_MAX and UINT32_MAX in libfdt_env.h
mailbox: imx: Clear the right interrupts at shutdown
s390/zcrypt: handle new reply code FILTERED_BY_HYPERVISOR
perf regs: Make perf_reg_name() return "unknown" instead of NULL
perf script: Fix brstackinsn for AUXTRACE
perf diff: Use llabs() with 64-bit values
cifs: move cifsFileInfo_put logic into a work-queue
cdrom: respect device capabilities during opening action
of: unittest: fix memory leak in attach_node_and_children
io_uring: io_allocate_scq_urings() should return a sane state
um: virtio: Keep reading on -EAGAIN
cifs: Fix use-after-free bug in cifs_reconnect()
powerpc: Don't add -mabi= flags when building with Clang
scripts/kallsyms: fix definitely-lost memory leak
drm/amdgpu: Call find_vma under mmap_sem
apparmor: fix unsigned len comparison with less than zero
Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic
tools/power/x86/intel-speed-select: Ignore missing config level
gpio: lynxpoint: Setup correct IRQ handlers
gpio: mpc8xxx: Don't overwrite default irq_set_type callback
platform/x86: intel_pmc_core: Add Comet Lake (CML) platform support to intel_pmc_core driver
platform/x86: intel_pmc_core: Fix the SoC naming inconsistency
gpio/mpc8xxx: fix qoriq GPIO reading
habanalabs: skip VA block list update in reset flow
f2fs: Fix deadlock in f2fs_gc() context during atomic files handling
scsi: target: iscsi: Wait for all commands to finish before freeing a session
scsi: iscsi: Don't send data to unbound connection
scsi: ufs: Fix up auto hibern8 enablement
scsi: target: core: Release SPC-2 reservations when closing a session
scsi: NCR5380: Add disconnect_mask module parameter
scsi: scsi_debug: num_tgts must be >= 0
scsi: ufs: Fix error handing during hibern8 enter
scsi: pm80xx: Fix for SATA device discovery
powerpc/fixmap: Use __fix_to_virt() instead of fix_to_virt()
watchdog: Fix the race between the release of watchdog_core_data and cdev
watchdog: prevent deferral of watchdogd wakeup on RT
watchdog: imx7ulp: Fix reboot hang
HID: rmi: Check that the RMI_STARTED bit is set before unregistering the RMI transport device
HID: Improve Windows Precision Touchpad detection.
libnvdimm/btt: fix variable 'rc' set but not used
ARM: 8937/1: spectre-v2: remove Brahma-B53 from hardening
HID: i2c-hid: fix no irq after reset on raydium 3118
HID: logitech-hidpp: Silence intermittent get_battery_capacity errors
dt-bindings: Improve validation build error handling
HID: quirks: Add quirk for HP MSU1465 PIXART OEM mouse
bcache: at least try to shrink 1 node in bch_mca_scan()
clk: pxa: fix one of the pxa RTC clocks
scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE
powerpc/book3s/mm: Update Oops message to print the correct translation in use
powerpc/eeh: differentiate duplicate detection message
powerpc/security: Fix wrong message when RFI Flush is disable
PCI: rpaphp: Correctly match ibm, my-drc-index to drc-name when using drc-info
PCI: rpaphp: Annotate and correctly byte swap DRC properties
PCI: rpaphp: Don't rely on firmware feature to imply drc-info support
powerpc/pseries/cmm: Implement release() function for sysfs device
scsi: ufs: fix potential bug which ends in system hang
PCI: rpaphp: Fix up pointer to first drc-info entry
scsi: zorro_esp: Limit DMA transfers to 65536 bytes (except on Fastlane)
scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer dereferences
Input: ili210x - handle errors from input_mt_init_slots()
iomap: fix return value of iomap_dio_bio_actor on 32bit systems
i2c: stm32f7: fix & reorder remove & probe error handling
iommu/arm-smmu-v3: Don't display an error when IRQ lines are missing
fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long
dma-direct: check for overflows on 32 bit DMA addresses
irqchip: ingenic: Error out if IRQ domain creation failed
irqchip/irq-bcm7038-l1: Enable parent IRQ if necessary
clk: clk-gpio: propagate rate change to parent
clk: qcom: Allow constant ratio freq tables for rcg
clk: qcom: smd: Add missing pnoc clock
f2fs: fix to update dir's i_pino during cross_rename
scsi: lpfc: Fix duplicate unreg_rpi error in port offline flow
scsi: lpfc: Fix unexpected error messages during RSCN handling
scsi: tracing: Fix handling of TRANSFER LENGTH == 0 for READ(6) and WRITE(6)
jbd2: Fix statistics for the number of logged blocks
ext4: iomap that extends beyond EOF should be marked dirty
ext4: update direct I/O read lock pattern for IOCB_NOWAIT
powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning
powerpc/security/book3s64: Report L1TF status in sysfs
selftests/powerpc: Skip tm-signal-sigreturn-nt if TM not available
dtc: Use pkg-config to locate libyaml
clocksource/drivers/timer-of: Use unique device name instead of timer
clocksource/drivers/asm9260: Add a check for of_clk_get
leds: trigger: netdev: fix handling on interface rename
leds: an30259a: add a check for devm_regmap_init_i2c
leds: lm3692x: Handle failure to probe the regulator
dmaengine: fsl-qdma: Handle invalid qdma-queue0 IRQ
dma-mapping: fix handling of dma-ranges for reserved memory (again)
dma-mapping: Add vmap checks to dma_map_single()
dma-debug: add a schedule point in debug_dma_dump_mappings()
powerpc/tools: Don't quote $objdump in scripts
selftests/powerpc: Fixup clobbers for TM tests
Input: st1232 - do not reset the chip too early
powerpc/pseries: Don't fail hash page table insert for bolted mapping
powerpc/pseries: Mark accumulate_stolen_time() as notrace
scsi: hisi_sas: Delete the debugfs folder of hisi_sas when the probe fails
scsi: hisi_sas: Replace in_softirq() check in hisi_sas_task_exec()
scsi: csiostor: Don't enable IRQs too early
scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices
scsi: lpfc: Fix hardlockup in lpfc_abort_handler
scsi: target: compare full CHAP_A Algorithm strings
dmaengine: xilinx_dma: Clear desc_pendingcount in xilinx_dma_reset
iommu/tegra-smmu: Fix page tables in > 4 GiB memory
iommu: rockchip: Free domain on .domain_free
platform/x86: peaq-wmi: switch to using polled mode of input devices
tools/power/x86/intel-speed-select: Remove warning for unused result
powerpc/papr_scm: Fix an off-by-one check in papr_scm_meta_{get, set}
f2fs: fix to update time in lazytime mode
Input: atmel_mxt_ts - disable IRQ across suspend
scsi: lpfc: Fix list corruption in lpfc_sli_get_iocbq
gpio: mxc: Only get the second IRQ when there is more than one IRQ
scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA
scsi: lpfc: Fix locking on mailbox command completion
scsi: mpt3sas: Fix clear pending bit in ioctl status
scsi: lpfc: Fix discovery failures when target device connectivity bounces
scsi: lpfc: Fix spinlock_irq issues in lpfc_els_flush_cmd()
Revert "MIPS: futex: Emit Loongson3 sync workarounds within asm"
Revert "MIPS: futex: Restore \n after sync instructions"
UPSTREAM: exit: panic before exit_mm() on global init exit
ANDROID: serdev: Fix platform device support
Conflicts:
Documentation/devicetree/bindings
Documentation/devicetree/bindings/Makefile
kernel/time/hrtimer.c
Change-Id: I271162549a080e2b747572f5c87cfd8fa111da51
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
This commit is contained in:
commit
2b9f49ee80
226 changed files with 29881 additions and 28876 deletions
|
|
@ -123,8 +123,9 @@ int dma_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void *__dma_alloc_from_coherent(struct dma_coherent_mem *mem,
|
||||
ssize_t size, dma_addr_t *dma_handle)
|
||||
static void *__dma_alloc_from_coherent(struct device *dev,
|
||||
struct dma_coherent_mem *mem,
|
||||
ssize_t size, dma_addr_t *dma_handle)
|
||||
{
|
||||
int order = get_order(size);
|
||||
unsigned long flags;
|
||||
|
|
@ -143,7 +144,7 @@ static void *__dma_alloc_from_coherent(struct dma_coherent_mem *mem,
|
|||
/*
|
||||
* Memory was found in the coherent area.
|
||||
*/
|
||||
*dma_handle = mem->device_base + (pageno << PAGE_SHIFT);
|
||||
*dma_handle = dma_get_device_base(dev, mem) + (pageno << PAGE_SHIFT);
|
||||
ret = mem->virt_base + (pageno << PAGE_SHIFT);
|
||||
spin_unlock_irqrestore(&mem->spinlock, flags);
|
||||
memset(ret, 0, size);
|
||||
|
|
@ -175,17 +176,18 @@ int dma_alloc_from_dev_coherent(struct device *dev, ssize_t size,
|
|||
if (!mem)
|
||||
return 0;
|
||||
|
||||
*ret = __dma_alloc_from_coherent(mem, size, dma_handle);
|
||||
*ret = __dma_alloc_from_coherent(dev, mem, size, dma_handle);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void *dma_alloc_from_global_coherent(ssize_t size, dma_addr_t *dma_handle)
|
||||
void *dma_alloc_from_global_coherent(struct device *dev, ssize_t size,
|
||||
dma_addr_t *dma_handle)
|
||||
{
|
||||
if (!dma_coherent_default_memory)
|
||||
return NULL;
|
||||
|
||||
return __dma_alloc_from_coherent(dma_coherent_default_memory, size,
|
||||
dma_handle);
|
||||
return __dma_alloc_from_coherent(dev, dma_coherent_default_memory, size,
|
||||
dma_handle);
|
||||
}
|
||||
|
||||
static int __dma_release_from_coherent(struct dma_coherent_mem *mem,
|
||||
|
|
|
|||
|
|
@ -420,6 +420,7 @@ void debug_dma_dump_mappings(struct device *dev)
|
|||
}
|
||||
|
||||
spin_unlock_irqrestore(&bucket->lock, flags);
|
||||
cond_resched();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -517,10 +517,6 @@ static struct task_struct *find_child_reaper(struct task_struct *father,
|
|||
}
|
||||
|
||||
write_unlock_irq(&tasklist_lock);
|
||||
if (unlikely(pid_ns == &init_pid_ns)) {
|
||||
panic("Attempted to kill init! exitcode=0x%08x\n",
|
||||
father->signal->group_exit_code ?: father->exit_code);
|
||||
}
|
||||
|
||||
list_for_each_entry_safe(p, n, dead, ptrace_entry) {
|
||||
list_del_init(&p->ptrace_entry);
|
||||
|
|
@ -767,6 +763,14 @@ void __noreturn do_exit(long code)
|
|||
acct_update_integrals(tsk);
|
||||
group_dead = atomic_dec_and_test(&tsk->signal->live);
|
||||
if (group_dead) {
|
||||
/*
|
||||
* If the last thread of global init has exited, panic
|
||||
* immediately to get a useable coredump.
|
||||
*/
|
||||
if (unlikely(is_global_init(tsk)))
|
||||
panic("Attempted to kill init! exitcode=0x%08x\n",
|
||||
tsk->signal->group_exit_code ?: (int)code);
|
||||
|
||||
#ifdef CONFIG_POSIX_TIMERS
|
||||
hrtimer_cancel(&tsk->signal->real_timer);
|
||||
exit_itimers(tsk->signal);
|
||||
|
|
|
|||
|
|
@ -1732,7 +1732,7 @@ static struct ctl_table vm_table[] = {
|
|||
.procname = "drop_caches",
|
||||
.data = &sysctl_drop_caches,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.mode = 0200,
|
||||
.proc_handler = drop_caches_sysctl_handler,
|
||||
.extra1 = SYSCTL_ONE,
|
||||
.extra2 = &four,
|
||||
|
|
|
|||
|
|
@ -966,7 +966,8 @@ static int enqueue_hrtimer(struct hrtimer *timer,
|
|||
|
||||
base->cpu_base->active_bases |= 1 << base->index;
|
||||
|
||||
timer->state |= HRTIMER_STATE_ENQUEUED;
|
||||
/* Pairs with the lockless read in hrtimer_is_queued() */
|
||||
WRITE_ONCE(timer->state, timer->state | HRTIMER_STATE_ENQUEUED);
|
||||
|
||||
return timerqueue_add(&base->active, &timer->node);
|
||||
}
|
||||
|
|
@ -1009,7 +1010,7 @@ out:
|
|||
* We need to preserve PINNED state here, otherwise we may end up
|
||||
* migrating pinned hrtimers as well.
|
||||
*/
|
||||
timer->state = newstate | (timer->state & HRTIMER_STATE_PINNED);
|
||||
WRITE_ONCE(timer->state, newstate | (timer->state & HRTIMER_STATE_PINNED));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1018,8 +1019,9 @@ out:
|
|||
static inline int
|
||||
remove_hrtimer(struct hrtimer *timer, struct hrtimer_clock_base *base, bool restart)
|
||||
{
|
||||
if (hrtimer_is_queued(timer)) {
|
||||
u8 state = timer->state;
|
||||
u8 state = timer->state;
|
||||
|
||||
if (state & HRTIMER_STATE_ENQUEUED) {
|
||||
int reprogram;
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@
|
|||
|
||||
#include "posix-timers.h"
|
||||
|
||||
static void delete_clock(struct kref *kref);
|
||||
|
||||
/*
|
||||
* Returns NULL if the posix_clock instance attached to 'fp' is old and stale.
|
||||
*/
|
||||
|
|
@ -125,7 +123,7 @@ static int posix_clock_open(struct inode *inode, struct file *fp)
|
|||
err = 0;
|
||||
|
||||
if (!err) {
|
||||
kref_get(&clk->kref);
|
||||
get_device(clk->dev);
|
||||
fp->private_data = clk;
|
||||
}
|
||||
out:
|
||||
|
|
@ -141,7 +139,7 @@ static int posix_clock_release(struct inode *inode, struct file *fp)
|
|||
if (clk->ops.release)
|
||||
err = clk->ops.release(clk);
|
||||
|
||||
kref_put(&clk->kref, delete_clock);
|
||||
put_device(clk->dev);
|
||||
|
||||
fp->private_data = NULL;
|
||||
|
||||
|
|
@ -161,38 +159,35 @@ static const struct file_operations posix_clock_file_operations = {
|
|||
#endif
|
||||
};
|
||||
|
||||
int posix_clock_register(struct posix_clock *clk, dev_t devid)
|
||||
int posix_clock_register(struct posix_clock *clk, struct device *dev)
|
||||
{
|
||||
int err;
|
||||
|
||||
kref_init(&clk->kref);
|
||||
init_rwsem(&clk->rwsem);
|
||||
|
||||
cdev_init(&clk->cdev, &posix_clock_file_operations);
|
||||
err = cdev_device_add(&clk->cdev, dev);
|
||||
if (err) {
|
||||
pr_err("%s unable to add device %d:%d\n",
|
||||
dev_name(dev), MAJOR(dev->devt), MINOR(dev->devt));
|
||||
return err;
|
||||
}
|
||||
clk->cdev.owner = clk->ops.owner;
|
||||
err = cdev_add(&clk->cdev, devid, 1);
|
||||
clk->dev = dev;
|
||||
|
||||
return err;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(posix_clock_register);
|
||||
|
||||
static void delete_clock(struct kref *kref)
|
||||
{
|
||||
struct posix_clock *clk = container_of(kref, struct posix_clock, kref);
|
||||
|
||||
if (clk->release)
|
||||
clk->release(clk);
|
||||
}
|
||||
|
||||
void posix_clock_unregister(struct posix_clock *clk)
|
||||
{
|
||||
cdev_del(&clk->cdev);
|
||||
cdev_device_del(&clk->cdev, clk->dev);
|
||||
|
||||
down_write(&clk->rwsem);
|
||||
clk->zombie = true;
|
||||
up_write(&clk->rwsem);
|
||||
|
||||
kref_put(&clk->kref, delete_clock);
|
||||
put_device(clk->dev);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(posix_clock_unregister);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue