5.10.30-rc1 review
Subsystems (5)
Greg Kroah-Hartman
maintainerPATCH 142/188 scsi: ufs: core: Fix task management request completion timeout
In reply to Greg Kroah-HartmanFrom: Can Guo <[email protected]>
[ Upstream commit 1235fc569e0bf541ddda0a1224d4c6fa6d914890 ]
ufshcd_tmc_handler() calls blk_mq_tagset_busy_iter(fn = ufshcd_compl_tm()), but since blk_mq_tagset_busy_iter() only iterates over all reserved tags and requests which are not in IDLE state, ufshcd_compl_tm() never gets a chance to run. Thus, TMR always ends up with completion timeout. Fix it by calling blk_mq_start_request() in __ufshcd_issue_tm_cmd().
--- drivers/scsi/ufs/ufshcd.c | 1 + 1 file changed, 1 insertion(+)
drivers/scsi/ufs/ufshcd.c +1 -0
@@ -6274,6 +6274,7 @@ static int __ufshcd_issue_tm_cmd(struct ufs_hba *hba,spin_lock_irqsave (host->host_lock, flags); task_tag = hba->nutrs + free_slot; +blk_mq_start_request (req); treq->req_header.dword_0 |=cpu_to_be32 (task_tag);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 143/188 scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs
In reply to Greg Kroah-HartmanFrom: Can Guo <[email protected]>
[ Upstream commit 4b42d557a8add52b9a9924fb31e40a218aab7801 ]
In __ufshcd_issue_tm_cmd(), it is not correct to use hba->nutrs + req->tag as the Task Tag in a TMR UPIU. Directly use req->tag as the Task Tag.
--- drivers/scsi/ufs/ufshcd.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-)
drivers/scsi/ufs/ufshcd.c +13 -17
@@ -6256,38 +6256,34 @@ static int __ufshcd_issue_tm_cmd(struct ufs_hba *hba,DECLARE_COMPLETION_ONSTACK (wait);struct request *req;unsigned long flags; -int free_slot, task_tag, err; +int task_tag, err;/* -* Get free slot, sleep if slots are unavailable. -* Even though we use wait_event() which sleeps indefinitely, -* the maximum wait time is bounded by %TM_CMD_TIMEOUT. +* blk_get_request() is used here only to get a free tag. */ req =blk_get_request (q,REQ_OP_DRV_OUT ,0 );if (IS_ERR (req))return PTR_ERR (req); req->end_io_data = &wait; - free_slot = req->tag; -WARN_ON_ONCE (free_slot <0 || free_slot >= hba->nutmrs);ufshcd_hold (hba, false);spin_lock_irqsave (host->host_lock, flags); - task_tag = hba->nutrs + free_slot;blk_mq_start_request (req); + task_tag = req->tag; treq->req_header.dword_0 |=cpu_to_be32 (task_tag); -memcpy (hba->utmrdl_base_addr + free_slot, treq,sizeof (*treq)); -ufshcd_vops_setup_task_mgmt (hba, free_slot, tm_function); +memcpy (hba->utmrdl_base_addr + task_tag, treq,sizeof (*treq)); +ufshcd_vops_setup_task_mgmt (hba, task_tag, tm_function);/* send command to the controller */ -__set_bit (free_slot, &hba->outstanding_tasks); +__set_bit (task_tag, &hba->outstanding_tasks);/* Make sure descriptors are ready before ringing the task doorbell */ wmb (); -ufshcd_writel (hba,1 << free_slot,REG_UTP_TASK_REQ_DOOR_BELL ); +ufshcd_writel (hba,1 << task_tag,REG_UTP_TASK_REQ_DOOR_BELL );/* Make sure that doorbell is committed immediately */ wmb ();
@@ -6307,24 +6303,24 @@ static int __ufshcd_issue_tm_cmd(struct ufs_hba *hba,ufshcd_add_tm_upiu_trace (hba, task_tag,"tm_complete_err" );dev_err (hba->dev,"%s: task management cmd 0x%.2x timed-out\n" , __func__, tm_function); -if (ufshcd_clear_tm_cmd (hba, free_slot)) -dev_WARN (hba->dev,"%s: unable clear tm cmd (slot %d) after timeout\n" , - __func__, free_slot); +if (ufshcd_clear_tm_cmd (hba, task_tag)) +dev_WARN (hba->dev,"%s: unable to clear tm cmd (slot %d) after timeout\n" , + __func__, task_tag); err = -ETIMEDOUT ; }else { err =0 ; -memcpy (treq, hba->utmrdl_base_addr + free_slot,sizeof (*treq)); +memcpy (treq, hba->utmrdl_base_addr + task_tag,sizeof (*treq));ufshcd_add_tm_upiu_trace (hba, task_tag,"tm_complete" ); }spin_lock_irqsave (hba->host->host_lock, flags); -__clear_bit (free_slot, &hba->outstanding_tasks); +__clear_bit (task_tag, &hba->outstanding_tasks);spin_unlock_irqrestore (hba->host->host_lock, flags); +ufshcd_release (hba);blk_put_request (req); -ufshcd_release (hba);return err; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 144/188 net: cls_api: Fix uninitialised struct field bo->unlocked_driver_cb
In reply to Greg Kroah-HartmanFrom: Yunjian Wang <[email protected]>
[ Upstream commit 990b03b05b2fba79de2a1ee9dc359fc552d95ba6 ]
The 'unlocked_driver_cb' struct field in 'bo' is not being initialized in tcf_block_offload_init(). The uninitialized 'unlocked_driver_cb' will be used when calling unlocked_driver_cb(). So initialize 'bo' to zero to avoid the issue.
Addresses-Coverity: ("Uninitialized scalar variable")
--- net/sched/cls_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/sched/cls_api.c +1 -1
@@ -646,7 +646,7 @@ static void tc_block_indr_cleanup(struct flow_block_cb *block_cb)struct net_device *dev = block_cb->indr.dev;struct Qdisc *sch = block_cb->indr.sch;struct netlink_ext_ack extack = {}; -struct flow_block_offload bo; +struct flow_block_offload bo = {}; tcf_block_offload_init(&bo, dev, sch, FLOW_BLOCK_UNBIND, block_cb->indr.binder_type,
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 145/188 net: macb: restore cmp registers on resume path
In reply to Greg Kroah-HartmanFrom: Claudiu Beznea <[email protected]>
[ Upstream commit a14d273ba15968495896a38b7b3399dba66d0270 ]
Restore CMP screener registers on resume path.
--- drivers/net/ethernet/cadence/macb_main.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/net/ethernet/cadence/macb_main.c +7 -0
@@ -3111,6 +3111,9 @@ static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs)bool cmp_b = false;bool cmp_c = false; +if (!macb_is_gem (bp)) +return ; + tp4sp_v = &(fs->h_u.tcp_ip4_spec); tp4sp_m = &(fs->m_u.tcp_ip4_spec);
@@ -3479,6 +3482,7 @@ static void macb_restore_features(struct macb *bp) {struct net_device *netdev = bp->dev;netdev_features_t features = netdev->features; +struct ethtool_rx_fs_item *item;/* TX checksum offload */ macb_set_txcsum_feature (bp, features);
@@ -3487,6 +3491,9 @@ static void macb_restore_features(struct macb *bp)macb_set_rxcsum_feature (bp, features);/* RX Flow Filters */ +list_for_each_entry (item, &bp->rx_fs_list.list, list) +gem_prog_cmp_regs (bp, &item->fs); +macb_set_rxflow_feature (bp, features); }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 146/188 clk: fix invalid usage of list cursor in register
In reply to Greg Kroah-HartmanFrom: Lukasz Bartosik <[email protected]>
[ Upstream commit 8d3c0c01cb2e36b2bf3c06a82b18b228d0c8f5d0 ]
Fix invalid usage of a list_for_each_entry cursor in clk_notifier_register(). When list is empty or if the list is completely traversed (without breaking from the loop on one of the entries) then the list cursor does not point to a valid entry and therefore should not be used.
The issue was dicovered when running 5.12-rc1 kernel on x86_64 with KASAN enabled:
BUG: KASAN: global-out-of-bounds in clk_notifier_register+0xab/0x230
Read of size 8 at addr ffffffffa0d10588 by task swapper/0/1
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.12.0-rc1 #1
Hardware name: Google Caroline/Caroline,
BIOS Google_Caroline.7820.430.0 07/20/2018
Call Trace:
dump_stack+0xee/0x15c
print_address_description+0x1e/0x2dc
kasan_report+0x188/0x1ce
? clk_notifier_register+0xab/0x230
? clk_prepare_lock+0x15/0x7b
? clk_notifier_register+0xab/0x230
clk_notifier_register+0xab/0x230
dw8250_probe+0xc01/0x10d4
...
Memory state around the buggy address:
ffffffffa0d10480: 00 00 00 00 00 03 f9 f9 f9 f9 f9 f9 00 00 00 00
ffffffffa0d10500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 f9
>ffffffffa0d10580: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
^
ffffffffa0d10600: 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 00 00 00 00
ffffffffa0d10680: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00
==================================================================--- drivers/clk/clk.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-)
drivers/clk/clk.c +8 -9
@@ -4262,20 +4262,19 @@ int clk_notifier_register(struct clk *clk, struct notifier_block *nb)/* search the list of notifiers for this clk */ list_for_each_entry (cn, &clk_notifier_list, node)if (cn->clk == clk) -break ; + goto found;/* if clk wasn't in the notifier list, allocate new clk_notifier */ -if (cn->clk != clk) { - cn =kzalloc (sizeof (*cn),GFP_KERNEL ); -if (!cn) - goto out; + cn =kzalloc (sizeof (*cn),GFP_KERNEL ); +if (!cn) + goto out; - cn->clk = clk; -srcu_init_notifier_head (&cn->notifier_head); + cn->clk = clk; +srcu_init_notifier_head (&cn->notifier_head); -list_add (&cn->node, &clk_notifier_list); - } +list_add (&cn->node, &clk_notifier_list); +found: ret =srcu_notifier_chain_register (&cn->notifier_head, nb); clk->core->notifier_count++;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 147/188 clk: fix invalid usage of list cursor in unregister
In reply to Greg Kroah-HartmanFrom: Lukasz Bartosik <[email protected]>
[ Upstream commit 7045465500e465b09f09d6e5bdc260a9f1aab97b ]
Fix invalid usage of a list_for_each_entry cursor in clk_notifier_unregister(). When list is empty or if the list is completely traversed (without breaking from the loop on one of the entries) then the list cursor does not point to a valid entry and therefore should not be used. The patch fixes a logical bug that hasn't been seen in pratice however it is analogus to the bug fixed in clk_notifier_register().
The issue was dicovered when running 5.12-rc1 kernel on x86_64 with KASAN enabled:
BUG: KASAN: global-out-of-bounds in clk_notifier_register+0xab/0x230
Read of size 8 at addr ffffffffa0d10588 by task swapper/0/1
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.12.0-rc1 #1
Hardware name: Google Caroline/Caroline,
BIOS Google_Caroline.7820.430.0 07/20/2018
Call Trace:
dump_stack+0xee/0x15c
print_address_description+0x1e/0x2dc
kasan_report+0x188/0x1ce
? clk_notifier_register+0xab/0x230
? clk_prepare_lock+0x15/0x7b
? clk_notifier_register+0xab/0x230
clk_notifier_register+0xab/0x230
dw8250_probe+0xc01/0x10d4
...
Memory state around the buggy address:
ffffffffa0d10480: 00 00 00 00 00 03 f9 f9 f9 f9 f9 f9 00 00 00 00
ffffffffa0d10500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 f9
>ffffffffa0d10580: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
^
ffffffffa0d10600: 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 00 00 00 00
ffffffffa0d10680: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00
==================================================================--- drivers/clk/clk.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-)
drivers/clk/clk.c +13 -17
@@ -4299,32 +4299,28 @@ EXPORT_SYMBOL_GPL(clk_notifier_register);*/ int clk_notifier_unregister (struct clk *clk,struct notifier_block *nb) { -struct clk_notifier *cn =NULL ; -int ret = -EINVAL ; +struct clk_notifier *cn; +int ret = -ENOENT ;if (!clk || !nb)return -EINVAL ;clk_prepare_lock (); -list_for_each_entry (cn, &clk_notifier_list, node) -if (cn->clk == clk) -break ; - -if (cn->clk == clk) { - ret =srcu_notifier_chain_unregister (&cn->notifier_head, nb); +list_for_each_entry (cn, &clk_notifier_list, node) { +if (cn->clk == clk) { + ret =srcu_notifier_chain_unregister (&cn->notifier_head, nb); - clk->core->notifier_count--; + clk->core->notifier_count--; -/* XXX the notifier code should handle this better */ -if (!cn->notifier_head.head) { -srcu_cleanup_notifier_head (&cn->notifier_head); -list_del (&cn->node); -kfree (cn); +/* XXX the notifier code should handle this better */ +if (!cn->notifier_head.head) { +srcu_cleanup_notifier_head (&cn->notifier_head); +list_del (&cn->node); +kfree (cn); + } +break ; } - - }else { - ret = -ENOENT ; }clk_prepare_unlock ();
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 148/188 workqueue: Move the position of debug_work_activate() in __queue_work()
In reply to Greg Kroah-HartmanFrom: Zqiang <[email protected]>
[ Upstream commit 0687c66b5f666b5ad433f4e94251590d9bc9d10e ]
The debug_work_activate() is called on the premise that the work can be inserted, because if wq be in WQ_DRAINING status, insert work may be failed.
--- kernel/workqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/workqueue.c +1 -1
@@ -1409,7 +1409,6 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,*/ lockdep_assert_irqs_disabled (); -debug_work_activate (work);/* if draining, only works from the same workqueue are allowed */ if (unlikely(wq->flags & __WQ_DRAINING) &&
@@ -1491,6 +1490,7 @@ retry: worklist = &pwq->delayed_works; } +debug_work_activate (work);insert_work (pwq, work, worklist, work_flags); out:
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 149/188 s390/cpcmd: fix inline assembly register clobbering
In reply to Greg Kroah-HartmanFrom: Alexander Gordeev <[email protected]>
[ Upstream commit 7a2f91441b2c1d81b77c1cd816a4659f4abc9cbe ]
Register variables initialized using arithmetic. That leads to kasan instrumentaton code corrupting the registers contents. Follow GCC guidlines and use temporary variables for assigning init values to register variables.
--- arch/s390/kernel/cpcmd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
arch/s390/kernel/cpcmd.c +4 -2
@@ -37,10 +37,12 @@ static int diag8_noresponse(int cmdlen)static int diag8_response (int cmdlen,char *response,int *rlen) { +unsigned long _cmdlen = cmdlen |0x40000000L ; +unsigned long _rlen = *rlen; register unsigned long reg2 asm ("2") = (addr_t) cpcmd_buf; register unsigned long reg3 asm ("3") = (addr_t) response; - register unsigned long reg4 asm ("4") = cmdlen | 0x40000000L; - register unsigned long reg5 asm ("5") = *rlen; + register unsigned long reg4 asm ("4") = _cmdlen; + register unsigned long reg5 asm ("5") = _rlen; asmvolatile ( " diag %2,%0,0x8\n"
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 150/188 perf inject: Fix repipe usage
In reply to Greg Kroah-HartmanFrom: Adrian Hunter <[email protected]>
[ Upstream commit 026334a3bb6a3919b42aba9fc11843db2b77fd41 ]
Since commit 14d3d54052539a1e ("perf session: Try to read pipe data from file") 'perf inject' has started printing "PERFILE2h" when not processing pipes.
The commit exposed perf to the possiblity that the input is not a pipe but the 'repipe' parameter gets used. That causes the printing because perf inject sets 'repipe' to true always.
The 'repipe' parameter of perf_session__new() is used by 2 functions:
- perf_file_header__read_pipe()
- trace_report()
In both cases, the functions copy data to STDOUT_FILENO when 'repipe' is true.
Fix by setting 'repipe' to true only if the output is a pipe.
--- tools/perf/builtin-inject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/builtin-inject.c +1 -1
@@ -904,7 +904,7 @@ int cmd_inject(int argc, const char **argv) } data.path = inject.input_name; - inject.session =perf_session__new (&data, true, &inject.tool); + inject.session =perf_session__new (&data, inject.output.is_pipe, &inject.tool);if (IS_ERR (inject.session))return PTR_ERR (inject.session);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 151/188 net: openvswitch: conntrack: simplify the return expression of ovs_ct_limit_get_default_limit()
In reply to Greg Kroah-HartmanFrom: Zheng Yongjun <[email protected]>
[ Upstream commit 5e359044c107ecbdc2e9b3fd5ce296006e6de4bc ]
Simplify the return expression.
--- net/openvswitch/conntrack.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
net/openvswitch/conntrack.c +1 -5
@@ -2025,15 +2025,11 @@ static int ovs_ct_limit_get_default_limit(struct ovs_ct_limit_info *info, struct sk_buff *reply) {struct ovs_zone_limit zone_limit; -int err; zone_limit.zone_id =OVS_ZONE_LIMIT_DEFAULT_ZONE ; zone_limit.limit = info->default_limit; - err =nla_put_nohdr (reply,sizeof (zone_limit), &zone_limit); -if (err) -return err; -return 0 ; +return nla_put_nohdr (reply,sizeof (zone_limit), &zone_limit); } static int __ovs_ct_limit_get_zone_limit(struct net *net,
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 152/188 openvswitch: fix send of uninitialized stack memory in ct limit reply
In reply to Greg Kroah-HartmanFrom: Ilya Maximets <[email protected]>
[ Upstream commit 4d51419d49930be2701c2633ae271b350397c3ca ]
'struct ovs_zone_limit' has more members than initialized in ovs_ct_limit_get_default_limit(). The rest of the memory is a random kernel stack content that ends up being sent to userspace.
Fix that by using designated initializer that will clear all non-specified fields.
--- net/openvswitch/conntrack.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
net/openvswitch/conntrack.c +4 -4
@@ -2024,10 +2024,10 @@ static int ovs_ct_limit_del_zone_limit(struct nlattr *nla_zone_limit,static int ovs_ct_limit_get_default_limit (struct ovs_ct_limit_info *info,struct sk_buff *reply) { -struct ovs_zone_limit zone_limit; - - zone_limit.zone_id =OVS_ZONE_LIMIT_DEFAULT_ZONE ; - zone_limit.limit = info->default_limit; +struct ovs_zone_limit zone_limit = { + .zone_id =OVS_ZONE_LIMIT_DEFAULT_ZONE , + .limit = info->default_limit, + };return nla_put_nohdr (reply,sizeof (zone_limit), &zone_limit); }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 153/188 i2c: designware: Adjust bus_freq_hz when refuse high speed mode set
In reply to Greg Kroah-HartmanFrom: Andy Shevchenko <[email protected]>
[ Upstream commit 5e729bc54bda705f64941008b018b4e41a4322bf ]
When hardware doesn't support High Speed Mode, we forget bus_freq_hz timing adjustment. This makes the timings and real registers being unsynchronized. Adjust bus_freq_hz when refuse high speed mode set.
--- drivers/i2c/busses/i2c-designware-master.c | 1 + 1 file changed, 1 insertion(+)
drivers/i2c/busses/i2c-designware-master.c +1 -0
@@ -129,6 +129,7 @@ static int i2c_dw_set_timings_master(struct dw_i2c_dev *dev)if ((comp_param1 &DW_IC_COMP_PARAM_1_SPEED_MODE_MASK ) !=DW_IC_COMP_PARAM_1_SPEED_MODE_HIGH ) {dev_err (dev->dev,"High Speed not supported!\n" ); + t->bus_freq_hz =I2C_MAX_FAST_MODE_FREQ ; dev->master_cfg &= ~DW_IC_CON_SPEED_MASK ; dev->master_cfg |=DW_IC_CON_SPEED_FAST ; dev->hs_hcnt =0 ;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 154/188 iwlwifi: fix 11ax disabled bit in the regulatory capability flags
In reply to Greg Kroah-HartmanFrom: Luca Coelho <[email protected]>
[ Upstream commit 07cc40fec9a85e669ea12e161a438d2cbd76f1ed ]
When version 2 of the regulatory capability flags API was implemented, the flag to disable 11ax was defined as bit 13, but this was later changed and the bit remained as bit 10, like in version 1. This was never changed in the driver, so we were checking for the wrong bit in newer devices. Fix it.
--- drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +1 -1
@@ -285,7 +285,7 @@ enum iwl_reg_capa_flags_v2 {REG_CAPA_V2_MCS_9_ALLOWED =BIT (6 ),REG_CAPA_V2_WEATHER_DISABLED =BIT (7 ),REG_CAPA_V2_40MHZ_ALLOWED =BIT (8 ), - REG_CAPA_V2_11AX_DISABLED = BIT(13), + REG_CAPA_V2_11AX_DISABLED = BIT(10), };/*
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 155/188 can: mcp251x: fix support for half duplex SPI host controllers
In reply to Greg Kroah-HartmanFrom: Marc Kleine-Budde <[email protected]>
[ Upstream commit 617085fca6375e2c1667d1fbfc6adc4034c85f04 ]
Some SPI host controllers do not support full-duplex SPI transfers.
The function mcp251x_spi_trans() does a full duplex transfer. It is used in several places in the driver, where a TX half duplex transfer is sufficient.
To fix support for half duplex SPI host controllers, this patch introduces a new function mcp251x_spi_write() and changes all callers that do a TX half duplex transfer to use mcp251x_spi_write().
--- drivers/net/can/spi/mcp251x.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-)
drivers/net/can/spi/mcp251x.c +18 -6
@@ -314,6 +314,18 @@ static int mcp251x_spi_trans(struct spi_device *spi, int len)return ret; } +static int mcp251x_spi_write (struct spi_device *spi,int len) +{ +struct mcp251x_priv *priv =spi_get_drvdata (spi); +int ret; + + ret =spi_write (spi, priv->spi_tx_buf, len); +if (ret) +dev_err (&spi->dev,"spi write failed: ret = %d\n" , ret); + +return ret; +} +static u8 mcp251x_read_reg (struct spi_device *spi,u8 reg) {struct mcp251x_priv *priv =spi_get_drvdata (spi);
@@ -361,7 +373,7 @@ static void mcp251x_write_reg(struct spi_device *spi, u8 reg, u8 val) priv->spi_tx_buf[1 ] = reg; priv->spi_tx_buf[2 ] = val; -mcp251x_spi_trans (spi,3 ); +mcp251x_spi_write (spi,3 ); }static void mcp251x_write_2regs (struct spi_device *spi,u8 reg,u8 v1,u8 v2)
@@ -373,7 +385,7 @@ static void mcp251x_write_2regs(struct spi_device *spi, u8 reg, u8 v1, u8 v2) priv->spi_tx_buf[2 ] = v1; priv->spi_tx_buf[3 ] = v2; -mcp251x_spi_trans (spi,4 ); +mcp251x_spi_write (spi,4 ); } static void mcp251x_write_bits(struct spi_device *spi, u8 reg,
@@ -386,7 +398,7 @@ static void mcp251x_write_bits(struct spi_device *spi, u8 reg, priv->spi_tx_buf[2 ] = mask; priv->spi_tx_buf[3 ] = val; -mcp251x_spi_trans (spi,4 ); +mcp251x_spi_write (spi,4 ); }static u8 mcp251x_read_stat (struct spi_device *spi)
@@ -618,7 +630,7 @@ static void mcp251x_hw_tx_frame(struct spi_device *spi, u8 *buf, buf[i]); }else {memcpy (priv->spi_tx_buf, buf,TXBDAT_OFF + len); -mcp251x_spi_trans (spi,TXBDAT_OFF + len); +mcp251x_spi_write (spi,TXBDAT_OFF + len); } }
@@ -650,7 +662,7 @@ static void mcp251x_hw_tx(struct spi_device *spi, struct can_frame *frame,/* use INSTRUCTION_RTS, to avoid "repeated frame problem" */ priv->spi_tx_buf[0 ] =INSTRUCTION_RTS (1 << tx_buf_idx); -mcp251x_spi_trans (priv->spi,1 ); +mcp251x_spi_write (priv->spi,1 ); } static void mcp251x_hw_rx_frame(struct spi_device *spi, u8 *buf,
@@ -888,7 +900,7 @@ static int mcp251x_hw_reset(struct spi_device *spi)mdelay (MCP251X_OST_DELAY_MS ); priv->spi_tx_buf[0 ] =INSTRUCTION_RESET ; - ret =mcp251x_spi_trans (spi,1 ); + ret =mcp251x_spi_write (spi,1 );if (ret)return ret;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 156/188 tipc: increment the tmp aead refcnt before attaching it
In reply to Greg Kroah-HartmanFrom: Xin Long <[email protected]>
[ Upstream commit 2a2403ca3add03f542f6b34bef9f74649969b06d ]
Li Shuang found a NULL pointer dereference crash in her testing:
[] BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 [] RIP: 0010:tipc_crypto_rcv_complete+0xc8/0x7e0 [tipc]
[] Call Trace:
[] <IRQ> [] tipc_crypto_rcv+0x2d9/0x8f0 [tipc] [] tipc_rcv+0x2fc/0x1120 [tipc] [] tipc_udp_recv+0xc6/0x1e0 [tipc] [] udpv6_queue_rcv_one_skb+0x16a/0x460 [] udp6_unicast_rcv_skb.isra.35+0x41/0xa0 [] ip6_protocol_deliver_rcu+0x23b/0x4c0 [] ip6_input+0x3d/0xb0 [] ipv6_rcv+0x395/0x510 [] __netif_receive_skb_core+0x5fc/0xc40
This is caused by NULL returned by tipc_aead_get(), and then crashed when dereferencing it later in tipc_crypto_rcv_complete(). This might happen when tipc_crypto_rcv_complete() is called by two threads at the same time:
the tmp attached by tipc_crypto_key_attach() in one thread may be released by the one attached by that in the other thread.
This patch is to fix it by incrementing the tmp's refcnt before attaching it instead of calling tipc_aead_get() after attaching it.
--- net/tipc/crypto.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
net/tipc/crypto.c +2 -1
@@ -1934,12 +1934,13 @@ static void tipc_crypto_rcv_complete(struct net *net, struct tipc_aead *aead, goto rcv;if (tipc_aead_clone (&tmp, aead) <0 ) goto rcv; +WARN_ON (!refcount_inc_not_zero (&tmp->refcnt));if (tipc_crypto_key_attach (rx, tmp, ehdr->tx_key, false) <0 ) {tipc_aead_free (&tmp->rcu); goto rcv; }tipc_aead_put (aead); - aead =tipc_aead_get (tmp); + aead = tmp; }if (unlikely (err)) {
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 157/188 net: hns3: clear VF down state bit before request link status
In reply to Greg Kroah-HartmanFrom: Guangbin Huang <[email protected]>
[ Upstream commit ed7bedd2c3ca040f1e8ea02c6590a93116b1ec78 ]
Currently, the VF down state bit is cleared after VF sending link status request command. There is problem that when VF gets link status replied from PF, the down state bit may still set as 1. In this case, the link status replied from PF will be ignored and always set VF link status to down.
To fix this problem, clear VF down state bit before VF requests link status.
--- drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +2 -2
@@ -2554,14 +2554,14 @@ static int hclgevf_ae_start(struct hnae3_handle *handle) {struct hclgevf_dev *hdev =hclgevf_ae_get_hdev (handle); +clear_bit (HCLGEVF_STATE_DOWN , &hdev->state); +hclgevf_reset_tqp_stats (handle);hclgevf_request_link_info (hdev);hclgevf_update_link_mode (hdev); -clear_bit (HCLGEVF_STATE_DOWN , &hdev->state); -return 0 ; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 158/188 net/mlx5: Fix placement of log_max_flow_counter
In reply to Greg Kroah-HartmanFrom: Raed Salem <[email protected]>
[ Upstream commit a14587dfc5ad2312dabdd42a610d80ecd0dc8bea ]
The cited commit wrongly placed log_max_flow_counter field of mlx5_ifc_flow_table_prop_layout_bits, align it to the HW spec intended placement.
--- include/linux/mlx5/mlx5_ifc.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
include/linux/mlx5/mlx5_ifc.h +3 -3
@@ -435,11 +435,11 @@ struct mlx5_ifc_flow_table_prop_layout_bits {u8 reserved_at_60[0x18 ];u8 log_max_ft_num[0x8 ]; -u8 reserved_at_80[0x18 ]; +u8 reserved_at_80[0x10 ]; +u8 log_max_flow_counter[0x8 ];u8 log_max_destination[0x8 ]; -u8 log_max_flow_counter[0x8 ]; -u8 reserved_at_a8[0x10 ]; +u8 reserved_at_a0[0x18 ];u8 log_max_flow[0x8 ];u8 reserved_at_c0[0x40 ];
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 159/188 net/mlx5: Fix PPLM register mapping
In reply to Greg Kroah-HartmanFrom: Aya Levin <[email protected]>
[ Upstream commit ce28f0fd670ddffcd564ce7119bdefbaf08f02d3 ]
Add reserved mapping to cover all the register in order to avoid setting arbitrary values to newer FW which implements the reserved fields.
--- include/linux/mlx5/mlx5_ifc.h | 2 ++ 1 file changed, 2 insertions(+)
include/linux/mlx5/mlx5_ifc.h +2 -0
@@ -8719,6 +8719,8 @@ struct mlx5_ifc_pplm_reg_bits {u8 fec_override_admin_100g_2x[0x10 ];u8 fec_override_admin_50g_1x[0x10 ]; + +u8 reserved_at_140[0x140 ]; };struct mlx5_ifc_ppcnt_reg_bits {
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 160/188 net/mlx5: Fix PBMC register mapping
In reply to Greg Kroah-HartmanFrom: Aya Levin <[email protected]>
[ Upstream commit 534b1204ca4694db1093b15cf3e79a99fcb6a6da ]
Add reserved mapping to cover all the register in order to avoid setting arbitrary values to newer FW which implements the reserved fields.
--- include/linux/mlx5/mlx5_ifc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/mlx5/mlx5_ifc.h +1 -1
@@ -10058,7 +10058,7 @@ struct mlx5_ifc_pbmc_reg_bits {struct mlx5_ifc_bufferx_reg_bits buffer[10 ]; -u8 reserved_at_2e0[0x40 ]; +u8 reserved_at_2e0[0x80 ]; };struct mlx5_ifc_qtct_reg_bits {
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 161/188 RDMA/cxgb4: check for ipv6 address properly while destroying listener
In reply to Greg Kroah-HartmanFrom: Potnuri Bharat Teja <[email protected]>
[ Upstream commit 603c4690b01aaffe3a6c3605a429f6dac39852ae ]
ipv6 bit is wrongly set by the below which causes fatal adapter lookup engine errors for ipv4 connections while destroying a listener. Fix it to properly check the local address for ipv6.
--- drivers/infiniband/hw/cxgb4/cm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/infiniband/hw/cxgb4/cm.c +2 -1
@@ -3616,7 +3616,8 @@ int c4iw_destroy_listen(struct iw_cm_id *cm_id)c4iw_init_wr_wait (ep->com.wr_waitp); err =cxgb4_remove_server ( ep->com.dev->rdev.lldi.ports[0 ], ep->stid, - ep->com.dev->rdev.lldi.rxq_ids[0 ], true); + ep->com.dev->rdev.lldi.rxq_ids[0 ], + ep->com.local_addr.ss_family ==AF_INET6 );if (err) goto done; err = c4iw_wait_for_reply(&ep->com.dev->rdev, ep->com.wr_waitp,
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 162/188 perf report: Fix wrong LBR block sorting
In reply to Greg Kroah-HartmanFrom: Jin Yao <[email protected]>
[ Upstream commit f2013278ae40b89cc27916366c407ce5261815ef ]
When '--total-cycles' is specified, it supports sorting for all blocks by 'Sampled Cycles%'. This is useful to concentrate on the globally hottest blocks.
'Sampled Cycles%' - block sampled cycles aggregation / total sampled cycles
But in current code, it doesn't use the cycles aggregation. Part of 'cycles' counting is possibly dropped for some overlap jumps. But for identifying the hot block, we always need the full cycles.
# perf record -b ./triad_loop # perf report --total-cycles --stdio
Before:
#
# Sampled Cycles% Sampled Cycles Avg Cycles% Avg Cycles [Program Block Range] Shared Object
# ............... .............. ........... .......... ............................................................. .................
#
0.81% 793 4.32% 793 [setup-vdso.h:34 -> setup-vdso.h:40] ld-2.27.so
0.49% 480 0.87% 160 [native_write_msr+0 -> native_write_msr+16] [kernel.kallsyms]
0.48% 476 0.52% 95 [native_read_msr+0 -> native_read_msr+29] [kernel.kallsyms]
0.31% 303 1.65% 303 [nmi_restore+0 -> nmi_restore+37] [kernel.kallsyms]
0.26% 255 1.39% 255 [nohz_balance_exit_idle+75 -> nohz_balance_exit_idle+162] [kernel.kallsyms]
0.24% 234 1.28% 234 [end_repeat_nmi+67 -> end_repeat_nmi+83] [kernel.kallsyms]
0.23% 227 1.24% 227 [__irqentry_text_end+96 -> __irqentry_text_end+126] [kernel.kallsyms]
0.20% 194 1.06% 194 [native_set_debugreg+52 -> native_set_debugreg+56] [kernel.kallsyms]
0.11% 106 0.14% 26 [native_sched_clock+0 -> native_sched_clock+98] [kernel.kallsyms]
0.10% 97 0.53% 97 [trigger_load_balance+0 -> trigger_load_balance+67] [kernel.kallsyms]
0.09% 85 0.46% 85 [get-dynamic-info.h:102 -> get-dynamic-info.h:111] ld-2.27.so
...
0.00% 92.7K 0.02% 4 [triad_loop.c:64 -> triad_loop.c:65] triad_loopThe hottest block '[triad_loop.c:64 -> triad_loop.c:65]' is not at the top of output.
After:
# Sampled Cycles% Sampled Cycles Avg Cycles% Avg Cycles [Program Block Range] Shared Object
# ............... .............. ........... .......... .............................................................. .................
#
94.35% 92.7K 0.02% 4 [triad_loop.c:64 -> triad_loop.c:65] triad_loop
0.81% 793 4.32% 793 [setup-vdso.h:34 -> setup-vdso.h:40] ld-2.27.so
0.49% 480 0.87% 160 [native_write_msr+0 -> native_write_msr+16] [kernel.kallsyms]
0.48% 476 0.52% 95 [native_read_msr+0 -> native_read_msr+29] [kernel.kallsyms]
0.31% 303 1.65% 303 [nmi_restore+0 -> nmi_restore+37] [kernel.kallsyms]
0.26% 255 1.39% 255 [nohz_balance_exit_idle+75 -> nohz_balance_exit_idle+162] [kernel.kallsyms]
0.24% 234 1.28% 234 [end_repeat_nmi+67 -> end_repeat_nmi+83] [kernel.kallsyms]
0.23% 227 1.24% 227 [__irqentry_text_end+96 -> __irqentry_text_end+126] [kernel.kallsyms]
0.20% 194 1.06% 194 [native_set_debugreg+52 -> native_set_debugreg+56] [kernel.kallsyms]
0.11% 106 0.14% 26 [native_sched_clock+0 -> native_sched_clock+98] [kernel.kallsyms]
0.10% 97 0.53% 97 [trigger_load_balance+0 -> trigger_load_balance+67] [kernel.kallsyms]
0.09% 85 0.46% 85 [get-dynamic-info.h:102 -> get-dynamic-info.h:111] ld-2.27.so
0.08% 82 0.06% 11 [intel_pmu_drain_pebs_nhm+580 -> intel_pmu_drain_pebs_nhm+627] [kernel.kallsyms]
0.08% 77 0.42% 77 [lru_add_drain_cpu+0 -> lru_add_drain_cpu+133] [kernel.kallsyms]
0.08% 74 0.10% 18 [handle_pmi_common+271 -> handle_pmi_common+310] [kernel.kallsyms]
0.08% 74 0.40% 74 [get-dynamic-info.h:131 -> get-dynamic-info.h:157] ld-2.27.so
0.07% 69 0.09% 17 [intel_pmu_drain_pebs_nhm+432 -> intel_pmu_drain_pebs_nhm+468] [kernel.kallsyms]Now the hottest block is reported at the top of output.
--- tools/perf/util/block-info.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
tools/perf/util/block-info.c +3 -3
@@ -201,7 +201,7 @@ static int block_total_cycles_pct_entry(struct perf_hpp_fmt *fmt,double ratio =0.0 ;if (block_fmt->total_cycles) - ratio = (double )bi->cycles / (double )block_fmt->total_cycles; + ratio = (double )bi->cycles_aggr / (double )block_fmt->total_cycles;return color_pct (hpp, block_fmt->width,100.0 * ratio); }
@@ -216,9 +216,9 @@ static int64_t block_total_cycles_pct_sort(struct perf_hpp_fmt *fmt,double l, r;if (block_fmt->total_cycles) { - l = ((double )bi_l->cycles / + l = ((double )bi_l->cycles_aggr / (double )block_fmt->total_cycles) *100000.0 ; - r = ((double )bi_r->cycles / + r = ((double )bi_r->cycles_aggr / (double )block_fmt->total_cycles) *100000.0 ;return (int64_t )l - (int64_t )r; }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 163/188 RDMA/qedr: Fix kernel panic when trying to access recv_cq
In reply to Greg Kroah-HartmanFrom: Kamal Heib <[email protected]>
[ Upstream commit e1ad897b9c738d5550be6762bf3a6ef1672259a4 ]
As INI QP does not require a recv_cq, avoid the following null pointer dereference by checking if the qp_type is not INI before trying to extract the recv_cq.
BUG: kernel NULL pointer dereference, address: 00000000000000e0 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI CPU: 0 PID: 54250 Comm: mpitests-IMB-MP Not tainted 5.12.0-rc5 #1 Hardware name: Dell Inc. PowerEdge R320/0KM5PX, BIOS 2.7.0 08/19/2019 RIP: 0010:qedr_create_qp+0x378/0x820 [qedr] Code: 02 00 00 50 e8 29 d4 a9 d1 48 83 c4 18 e9 65 fe ff ff 48 8b 53 10 48 8b 43 18 44 8b 82 e0 00 00 00 45 85 c0 0f 84 10 74 00 00 <8b> b8 e0 00 00 00 85 ff 0f 85 50 fd ff ff e9 fd 73 00 00 48 8d bd RSP: 0018:ffff9c8f056f7a70 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff9c8f056f7b58 RCX: 0000000000000009 RDX: ffff8c41a9744c00 RSI: ffff9c8f056f7b58 RDI: ffff8c41c0dfa280 RBP: ffff8c41c0dfa280 R08: 0000000000000002 R09: 0000000000000001 R10: 0000000000000000 R11: ffff8c41e06fc608 R12: ffff8c4194052000 R13: 0000000000000000 R14: ffff8c4191546070 R15: ffff8c41c0dfa280 FS: 00007f78b2787b80(0000) GS:ffff8c43a3200000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000000e0 CR3: 00000001011d6002 CR4: 00000000001706f0 Call Trace: ib_uverbs_handler_UVERBS_METHOD_QP_CREATE+0x4e4/0xb90 [ib_uverbs] ? ib_uverbs_cq_event_handler+0x30/0x30 [ib_uverbs] ib_uverbs_run_method+0x6f6/0x7a0 [ib_uverbs] ? ib_uverbs_handler_UVERBS_METHOD_QP_DESTROY+0x70/0x70 [ib_uverbs] ? __cond_resched+0x15/0x30 ? __kmalloc+0x5a/0x440 ib_uverbs_cmd_verbs+0x195/0x360 [ib_uverbs] ? xa_load+0x6e/0x90 ? cred_has_capability+0x7c/0x130 ? avc_has_extended_perms+0x17f/0x440 ? vma_link+0xae/0xb0 ? vma_set_page_prot+0x2a/0x60 ? mmap_region+0x298/0x6c0 ? do_mmap+0x373/0x520 ? selinux_file_ioctl+0x17f/0x220 ib_uverbs_ioctl+0xa7/0x110 [ib_uverbs] __x64_sys_ioctl+0x84/0xc0 do_syscall_64+0x33/0x40 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f78b120262b
--- drivers/infiniband/hw/qedr/verbs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/infiniband/hw/qedr/verbs.c +2 -1
@@ -1241,7 +1241,8 @@ static int qedr_check_qp_attrs(struct ib_pd *ibpd, struct qedr_dev *dev,* TGT QP isn't associated with RQ/SQ */ if ((attrs->qp_type !=IB_QPT_GSI ) && (dev->gsi_qp_created) && - (attrs->qp_type !=IB_QPT_XRC_TGT )) { + (attrs->qp_type !=IB_QPT_XRC_TGT ) && + (attrs->qp_type !=IB_QPT_XRC_INI )) {struct qedr_cq *send_cq =get_qedr_cq (attrs->send_cq);struct qedr_cq *recv_cq =get_qedr_cq (attrs->recv_cq);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 164/188 drm/vc4: crtc: Reduce PV fifo threshold on hvs4
In reply to Greg Kroah-HartmanFrom: Dom Cobley <[email protected]>
[ Upstream commit eb9dfdd1ed40357b99a4201c8534c58c562e48c9 ]
Experimentally have found PV on hvs4 reports fifo full error with expected settings and does not with one less
This appears as:
[drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:82:crtc-3] flip_done timed out
with bit 10 of PV_STAT set "HVS driving pixels when the PV FIFO is full"
--- drivers/gpu/drm/vc4/vc4_crtc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
drivers/gpu/drm/vc4/vc4_crtc.c +17 -0
@@ -210,6 +210,7 @@ static u32 vc4_get_fifo_full_level(struct vc4_crtc *vc4_crtc, u32 format) {const struct vc4_crtc_data *crtc_data =vc4_crtc_to_vc4_crtc_data (vc4_crtc);const struct vc4_pv_data *pv_data =vc4_crtc_to_vc4_pv_data (vc4_crtc); +struct vc4_dev *vc4 =to_vc4_dev (vc4_crtc->base.dev);u32 fifo_len_bytes = pv_data->fifo_depth;/*
@@ -238,6 +239,22 @@ static u32 vc4_get_fifo_full_level(struct vc4_crtc *vc4_crtc, u32 format)if (crtc_data->hvs_output ==5 )return 32 ; +/* +* It looks like in some situations, we will overflow +* the PixelValve FIFO (with the bit 10 of PV stat being +* set) and stall the HVS / PV, eventually resulting in +* a page flip timeout. +* +* Displaying the video overlay during a playback with +* Kodi on an RPi3 seems to be a great solution with a +* failure rate around 50%. +* +* Removing 1 from the FIFO full level however +* seems to completely remove that issue. +*/ +if (!vc4->hvs->hvs5) +return fifo_len_bytes -3 *HVS_FIFO_LATENCY_PIX -1 ; +return fifo_len_bytes -3 *HVS_FIFO_LATENCY_PIX ; } }
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 165/188 i40e: Fix parameters in aq_get_phy_register()
In reply to Greg Kroah-HartmanFrom: Grzegorz Siwik <[email protected]>
[ Upstream commit b2d0efc4be7ed320e33eaa9b6dd6f3f6011ffb8e ]
Change parameters order in aq_get_phy_register() due to wrong statistics in PHY reported by ethtool. Previously all PHY statistics were exactly the same for all interfaces
Now statistics are reported correctly - different for different interfaces
--- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +1 -1
@@ -5285,7 +5285,7 @@ static int i40e_get_module_eeprom(struct net_device *netdev, status =i40e_aq_get_phy_register (hw,I40E_AQ_PHY_REG_ACCESS_EXTERNAL_MODULE , - true, addr, offset, &value,NULL ); + addr, true, offset, &value,NULL );if (status)return -EIO ; data[i] = value;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 166/188 RDMA/addr: Be strict with gid size
In reply to Greg Kroah-HartmanFrom: Leon Romanovsky <[email protected]>
[ Upstream commit d1c803a9ccd7bd3aff5e989ccfb39ed3b799b975 ]
The nla_len() is less than or equal to 16. If it's less than 16 then end of the "gid" buffer is uninitialized.
--- drivers/infiniband/core/addr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/infiniband/core/addr.c +3 -1
@@ -76,7 +76,9 @@ static struct workqueue_struct *addr_wq;static const struct nla_policy ib_nl_addr_policy[LS_NLA_TYPE_MAX ] = { [LS_NLA_TYPE_DGID ] = {.type =NLA_BINARY , - .len =sizeof (struct rdma_nla_ls_gid )}, + .len =sizeof (struct rdma_nla_ls_gid ), + .validation_type =NLA_VALIDATE_MIN , + .min =sizeof (struct rdma_nla_ls_gid )}, };static inline bool ib_nl_is_good_ip_resp (const struct nlmsghdr *nlh)
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 167/188 vdpa/mlx5: should exclude header length and fcs from mtu
In reply to Greg Kroah-HartmanFrom: Si-Wei Liu <[email protected]>
[ Upstream commit d084d996aaf53c0cc583dc75a4fc2a67fe485846 ]
When feature VIRTIO_NET_F_MTU is negotiated on mlx5_vdpa, 22 extra bytes worth of MTU length is shown in guest. This is because the mlx5_query_port_max_mtu API returns the "hardware" MTU value, which does not just contain the
Ethernet payload, but includes extra lengths starting
from the Ethernet header up to the FCS altogether.
Fix the MTU so packets won't get dropped silently.
--- drivers/vdpa/mlx5/core/mlx5_vdpa.h | 4 ++++ drivers/vdpa/mlx5/net/mlx5_vnet.c | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-)
drivers/vdpa/mlx5/core/mlx5_vdpa.h +4 -0
@@ -4,9 +4,13 @@ #ifndef __MLX5_VDPA_H__ #define __MLX5_VDPA_H__ +#include <linux/etherdevice.h> +#include <linux/if_vlan.h> #include <linux/vdpa.h> #include <linux/mlx5/driver.h> +#define MLX5V_ETH_HARD_MTU (ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN) + struct mlx5_vdpa_direct_mr { u64 start; u64 end;
drivers/vdpa/mlx5/net/mlx5_vnet.c +14 -1
@@ -1887,6 +1887,19 @@ static const struct vdpa_config_ops mlx5_vdpa_ops = { .free = mlx5_vdpa_free, }; +static int query_mtu (struct mlx5_core_dev *mdev,u16 *mtu) +{ +u16 hw_mtu; +int err; + + err =mlx5_query_nic_vport_mtu (mdev, &hw_mtu); +if (err) +return err; + + *mtu = hw_mtu -MLX5V_ETH_HARD_MTU ; +return 0 ; +} +static int alloc_resources (struct mlx5_vdpa_net *ndev) {struct mlx5_vdpa_net_resources *res = &ndev->res;
@@ -1969,7 +1982,7 @@ void *mlx5_vdpa_add_dev(struct mlx5_core_dev *mdev)init_mvqs (ndev);mutex_init (&ndev->reslock); config = &ndev->config; - err =mlx5_query_nic_vport_mtu (mdev, &ndev->mtu); + err =query_mtu (mdev, &ndev->mtu);if (err) goto err_mtu;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 168/188 vdpa/mlx5: Fix wrong use of bit numbers
In reply to Greg Kroah-HartmanFrom: Eli Cohen <[email protected]>
[ Upstream commit 4b454a82418dd76d8c0590bb3f7a99a63ea57dc5 ]
VIRTIO_F_VERSION_1 is a bit number. Use BIT_ULL() with mask conditionals.
Also, in mlx5_vdpa_is_little_endian() use BIT_ULL for consistency with the rest of the code.
--- drivers/vdpa/mlx5/net/mlx5_vnet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/vdpa/mlx5/net/mlx5_vnet.c +2 -2
@@ -805,7 +805,7 @@ static int create_virtqueue(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueMLX5_SET (virtio_q, vq_ctx, event_qpn_or_msix, mvq->fwqp.mqp.qpn);MLX5_SET (virtio_q, vq_ctx, queue_size, mvq->num_ent);MLX5_SET (virtio_q, vq_ctx, virtio_version_1_0, - !!(ndev->mvdev.actual_features &VIRTIO_F_VERSION_1 )); + !!(ndev->mvdev.actual_features &BIT_ULL (VIRTIO_F_VERSION_1 )));MLX5_SET64 (virtio_q, vq_ctx, desc_addr, mvq->desc_addr);MLX5_SET64 (virtio_q, vq_ctx, used_addr, mvq->device_addr);MLX5_SET64 (virtio_q, vq_ctx, available_addr, mvq->driver_addr);
@@ -1535,7 +1535,7 @@ static void teardown_virtqueues(struct mlx5_vdpa_net *ndev)static inline bool mlx5_vdpa_is_little_endian (struct mlx5_vdpa_dev *mvdev) {return virtio_legacy_is_little_endian () || - (mvdev->actual_features & (1ULL <<VIRTIO_F_VERSION_1 )); + (mvdev->actual_features &BIT_ULL (VIRTIO_F_VERSION_1 )); }static __virtio16 cpu_to_mlx5vdpa16 (struct mlx5_vdpa_dev *mvdev,u16 val)
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 169/188 RAS/CEC: Correct ce_add_elem()s returned values
In reply to Greg Kroah-HartmanFrom: William Roche <[email protected]>
commit 3a62583c2853b0ab37a57dde79decea210b5fb89 upstream.
ce_add_elem() uses different return values to signal a result from adding an element to the collector. Commit in Fixes: broke the case where the element being added is not found in the array. Correct that.
[ bp: Rewrite commit message, add kernel-doc comments. ]
--- drivers/ras/cec.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)
drivers/ras/cec.c +12 -3
@@ -309,11 +309,20 @@ static bool sanity_check(struct ce_arrayreturn ret; } +/** +* cec_add_elem - Add an element to the CEC array. +* @pfn: page frame number to insert +* +* Return values: +* - <0: on error +* - 0: on success +* - >0: when the inserted pfn was offlined +*/ static int cec_add_elem (u64 pfn) {struct ce_array *ca = &ce_arr; +int count, err, ret =0 ;unsigned int to =0 ; -int count, ret =0 ;/* * We can be called very early on the identify_cpu() path where we are
@@ -330,8 +339,8 @@ static int cec_add_elem(u64 pfn)if (ca->n ==MAX_ELEMS )WARN_ON (!del_lru_elem_unlocked (ca)); - ret =find_elem (ca, pfn, &to); -if (ret <0 ) { + err =find_elem (ca, pfn, &to); +if (err <0 ) {/* * Shift range [to-end] to make room for one more element. */
Greg Kroah-Hartman
maintainerPATCH 170/188 clk: socfpga: fix iomem pointer cast on 64-bit
In reply to Greg Kroah-HartmanFrom: Krzysztof Kozlowski <[email protected]>
commit 2867b9746cef78745c594894aece6f8ef826e0b4 upstream.
Pointers should be cast with uintptr_t instead of integer. This fixes warning when compile testing on ARM64:
drivers/clk/socfpga/clk-gate.c: In function ‘socfpga_clk_recalc_rate’:
drivers/clk/socfpga/clk-gate.c:102:7: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
--- drivers/clk/socfpga/clk-gate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/clk/socfpga/clk-gate.c +1 -1
@@ -99,7 +99,7 @@ static unsigned long socfpga_clk_recalc_ val =readl (socfpgaclk->div_reg) >> socfpgaclk->shift; val &=GENMASK (socfpgaclk->width -1 ,0 );/* Check for GPIO_DB_CLK by its offset */ -if ((int ) socfpgaclk->div_reg &SOCFPGA_GPIO_DB_CLK_OFFSET ) +if ((uintptr_t ) socfpgaclk->div_reg &SOCFPGA_GPIO_DB_CLK_OFFSET ) div = val +1 ;else div = (1 << val);
Greg Kroah-Hartman
maintainerPATCH 171/188 lockdep: Address clang -Wformat warning printing for %hd
In reply to Greg Kroah-HartmanFrom: Arnd Bergmann <[email protected]>
commit 6d48b7912cc72275dc7c59ff961c8bac7ef66a92 upstream.
Clang doesn't like format strings that truncate a 32-bit value to something shorter:
kernel/locking/lockdep.c:709:4: error: format specifies type 'short' but the argument has type 'int' [-Werror,-Wformat]
In this case, the warning is a slightly questionable, as it could realize that both class->wait_type_outer and class->wait_type_inner are in fact 8-bit struct members, even though the result of the ?: operator becomes an 'int'.
However, there is really no point in printing the number as a 16-bit 'short' rather than either an 8-bit or 32-bit number, so just change it to a normal %d.
--- kernel/locking/lockdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/locking/lockdep.c +1 -1
@@ -705,7 +705,7 @@ static void print_lock_name(struct lock_printk (KERN_CONT " (" );__print_lock_name (class); -printk (KERN_CONT "){%s}-{%hd:%hd}" , usage, +printk (KERN_CONT "){%s}-{%d:%d}" , usage, class->wait_type_outer ?: class->wait_type_inner, class->wait_type_inner); }
Greg Kroah-Hartman
maintainerPATCH 172/188 dt-bindings: net: ethernet-controller: fix typo in NVMEM
In reply to Greg Kroah-HartmanFrom: Rafał Miłecki <[email protected]>
commit af9d316f3dd6d1385fbd1631b5103e620fc4298a upstream.
The correct property name is "nvmem-cell-names". This is what:
1. Was originally documented in the ethernet.txt
2. Is used in DTS files
3. Matches standard syntax for phandles
4. Linux net subsystem checks for
--- Documentation/devicetree/bindings/net/ethernet-controller.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/devicetree/bindings/net/ethernet-controller.yaml +1 -1
@@ -49,7 +49,7 @@ properties: description: Reference to an nvmem node for the MAC address - nvmem-cells-names: + nvmem-cell-names: const: mac-address phy-connection-type:
Greg Kroah-Hartman
maintainerPATCH 173/188 net: sched: bump refcount for new action in ACT replace mode
In reply to Greg Kroah-HartmanFrom: Kumar Kartikeya Dwivedi <[email protected]>
commit 6855e8213e06efcaf7c02a15e12b1ae64b9a7149 upstream.
Currently, action creation using ACT API in replace mode is buggy. When invoking for non-existent action index 42,
tc action replace action bpf obj foo.o sec <xyz> index 42
kernel creates the action, fills up the netlink response, and then just deletes the action after notifying userspace.
tc action show action bpf
doesn't list the action.
This happens due to the following sequence when ovr = 1 (replace mode) is enabled:
tcf_idr_check_alloc is used to atomically check and either obtain reference for existing action at index, or reserve the index slot using a dummy entry (ERR_PTR(-EBUSY)).
This is necessary as pointers to these actions will be held after dropping the idrinfo lock, so bumping the reference count is necessary as we need to insert the actions, and notify userspace by dumping their attributes. Finally, we drop the reference we took using the tcf_action_put_many call in tcf_action_add. However, for the case where a new action is created due to free index, its refcount remains one. This when paired with the put_many call leads to the kernel setting up the action, notifying userspace of its creation, and then tearing it down. For existing actions, the refcount is still held so they remain unaffected.
Fortunately due to rtnl_lock serialization requirement, such an action with refcount == 1 will not be concurrently deleted by anything else, at best CLS API can move its refcount up and down by binding to it after it has been published from tcf_idr_insert_many. Since refcount is atleast one until put_many call, CLS API cannot delete it. Also __tcf_action_put release path already ensures deterministic outcome (either new action will be created or existing action will be reused in case CLS API tries to bind to action concurrently) due to idr lock serialization.
We fix this by making refcount of newly created actions as 2 in ACT API replace mode. A relaxed store will suffice as visibility is ensured only after the tcf_idr_insert_many call.
Note that in case of creation or overwriting using CLS API only (i.e. bind = 1), overwriting existing action object is not allowed, and any such request is silently ignored (without error).
The refcount bump that occurs in tcf_idr_check_alloc call there for existing action will pair with tcf_exts_destroy call made from the owner module for the same action. In case of action creation, there is no existing action, so no tcf_exts_destroy callback happens.
This means no code changes for CLS API.
--- net/sched/act_api.c | 3 +++ 1 file changed, 3 insertions(+)
net/sched/act_api.c +3 -0
@@ -1029,6 +1029,9 @@ struct tc_action *tcf_action_init_1(struif (!name) a->hw_stats = hw_stats; +if (!bind && ovr && err ==ACT_P_CREATED ) +refcount_set (&a->tcfa_refcnt,2 ); +return a; err_out:
Greg Kroah-Hartman
maintainerPATCH 174/188 gpiolib: Read "gpio-line-names" from a firmware node
In reply to Greg Kroah-HartmanFrom: Andy Shevchenko <[email protected]>
commit b41ba2ec54a70908067034f139aa23d0dd2985ce upstream.
On STM32MP1, the GPIO banks are subnodes of pin-controller@50002000, see arch/arm/boot/dts/stm32mp151.dtsi. The driver for pin-controller@50002000 is in drivers/pinctrl/stm32/pinctrl-stm32.c and iterates over all of its DT subnodes when registering each GPIO bank gpiochip. Each gpiochip has:
- gpio_chip.parent = dev,
where dev is the device node of the pin controller
- gpio_chip.of_node = np,
which is the OF node of the GPIO bank
Therefore, dev_fwnode(chip->parent) != of_fwnode_handle(chip.of_node), i.e. pin-controller@50002000 != pin-controller@50002000/gpio@5000*000.
The original code behaved correctly, as it extracted the "gpio-line-names" from of_fwnode_handle(chip.of_node) = pin-controller@50002000/gpio@5000*000.
To achieve the same behaviour, read property from the firmware node.
--- drivers/gpio/gpiolib.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/gpio/gpiolib.c +4 -8
@@ -364,22 +364,18 @@ static int gpiochip_set_desc_names(struc* * Looks for device property "gpio-line-names" and if it exists assigns * GPIO line names for the chip. The memory allocated for the assigned -* names belong to the underlying software node and should not be released +* names belong to the underlying firmware node and should not be released * by the caller. */ static int devprop_gpiochip_set_names (struct gpio_chip *chip) {struct gpio_device *gdev = chip->gpiodev; -struct device *dev = chip->parent; +struct fwnode_handle *fwnode =dev_fwnode (&gdev->dev);const char **names;int ret, i;int count; -/* GPIO chip may not have a parent device whose properties we inspect. */ -if (!dev) -return 0 ; - - count =device_property_string_array_count (dev,"gpio-line-names" ); + count =fwnode_property_string_array_count (fwnode,"gpio-line-names" );if (count <0 )return 0 ;
@@ -393,7 +389,7 @@ static int devprop_gpiochip_set_names(stif (!names)return -ENOMEM ; - ret =device_property_read_string_array (dev,"gpio-line-names" , + ret =fwnode_property_read_string_array (fwnode,"gpio-line-names" , names, count);if (ret <0 ) {dev_warn (&gdev->dev,"failed to read GPIO line names\n" );
Greg Kroah-Hartman
maintainerPATCH 175/188 cfg80211: remove WARN_ON() in cfg80211_sme_connect
In reply to Greg Kroah-HartmanFrom: Du Cheng <[email protected]>
commit 1b5ab825d9acc0f27d2f25c6252f3526832a9626 upstream.
A WARN_ON(wdev->conn) would trigger in cfg80211_sme_connect(), if multiple send_msg(NL80211_CMD_CONNECT) system calls are made from the userland, which should be anticipated and handled by the wireless driver. Remove this WARN_ON() to prevent kernel panic if kernel is configured to "panic_on_warn".
Bug reported by syzbot.
--- net/wireless/sme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/wireless/sme.c +1 -1
@@ -530,7 +530,7 @@ static int cfg80211_sme_connect(struct wcfg80211_sme_free (wdev); } -if (WARN_ON (wdev->conn)) +if (wdev->conn)return -EINPROGRESS ; wdev->conn =kzalloc (sizeof (*wdev->conn),GFP_KERNEL );
Greg Kroah-Hartman
maintainerPATCH 176/188 net: tun: set tun->dev->addr_len during TUNSETLINK processing
In reply to Greg Kroah-HartmanFrom: Phillip Potter <[email protected]>
commit cca8ea3b05c972ffb5295367e6c544369b45fbdd upstream.
When changing type with TUNSETLINK ioctl command, set tun->dev->addr_len to match the appropriate type, using new tun_get_addr_len utility function which returns appropriate address length for given type. Fixes a KMSAN-found uninit-value bug reported by syzbot at:
https://syzkaller.appspot.com/bug?id=0766d38c656abeace60621896d705743aeefed51
--- drivers/net/tun.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+)
drivers/net/tun.c +48 -0
@@ -69,6 +69,14 @@#include <linux/bpf.h> #include <linux/bpf_trace.h> #include <linux/mutex.h> +#include <linux/ieee802154.h> +#include <linux/if_ltalk.h> +#include <uapi/linux/if_fddi.h> +#include <uapi/linux/if_hippi.h> +#include <uapi/linux/if_fc.h> +#include <net/ax25.h> +#include <net/rose.h> +#include <net/6lowpan.h> #include <linux/uaccess.h> #include <linux/proc_fs.h>
@@ -2978,6 +2986,45 @@ static int tun_set_ebpf(struct tun_strucreturn __tun_set_ebpf (tun, prog_p, prog); } +/* Return correct value for tun->dev->addr_len based on tun->dev->type. */ +static unsigned char tun_get_addr_len (unsigned short type) +{ +switch (type) { +case ARPHRD_IP6GRE : +case ARPHRD_TUNNEL6 : +return sizeof (struct in6_addr ); +case ARPHRD_IPGRE : +case ARPHRD_TUNNEL : +case ARPHRD_SIT : +return 4 ; +case ARPHRD_ETHER : +return ETH_ALEN ; +case ARPHRD_IEEE802154 : +case ARPHRD_IEEE802154_MONITOR : +return IEEE802154_EXTENDED_ADDR_LEN ; +case ARPHRD_PHONET_PIPE : +case ARPHRD_PPP : +case ARPHRD_NONE : +return 0 ; +case ARPHRD_6LOWPAN : +return EUI64_ADDR_LEN ; +case ARPHRD_FDDI : +return FDDI_K_ALEN ; +case ARPHRD_HIPPI : +return HIPPI_ALEN ; +case ARPHRD_IEEE802 : +return FC_ALEN ; +case ARPHRD_ROSE : +return ROSE_ADDR_LEN ; +case ARPHRD_NETROM : +return AX25_ADDR_LEN ; +case ARPHRD_LOCALTLK : +return LTALK_ALEN ; +default : +return 0 ; + } +} +static long __tun_chr_ioctl (struct file *file,unsigned int cmd,unsigned long arg,int ifreq_len) {
@@ -3133,6 +3180,7 @@ static long __tun_chr_ioctl(struct file ret = -EBUSY ; }else { tun->dev->type = (int ) arg; + tun->dev->addr_len =tun_get_addr_len (tun->dev->type);netif_info (tun, drv, tun->dev,"linktype set to %d\n" , tun->dev->type); ret =0 ;
Greg Kroah-Hartman
maintainerPATCH 177/188 drivers: net: fix memory leak in atusb_probe
In reply to Greg Kroah-HartmanFrom: Pavel Skripkin <[email protected]>
commit 6b9fbe16955152626557ec6f439f3407b7769941 upstream.
syzbot reported memory leak in atusb_probe()[1]. The problem was in atusb_alloc_urbs().
Since urb is anchored, we need to release the reference to correctly free the urb
backtrace:
[<ffffffff82ba0466>] kmalloc include/linux/slab.h:559 [inline]
[<ffffffff82ba0466>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
[<ffffffff82ad3888>] atusb_alloc_urbs drivers/net/ieee802154/atusb.c:362 [inline][2]
[<ffffffff82ad3888>] atusb_probe+0x158/0x820 drivers/net/ieee802154/atusb.c:1038 [1]--- drivers/net/ieee802154/atusb.c | 1 + 1 file changed, 1 insertion(+)
drivers/net/ieee802154/atusb.c +1 -0
@@ -365,6 +365,7 @@ static int atusb_alloc_urbs(struct atusbreturn -ENOMEM ; }usb_anchor_urb (urb, &atusb->idle_urbs); +usb_free_urb (urb); n--; }return 0 ;
Greg Kroah-Hartman
maintainerPATCH 178/188 drivers: net: fix memory leak in peak_usb_create_dev
In reply to Greg Kroah-HartmanFrom: Pavel Skripkin <[email protected]>
commit a0b96b4a62745397aee662670cfc2157bac03f55 upstream.
syzbot reported memory leak in peak_usb.
The problem was in case of failure after calling ->dev_init()[2] in peak_usb_create_dev()[1]. The data allocated int dev_init() wasn't freed, so simple ->dev_free() call fix this problem.
backtrace:
[<0000000079d6542a>] kmalloc include/linux/slab.h:552 [inline]
[<0000000079d6542a>] kzalloc include/linux/slab.h:682 [inline]
[<0000000079d6542a>] pcan_usb_fd_init+0x156/0x210 drivers/net/can/usb/peak_usb/pcan_usb_fd.c:868 [2]
[<00000000c09f9057>] peak_usb_create_dev drivers/net/can/usb/peak_usb/pcan_usb_core.c:851 [inline] [1]
[<00000000c09f9057>] peak_usb_probe+0x389/0x490 drivers/net/can/usb/peak_usb/pcan_usb_core.c:949--- drivers/net/can/usb/peak_usb/pcan_usb_core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/net/can/usb/peak_usb/pcan_usb_core.c +5 -1
@@ -856,7 +856,7 @@ static int peak_usb_create_dev(const strif (dev->adapter->dev_set_bus) { err = dev->adapter->dev_set_bus (dev,0 );if (err) - goto lbl_unregister_candev; + goto adap_dev_free; }/* get device number early */
@@ -868,6 +868,10 @@ static int peak_usb_create_dev(const strreturn 0 ; +adap_dev_free: +if (dev->adapter->dev_free) + dev->adapter->dev_free (dev); + lbl_unregister_candev:unregister_candev (netdev);
Greg Kroah-Hartman
maintainerPATCH 179/188 net: mac802154: Fix general protection fault
In reply to Greg Kroah-HartmanFrom: Pavel Skripkin <[email protected]>
commit 1165affd484889d4986cf3b724318935a0b120d8 upstream.
syzbot found general protection fault in crypto_destroy_tfm()[1]. It was caused by wrong clean up loop in llsec_key_alloc(). If one of the tfm array members is in IS_ERR() range it will cause general protection fault in clean up function [1].
Call Trace: crypto_free_aead include/crypto/aead.h:191 [inline] [1] llsec_key_alloc net/mac802154/llsec.c:156 [inline] mac802154_llsec_key_add+0x9e0/0xcc0 net/mac802154/llsec.c:249 ieee802154_add_llsec_key+0x56/0x80 net/mac802154/cfg.c:338 rdev_add_llsec_key net/ieee802154/rdev-ops.h:260 [inline] nl802154_add_llsec_key+0x3d3/0x560 net/ieee802154/nl802154.c:1584 genl_family_rcv_msg_doit+0x228/0x320 net/netlink/genetlink.c:739 genl_family_rcv_msg net/netlink/genetlink.c:783 [inline] genl_rcv_msg+0x328/0x580 net/netlink/genetlink.c:800 netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2502 genl_rcv+0x24/0x40 net/netlink/genetlink.c:811 netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline] netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338 netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927 sock_sendmsg_nosec net/socket.c:654 [inline] sock_sendmsg+0xcf/0x120 net/socket.c:674 ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350 ___sys_sendmsg+0xf3/0x170 net/socket.c:2404 __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xae
--- net/mac802154/llsec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/mac802154/llsec.c +1 -1
@@ -152,7 +152,7 @@ err_tfm0:crypto_free_sync_skcipher (key->tfm0); err_tfm:for (i =0 ; i <ARRAY_SIZE (key->tfm); i++) -if (key->tfm[i]) +if (!IS_ERR_OR_NULL (key->tfm[i]))crypto_free_aead (key->tfm[i]);kfree_sensitive (key);
Greg Kroah-Hartman
maintainerPATCH 180/188 net: ieee802154: nl-mac: fix check on panid
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 6f7f657f24405f426212c09260bf7fe8a52cef33 upstream.
This patch fixes a null pointer derefence for panid handle by move the check for the netlink variable directly before accessing them.
--- net/ieee802154/nl-mac.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
net/ieee802154/nl-mac.c +4 -3
@@ -551,9 +551,7 @@ ieee802154_llsec_parse_key_id(struct gen desc->mode =nla_get_u8 (info->attrs[IEEE802154_ATTR_LLSEC_KEY_MODE ]);if (desc->mode ==IEEE802154_SCF_KEY_IMPLICIT ) { -if (!info->attrs[IEEE802154_ATTR_PAN_ID ] && - !(info->attrs[IEEE802154_ATTR_SHORT_ADDR ] || - info->attrs[IEEE802154_ATTR_HW_ADDR ])) +if (!info->attrs[IEEE802154_ATTR_PAN_ID ])return -EINVAL ; desc->device_addr.pan_id =nla_get_shortaddr (info->attrs[IEEE802154_ATTR_PAN_ID ]);
@@ -562,6 +560,9 @@ ieee802154_llsec_parse_key_id(struct gen desc->device_addr.mode =IEEE802154_ADDR_SHORT ; desc->device_addr.short_addr =nla_get_shortaddr (info->attrs[IEEE802154_ATTR_SHORT_ADDR ]); }else { +if (!info->attrs[IEEE802154_ATTR_HW_ADDR ]) +return -EINVAL ; + desc->device_addr.mode =IEEE802154_ADDR_LONG ; desc->device_addr.extended_addr =nla_get_hwaddr (info->attrs[IEEE802154_ATTR_HW_ADDR ]); }
Greg Kroah-Hartman
maintainerPATCH 181/188 net: ieee802154: fix nl802154 del llsec key
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 37feaaf5ceb2245e474369312bb7b922ce7bce69 upstream.
This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_KEY is not set by the user. If this is the case nl802154 will return -EINVAL.
--- net/ieee802154/nl802154.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
net/ieee802154/nl802154.c +2 -1
@@ -1592,7 +1592,8 @@ static int nl802154_del_llsec_key(structstruct nlattr *attrs[NL802154_KEY_ATTR_MAX +1 ];struct ieee802154_llsec_key_id id; -if (nla_parse_nested_deprecated (attrs,NL802154_KEY_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_KEY ], nl802154_key_policy, info->extack)) +if (!info->attrs[NL802154_ATTR_SEC_KEY ] || +nla_parse_nested_deprecated (attrs,NL802154_KEY_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_KEY ], nl802154_key_policy, info->extack))return -EINVAL ;if (ieee802154_llsec_parse_key_id (attrs[NL802154_KEY_ATTR_ID ], &id) <0 )
Greg Kroah-Hartman
maintainerPATCH 182/188 net: ieee802154: fix nl802154 del llsec dev
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 3d1eac2f45585690d942cf47fd7fbd04093ebd1b upstream.
This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_DEVICE is not set by the user. If this is the case nl802154 will return -EINVAL.
--- net/ieee802154/nl802154.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
net/ieee802154/nl802154.c +2 -1
@@ -1758,7 +1758,8 @@ static int nl802154_del_llsec_dev(structstruct nlattr *attrs[NL802154_DEV_ATTR_MAX +1 ];__le64 extended_addr; -if (nla_parse_nested_deprecated (attrs,NL802154_DEV_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_DEVICE ], nl802154_dev_policy, info->extack)) +if (!info->attrs[NL802154_ATTR_SEC_DEVICE ] || +nla_parse_nested_deprecated (attrs,NL802154_DEV_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_DEVICE ], nl802154_dev_policy, info->extack))return -EINVAL ;if (!attrs[NL802154_DEV_ATTR_EXTENDED_ADDR ])
Greg Kroah-Hartman
maintainerPATCH 183/188 net: ieee802154: fix nl802154 add llsec key
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 20d5fe2d7103f5c43ad11a3d6d259e9d61165c35 upstream.
This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_KEY is not set by the user. If this is the case nl802154 will return -EINVAL.
--- net/ieee802154/nl802154.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
net/ieee802154/nl802154.c +2 -1
@@ -1544,7 +1544,8 @@ static int nl802154_add_llsec_key(structstruct ieee802154_llsec_key_id id = { };u32 commands[NL802154_CMD_FRAME_NR_IDS /32 ] = { }; -if (nla_parse_nested_deprecated (attrs,NL802154_KEY_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_KEY ], nl802154_key_policy, info->extack)) +if (!info->attrs[NL802154_ATTR_SEC_KEY ] || +nla_parse_nested_deprecated (attrs,NL802154_KEY_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_KEY ], nl802154_key_policy, info->extack))return -EINVAL ; if (!attrs[NL802154_KEY_ATTR_USAGE_FRAMES] ||
Greg Kroah-Hartman
maintainerPATCH 184/188 net: ieee802154: fix nl802154 del llsec devkey
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 27c746869e1a135dffc2f2a80715bb7aa00445b4 upstream.
This patch fixes a nullpointer dereference if NL802154_ATTR_SEC_DEVKEY is not set by the user. If this is the case nl802154 will return -EINVAL.
--- net/ieee802154/nl802154.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
net/ieee802154/nl802154.c +2 -1
@@ -1916,7 +1916,8 @@ static int nl802154_del_llsec_devkey(strstruct ieee802154_llsec_device_key key;__le64 extended_addr; -if (nla_parse_nested_deprecated (attrs,NL802154_DEVKEY_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_DEVKEY ], nl802154_devkey_policy, info->extack)) +if (!info->attrs[NL802154_ATTR_SEC_DEVKEY ] || +nla_parse_nested_deprecated (attrs,NL802154_DEVKEY_ATTR_MAX , info->attrs[NL802154_ATTR_SEC_DEVKEY ], nl802154_devkey_policy, info->extack))return -EINVAL ;if (!attrs[NL802154_DEVKEY_ATTR_EXTENDED_ADDR ])
Greg Kroah-Hartman
maintainerPATCH 185/188 net: ieee802154: forbid monitor for set llsec params
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 88c17855ac4291fb462e13a86b7516773b6c932e upstream.
This patch forbids to set llsec params for monitor interfaces which we don't support yet.
--- net/ieee802154/nl802154.c | 3 +++ 1 file changed, 3 insertions(+)
net/ieee802154/nl802154.c +3 -0
@@ -1384,6 +1384,9 @@ static int nl802154_set_llsec_params(stru32 changed =0 ;int ret; +if (wpan_dev->iftype ==NL802154_IFTYPE_MONITOR ) +return -EOPNOTSUPP ; +if (info->attrs[NL802154_ATTR_SEC_ENABLED ]) {u8 enabled;
Greg Kroah-Hartman
maintainerPATCH 186/188 net: ieee802154: forbid monitor for del llsec seclevel
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 9dde130937e95b72adfae64ab21d6e7e707e2dac upstream.
This patch forbids to del llsec seclevel for monitor interfaces which we don't support yet. Otherwise we will access llsec mib which isn't initialized for monitors.
--- net/ieee802154/nl802154.c | 3 +++ 1 file changed, 3 insertions(+)
net/ieee802154/nl802154.c +3 -0
@@ -2092,6 +2092,9 @@ static int nl802154_del_llsec_seclevel(sstruct wpan_dev *wpan_dev = dev->ieee802154_ptr;struct ieee802154_llsec_seclevel sl; +if (wpan_dev->iftype ==NL802154_IFTYPE_MONITOR ) +return -EOPNOTSUPP ; +if (!info->attrs[NL802154_ATTR_SEC_LEVEL ] ||llsec_parse_seclevel (info->attrs[NL802154_ATTR_SEC_LEVEL ], &sl) <0 )
Greg Kroah-Hartman
maintainerPATCH 187/188 net: ieee802154: stop dump llsec params for monitors
In reply to Greg Kroah-HartmanFrom: Alexander Aring <[email protected]>
commit 1534efc7bbc1121e92c86c2dabebaf2c9dcece19 upstream.
This patch stops dumping llsec params for monitors which we don't support yet. Otherwise we will access llsec mib which isn't initialized for monitors.
--- net/ieee802154/nl802154.c | 5 +++++ 1 file changed, 5 insertions(+)
net/ieee802154/nl802154.c +5 -0
@@ -820,8 +820,13 @@ nl802154_send_iface(struct sk_buff *msg, goto nla_put_failure;#ifdef CONFIG_IEEE802154_NL802154_EXPERIMENTAL +if (wpan_dev->iftype ==NL802154_IFTYPE_MONITOR ) + goto out; +if (nl802154_get_llsec_params (msg, rdev, wpan_dev) <0 ) goto nla_put_failure; + +out:#endif /* CONFIG_IEEE802154_NL802154_EXPERIMENTAL */ genlmsg_end (msg, hdr);
Greg Kroah-Hartman
maintainerPATCH 188/188 Revert "net: sched: bump refcount for new action in ACT replace mode"
In reply to Greg Kroah-HartmanFrom: Vlad Buslov <[email protected]>
commit 4ba86128ba077fbb7d86516ae24ed642e6c3adef upstream.
This reverts commit 6855e8213e06efcaf7c02a15e12b1ae64b9a7149.
Following commit in series fixes the issue without introducing regression in error rollback of tcf_action_destroy().
--- net/sched/act_api.c | 3 --- 1 file changed, 3 deletions(-)
net/sched/act_api.c +0 -3
@@ -1029,9 +1029,6 @@ struct tc_action *tcf_action_init_1(struif (!name) a->hw_stats = hw_stats; -if (!bind && ovr && err ==ACT_P_CREATED ) -refcount_set (&a->tcfa_refcnt,2 ); -return a; err_out:
Hello all,
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.30-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
I tested 5.10.30-rc1 on my i686, the kernel was compiled with gcc 10.2 using make localmodconfig. I found no issues to compile and run the kernel.
Selftest resluts [ok/not ok]: [1434/82]
"Regression" (compared with 5.10.29-rc1):
75d74
< not ok 1 selftests: rtc: rtctest # TIMEOUT 90 seconds 80d78
< not ok 9 selftests: timers: rtcpie # exit=255
These test results were fluctuating for the previous kernels as well, thus I can't conclude that this "regression" is actually a real regression.
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.30-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.10:
12 builds: 12 pass, 0 fail
28 boots: 28 pass, 0 fail
70 tests: 70 pass, 0 failLinux version: 5.10.30-rc1-g8ac4b1deedaa
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000,
tegra20-ventana, tegra210-p2371-2180,
tegra210-p3450-0000, tegra30-cardhu-a04Jon
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.30-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
On ARCH_BRCMSTB, using 32-bit and 64-bit ARM kernels:
Signature · 1 line
Florian
Patrick Mccormick
Tested-byWe ran tests on this kernel:
commit 8ac4b1deedaa507b5d0f46316e7f32004dd99cd1 (HEAD -> rc/linux-5.10.y, stable_rc/linux-5.10.y)
Author: Greg Kroah-Hartman <[email protected]> Date: Mon Apr 12 10:40:10 2021 +0200
Linux 5.10.30-rc1
32/32 test passed, 0 failed, 0 errors, 0 warnings.
Specific tests run:
(01/32) 32ltp.py:LTP.test_nptl: PASS (6.55 s)
(02/32) 32ltp.py:LTP.test_math: PASS (2.05 s)
(03/32) 32ltp.py:LTP.test_hugetlb: PASS (0.07 s) (04/32) 32ltp.py:LTP.test_ipc: PASS (20.08 s)
(05/32) 32ltp.py:LTP.test_uevent: PASS (0.05 s) (06/32) 32ltp.py:LTP.test_containers: PASS (36.71 s) (07/32) 32ltp.py:LTP.test_filecaps: PASS (0.11 s) (08/32) 32ltp.py:LTP.test_hyperthreading: PASS (71.18 s) (09/32) 32kpatch.sh: PASS (12.59 s)
(10/32) 32perf.py:PerfNonPriv.test_perf_help: PASS (0.07 s) (11/32) 32perf.py:PerfNonPriv.test_perf_version: PASS (0.06 s) (12/32) 32perf.py:PerfNonPriv.test_perf_list: PASS (0.39 s) (13/32) 32perf.py:PerfPriv.test_perf_record: PASS (4.71 s) (14/32) 32perf.py:PerfPriv.test_perf_cmd_kallsyms: PASS (0.31 s) (15/32) 32perf.py:PerfPriv.test_perf_cmd_annotate: PASS (6.86 s) (16/32) 32perf.py:PerfPriv.test_perf_cmd_evlist: PASS (0.07 s) (17/32) 32perf.py:PerfPriv.test_perf_cmd_script: PASS (0.49 s) (18/32) 32perf.py:PerfPriv.test_perf_stat: PASS (3.22 s) (19/32) 32perf.py:PerfPriv.test_perf_bench: PASS (0.07 s) (20/32) 32kselftest.py:kselftest.test_sysctl: PASS (0.19 s) (21/32) 32kselftest.py:kselftest.test_size: PASS (0.02 s) (22/32) 32kselftest.py:kselftest.test_sync: PASS (0.46 s) (23/32) 32kselftest.py:kselftest.test_capabilities: PASS (0.03 s) (24/32) 32kselftest.py:kselftest.test_x86: PASS (0.28 s) (25/32) 32kselftest.py:kselftest.test_pidfd: PASS (13.01 s) (26/32) 32kselftest.py:kselftest.test_membarrier: PASS (0.22 s) (27/32) 32kselftest.py:kselftest.test_sigaltstack: PASS (0.03 s) (28/32) 32kselftest.py:kselftest.test_tmpfs: PASS (0.03 s) (29/32) 32kselftest.py:kselftest.test_user: PASS (0.02 s) (30/32) 32kselftest.py:kselftest.test_sched: PASS (0.03 s) (31/32) 32kselftest.py:kselftest.test_timens: PASS (0.09 s) (32/32) 32kselftest.py:kselftest.test_timers: PASS (555.01 s)
RESULTS : PASS 32 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT
0 | CANCEL 0
Quoted 27 lines · Florian Fainelli
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.30-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
On
ARCH_BRCMSTB, using 32-bit and 64-bit ARM kernels:Tested-by Florian Fainelli <[email protected]>--
Florian
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.30-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
thanks,
-- Shuah
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
Build results:
total: 156 pass: 156 fail: 0 Qemu test results: total: 454 pass: 454 fail: 0
Guenter
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.30-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
## Build
* kernel: 5.10.30-rc1
* git: ['https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git', 'https://gitlab.com/Linaro/lkft/mirrors/stable/linux-stable-rc']
* git branch: linux-5.10.y
* git commit: 8ac4b1deedaa507b5d0f46316e7f32004dd99cd1
* git describe: v5.10.29-189-g8ac4b1deedaa
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.10.y/build/v5.10.29-189-g8ac4b1deedaa
## No regressions (compared to v5.10.28-42-g18f507c37f33)
## No fixes (compared to v5.10.28-42-g18f507c37f33)
## Test result summary
total: 75890, pass: 63301, fail: 2174, skip: 10129, xfail: 286,
## Build Summary
* arc: 10 total, 10 passed, 0 failed
* arm: 192 total, 192 passed, 0 failed
* arm64: 26 total, 26 passed, 0 failed
* dragonboard-410c: 1 total, 1 passed, 0 failed
* hi6220-hikey: 1 total, 1 passed, 0 failed
* i386: 26 total, 25 passed, 1 failed
* juno-r2: 1 total, 1 passed, 0 failed
* mips: 45 total, 45 passed, 0 failed
* parisc: 9 total, 9 passed, 0 failed
* powerpc: 27 total, 27 passed, 0 failed
* riscv: 21 total, 21 passed, 0 failed
* s390: 18 total, 18 passed, 0 failed
* sh: 18 total, 18 passed, 0 failed
* sparc: 9 total, 9 passed, 0 failed
* x15: 2 total, 1 passed, 1 failed
* x86: 1 total, 1 passed, 0 failed
* x86_64: 26 total, 26 passed, 0 failed
## Test suites summary
* fwts
* igt-gpu-tools
* install-android-platform-tools-r2600
* kselftest-
* kselftest-android
* kselftest-bpf
* kselftest-capabilities
* kselftest-cgroup
* kselftest-clone3
* kselftest-core
* kselftest-cpu-hotplug
* kselftest-cpufreq
* kselftest-efivarfs
* kselftest-filesystems
* kselftest-firmware
* kselftest-fpu
* kselftest-futex
* kselftest-gpio
* kselftest-intel_pstate
* kselftest-ipc
* kselftest-ir
* kselftest-kcmp
* kselftest-kexec
* kselftest-kvm
* kselftest-lib
* kselftest-livepatch
* kselftest-lkdtm
* kselftest-membarrier
* kselftest-memfd
* kselftest-memory-hotplug
* kselftest-mincore
* kselftest-mount
* kselftest-mqueue
* kselftest-net
* kselftest-netfilter
* kselftest-nsfs
* kselftest-openat2
* kselftest-pid_namespace
* kselftest-pidfd
* kselftest-proc
* kselftest-pstore
* kselftest-ptrace
* kselftest-rseq
* kselftest-rtc
* kselftest-seccomp
* kselftest-sigaltstack
* kselftest-size
* kselftest-splice
* kselftest-static_keys
* kselftest-sync
* kselftest-sysctl
* kselftest-tc-testing
* kselftest-timens
* kselftest-timers
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user
* kselftest-vm
* kselftest-vsyscall-mode-native-
* kselftest-vsyscall-mode-none-
* kselftest-x86
* kselftest-zram
* kunit
* kvm-unit-tests
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-containers-tests
* ltp-controllers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-open-posix-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* ltp-tracing-tests
* network-basic-tests
* perf
* rcutorture
* ssuite
* v4l2-compliance
--
Linaro LKFT
https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.30-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Tested on arm64 and x86 for 5.10.30-rc1,
Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-5.10.y
Version: 5.10.30-rc1
Commit: 8ac4b1deedaa507b5d0f46316e7f32004dd99cd1
Compiler: gcc version 7.3.0 (GCC)
arm64:
--------------------------------------------------------------------
Testcase Result Summary:
total: 5264
passed: 5264
failed: 0
timeout: 0
--------------------------------------------------------------------
x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 5264
passed: 5264
failed: 0
timeout: 0
--------------------------------------------------------------------
Hi!
Quoted 4 lines
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
CIP testing did not find any problems here:
https://gitlab.com/cip-project/cip-testing/linux-stable-rc-ci/-/tree/linux-5.10.y
Best regards,
Pavel
Signature · 2 lines
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Hi Greg,
Quoted 7 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.30 release. There are 188 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 14 Apr 2021 08:39:44 +0000. Anything received after that time might be too late.
Build test: (gcc version 10.2.1 20210406)
mips: 63 configs -> no new failure
arm: 105 configs -> no new failurex86_64: 2 configs -> no failure
Boot test:x86_64: Booted on my test laptop. No regression.
--
Regards
Sudip