From 87d1bed7d7d49923067ab45b68b9027a59c94caa Mon Sep 17 00:00:00 2001 From: John Wren Kennedy Date: Thu, 1 Apr 2021 19:46:14 +0000 Subject: [PATCH 1/8] @@DELPHIX_PATCHSET_START@@ This is a placeholder commit to separate the Ubuntu kernel source and our patches. Used by kernel_merge_with_upstream() in the linux-pkg repo. --- delphix | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 delphix diff --git a/delphix b/delphix new file mode 100644 index 0000000000000..e69de29bb2d1d From acc1a7f40a604b8c7dc2843836c1d5baa607f388 Mon Sep 17 00:00:00 2001 From: Pavel Zakharov Date: Tue, 9 Feb 2021 11:15:55 -0500 Subject: [PATCH 2/8] DLPX-71852 iSCSI: journal flooded with "Unable to locate Target IQN" messages (#2) --- drivers/target/iscsi/iscsi_target_login.c | 2 +- drivers/target/iscsi/iscsi_target_nego.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c index 90b870f234f03..7ecf561465657 100644 --- a/drivers/target/iscsi/iscsi_target_login.c +++ b/drivers/target/iscsi/iscsi_target_login.c @@ -1132,7 +1132,7 @@ void iscsi_target_login_sess_out(struct iscsit_conn *conn, if (!new_sess) goto old_sess_out; - pr_err("iSCSI Login negotiation failed.\n"); + pr_debug("iSCSI Login negotiation failed.\n"); iscsit_collect_login_stats(conn, ISCSI_STATUS_CLS_INITIATOR_ERR, ISCSI_LOGIN_STATUS_INIT_ERR); if (!zero_tsih || !conn->sess) diff --git a/drivers/target/iscsi/iscsi_target_nego.c b/drivers/target/iscsi/iscsi_target_nego.c index fa3fb5f4e6bc4..5cddf8e60b3e6 100644 --- a/drivers/target/iscsi/iscsi_target_nego.c +++ b/drivers/target/iscsi/iscsi_target_nego.c @@ -1234,7 +1234,7 @@ int iscsi_target_locate_portal( */ tiqn = iscsit_get_tiqn_for_login(t_buf); if (!tiqn) { - pr_err("Unable to locate Target IQN: %s in" + pr_debug("Unable to locate Target IQN: %s in" " Storage Node\n", t_buf); iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, ISCSI_LOGIN_STATUS_SVC_UNAVAILABLE); From a0cb575f622e6cddedde68cd300d7c2231785e7c Mon Sep 17 00:00:00 2001 From: Pavel Zakharov Date: Mon, 8 Mar 2021 18:11:08 -0500 Subject: [PATCH 3/8] DLPX-72065 Aborted iSCSI command never completes after LUN reset (#4) --- drivers/target/iscsi/iscsi_target_erl1.c | 23 +++++++++++++++++++---- drivers/target/target_core_transport.c | 3 ++- include/target/target_core_fabric.h | 1 + 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/drivers/target/iscsi/iscsi_target_erl1.c b/drivers/target/iscsi/iscsi_target_erl1.c index 6797200211836..26f3ecd25c28d 100644 --- a/drivers/target/iscsi/iscsi_target_erl1.c +++ b/drivers/target/iscsi/iscsi_target_erl1.c @@ -1102,6 +1102,18 @@ void iscsit_handle_dataout_timeout(struct timer_list *t) iscsit_inc_conn_usage_count(conn); + /* + * If the command was aborted, for instance following a LUN RESET, + * a dataout timeout might be normal. + */ + if (target_cmd_interrupted(&cmd->se_cmd)) { + pr_debug("DataOut timeout on interrupted cmd with" + " ITT[0x%08llx]\n", cmd->se_cmd.tag); + cmd->dataout_timer_flags &= ~ISCSI_TF_RUNNING; + iscsit_dec_conn_usage_count(conn); + return; + } + spin_lock_bh(&cmd->dataout_timeout_lock); if (cmd->dataout_timer_flags & ISCSI_TF_STOP) { spin_unlock_bh(&cmd->dataout_timeout_lock); @@ -1115,19 +1127,22 @@ void iscsit_handle_dataout_timeout(struct timer_list *t) if (!sess->sess_ops->ErrorRecoveryLevel) { pr_err("Unable to recover from DataOut timeout while" " in ERL=0, closing iSCSI connection for I_T Nexus" - " %s,i,0x%6phN,%s,t,0x%02x\n", + " %s,i,0x%6phN,%s,t,0x%02x, cmd ITT[0x%08llx]\n", sess->sess_ops->InitiatorName, sess->isid, - sess->tpg->tpg_tiqn->tiqn, (u32)sess->tpg->tpgt); + sess->tpg->tpg_tiqn->tiqn, (u32)sess->tpg->tpgt, + cmd->se_cmd.tag); goto failure; } if (++cmd->dataout_timeout_retries == na->dataout_timeout_retries) { pr_err("Command ITT: 0x%08x exceeded max retries" " for DataOUT timeout %u, closing iSCSI connection for" - " I_T Nexus %s,i,0x%6phN,%s,t,0x%02x\n", + " I_T Nexus %s,i,0x%6phN,%s,t,0x%02x," + " cmd ITT[0x%08llx]\n", cmd->init_task_tag, na->dataout_timeout_retries, sess->sess_ops->InitiatorName, sess->isid, - sess->tpg->tpg_tiqn->tiqn, (u32)sess->tpg->tpgt); + sess->tpg->tpg_tiqn->tiqn, (u32)sess->tpg->tpgt, + cmd->se_cmd.tag); goto failure; } diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 73d0d6133ac8f..d37b2641bfe50 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -882,7 +882,7 @@ static void target_abort_work(struct work_struct *work) target_handle_abort(cmd); } -static bool target_cmd_interrupted(struct se_cmd *cmd) +bool target_cmd_interrupted(struct se_cmd *cmd) { int post_ret; @@ -901,6 +901,7 @@ static bool target_cmd_interrupted(struct se_cmd *cmd) return false; } +EXPORT_SYMBOL(target_cmd_interrupted); /* May be called from interrupt context so must not sleep. */ void target_complete_cmd_with_sense(struct se_cmd *cmd, u8 scsi_status, diff --git a/include/target/target_core_fabric.h b/include/target/target_core_fabric.h index 3378ff9ee271c..4f136a98df63e 100644 --- a/include/target/target_core_fabric.h +++ b/include/target/target_core_fabric.h @@ -191,6 +191,7 @@ sense_reason_t transport_generic_new_cmd(struct se_cmd *); void target_put_cmd_and_wait(struct se_cmd *cmd); void target_execute_cmd(struct se_cmd *cmd); +bool target_cmd_interrupted(struct se_cmd *cmd); int transport_generic_free_cmd(struct se_cmd *, int); From 0b6597fac0cb26875eb5b96d08dfa4dcfc9c8004 Mon Sep 17 00:00:00 2001 From: Paul Dagnelie Date: Mon, 14 Nov 2022 13:49:55 -0800 Subject: [PATCH 4/8] DLPX-83697 iscsi target login should wait until tx/rx threads have properly started (#14) --- drivers/target/iscsi/iscsi_target.c | 2 ++ drivers/target/iscsi/iscsi_target_login.c | 3 +++ include/target/iscsi/iscsi_target_core.h | 1 + 3 files changed, 6 insertions(+) diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c index 1d25e64b068a0..f1eed1d49c8a0 100644 --- a/drivers/target/iscsi/iscsi_target.c +++ b/drivers/target/iscsi/iscsi_target.c @@ -3922,6 +3922,7 @@ int iscsi_target_tx_thread(void *arg) * connection recovery / failure event can be triggered externally. */ allow_signal(SIGINT); + complete(&conn->kthr_start_comp); while (!kthread_should_stop()) { /* @@ -4170,6 +4171,7 @@ int iscsi_target_rx_thread(void *arg) * connection recovery / failure event can be triggered externally. */ allow_signal(SIGINT); + complete(&conn->kthr_start_comp); /* * Wait for iscsi_post_login_handler() to complete before allowing * incoming iscsi/tcp socket I/O, and/or failing the connection. diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c index 7ecf561465657..d564f9ae4db97 100644 --- a/drivers/target/iscsi/iscsi_target_login.c +++ b/drivers/target/iscsi/iscsi_target_login.c @@ -660,6 +660,7 @@ int iscsit_start_kthreads(struct iscsit_conn *conn) ret = PTR_ERR(conn->tx_thread); goto out_bitmap; } + wait_for_completion(&conn->kthr_start_comp); conn->tx_thread_active = true; conn->rx_thread = kthread_run(iscsi_target_rx_thread, conn, @@ -669,6 +670,7 @@ int iscsit_start_kthreads(struct iscsit_conn *conn) ret = PTR_ERR(conn->rx_thread); goto out_tx; } + wait_for_completion(&conn->kthr_start_comp); conn->rx_thread_active = true; return 0; @@ -1064,6 +1066,7 @@ static struct iscsit_conn *iscsit_alloc_conn(struct iscsi_np *np) init_completion(&conn->rx_half_close_comp); init_completion(&conn->tx_half_close_comp); init_completion(&conn->rx_login_comp); + init_completion(&conn->kthr_start_comp); spin_lock_init(&conn->cmd_lock); spin_lock_init(&conn->conn_usage_lock); spin_lock_init(&conn->immed_queue_lock); diff --git a/include/target/iscsi/iscsi_target_core.h b/include/target/iscsi/iscsi_target_core.h index 60af7c63b34e6..002f37b6366f5 100644 --- a/include/target/iscsi/iscsi_target_core.h +++ b/include/target/iscsi/iscsi_target_core.h @@ -550,6 +550,7 @@ struct iscsit_conn { struct completion conn_logout_comp; struct completion tx_half_close_comp; struct completion rx_half_close_comp; + struct completion kthr_start_comp; /* socket used by this connection */ struct socket *sock; void (*orig_data_ready)(struct sock *); From 47bdb646fc8f96d9846493c377c1dae492e53b6e Mon Sep 17 00:00:00 2001 From: Don Brady Date: Fri, 9 Dec 2022 16:21:35 -0700 Subject: [PATCH 5/8] DLPX-83701 Make function mnt_add_count() traceable (#16) --- fs/namespace.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/namespace.c b/fs/namespace.c index a6675c2a23839..1e7a8b23c09d5 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -169,7 +169,7 @@ void mnt_release_group_id(struct mount *mnt) /* * vfsmount lock must be held for read */ -static inline void mnt_add_count(struct mount *mnt, int n) +static noinline __noclone void mnt_add_count(struct mount *mnt, int n) { #ifdef CONFIG_SMP this_cpu_add(mnt->mnt_pcp->mnt_count, n); @@ -1704,7 +1704,8 @@ static int do_umount_root(struct super_block *sb) return ret; } -static int do_umount(struct mount *mnt, int flags) +/* force a bpftrace dynamic function probe here */ +static noinline __noclone int do_umount(struct mount *mnt, int flags) { struct super_block *sb = mnt->mnt.mnt_sb; int retval; From 717e14e91c00435f49521d90790a84e4850c7671 Mon Sep 17 00:00:00 2001 From: Palash Gandhi Date: Thu, 17 Oct 2024 09:07:14 -0700 Subject: [PATCH 6/8] Extract PKG_ABI from mutated string --- debian/rules.d/0-common-vars.mk | 2 +- include/asm-generic/mshyperv.h | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk index 5cd38f6f1b6c9..98347b798c5f1 100644 --- a/debian/rules.d/0-common-vars.mk +++ b/debian/rules.d/0-common-vars.mk @@ -201,7 +201,7 @@ kmake = make ARCH=$(build_arch) \ KERNELRELEASE=$(abi_release)-$(target_flavour) \ CONFIG_DEBUG_SECTION_MISMATCH=y \ KBUILD_BUILD_VERSION="$(uploadnum)" \ - CFLAGS_MODULE="-DPKG_ABI=$(abinum)" \ + CFLAGS_MODULE='-DPKG_ABI=\"$(abinum)\"' \ PYTHON=$(PYTHON) ifneq ($(LOCAL_ENV_CC),) kmake += CC="$(LOCAL_ENV_CC)" DISTCC_HOSTS="$(LOCAL_ENV_DISTCC_HOSTS)" diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h index 1cfc69cb7efbe..ee759c8245f64 100644 --- a/include/asm-generic/mshyperv.h +++ b/include/asm-generic/mshyperv.h @@ -18,6 +18,7 @@ #ifndef _ASM_GENERIC_MSHYPERV_H #define _ASM_GENERIC_MSHYPERV_H +#include #include #include #include @@ -120,7 +121,7 @@ static inline u64 hv_do_rep_hypercall(u16 code, u16 rep_count, u16 varhead_size, * Preserve the ability to 'make deb-pkg' since PKG_ABI is provided * by the Ubuntu build rules. */ -#define PKG_ABI 0 +#define PKG_ABI "0" #endif /* Generate the guest OS identifier as described in the Hyper-V TLFS */ @@ -130,7 +131,15 @@ static inline u64 hv_generate_guest_id(u64 kernel_version) guest_id = (((u64)HV_LINUX_VENDOR_ID) << 48); guest_id |= (kernel_version << 16); - guest_id |= PKG_ABI; + /* + * Delphix mutates the ABI number by appending a date and the commit hash. Strip it. + */ + char *token; + char *pkg_abi_str = PKG_ABI; + token = strsep(&pkg_abi_str, "-"); + unsigned long abi_number = simple_strtoul(token, NULL, 10); + guest_id |= (abi_number << 8); + return guest_id; } From 617709f35d0f103c27d006086121cd2f69f48275 Mon Sep 17 00:00:00 2001 From: Palash Gandhi Date: Wed, 16 Oct 2024 17:42:09 -0700 Subject: [PATCH 7/8] Reintroduce fix from DLPX-87344 to build only with amd64 annotations --- debian.master/config/annotations | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian.master/config/annotations b/debian.master/config/annotations index 209a277591179..ed5438c3e59f4 100644 --- a/debian.master/config/annotations +++ b/debian.master/config/annotations @@ -1,7 +1,7 @@ # Menu: HEADER # FORMAT: 4 -# ARCH: amd64 arm64 armhf ppc64el riscv64 s390x -# FLAVOUR: amd64-generic arm64-generic arm64-generic-64k armhf-generic ppc64el-generic riscv64-generic s390x-generic +# ARCH: amd64 +# FLAVOUR: amd64-generic CONFIG_ACCESSIBILITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> CONFIG_ACCESSIBILITY note<'LP: #1967702'> From 2b86a4ba1aa7f9464770eb5485945d234b61089f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 17:53:49 +0000 Subject: [PATCH 8/8] build(deps): bump setuptools in /drivers/gpu/drm/ci/xfails Bumps [setuptools](https://github.com/pypa/setuptools) from 68.0.0 to 70.0.0. - [Release notes](https://github.com/pypa/setuptools/releases) - [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst) - [Commits](https://github.com/pypa/setuptools/compare/v68.0.0...v70.0.0) --- updated-dependencies: - dependency-name: setuptools dependency-version: 70.0.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- drivers/gpu/drm/ci/xfails/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ci/xfails/requirements.txt b/drivers/gpu/drm/ci/xfails/requirements.txt index e9994c9db799b..5e6d48d98e4e1 100644 --- a/drivers/gpu/drm/ci/xfails/requirements.txt +++ b/drivers/gpu/drm/ci/xfails/requirements.txt @@ -11,7 +11,7 @@ requests==2.31.0 requests-toolbelt==1.0.0 ruamel.yaml==0.17.32 ruamel.yaml.clib==0.2.7 -setuptools==68.0.0 +setuptools==70.0.0 tenacity==8.2.3 urllib3==2.0.7 wheel==0.41.1