Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
aa40438
ocfs2: drop acl cache for directories too
Wengang-oracle Sep 24, 2021
f013a50
usb: gadget: r8a66597: fix a loop in set_feature()
Sep 6, 2021
ff275c8
usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
Sep 9, 2021
b8c8060
usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
Sep 11, 2021
b1f6efa
usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
Sep 16, 2021
8b06b0f
cifs: fix incorrect check for null pointer in header_assemble
smfrench Sep 24, 2021
d4e7647
xen/x86: fix PV trap handling on secondary processors
jbeulich Sep 20, 2021
85d3493
usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
Sep 13, 2021
0dc1cfa
USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
Sep 21, 2021
93fa08e
USB: cdc-acm: fix minor-number release
jhovold Sep 7, 2021
aa2c274
binder: make sure fd closes complete
toddkjos Aug 30, 2021
4dc5695
staging: greybus: uart: fix tty use after free
jhovold Sep 6, 2021
a6c7d3c
Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
Sep 13, 2021
20c9fdd
usb: core: hcd: Add support for deferring roothub registration
kishon Sep 9, 2021
5cc674a
USB: serial: mos7840: remove duplicated 0xac24 device ID
krzk Sep 17, 2021
59564b0
USB: serial: option: add Telit LN920 compositions
clobrano Sep 3, 2021
4b2cf0f
USB: serial: option: remove duplicate USB device ID
krzk Sep 17, 2021
406ff5b
USB: serial: option: add device id for Foxconn T99W265
SlarkXiao Sep 17, 2021
7751f60
mcb: fix error handling in mcb_alloc_bus()
Sep 6, 2021
d4ec140
erofs: fix up erofs_lookup tracepoint
hsiangkao Sep 21, 2021
381c8ce
btrfs: prevent __btrfs_dump_space_info() to underflow its free space
adam900710 Sep 16, 2021
2d7c20d
xhci: Set HCD flag to defer primary roothub registration
kishon Sep 9, 2021
494260e
serial: mvebu-uart: fix driver's tx_empty callback
pali Sep 11, 2021
acce91b
net: hso: fix muxed tty registration
jhovold Sep 17, 2021
a8e8b14
afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation
dhowells Sep 1, 2021
cf9138c
platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR()
andy-shev Aug 27, 2021
4c4c305
enetc: Fix illegal access when reading affinity_hint
claudiu-m Sep 17, 2021
363438e
bnxt_en: Fix TX timeout when TX ring size is set to the smallest
Sep 20, 2021
f7fb7db
net/smc: add missing error check in smc_clc_prfx_set()
karstengr Sep 20, 2021
23716d7
gpio: uniphier: Fix void functions to remove return value
khayash1 Sep 16, 2021
ae7b957
qed: rdma - don't wait for resources under hw error recovery flow
smalin1 Sep 22, 2021
d0f4a2e
net/mlx4_en: Don't allow aRFS for encapsulated packets
ayalevin Sep 23, 2021
1deb94d
scsi: iscsi: Adjust iface sysfs attr detection
LiBaokun96 Sep 1, 2021
c5f27ae
tty: synclink_gt, drop unneeded forward declarations
Mar 2, 2021
5bcead7
tty: synclink_gt: rename a conflicting function name
rddunlap Sep 2, 2021
0ebc3e6
fpga: machxo2-spi: Return an error on failure
Aug 10, 2021
b869901
fpga: machxo2-spi: Fix missing error code in machxo2_write_complete()
wb-zjp846396 Aug 13, 2021
1c1062c
thermal/core: Potential buffer overflow in thermal_build_list_of_poli…
Sep 16, 2021
d140ccb
cifs: fix a sign extension bug
Sep 21, 2021
30d373d
scsi: qla2xxx: Restore initiator in dual mode
logost Sep 15, 2021
1b59625
scsi: lpfc: Use correct scnprintf() limit
Sep 16, 2021
71f323f
irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build
rddunlap Sep 5, 2021
42d3711
irqchip/gic-v3-its: Fix potential VPE leak on error
Sep 15, 2021
2b5befc
md: fix a lock order reversal in md_alloc
Sep 1, 2021
ebb8d26
blktrace: Fix uaf in blk_trace access after removing by sysfs
Sep 23, 2021
1da750d
net: macb: fix use after free on rmmod
lzto Sep 8, 2021
29c70b0
net: stmmac: allow CSR clock of 300MHz
jniax Sep 10, 2021
7432ecc
m68k: Double cast io functions to unsigned long
groeck Sep 7, 2021
7273cb1
ipv6: delay fib6_sernum increase in fib6_add
zhangkaiheb Sep 9, 2021
9393759
bpf: Add oversize check before call kvcalloc()
Sep 11, 2021
29917bb
xen/balloon: use a kernel thread instead a workqueue
jgross1 Aug 27, 2021
ec49f3f
nvme-multipath: fix ANA state updates when a namespace is not present
ttooxxaa Sep 12, 2021
9d77988
sparc32: page align size in arch_dma_alloc
andreas-gaisler Sep 8, 2021
d12ddd8
blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd
Sep 14, 2021
2397ea2
compiler.h: Introduce absolute_pointer macro
groeck Sep 15, 2021
113a8ed
net: i825xx: Use absolute_pointer for memcpy from fixed memory location
groeck Sep 15, 2021
1214ace
sparc: avoid stringop-overread errors
torvalds Sep 6, 2021
8cd34eb
qnx4: avoid stringop-overread errors
torvalds Sep 15, 2021
aeb19da
parisc: Use absolute_pointer() to define PAGE0
hdeller Sep 16, 2021
af4a142
arm64: Mark __stack_chk_guard as __ro_after_init
ashimida123 Sep 14, 2021
fa56f2c
alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to v…
groeck Sep 9, 2021
d193f7d
net: 6pack: Fix tx timeout and slot time
groeck Sep 9, 2021
8ede848
spi: Fix tegra20 build with CONFIG_PM=n
torvalds Sep 18, 2021
de1c350
EDAC/synopsys: Fix wrong value type assignment for edac_mode
Aug 18, 2021
04783de
thermal/drivers/int340x: Do not set a wrong tcc offset on resume
atenart Sep 9, 2021
f80b679
arm64: dts: marvell: armada-37xx: Extend PCIe MEM space
pali Jun 24, 2021
3a0f951
xen/balloon: fix balloon kthread freezing
jgross1 Sep 20, 2021
27f8c44
qnx4: work around gcc false positive warning bug
torvalds Sep 20, 2021
3a7dc5b
Linux 5.4.150
gregkh Sep 30, 2021
8975524
Merge tag 'v5.4.150' into 5.4-2.1.x-imx
zandrey Sep 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 149
SUBLEVEL = 150
EXTRAVERSION =
NAME = Kleptomaniac Octopus

Expand Down
6 changes: 3 additions & 3 deletions arch/alpha/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ extern inline void set_hae(unsigned long new_hae)
* Change virtual addresses to physical addresses and vv.
*/
#ifdef USE_48_BIT_KSEG
static inline unsigned long virt_to_phys(void *address)
static inline unsigned long virt_to_phys(volatile void *address)
{
return (unsigned long)address - IDENT_ADDR;
}
Expand All @@ -71,7 +71,7 @@ static inline void * phys_to_virt(unsigned long address)
return (void *) (address + IDENT_ADDR);
}
#else
static inline unsigned long virt_to_phys(void *address)
static inline unsigned long virt_to_phys(volatile void *address)
{
unsigned long phys = (unsigned long)address;

Expand Down Expand Up @@ -107,7 +107,7 @@ static inline void * phys_to_virt(unsigned long address)
extern unsigned long __direct_map_base;
extern unsigned long __direct_map_size;

static inline unsigned long __deprecated virt_to_bus(void *address)
static inline unsigned long __deprecated virt_to_bus(volatile void *address)
{
unsigned long phys = virt_to_phys(address);
unsigned long bus = phys + __direct_map_base;
Expand Down
17 changes: 17 additions & 0 deletions arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,23 @@
max-link-speed = <2>;
reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
phys = <&comphy1 0>;
/*
* U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property
* contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and
* 2 size cells and also expects that the second range starts at 16 MB offset. If these
* conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address
* space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window
* for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB.
* This bug is not present in U-Boot ports for other Armada 3700 devices and is fixed in
* U-Boot version 2021.07. See relevant U-Boot commits (the last one contains fix):
* https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7
* https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf
* https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33
*/
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x81000000 0 0xe8000000 0 0xe8000000 0 0x01000000 /* Port 0 IO */
0x82000000 0 0xe9000000 0 0xe9000000 0 0x07000000>; /* Port 0 MEM */

/* enabled by U-Boot if PCIe module is present */
status = "disabled";
Expand Down
11 changes: 9 additions & 2 deletions arch/arm64/boot/dts/marvell/armada-37xx.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -487,8 +487,15 @@
#interrupt-cells = <1>;
msi-parent = <&pcie0>;
msi-controller;
ranges = <0x82000000 0 0xe8000000 0 0xe8000000 0 0x1000000 /* Port 0 MEM */
0x81000000 0 0xe9000000 0 0xe9000000 0 0x10000>; /* Port 0 IO*/
/*
* The 128 MiB address range [0xe8000000-0xf0000000] is
* dedicated for PCIe and can be assigned to 8 windows
* with size a power of two. Use one 64 KiB window for
* IO at the end and the remaining seven windows
* (totaling 127 MiB) for MEM.
*/
ranges = <0x82000000 0 0xe8000000 0 0xe8000000 0 0x07f00000 /* Port 0 MEM */
0x81000000 0 0xefff0000 0 0xefff0000 0 0x00010000>; /* Port 0 IO */
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie_intc 0>,
<0 0 0 2 &pcie_intc 1>,
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@

#if defined(CONFIG_STACKPROTECTOR) && !defined(CONFIG_STACKPROTECTOR_PER_TASK)
#include <linux/stackprotector.h>
unsigned long __stack_chk_guard __read_mostly;
unsigned long __stack_chk_guard __ro_after_init;
EXPORT_SYMBOL(__stack_chk_guard);
#endif

Expand Down
20 changes: 10 additions & 10 deletions arch/m68k/include/asm/raw_io.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@
* two accesses to memory, which may be undesirable for some devices.
*/
#define in_8(addr) \
({ u8 __v = (*(__force volatile u8 *) (addr)); __v; })
({ u8 __v = (*(__force volatile u8 *) (unsigned long)(addr)); __v; })
#define in_be16(addr) \
({ u16 __v = (*(__force volatile u16 *) (addr)); __v; })
({ u16 __v = (*(__force volatile u16 *) (unsigned long)(addr)); __v; })
#define in_be32(addr) \
({ u32 __v = (*(__force volatile u32 *) (addr)); __v; })
({ u32 __v = (*(__force volatile u32 *) (unsigned long)(addr)); __v; })
#define in_le16(addr) \
({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (addr)); __v; })
({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (unsigned long)(addr)); __v; })
#define in_le32(addr) \
({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (addr)); __v; })
({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (unsigned long)(addr)); __v; })

#define out_8(addr,b) (void)((*(__force volatile u8 *) (addr)) = (b))
#define out_be16(addr,w) (void)((*(__force volatile u16 *) (addr)) = (w))
#define out_be32(addr,l) (void)((*(__force volatile u32 *) (addr)) = (l))
#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (addr)) = cpu_to_le16(w))
#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (addr)) = cpu_to_le32(l))
#define out_8(addr,b) (void)((*(__force volatile u8 *) (unsigned long)(addr)) = (b))
#define out_be16(addr,w) (void)((*(__force volatile u16 *) (unsigned long)(addr)) = (w))
#define out_be32(addr,l) (void)((*(__force volatile u32 *) (unsigned long)(addr)) = (l))
#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (unsigned long)(addr)) = cpu_to_le16(w))
#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (unsigned long)(addr)) = cpu_to_le32(l))

#define raw_inb in_8
#define raw_inw in_be16
Expand Down
2 changes: 1 addition & 1 deletion arch/parisc/include/asm/page.h
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ extern int npmem_ranges;
#include <asm-generic/getorder.h>
#include <asm/pdc.h>

#define PAGE0 ((struct zeropage *)__PAGE_OFFSET)
#define PAGE0 ((struct zeropage *)absolute_pointer(__PAGE_OFFSET))

/* DEFINITION OF THE ZERO-PAGE (PAG0) */
/* based on work by Jason Eckhardt (jason@equator.com) */
Expand Down
4 changes: 3 additions & 1 deletion arch/sparc/kernel/ioport.c
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,9 @@ void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
void arch_dma_free(struct device *dev, size_t size, void *cpu_addr,
dma_addr_t dma_addr, unsigned long attrs)
{
if (!sparc_dma_free_resource(cpu_addr, PAGE_ALIGN(size)))
size = PAGE_ALIGN(size);

if (!sparc_dma_free_resource(cpu_addr, size))
return;

dma_make_coherent(dma_addr, size);
Expand Down
3 changes: 2 additions & 1 deletion arch/sparc/kernel/mdesc.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ struct mdesc_hdr {
u32 node_sz; /* node block size */
u32 name_sz; /* name block size */
u32 data_sz; /* data block size */
char data[];
} __attribute__((aligned(16)));

struct mdesc_elem {
Expand Down Expand Up @@ -612,7 +613,7 @@ EXPORT_SYMBOL(mdesc_get_node_info);

static struct mdesc_elem *node_block(struct mdesc_hdr *mdesc)
{
return (struct mdesc_elem *) (mdesc + 1);
return (struct mdesc_elem *) mdesc->data;
}

static void *name_block(struct mdesc_hdr *mdesc)
Expand Down
15 changes: 9 additions & 6 deletions arch/x86/xen/enlighten_pv.c
Original file line number Diff line number Diff line change
Expand Up @@ -727,8 +727,8 @@ static void xen_write_idt_entry(gate_desc *dt, int entrynum, const gate_desc *g)
preempt_enable();
}

static void xen_convert_trap_info(const struct desc_ptr *desc,
struct trap_info *traps)
static unsigned xen_convert_trap_info(const struct desc_ptr *desc,
struct trap_info *traps, bool full)
{
unsigned in, out, count;

Expand All @@ -738,17 +738,18 @@ static void xen_convert_trap_info(const struct desc_ptr *desc,
for (in = out = 0; in < count; in++) {
gate_desc *entry = (gate_desc *)(desc->address) + in;

if (cvt_gate_to_trap(in, entry, &traps[out]))
if (cvt_gate_to_trap(in, entry, &traps[out]) || full)
out++;
}
traps[out].address = 0;

return out;
}

void xen_copy_trap_info(struct trap_info *traps)
{
const struct desc_ptr *desc = this_cpu_ptr(&idt_desc);

xen_convert_trap_info(desc, traps);
xen_convert_trap_info(desc, traps, true);
}

/* Load a new IDT into Xen. In principle this can be per-CPU, so we
Expand All @@ -758,14 +759,16 @@ static void xen_load_idt(const struct desc_ptr *desc)
{
static DEFINE_SPINLOCK(lock);
static struct trap_info traps[257];
unsigned out;

trace_xen_cpu_load_idt(desc);

spin_lock(&lock);

memcpy(this_cpu_ptr(&idt_desc), desc, sizeof(idt_desc));

xen_convert_trap_info(desc, traps);
out = xen_convert_trap_info(desc, traps, false);
memset(&traps[out], 0, sizeof(traps[0]));

xen_mc_flush();
if (HYPERVISOR_set_trap_table(traps))
Expand Down
8 changes: 8 additions & 0 deletions block/blk-cgroup.c
Original file line number Diff line number Diff line change
Expand Up @@ -1462,10 +1462,14 @@ int blkcg_activate_policy(struct request_queue *q,
/* alloc failed, nothing's initialized yet, free everything */
spin_lock_irq(&q->queue_lock);
list_for_each_entry(blkg, &q->blkg_list, q_node) {
struct blkcg *blkcg = blkg->blkcg;

spin_lock(&blkcg->lock);
if (blkg->pd[pol->plid]) {
pol->pd_free_fn(blkg->pd[pol->plid]);
blkg->pd[pol->plid] = NULL;
}
spin_unlock(&blkcg->lock);
}
spin_unlock_irq(&q->queue_lock);
ret = -ENOMEM;
Expand Down Expand Up @@ -1497,12 +1501,16 @@ void blkcg_deactivate_policy(struct request_queue *q,
__clear_bit(pol->plid, q->blkcg_pols);

list_for_each_entry(blkg, &q->blkg_list, q_node) {
struct blkcg *blkcg = blkg->blkcg;

spin_lock(&blkcg->lock);
if (blkg->pd[pol->plid]) {
if (pol->pd_offline_fn)
pol->pd_offline_fn(blkg->pd[pol->plid]);
pol->pd_free_fn(blkg->pd[pol->plid]);
blkg->pd[pol->plid] = NULL;
}
spin_unlock(&blkcg->lock);
}

spin_unlock_irq(&q->queue_lock);
Expand Down
23 changes: 17 additions & 6 deletions drivers/android/binder.c
Original file line number Diff line number Diff line change
Expand Up @@ -2239,6 +2239,7 @@ static void binder_deferred_fd_close(int fd)
}

static void binder_transaction_buffer_release(struct binder_proc *proc,
struct binder_thread *thread,
struct binder_buffer *buffer,
binder_size_t failed_at,
bool is_failure)
Expand Down Expand Up @@ -2398,8 +2399,16 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
&proc->alloc, &fd, buffer,
offset, sizeof(fd));
WARN_ON(err);
if (!err)
if (!err) {
binder_deferred_fd_close(fd);
/*
* Need to make sure the thread goes
* back to userspace to complete the
* deferred close
*/
if (thread)
thread->looper_need_return = true;
}
}
} break;
default:
Expand Down Expand Up @@ -3469,7 +3478,7 @@ static void binder_transaction(struct binder_proc *proc,
err_copy_data_failed:
binder_free_txn_fixups(t);
trace_binder_transaction_failed_buffer_release(t->buffer);
binder_transaction_buffer_release(target_proc, t->buffer,
binder_transaction_buffer_release(target_proc, NULL, t->buffer,
buffer_offset, true);
if (target_node)
binder_dec_node_tmpref(target_node);
Expand Down Expand Up @@ -3546,7 +3555,9 @@ static void binder_transaction(struct binder_proc *proc,
* Cleanup buffer and free it.
*/
static void
binder_free_buf(struct binder_proc *proc, struct binder_buffer *buffer)
binder_free_buf(struct binder_proc *proc,
struct binder_thread *thread,
struct binder_buffer *buffer)
{
binder_inner_proc_lock(proc);
if (buffer->transaction) {
Expand Down Expand Up @@ -3574,7 +3585,7 @@ binder_free_buf(struct binder_proc *proc, struct binder_buffer *buffer)
binder_node_inner_unlock(buf_node);
}
trace_binder_transaction_buffer_release(buffer);
binder_transaction_buffer_release(proc, buffer, 0, false);
binder_transaction_buffer_release(proc, thread, buffer, 0, false);
binder_alloc_free_buf(&proc->alloc, buffer);
}

Expand Down Expand Up @@ -3775,7 +3786,7 @@ static int binder_thread_write(struct binder_proc *proc,
proc->pid, thread->pid, (u64)data_ptr,
buffer->debug_id,
buffer->transaction ? "active" : "finished");
binder_free_buf(proc, buffer);
binder_free_buf(proc, thread, buffer);
break;
}

Expand Down Expand Up @@ -4463,7 +4474,7 @@ static int binder_thread_read(struct binder_proc *proc,
buffer->transaction = NULL;
binder_cleanup_transaction(t, "fd fixups failed",
BR_FAILED_REPLY);
binder_free_buf(proc, buffer);
binder_free_buf(proc, thread, buffer);
binder_debug(BINDER_DEBUG_FAILED_TRANSACTION,
"%d:%d %stransaction %d fd fixups failed %d/%d, line %d\n",
proc->pid, thread->pid,
Expand Down
2 changes: 1 addition & 1 deletion drivers/edac/synopsys_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -853,7 +853,7 @@ static void init_csrows(struct mem_ctl_info *mci)

for (j = 0; j < csi->nr_channels; j++) {
dimm = csi->channels[j]->dimm;
dimm->edac_mode = EDAC_FLAG_SECDED;
dimm->edac_mode = EDAC_SECDED;
dimm->mtype = p_data->get_mtype(priv->baseaddr);
dimm->nr_pages = (size >> PAGE_SHIFT) / csi->nr_channels;
dimm->grain = SYNPS_EDAC_ERR_GRAIN;
Expand Down
6 changes: 5 additions & 1 deletion drivers/fpga/machxo2-spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,10 @@ static int machxo2_write_init(struct fpga_manager *mgr,
goto fail;

get_status(spi, &status);
if (test_bit(FAIL, &status))
if (test_bit(FAIL, &status)) {
ret = -EINVAL;
goto fail;
}
dump_status_reg(&status);

spi_message_init(&msg);
Expand Down Expand Up @@ -310,6 +312,7 @@ static int machxo2_write_complete(struct fpga_manager *mgr,
dump_status_reg(&status);
if (!test_bit(DONE, &status)) {
machxo2_cleanup(mgr);
ret = -EINVAL;
goto fail;
}

Expand All @@ -331,6 +334,7 @@ static int machxo2_write_complete(struct fpga_manager *mgr,
break;
if (++refreshloop == MACHXO2_MAX_REFRESH_LOOP) {
machxo2_cleanup(mgr);
ret = -EINVAL;
goto fail;
}
} while (1);
Expand Down
4 changes: 2 additions & 2 deletions drivers/gpio/gpio-uniphier.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ static void uniphier_gpio_irq_mask(struct irq_data *data)

uniphier_gpio_reg_update(priv, UNIPHIER_GPIO_IRQ_EN, mask, 0);

return irq_chip_mask_parent(data);
irq_chip_mask_parent(data);
}

static void uniphier_gpio_irq_unmask(struct irq_data *data)
Expand All @@ -198,7 +198,7 @@ static void uniphier_gpio_irq_unmask(struct irq_data *data)

uniphier_gpio_reg_update(priv, UNIPHIER_GPIO_IRQ_EN, mask, mask);

return irq_chip_unmask_parent(data);
irq_chip_unmask_parent(data);
}

static int uniphier_gpio_irq_set_type(struct irq_data *data, unsigned int type)
Expand Down
1 change: 1 addition & 0 deletions drivers/irqchip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,7 @@ config MESON_IRQ_GPIO
config GOLDFISH_PIC
bool "Goldfish programmable interrupt controller"
depends on MIPS && (GOLDFISH || COMPILE_TEST)
select GENERIC_IRQ_CHIP
select IRQ_DOMAIN
help
Say yes here to enable Goldfish interrupt controller driver used
Expand Down
2 changes: 1 addition & 1 deletion drivers/irqchip/irq-gic-v3-its.c
Original file line number Diff line number Diff line change
Expand Up @@ -3123,7 +3123,7 @@ static int its_vpe_irq_domain_alloc(struct irq_domain *domain, unsigned int virq

if (err) {
if (i > 0)
its_vpe_irq_domain_free(domain, virq, i - 1);
its_vpe_irq_domain_free(domain, virq, i);

its_lpi_free(bitmap, base, nr_ids);
its_free_prop_table(vprop_page);
Expand Down
Loading