From: Greg Kroah-Hartman Date: Mon, 17 May 2021 12:02:22 +0000 (+0200) Subject: 5.10-stable patches X-Git-Tag: v5.4.120~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=66de0166d25f2e1fcfdec484b222ee50ec64602a;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: kobject_uevent-remove-warning-in-init_uevent_argv.patch usb-typec-tcpm-fix-error-while-calculating-pps-out-values.patch --- diff --git a/queue-5.10/kobject_uevent-remove-warning-in-init_uevent_argv.patch b/queue-5.10/kobject_uevent-remove-warning-in-init_uevent_argv.patch new file mode 100644 index 00000000000..cde741d5ca3 --- /dev/null +++ b/queue-5.10/kobject_uevent-remove-warning-in-init_uevent_argv.patch @@ -0,0 +1,45 @@ +From b4104180a2efb85f55e1ba1407885c9421970338 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 5 Apr 2021 11:48:52 +0200 +Subject: kobject_uevent: remove warning in init_uevent_argv() + +From: Greg Kroah-Hartman + +commit b4104180a2efb85f55e1ba1407885c9421970338 upstream. + +syzbot can trigger the WARN() in init_uevent_argv() which isn't the +nicest as the code does properly recover and handle the error. So +change the WARN() call to pr_warn() and provide some more information on +what the buffer size that was needed. + +Link: https://lore.kernel.org/r/20201107082206.GA19079@kroah.com +Cc: "Rafael J. Wysocki" +Cc: linux-kernel@vger.kernel.org +Reported-by: syzbot+92340f7b2b4789907fdb@syzkaller.appspotmail.com +Signed-off-by: Greg Kroah-Hartman +Link: https://lore.kernel.org/r/20210405094852.1348499-1-gregkh@linuxfoundation.org +Signed-off-by: Greg Kroah-Hartman +--- + lib/kobject_uevent.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +--- a/lib/kobject_uevent.c ++++ b/lib/kobject_uevent.c +@@ -251,12 +251,13 @@ static int kobj_usermode_filter(struct k + + static int init_uevent_argv(struct kobj_uevent_env *env, const char *subsystem) + { ++ int buffer_size = sizeof(env->buf) - env->buflen; + int len; + +- len = strlcpy(&env->buf[env->buflen], subsystem, +- sizeof(env->buf) - env->buflen); +- if (len >= (sizeof(env->buf) - env->buflen)) { +- WARN(1, KERN_ERR "init_uevent_argv: buffer size too small\n"); ++ len = strlcpy(&env->buf[env->buflen], subsystem, buffer_size); ++ if (len >= buffer_size) { ++ pr_warn("init_uevent_argv: buffer size of %d too small, needed %d\n", ++ buffer_size, len); + return -ENOMEM; + } + diff --git a/queue-5.10/series b/queue-5.10/series index 1bd6f327086..ddb3d0cfb11 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -272,3 +272,5 @@ arm-9011-1-centralize-phys-to-virt-conversion-of-dt-atags-address.patch arm-9012-1-move-device-tree-mapping-out-of-linear-region.patch arm-9020-1-mm-use-correct-section-size-macro-to-describe-the-fdt-virtual-address.patch arm-9027-1-head.s-explicitly-map-dt-even-if-it-lives-in-the-first-physical-section.patch +usb-typec-tcpm-fix-error-while-calculating-pps-out-values.patch +kobject_uevent-remove-warning-in-init_uevent_argv.patch diff --git a/queue-5.10/usb-typec-tcpm-fix-error-while-calculating-pps-out-values.patch b/queue-5.10/usb-typec-tcpm-fix-error-while-calculating-pps-out-values.patch new file mode 100644 index 00000000000..c4c3df0f408 --- /dev/null +++ b/queue-5.10/usb-typec-tcpm-fix-error-while-calculating-pps-out-values.patch @@ -0,0 +1,42 @@ +From 374157ff88ae1a7f7927331cbc72c1ec11994e8a Mon Sep 17 00:00:00 2001 +From: Badhri Jagan Sridharan +Date: Wed, 14 Apr 2021 22:01:21 -0700 +Subject: usb: typec: tcpm: Fix error while calculating PPS out values + +From: Badhri Jagan Sridharan + +commit 374157ff88ae1a7f7927331cbc72c1ec11994e8a upstream. + +"usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply" +introduced a regression for req_out_volt and req_op_curr calculation. + +req_out_volt should consider the newly calculated max voltage instead +of previously accepted max voltage by the port partner. Likewise, +req_op_curr should consider the newly calculated max current instead +of previously accepted max current by the port partner. + +Fixes: e3a072022487 ("usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply") +Reviewed-by: Guenter Roeck +Signed-off-by: Badhri Jagan Sridharan +Link: https://lore.kernel.org/r/20210415050121.1928298-1-badhri@google.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/typec/tcpm/tcpm.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/usb/typec/tcpm/tcpm.c ++++ b/drivers/usb/typec/tcpm/tcpm.c +@@ -2501,10 +2501,10 @@ static unsigned int tcpm_pd_select_pps_a + port->pps_data.req_max_volt = min(pdo_pps_apdo_max_voltage(src), + pdo_pps_apdo_max_voltage(snk)); + port->pps_data.req_max_curr = min_pps_apdo_current(src, snk); +- port->pps_data.req_out_volt = min(port->pps_data.max_volt, +- max(port->pps_data.min_volt, ++ port->pps_data.req_out_volt = min(port->pps_data.req_max_volt, ++ max(port->pps_data.req_min_volt, + port->pps_data.req_out_volt)); +- port->pps_data.req_op_curr = min(port->pps_data.max_curr, ++ port->pps_data.req_op_curr = min(port->pps_data.req_max_curr, + port->pps_data.req_op_curr); + } +