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

!8221 Backport 5.10.207- 5.10.208 LTS patches from upstream

Merge Pull Request from: @sanglipeng 
 
https://gitee.com/openeuler/kernel/issues/I9T22K

Conflicts:
Already merged(10):
6963d049a422  Revert "scsi: core: Always send batch on reset or error handling command"
cea19678bf55  Revert "scsi: core: Use a structure member to track the SCSI command submitter"
212929776027  Revert "scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request"
a5edb4070293  Revert "scsi: core: Make scsi_get_lba() return the LBA"
f60f60e1deca  Revert "scsi: core: Introduce scsi_get_sector()"
e30419672e3a  Revert "scsi: core: Add scsi_prot_ref_tag() helper"
a7fd5c7ba4b9  scsi: core: Always send batch on reset or error handling command
dd56c5790dc3  Revert "scsi: core: Always send batch on reset or error handling command"
03585b18b715  drm/qxl: fix UAF on handle creation
25d1e7be85cf  netfilter: nf_tables: Reject tables of unsupported family

Rejected(2):
0ba8c7ef197c  x86/kprobes: fix incorrect return address calculation in kprobe_emulate_call_indirect
929ba86476b3  Revert "nvme: use command_id instead of req->tag in trace_nvme_complete_rq()"

Total patches: 49 - 10 - 2 = 37 
 
Link:https://gitee.com/openeuler/kernel/pulls/8221

 

Reviewed-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents 94b43519 f669e0e4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -808,12 +808,12 @@ static int __init sunxi_mc_smp_init(void)
			break;
	}

	is_a83t = sunxi_mc_smp_data[i].is_a83t;

	of_node_put(node);
	if (ret)
		return -ENODEV;

	is_a83t = sunxi_mc_smp_data[i].is_a83t;

	if (!sunxi_mc_smp_cpu_table_init())
		return -EINVAL;

+3 −3
Original line number Diff line number Diff line
@@ -58,10 +58,10 @@ _GLOBAL(ppc_save_regs)
	lbz	r0,PACAIRQSOFTMASK(r13)
	PPC_STL	r0,SOFTE-STACK_FRAME_OVERHEAD(r3)
#endif
	/* go up one stack frame for SP */
	PPC_LL	r4,0(r1)
	PPC_STL	r4,1*SZL(r3)
	/* store current SP */
	PPC_STL r1,1*SZL(r3)
	/* get caller's LR */
	PPC_LL	r4,0(r1)
	PPC_LL	r0,LRSAVE(r4)
	PPC_STL	r0,_LINK-STACK_FRAME_OVERHEAD(r3)
	mflr	r0
+51 −0
Original line number Diff line number Diff line
@@ -279,6 +279,51 @@ static char ohci_driver_name[] = KBUILD_MODNAME;
#define QUIRK_TI_SLLZ059		0x20
#define QUIRK_IR_WAKE			0x40

// On PCI Express Root Complex in any type of AMD Ryzen machine, VIA VT6306/6307/6308 with Asmedia
// ASM1083/1085 brings an inconvenience that the read accesses to 'Isochronous Cycle Timer' register
// (at offset 0xf0 in PCI I/O space) often causes unexpected system reboot. The mechanism is not
// clear, since the read access to the other registers is enough safe; e.g. 'Node ID' register,
// while it is probable due to detection of any type of PCIe error.
#define QUIRK_REBOOT_BY_CYCLE_TIMER_READ	0x80000000

#if IS_ENABLED(CONFIG_X86)

static bool has_reboot_by_cycle_timer_read_quirk(const struct fw_ohci *ohci)
{
	return !!(ohci->quirks & QUIRK_REBOOT_BY_CYCLE_TIMER_READ);
}

#define PCI_DEVICE_ID_ASMEDIA_ASM108X	0x1080

static bool detect_vt630x_with_asm1083_on_amd_ryzen_machine(const struct pci_dev *pdev)
{
	const struct pci_dev *pcie_to_pci_bridge;

	// Detect any type of AMD Ryzen machine.
	if (!static_cpu_has(X86_FEATURE_ZEN))
		return false;

	// Detect VIA VT6306/6307/6308.
	if (pdev->vendor != PCI_VENDOR_ID_VIA)
		return false;
	if (pdev->device != PCI_DEVICE_ID_VIA_VT630X)
		return false;

	// Detect Asmedia ASM1083/1085.
	pcie_to_pci_bridge = pdev->bus->self;
	if (pcie_to_pci_bridge->vendor != PCI_VENDOR_ID_ASMEDIA)
		return false;
	if (pcie_to_pci_bridge->device != PCI_DEVICE_ID_ASMEDIA_ASM108X)
		return false;

	return true;
}

#else
#define has_reboot_by_cycle_timer_read_quirk(ohci) false
#define detect_vt630x_with_asm1083_on_amd_ryzen_machine(pdev)	false
#endif

/* In case of multiple matches in ohci_quirks[], only the first one is used. */
static const struct {
	unsigned short vendor, device, revision, flags;
@@ -1713,6 +1758,9 @@ static u32 get_cycle_time(struct fw_ohci *ohci)
	s32 diff01, diff12;
	int i;

	if (has_reboot_by_cycle_timer_read_quirk(ohci))
		return 0;

	c2 = reg_read(ohci, OHCI1394_IsochronousCycleTimer);

	if (ohci->quirks & QUIRK_CYCLE_TIMER) {
@@ -3615,6 +3663,9 @@ static int pci_probe(struct pci_dev *dev,
	if (param_quirks)
		ohci->quirks = param_quirks;

	if (detect_vt630x_with_asm1083_on_amd_ryzen_machine(dev))
		ohci->quirks |= QUIRK_REBOOT_BY_CYCLE_TIMER_READ;

	/*
	 * Because dma_alloc_coherent() allocates at least one page,
	 * we save space by using a common buffer for the AR request/
+1 −1
Original line number Diff line number Diff line
@@ -5584,7 +5584,7 @@ void intel_dp_process_phy_request(struct intel_dp *intel_dp)
	intel_dp_autotest_phy_ddi_enable(intel_dp, data->num_lanes);

	drm_dp_set_phy_test_pattern(&intel_dp->aux, data,
				    link_status[DP_DPCD_REV]);
				    intel_dp->dpcd[DP_DPCD_REV]);
}

static u8 intel_dp_autotest_phy_pattern(struct intel_dp *intel_dp)
+3 −1
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
 * i2c-core.h - interfaces internal to the I2C framework
 */

#include <linux/kconfig.h>
#include <linux/rwsem.h>

struct i2c_devinfo {
@@ -29,7 +30,8 @@ int i2c_dev_irq_from_resources(const struct resource *resources,
 */
static inline bool i2c_in_atomic_xfer_mode(void)
{
	return system_state > SYSTEM_RUNNING && !preemptible();
	return system_state > SYSTEM_RUNNING &&
	       (IS_ENABLED(CONFIG_PREEMPT_COUNT) ? !preemptible() : irqs_disabled());
}

static inline int __i2c_lock_bus_helper(struct i2c_adapter *adap)
Loading