Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 5.4-2.1.x-imx to v5.4.70 from stable #148

Merged
merged 59 commits into from
Oct 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
09c8264
btrfs: fix filesystem corruption after a device replace
fdmanana Sep 23, 2020
23389cf
mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBI…
jwrdegoede Sep 27, 2020
57bd08a
USB: gadget: f_ncm: Fix NDP16 datagram validation
0xB0D Sep 20, 2020
b079337
gpio: siox: explicitly support only threaded irqs
a3f Sep 7, 2020
035f59a
gpio: mockup: fix resource leak in error path
brgl Sep 8, 2020
79c8ebd
gpio: tc35894: fix up tc35894 interrupt configuration
dillon-min Sep 3, 2020
14c79ef
clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
Aug 31, 2020
215459f
vsock/virtio: add transport parameter to the virtio_transport_reset_n…
stefano-garzarella Nov 14, 2019
aed60a1
net: virtio_vsock: Enhance connection semantics
Feb 14, 2020
aee38af
xfs: trim IO to found COW extent limit
sandeen Oct 1, 2020
ac3bf99
Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
Sep 28, 2020
5ac7065
iio: adc: qcom-spmi-adc5: fix driver name
lumag Sep 10, 2020
c524a17
ftrace: Move RCU is watching check after recursion check
rostedt Sep 29, 2020
de21eb7
memstick: Skip allocating card when removing host
khfeng Sep 25, 2020
3d54a64
drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
jdelvare Sep 28, 2020
688aa0e
clocksource/drivers/timer-gx6605s: Fixup counter reload
guoren83 Aug 18, 2020
91d5915
libbpf: Remove arch-specific include path in Makefile
rnav Sep 2, 2020
985a56c
drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
Sep 3, 2020
e9af030
drm/sun4i: mixer: Extend regmap max_register
mcerveny Sep 6, 2020
f19ff01
net: dec: de2104x: Increase receive ring size for Tulip
lucydyan Sep 10, 2020
0bcc348
rndis_host: increase sleep time in the query-response loop
doga22 Sep 11, 2020
44b4baf
nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
ChaitanayaKulkarni Sep 16, 2020
89fd103
fuse: fix the ->direct_IO() treatment of iov_iter
Sep 17, 2020
3ba3fc3
drivers/net/wan/lapbether: Make skb->protocol consistent with the header
Sep 16, 2020
126e609
drivers/net/wan/hdlc: Set skb->protocol before transmitting
Sep 16, 2020
355a710
mac80211: Fix radiotap header channel flag for 6GHz band
Sep 11, 2020
a0fe7f7
mac80211: do not allow bigger VHT MPDUs than the hardware supports
nbd168 Sep 17, 2020
4e4646c
tracing: Make the space reserved for the pid wider
Sep 4, 2020
8cc5eb8
tools/io_uring: fix compile breakage
doug-gilbert Sep 14, 2020
157ccdf
spi: fsl-espi: Only process interrupts for expected events
cpackham-atlnz Sep 4, 2020
2b217ea
nvme-pci: fix NULL req in completion handler
Sep 22, 2020
8c03d0e
nvme-fc: fail new connections to a deleted host or remote port
Sep 17, 2020
543ea1a
gpio: sprd: Clear interrupt when setting the type as edge
Aug 31, 2020
ae68b15
phy: ti: am654: Fix a leak in serdes_am654_probe()
Sep 5, 2020
6c5a11e
pinctrl: mvebu: Fix i2c sda definition for 98DX3236
cpackham-atlnz Sep 7, 2020
2f37a1e
nfs: Fix security label length not being reset
JeffreyMitchellSL Sep 15, 2020
0ded28e
clk: tegra: Always program PLL_E when enabled
thierryreding Jun 3, 2020
08e66c0
clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
mszyprow Sep 22, 2020
eddeff7
iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
YuKuai-huawei Sep 18, 2020
8323d1e
gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
jk-ozlabs Sep 11, 2020
f2a2380
gpio/aspeed-sgpio: don't enable all interrupts by default
jk-ozlabs Sep 11, 2020
811ac05
gpio: aspeed: fix ast2600 bank properties
tao-ren Sep 16, 2020
21b9387
i2c: cpm: Fix i2c_ram structure
nvincent-vossloh Sep 23, 2020
ea4c691
Input: trackpoint - enable Synaptics trackpoints
synavincent Sep 28, 2020
4faf2c3
scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
Sep 19, 2020
1d13c3a
random32: Restore __latent_entropy attribute on net_rand_state
tsautereau-anssi Oct 2, 2020
2334b2d
block/diskstats: more accurate approximation of io_ticks for slow disks
koct9i Mar 25, 2020
42b7153
mm: replace memmap_context by meminit_context
ldu4 Sep 26, 2020
9626c1a
mm: don't rely on system state to detect hot-plug operations
ldu4 Sep 26, 2020
34b9396
nvme: Cleanup and rename nvme_block_nr()
damien-lemoal Oct 21, 2019
03f4f85
nvme: Introduce nvme_lba_to_sect()
damien-lemoal Oct 21, 2019
8db44b3
nvme: consolidate chunk_sectors settings
keithbusch Apr 9, 2020
8993da3
epoll: do not insert into poll queues until all sanity checks are done
Sep 10, 2020
099b7a1
epoll: replace ->visited/visited_list with generation count
Sep 10, 2020
8e58bad
epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
Sep 10, 2020
27423bb
ep_create_wakeup_source(): dentry name can change under you...
Sep 24, 2020
253052b
netfilter: ctnetlink: add a range check for l3/l4 protonum
Aug 24, 2020
d22f99d
Linux 5.4.70
gregkh Oct 7, 2020
7cb3d3a
Merge tag 'v5.4.70' into 5.4-2.1.x-imx
zandrey Oct 7, 2020
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
5 changes: 4 additions & 1 deletion Documentation/admin-guide/iostats.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Field 10 -- # of milliseconds spent doing I/Os

Since 5.0 this field counts jiffies when at least one request was
started or completed. If request runs more than 2 jiffies then some
I/O time will not be accounted unless there are other requests.
I/O time might be not accounted in case of concurrent requests.

Field 11 -- weighted # of milliseconds spent doing I/Os
This field is incremented at each I/O start, I/O completion, I/O
Expand Down Expand Up @@ -133,6 +133,9 @@ are summed (possibly overflowing the unsigned long variable they are
summed to) and the result given to the user. There is no convenient
user interface for accessing the per-CPU counters themselves.

Since 4.19 request times are measured with nanoseconds precision and
truncated to milliseconds before showing in this interface.

Disks vs Partitions
-------------------

Expand Down
5 changes: 3 additions & 2 deletions Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ Required properties:
- gpio-controller : Marks the device node as a GPIO controller
- interrupts : Interrupt specifier, see interrupt-controller/interrupts.txt
- interrupt-controller : Mark the GPIO controller as an interrupt-controller
- ngpios : number of GPIO lines, see gpio.txt
(should be multiple of 8, up to 80 pins)
- ngpios : number of *hardware* GPIO lines, see gpio.txt. This will expose
2 software GPIOs per hardware GPIO: one for hardware input, one for hardware
output. Up to 80 pins, must be a multiple of 8.
- clocks : A phandle to the APB clock for SGPM clock division
- bus-frequency : SGPM CLK frequency

Expand Down
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 = 69
SUBLEVEL = 70
EXTRAVERSION =
NAME = Kleptomaniac Octopus

Expand Down
6 changes: 3 additions & 3 deletions arch/ia64/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ virtual_memmap_init(u64 start, u64 end, void *arg)
if (map_start < map_end)
memmap_init_zone((unsigned long)(map_end - map_start),
args->nid, args->zone, page_to_pfn(map_start),
MEMMAP_EARLY, NULL);
MEMINIT_EARLY, NULL);
return 0;
}

Expand All @@ -527,8 +527,8 @@ memmap_init (unsigned long size, int nid, unsigned long zone,
unsigned long start_pfn)
{
if (!vmem_map) {
memmap_init_zone(size, nid, zone, start_pfn, MEMMAP_EARLY,
NULL);
memmap_init_zone(size, nid, zone, start_pfn,
MEMINIT_EARLY, NULL);
} else {
struct page *start;
struct memmap_init_callback_data args;
Expand Down
8 changes: 4 additions & 4 deletions block/bio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1754,14 +1754,14 @@ void bio_check_pages_dirty(struct bio *bio)
schedule_work(&bio_dirty_work);
}

void update_io_ticks(struct hd_struct *part, unsigned long now)
void update_io_ticks(struct hd_struct *part, unsigned long now, bool end)
{
unsigned long stamp;
again:
stamp = READ_ONCE(part->stamp);
if (unlikely(stamp != now)) {
if (likely(cmpxchg(&part->stamp, stamp, now) == stamp)) {
__part_stat_add(part, io_ticks, 1);
__part_stat_add(part, io_ticks, end ? now - stamp : 1);
}
}
if (part->partno) {
Expand All @@ -1777,7 +1777,7 @@ void generic_start_io_acct(struct request_queue *q, int op,

part_stat_lock();

update_io_ticks(part, jiffies);
update_io_ticks(part, jiffies, false);
part_stat_inc(part, ios[sgrp]);
part_stat_add(part, sectors[sgrp], sectors);
part_inc_in_flight(q, part, op_is_write(op));
Expand All @@ -1795,7 +1795,7 @@ void generic_end_io_acct(struct request_queue *q, int req_op,

part_stat_lock();

update_io_ticks(part, now);
update_io_ticks(part, now, true);
part_stat_add(part, nsecs[sgrp], jiffies_to_nsecs(duration));
part_stat_add(part, time_in_queue, duration);
part_dec_in_flight(q, part, op_is_write(req_op));
Expand Down
4 changes: 2 additions & 2 deletions block/blk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1334,7 +1334,7 @@ void blk_account_io_done(struct request *req, u64 now)
part_stat_lock();
part = req->part;

update_io_ticks(part, jiffies);
update_io_ticks(part, jiffies, true);
part_stat_inc(part, ios[sgrp]);
part_stat_add(part, nsecs[sgrp], now - req->start_time_ns);
part_stat_add(part, time_in_queue, nsecs_to_jiffies64(now - req->start_time_ns));
Expand Down Expand Up @@ -1376,7 +1376,7 @@ void blk_account_io_start(struct request *rq, bool new_io)
rq->part = part;
}

update_io_ticks(part, jiffies);
update_io_ticks(part, jiffies, false);

part_stat_unlock();
}
Expand Down
85 changes: 55 additions & 30 deletions drivers/base/node.c
Original file line number Diff line number Diff line change
Expand Up @@ -758,14 +758,36 @@ static int __ref get_nid_for_pfn(unsigned long pfn)
return pfn_to_nid(pfn);
}

static int do_register_memory_block_under_node(int nid,
struct memory_block *mem_blk)
{
int ret;

/*
* If this memory block spans multiple nodes, we only indicate
* the last processed node.
*/
mem_blk->nid = nid;

ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
&mem_blk->dev.kobj,
kobject_name(&mem_blk->dev.kobj));
if (ret)
return ret;

return sysfs_create_link_nowarn(&mem_blk->dev.kobj,
&node_devices[nid]->dev.kobj,
kobject_name(&node_devices[nid]->dev.kobj));
}

/* register memory section under specified node if it spans that node */
static int register_mem_sect_under_node(struct memory_block *mem_blk,
void *arg)
static int register_mem_block_under_node_early(struct memory_block *mem_blk,
void *arg)
{
unsigned long memory_block_pfns = memory_block_size_bytes() / PAGE_SIZE;
unsigned long start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
unsigned long end_pfn = start_pfn + memory_block_pfns - 1;
int ret, nid = *(int *)arg;
int nid = *(int *)arg;
unsigned long pfn;

for (pfn = start_pfn; pfn <= end_pfn; pfn++) {
Expand All @@ -782,38 +804,33 @@ static int register_mem_sect_under_node(struct memory_block *mem_blk,
}

/*
* We need to check if page belongs to nid only for the boot
* case, during hotplug we know that all pages in the memory
* block belong to the same node.
*/
if (system_state == SYSTEM_BOOTING) {
page_nid = get_nid_for_pfn(pfn);
if (page_nid < 0)
continue;
if (page_nid != nid)
continue;
}

/*
* If this memory block spans multiple nodes, we only indicate
* the last processed node.
* We need to check if page belongs to nid only at the boot
* case because node's ranges can be interleaved.
*/
mem_blk->nid = nid;

ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
&mem_blk->dev.kobj,
kobject_name(&mem_blk->dev.kobj));
if (ret)
return ret;
page_nid = get_nid_for_pfn(pfn);
if (page_nid < 0)
continue;
if (page_nid != nid)
continue;

return sysfs_create_link_nowarn(&mem_blk->dev.kobj,
&node_devices[nid]->dev.kobj,
kobject_name(&node_devices[nid]->dev.kobj));
return do_register_memory_block_under_node(nid, mem_blk);
}
/* mem section does not span the specified node */
return 0;
}

/*
* During hotplug we know that all pages in the memory block belong to the same
* node.
*/
static int register_mem_block_under_node_hotplug(struct memory_block *mem_blk,
void *arg)
{
int nid = *(int *)arg;

return do_register_memory_block_under_node(nid, mem_blk);
}

/*
* Unregister a memory block device under the node it spans. Memory blocks
* with multiple nodes cannot be offlined and therefore also never be removed.
Expand All @@ -829,11 +846,19 @@ void unregister_memory_block_under_nodes(struct memory_block *mem_blk)
kobject_name(&node_devices[mem_blk->nid]->dev.kobj));
}

int link_mem_sections(int nid, unsigned long start_pfn, unsigned long end_pfn)
int link_mem_sections(int nid, unsigned long start_pfn, unsigned long end_pfn,
enum meminit_context context)
{
walk_memory_blocks_func_t func;

if (context == MEMINIT_HOTPLUG)
func = register_mem_block_under_node_hotplug;
else
func = register_mem_block_under_node_early;

return walk_memory_blocks(PFN_PHYS(start_pfn),
PFN_PHYS(end_pfn - start_pfn), (void *)&nid,
register_mem_sect_under_node);
func);
}

#ifdef CONFIG_HUGETLBFS
Expand Down
4 changes: 2 additions & 2 deletions drivers/clk/samsung/clk-exynos4.c
Original file line number Diff line number Diff line change
Expand Up @@ -927,7 +927,7 @@ static const struct samsung_gate_clock exynos4210_gate_clks[] __initconst = {
GATE(CLK_PCIE, "pcie", "aclk133", GATE_IP_FSYS, 14, 0, 0),
GATE(CLK_SMMU_PCIE, "smmu_pcie", "aclk133", GATE_IP_FSYS, 18, 0, 0),
GATE(CLK_MODEMIF, "modemif", "aclk100", GATE_IP_PERIL, 28, 0, 0),
GATE(CLK_CHIPID, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, 0, 0),
GATE(CLK_CHIPID, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, CLK_IGNORE_UNUSED, 0),
GATE(CLK_SYSREG, "sysreg", "aclk100", E4210_GATE_IP_PERIR, 0,
CLK_IGNORE_UNUSED, 0),
GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4210_GATE_IP_PERIR, 11, 0,
Expand Down Expand Up @@ -969,7 +969,7 @@ static const struct samsung_gate_clock exynos4x12_gate_clks[] __initconst = {
0),
GATE(CLK_TSADC, "tsadc", "aclk133", E4X12_GATE_BUS_FSYS1, 16, 0, 0),
GATE(CLK_MIPI_HSI, "mipi_hsi", "aclk133", GATE_IP_FSYS, 10, 0, 0),
GATE(CLK_CHIPID, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, 0, 0),
GATE(CLK_CHIPID, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, CLK_IGNORE_UNUSED, 0),
GATE(CLK_SYSREG, "sysreg", "aclk100", E4X12_GATE_IP_PERIR, 1,
CLK_IGNORE_UNUSED, 0),
GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4X12_GATE_IP_PERIR, 11, 0,
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/socfpga/clk-s10.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ static const struct stratix10_perip_cnt_clock s10_main_perip_cnt_clks[] = {
{ STRATIX10_EMAC_B_FREE_CLK, "emacb_free_clk", NULL, emacb_free_mux, ARRAY_SIZE(emacb_free_mux),
0, 0, 2, 0xB0, 1},
{ STRATIX10_EMAC_PTP_FREE_CLK, "emac_ptp_free_clk", NULL, emac_ptp_free_mux,
ARRAY_SIZE(emac_ptp_free_mux), 0, 0, 4, 0xB0, 2},
ARRAY_SIZE(emac_ptp_free_mux), 0, 0, 2, 0xB0, 2},
{ STRATIX10_GPIO_DB_FREE_CLK, "gpio_db_free_clk", NULL, gpio_db_free_mux,
ARRAY_SIZE(gpio_db_free_mux), 0, 0, 0, 0xB0, 3},
{ STRATIX10_SDMMC_FREE_CLK, "sdmmc_free_clk", NULL, sdmmc_free_mux,
Expand Down
3 changes: 0 additions & 3 deletions drivers/clk/tegra/clk-pll.c
Original file line number Diff line number Diff line change
Expand Up @@ -1569,9 +1569,6 @@ static int clk_plle_tegra114_enable(struct clk_hw *hw)
unsigned long flags = 0;
unsigned long input_rate;

if (clk_pll_is_enabled(hw))
return 0;

input_rate = clk_hw_get_rate(clk_hw_get_parent(hw));

if (_get_table_rate(hw, &sel, pll->params->fixed_rate, input_rate))
Expand Down
1 change: 1 addition & 0 deletions drivers/clocksource/timer-gx6605s.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ static irqreturn_t gx6605s_timer_interrupt(int irq, void *dev)
void __iomem *base = timer_of_base(to_timer_of(ce));

writel_relaxed(GX6605S_STATUS_CLR, base + TIMER_STATUS);
writel_relaxed(0, base + TIMER_INI);

ce->event_handler(ce);

Expand Down
4 changes: 2 additions & 2 deletions drivers/gpio/gpio-aspeed.c
Original file line number Diff line number Diff line change
Expand Up @@ -1115,8 +1115,8 @@ static const struct aspeed_gpio_config ast2500_config =

static const struct aspeed_bank_props ast2600_bank_props[] = {
/* input output */
{5, 0xffffffff, 0x0000ffff}, /* U/V/W/X */
{6, 0xffff0000, 0x0fff0000}, /* Y/Z */
{5, 0xffffffff, 0xffffff00}, /* U/V/W/X */
{6, 0x0000ffff, 0x0000ffff}, /* Y/Z */
{ },
};

Expand Down
2 changes: 2 additions & 0 deletions drivers/gpio/gpio-mockup.c
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,7 @@ static int __init gpio_mockup_init(void)
err = platform_driver_register(&gpio_mockup_driver);
if (err) {
gpio_mockup_err("error registering platform driver\n");
debugfs_remove_recursive(gpio_mockup_dbg_dir);
return err;
}

Expand Down Expand Up @@ -527,6 +528,7 @@ static int __init gpio_mockup_init(void)
gpio_mockup_err("error registering device");
platform_driver_unregister(&gpio_mockup_driver);
gpio_mockup_unregister_pdevs();
debugfs_remove_recursive(gpio_mockup_dbg_dir);
return PTR_ERR(pdev);
}

Expand Down
1 change: 1 addition & 0 deletions drivers/gpio/gpio-siox.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ static int gpio_siox_probe(struct siox_device *sdevice)
girq->chip = &ddata->ichip;
girq->default_type = IRQ_TYPE_NONE;
girq->handler = handle_level_irq;
girq->threaded = true;

ret = devm_gpiochip_add_data(dev, &ddata->gchip, NULL);
if (ret)
Expand Down
3 changes: 3 additions & 0 deletions drivers/gpio/gpio-sprd.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,17 +149,20 @@ static int sprd_gpio_irq_set_type(struct irq_data *data,
sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0);
sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 1);
sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
irq_set_handler_locked(data, handle_edge_irq);
break;
case IRQ_TYPE_EDGE_FALLING:
sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0);
sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 0);
sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
irq_set_handler_locked(data, handle_edge_irq);
break;
case IRQ_TYPE_EDGE_BOTH:
sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 1);
sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
irq_set_handler_locked(data, handle_edge_irq);
break;
case IRQ_TYPE_LEVEL_HIGH:
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpio/gpio-tc3589x.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ static void tc3589x_gpio_irq_sync_unlock(struct irq_data *d)
continue;

tc3589x_gpio->oldregs[i][j] = new;
tc3589x_reg_write(tc3589x, regmap[i] + j * 8, new);
tc3589x_reg_write(tc3589x, regmap[i] + j, new);
}
}

Expand Down
Loading