Commit f61cf8de authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'char-misc-5.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char/misc driver fixes from Greg KH:
 "Here are six small fixes for some reported char/misc driver issues:

   - fix build warnings with new 'awk' with the raid6 code

   - four interconnect driver bugfixes

   - binder fix for reported problem

  All of these except the binder fix have been in linux-next with no
  reported issues. The binder fix is "new" but Todd says it is good as
  he has tested it :)"

* tag 'char-misc-5.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
  binder: fix incorrect calculation for num_valid
  interconnect: qcom: msm8974: Walk the list safely on node removal
  interconnect: qcom: qcs404: Walk the list safely on node removal
  interconnect: qcom: sdm845: Walk the list safely on node removal
  interconnect: qcom: Fix Kconfig indentation
  lib: raid6: fix awk build warnings
parents 894554c1 16981742
...@@ -3310,7 +3310,7 @@ static void binder_transaction(struct binder_proc *proc, ...@@ -3310,7 +3310,7 @@ static void binder_transaction(struct binder_proc *proc,
binder_size_t parent_offset; binder_size_t parent_offset;
struct binder_fd_array_object *fda = struct binder_fd_array_object *fda =
to_binder_fd_array_object(hdr); to_binder_fd_array_object(hdr);
size_t num_valid = (buffer_offset - off_start_offset) * size_t num_valid = (buffer_offset - off_start_offset) /
sizeof(binder_size_t); sizeof(binder_size_t);
struct binder_buffer_object *parent = struct binder_buffer_object *parent =
binder_validate_ptr(target_proc, t->buffer, binder_validate_ptr(target_proc, t->buffer,
...@@ -3384,7 +3384,7 @@ static void binder_transaction(struct binder_proc *proc, ...@@ -3384,7 +3384,7 @@ static void binder_transaction(struct binder_proc *proc,
t->buffer->user_data + sg_buf_offset; t->buffer->user_data + sg_buf_offset;
sg_buf_offset += ALIGN(bp->length, sizeof(u64)); sg_buf_offset += ALIGN(bp->length, sizeof(u64));
num_valid = (buffer_offset - off_start_offset) * num_valid = (buffer_offset - off_start_offset) /
sizeof(binder_size_t); sizeof(binder_size_t);
ret = binder_fixup_parent(t, thread, bp, ret = binder_fixup_parent(t, thread, bp,
off_start_offset, off_start_offset,
......
...@@ -6,13 +6,13 @@ config INTERCONNECT_QCOM ...@@ -6,13 +6,13 @@ config INTERCONNECT_QCOM
Support for Qualcomm's Network-on-Chip interconnect hardware. Support for Qualcomm's Network-on-Chip interconnect hardware.
config INTERCONNECT_QCOM_MSM8974 config INTERCONNECT_QCOM_MSM8974
tristate "Qualcomm MSM8974 interconnect driver" tristate "Qualcomm MSM8974 interconnect driver"
depends on INTERCONNECT_QCOM depends on INTERCONNECT_QCOM
depends on QCOM_SMD_RPM depends on QCOM_SMD_RPM
select INTERCONNECT_QCOM_SMD_RPM select INTERCONNECT_QCOM_SMD_RPM
help help
This is a driver for the Qualcomm Network-on-Chip on msm8974-based This is a driver for the Qualcomm Network-on-Chip on msm8974-based
platforms. platforms.
config INTERCONNECT_QCOM_QCS404 config INTERCONNECT_QCOM_QCS404
tristate "Qualcomm QCS404 interconnect driver" tristate "Qualcomm QCS404 interconnect driver"
......
...@@ -652,7 +652,7 @@ static int msm8974_icc_probe(struct platform_device *pdev) ...@@ -652,7 +652,7 @@ static int msm8974_icc_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct icc_onecell_data *data; struct icc_onecell_data *data;
struct icc_provider *provider; struct icc_provider *provider;
struct icc_node *node; struct icc_node *node, *tmp;
size_t num_nodes, i; size_t num_nodes, i;
int ret; int ret;
...@@ -732,7 +732,7 @@ static int msm8974_icc_probe(struct platform_device *pdev) ...@@ -732,7 +732,7 @@ static int msm8974_icc_probe(struct platform_device *pdev)
return 0; return 0;
err_del_icc: err_del_icc:
list_for_each_entry(node, &provider->nodes, node_list) { list_for_each_entry_safe(node, tmp, &provider->nodes, node_list) {
icc_node_del(node); icc_node_del(node);
icc_node_destroy(node->id); icc_node_destroy(node->id);
} }
...@@ -748,9 +748,9 @@ static int msm8974_icc_remove(struct platform_device *pdev) ...@@ -748,9 +748,9 @@ static int msm8974_icc_remove(struct platform_device *pdev)
{ {
struct msm8974_icc_provider *qp = platform_get_drvdata(pdev); struct msm8974_icc_provider *qp = platform_get_drvdata(pdev);
struct icc_provider *provider = &qp->provider; struct icc_provider *provider = &qp->provider;
struct icc_node *n; struct icc_node *n, *tmp;
list_for_each_entry(n, &provider->nodes, node_list) { list_for_each_entry_safe(n, tmp, &provider->nodes, node_list) {
icc_node_del(n); icc_node_del(n);
icc_node_destroy(n->id); icc_node_destroy(n->id);
} }
......
...@@ -414,7 +414,7 @@ static int qnoc_probe(struct platform_device *pdev) ...@@ -414,7 +414,7 @@ static int qnoc_probe(struct platform_device *pdev)
struct icc_provider *provider; struct icc_provider *provider;
struct qcom_icc_node **qnodes; struct qcom_icc_node **qnodes;
struct qcom_icc_provider *qp; struct qcom_icc_provider *qp;
struct icc_node *node; struct icc_node *node, *tmp;
size_t num_nodes, i; size_t num_nodes, i;
int ret; int ret;
...@@ -494,7 +494,7 @@ static int qnoc_probe(struct platform_device *pdev) ...@@ -494,7 +494,7 @@ static int qnoc_probe(struct platform_device *pdev)
return 0; return 0;
err: err:
list_for_each_entry(node, &provider->nodes, node_list) { list_for_each_entry_safe(node, tmp, &provider->nodes, node_list) {
icc_node_del(node); icc_node_del(node);
icc_node_destroy(node->id); icc_node_destroy(node->id);
} }
...@@ -508,9 +508,9 @@ static int qnoc_remove(struct platform_device *pdev) ...@@ -508,9 +508,9 @@ static int qnoc_remove(struct platform_device *pdev)
{ {
struct qcom_icc_provider *qp = platform_get_drvdata(pdev); struct qcom_icc_provider *qp = platform_get_drvdata(pdev);
struct icc_provider *provider = &qp->provider; struct icc_provider *provider = &qp->provider;
struct icc_node *n; struct icc_node *n, *tmp;
list_for_each_entry(n, &provider->nodes, node_list) { list_for_each_entry_safe(n, tmp, &provider->nodes, node_list) {
icc_node_del(n); icc_node_del(n);
icc_node_destroy(n->id); icc_node_destroy(n->id);
} }
......
...@@ -868,9 +868,9 @@ static int qnoc_remove(struct platform_device *pdev) ...@@ -868,9 +868,9 @@ static int qnoc_remove(struct platform_device *pdev)
{ {
struct qcom_icc_provider *qp = platform_get_drvdata(pdev); struct qcom_icc_provider *qp = platform_get_drvdata(pdev);
struct icc_provider *provider = &qp->provider; struct icc_provider *provider = &qp->provider;
struct icc_node *n; struct icc_node *n, *tmp;
list_for_each_entry(n, &provider->nodes, node_list) { list_for_each_entry_safe(n, tmp, &provider->nodes, node_list) {
icc_node_del(n); icc_node_del(n);
icc_node_destroy(n->id); icc_node_destroy(n->id);
} }
......
...@@ -13,7 +13,7 @@ BEGIN { ...@@ -13,7 +13,7 @@ BEGIN {
for (i = 0; i < rep; ++i) { for (i = 0; i < rep; ++i) {
tmp = $0 tmp = $0
gsub(/\$\$/, i, tmp) gsub(/\$\$/, i, tmp)
gsub(/\$\#/, n, tmp) gsub(/\$#/, n, tmp)
gsub(/\$\*/, "$", tmp) gsub(/\$\*/, "$", tmp)
print tmp print tmp
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment