Unverified Commit 12511146 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!10334 fix CVE-2024-36479 for olk-5.10

Merge Pull Request from: @ci-robot 
 
PR sync from: Wupeng Ma <mawupeng1@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/MW47CBD35NJ2RS72SXB3V7AMAXJDF3GW/ 
From: Ma Wupeng <mawupeng1@huawei.com>

backport patch to fix CVE-2024-36479.

Alexis Lothoré (1):
  fpga: bridge: properly initialize bridge device before populating
    children

Marco Pagani (2):
  fpga: remove redundant checks for bridge ops
  fpga: bridge: add owner module and take its refcount

Russ Weight (2):
  fpga: bridge: Rename dev to parent for parent device
  fpga: bridge: Use standard dev_release for class driver


-- 
2.25.1
 
https://gitee.com/src-openeuler/kernel/issues/IA7YMH 
 
Link:https://gitee.com/openeuler/kernel/pulls/10334

 

Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parents 50ee4440 5b439da3
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -6,10 +6,12 @@ API to implement a new FPGA bridge

* struct fpga_bridge — The FPGA Bridge structure
* struct fpga_bridge_ops — Low level Bridge driver ops
* devm_fpga_bridge_create() — Allocate and init a bridge struct
* fpga_bridge_register() — Register a bridge
* __fpga_bridge_register() — Create and register a bridge
* fpga_bridge_unregister() — Unregister a bridge

The helper macro ``fpga_bridge_register()`` automatically sets
the module that registers the FPGA bridge as the owner.

.. kernel-doc:: include/linux/fpga/fpga-bridge.h
   :functions: fpga_bridge

@@ -17,10 +19,7 @@ API to implement a new FPGA bridge
   :functions: fpga_bridge_ops

.. kernel-doc:: drivers/fpga/fpga-bridge.c
   :functions: devm_fpga_bridge_create

.. kernel-doc:: drivers/fpga/fpga-bridge.c
   :functions: fpga_bridge_register
   :functions: __fpga_bridge_register

.. kernel-doc:: drivers/fpga/fpga-bridge.c
   :functions: fpga_bridge_unregister
+4 −8
Original line number Diff line number Diff line
@@ -121,17 +121,13 @@ static int alt_fpga_bridge_probe(struct platform_device *pdev)
	/* Get f2s bridge configuration saved in handoff register */
	regmap_read(sysmgr, SYSMGR_ISWGRP_HANDOFF3, &priv->mask);

	br = devm_fpga_bridge_create(dev, F2S_BRIDGE_NAME,
	br = fpga_bridge_register(dev, F2S_BRIDGE_NAME,
				  &altera_fpga2sdram_br_ops, priv);
	if (!br)
		return -ENOMEM;
	if (IS_ERR(br))
		return PTR_ERR(br);

	platform_set_drvdata(pdev, br);

	ret = fpga_bridge_register(br);
	if (ret)
		return ret;

	dev_info(dev, "driver initialized with handoff %08x\n", priv->mask);

	if (!of_property_read_u32(dev->of_node, "bridge-enable", &enable)) {
+5 −5
Original line number Diff line number Diff line
@@ -244,14 +244,14 @@ static int altera_freeze_br_probe(struct platform_device *pdev)

	priv->base_addr = base_addr;

	br = devm_fpga_bridge_create(dev, FREEZE_BRIDGE_NAME,
	br = fpga_bridge_register(dev, FREEZE_BRIDGE_NAME,
				  &altera_freeze_br_br_ops, priv);
	if (!br)
		return -ENOMEM;
	if (IS_ERR(br))
		return PTR_ERR(br);

	platform_set_drvdata(pdev, br);

	return fpga_bridge_register(br);
	return 0;
}

static int altera_freeze_br_remove(struct platform_device *pdev)
+4 −8
Original line number Diff line number Diff line
@@ -180,19 +180,15 @@ static int alt_fpga_bridge_probe(struct platform_device *pdev)
		}
	}

	br = devm_fpga_bridge_create(dev, priv->name,
	br = fpga_bridge_register(dev, priv->name,
				  &altera_hps2fpga_br_ops, priv);
	if (!br) {
		ret = -ENOMEM;
	if (IS_ERR(br)) {
		ret = PTR_ERR(br);
		goto err;
	}

	platform_set_drvdata(pdev, br);

	ret = fpga_bridge_register(br);
	if (ret)
		goto err;

	return 0;

err:
+5 −5
Original line number Diff line number Diff line
@@ -68,14 +68,14 @@ static int fme_br_probe(struct platform_device *pdev)

	priv->pdata = dev_get_platdata(dev);

	br = devm_fpga_bridge_create(dev, "DFL FPGA FME Bridge",
	br = fpga_bridge_register(dev, "DFL FPGA FME Bridge",
				  &fme_bridge_ops, priv);
	if (!br)
		return -ENOMEM;
	if (IS_ERR(br))
		return PTR_ERR(br);

	platform_set_drvdata(pdev, br);

	return fpga_bridge_register(br);
	return 0;
}

static int fme_br_remove(struct platform_device *pdev)
Loading