Char/Misc driver fixes for 5.5-rc2
Here are 6 small fixes for some reported char/misc driver issues: - fix build warnings with new 'awk' with the raid6 code - 4 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 :) Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCXfT8YQ8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ykUPgCgl9i9JfcQiCkr1oCtKorVhJedtC8AnipcN2up Q8XJOOLH0pE+J/hTa9Ps =UfDH -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
f61cf8decb
@ -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,
|
|||||||
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,
|
||||||
|
@ -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)
|
|||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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 {
|
|||||||
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
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user