4.15.10-stable review
Subsystems (6)
Greg Kroah-Hartman
maintainerPATCH 133/146 scsi: qla2xxx: Relogin to target port on a cable swap
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit 5ef696aa9f3ccf999552d924c4e21a348f2bbea9 upstream.
If user swaps one target port for another target port for same switch port, the new target port is not being recognized by the driver. Current code assumes that old Target port has recovered from link down. The fix will ask switch what is the WWPN of a specific NportID (GPNID) rather than assuming it's the same Target port which has came back.
--- drivers/scsi/qla2xxx/qla_gs.c | 170 +++++++++++++++++++++++++++++--------- drivers/scsi/qla2xxx/qla_init.c | 6 - drivers/scsi/qla2xxx/qla_os.c | 35 +++++++ drivers/scsi/qla2xxx/qla_target.c | 35 ++++++- 4 files changed, 197 insertions(+), 49 deletions(-)
drivers/scsi/qla2xxx/qla_gs.c +132 -38
@@ -3171,43 +3171,136 @@ void qla24xx_async_gpnid_done(scsi_qla_hvoid qla24xx_handle_gpnid_event (scsi_qla_host_t *vha,struct event_arg *ea) { -fc_port_t *fcport; -unsigned long flags; +fc_port_t *fcport, *conflict, *t; -spin_lock_irqsave (&vha->hw->tgt.sess_lock, flags); - fcport =qla2x00_find_fcport_by_wwpn (vha, ea->port_name,1 ); -spin_unlock_irqrestore (&vha->hw->tgt.sess_lock, flags); - -if (fcport) { -/* cable moved. just plugged in */ - fcport->rscn_gen++; - fcport->d_id = ea->id; - fcport->scan_state =QLA_FCPORT_FOUND ; - fcport->flags |=FCF_FABRIC_DEVICE ; - -switch (fcport->disc_state) { -case DSC_DELETED : -ql_dbg (ql_dbg_disc, vha,0x210d , -"%s %d %8phC login\n" , __func__, __LINE__, - fcport->port_name); -qla24xx_fcport_handle_login (vha, fcport); -break ; -case DSC_DELETE_PEND : -break ; -default : -ql_dbg (ql_dbg_disc, vha,0x2064 , -"%s %d %8phC post del sess\n" , - __func__, __LINE__, fcport->port_name); -qlt_schedule_sess_for_deletion_lock (fcport); -break ; +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %d port_id: %06x\n" , + __func__, __LINE__, ea->id.b24); + +if (ea->rc) { +/* cable is disconnected */ +list_for_each_entry_safe (fcport, t, &vha->vp_fcports, list) { +if (fcport->d_id.b24 == ea->id.b24) { +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %d %8phC DS %d\n" , + __func__, __LINE__, + fcport->port_name, + fcport->disc_state); + fcport->scan_state =QLA_FCPORT_SCAN ; +switch (fcport->disc_state) { +case DSC_DELETED : +case DSC_DELETE_PEND : +break ; +default : +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %d %8phC post del sess\n" , + __func__, __LINE__, + fcport->port_name); +qlt_schedule_sess_for_deletion_lock + (fcport); +break ; + } + } } }else { -/* create new fcport */ -ql_dbg (ql_dbg_disc, vha,0x2065 , -"%s %d %8phC post new sess\n" , - __func__, __LINE__, ea->port_name); - -qla24xx_post_newsess_work (vha, &ea->id, ea->port_name,NULL ); +/* cable is connected */ + fcport =qla2x00_find_fcport_by_wwpn (vha, ea->port_name,1 ); +if (fcport) { +list_for_each_entry_safe (conflict, t, &vha->vp_fcports, + list) { +if ((conflict->d_id.b24 == ea->id.b24) && + (fcport != conflict)) { +/* 2 fcports with conflict Nport ID or +* an existing fcport is having nport ID +* conflict with new fcport. +*/ + +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %d %8phC DS %d\n" , + __func__, __LINE__, + conflict->port_name, + conflict->disc_state); + conflict->scan_state =QLA_FCPORT_SCAN ; +switch (conflict->disc_state) { +case DSC_DELETED : +case DSC_DELETE_PEND : +break ; +default : +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %d %8phC post del sess\n" , + __func__, __LINE__, + conflict->port_name); +qlt_schedule_sess_for_deletion_lock + (conflict); +break ; + } + } + } + + fcport->rscn_gen++; + fcport->scan_state =QLA_FCPORT_FOUND ; + fcport->flags |=FCF_FABRIC_DEVICE ; +switch (fcport->disc_state) { +case DSC_LOGIN_COMPLETE : +/* recheck session is still intact. */ +ql_dbg (ql_dbg_disc, vha,0x210d , +"%s %d %8phC revalidate session with ADISC\n" , + __func__, __LINE__, fcport->port_name); +qla24xx_post_gpdb_work (vha, fcport, +PDO_FORCE_ADISC ); +break ; +case DSC_DELETED : +ql_dbg (ql_dbg_disc, vha,0x210d , +"%s %d %8phC login\n" , __func__, __LINE__, + fcport->port_name); + fcport->d_id = ea->id; +qla24xx_fcport_handle_login (vha, fcport); +break ; +case DSC_DELETE_PEND : + fcport->d_id = ea->id; +break ; +default : + fcport->d_id = ea->id; +break ; + } + }else { +list_for_each_entry_safe (conflict, t, &vha->vp_fcports, + list) { +if (conflict->d_id.b24 == ea->id.b24) { +/* 2 fcports with conflict Nport ID or +* an existing fcport is having nport ID +* conflict with new fcport. +*/ +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %d %8phC DS %d\n" , + __func__, __LINE__, + conflict->port_name, + conflict->disc_state); + + conflict->scan_state =QLA_FCPORT_SCAN ; +switch (conflict->disc_state) { +case DSC_DELETED : +case DSC_DELETE_PEND : +break ; +default : +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %d %8phC post del sess\n" , + __func__, __LINE__, + conflict->port_name); +qlt_schedule_sess_for_deletion_lock + (conflict); +break ; + } + } + } + +/* create new fcport */ +ql_dbg (ql_dbg_disc, vha,0x2065 , +"%s %d %8phC post new sess\n" , + __func__, __LINE__, ea->port_name); +qla24xx_post_newsess_work (vha, &ea->id, + ea->port_name,NULL ); + } } }
@@ -3248,12 +3341,13 @@ static void qla2x00_async_gpnid_sp_done(spin_unlock_irqrestore (&vha->hw->tgt.sess_lock, flags);if (res) { -if (res ==QLA_FUNCTION_TIMEOUT ) +if (res ==QLA_FUNCTION_TIMEOUT ) {qla24xx_post_gpnid_work (sp->vha, &ea.id); - sp->free (sp); -return ; + sp->free (sp); +return ; + } }else if (sp->gen1) { -/* There was anoter RSNC for this Nport ID */ +/* There was another RSCN for this Nport ID */ qla24xx_post_gpnid_work (sp->vha, &ea.id); sp->free (sp);return ;
drivers/scsi/qla2xxx/qla_init.c +4 -2
@@ -925,6 +925,9 @@ void qla24xx_handle_gpdb_event(scsi_qla_* must have triggered the session to be re-validate. * session is still valid. */ +ql_dbg (ql_dbg_disc, vha,0x20d6 , +"%s %d %8phC session revalidate success\n" , + __func__, __LINE__, fcport->port_name); fcport->disc_state =DSC_LOGIN_COMPLETE ; }spin_unlock_irqrestore (&vha->hw->tgt.sess_lock, flags);
@@ -1049,9 +1052,8 @@ void qla24xx_handle_rscn_event(fc_port_tswitch (fcport->disc_state) {case DSC_DELETED :case DSC_LOGIN_COMPLETE : -qla24xx_post_gidpn_work (fcport->vha, fcport); +qla24xx_post_gpnid_work (fcport->vha, &ea->id);break ; -default :break ; }
drivers/scsi/qla2xxx/qla_os.c +32 -3
@@ -4760,10 +4760,39 @@ void qla24xx_create_new_sess(struct scsispin_unlock_irqrestore (&vha->hw->tgt.sess_lock, flags);if (fcport) { -if (pla) +if (pla) {qlt_plogi_ack_unref (vha, pla); -else -qla24xx_async_gffid (vha, fcport); + }else { +spin_lock_irqsave (&vha->hw->tgt.sess_lock, flags); + tfcp =qla2x00_find_fcport_by_nportid (vha, + &e->u.new_sess.id,1 ); +if (tfcp && (tfcp != fcport)) { +/* +* We have a conflict fcport with same NportID. +*/ +ql_dbg (ql_dbg_disc, vha,0xffff , +"%s %8phC found conflict b4 add. DS %d LS %d\n" , + __func__, tfcp->port_name, tfcp->disc_state, + tfcp->fw_login_state); + +switch (tfcp->disc_state) { +case DSC_DELETED : +break ; +case DSC_DELETE_PEND : + fcport->login_pause =1 ; + tfcp->conflict = fcport; +break ; +default : + fcport->login_pause =1 ; + tfcp->conflict = fcport; +qlt_schedule_sess_for_deletion_lock + (tfcp); +break ; + } + } +spin_unlock_irqrestore (&vha->hw->tgt.sess_lock, flags); +qla24xx_async_gnl (vha, fcport); + } }if (free_fcport) {
drivers/scsi/qla2xxx/qla_target.c +29 -6
@@ -890,6 +890,17 @@ qlt_plogi_ack_link(struct scsi_qla_host iocb->u.isp24.port_id[1 ], iocb->u.isp24.port_id[0 ], pla->ref_count, pla, link); +if (link ==QLT_PLOGI_LINK_CONFLICT ) { +switch (sess->disc_state) { +case DSC_DELETED : +case DSC_DELETE_PEND : + pla->ref_count--; +return ; +default : +break ; + } + } +if (sess->plogi_link[link])qlt_plogi_ack_unref (vha, sess->plogi_link[link]);
@@ -4737,6 +4748,10 @@ static int qlt_24xx_handle_els(struct sc sess->d_id = port_id; sess->login_gen++; +ql_dbg (ql_dbg_disc, vha,0x20f9 , +"%s %d %8phC DS %d\n" , + __func__, __LINE__, sess->port_name, sess->disc_state); +switch (sess->disc_state) {case DSC_DELETED :qlt_plogi_ack_unref (vha, pla);
@@ -4786,12 +4801,20 @@ static int qlt_24xx_handle_els(struct sc }if (conflict_sess) { -ql_dbg (ql_dbg_tgt_mgt, vha,0xf09b , -"PRLI with conflicting sess %p port %8phC\n" , - conflict_sess, conflict_sess->port_name); -qlt_send_term_imm_notif (vha, iocb,1 ); - res =0 ; -break ; +switch (conflict_sess->disc_state) { +case DSC_DELETED : +case DSC_DELETE_PEND : +break ; +default : +ql_dbg (ql_dbg_tgt_mgt, vha,0xf09b , +"PRLI with conflicting sess %p port %8phC\n" , + conflict_sess, conflict_sess->port_name); + conflict_sess->fw_login_state = +DSC_LS_PORT_UNAVAIL ; +qlt_send_term_imm_notif (vha, iocb,1 ); + res =0 ; +break ; + } }if (sess !=NULL ) {
Greg Kroah-Hartman
maintainerPATCH 134/146 scsi: qla2xxx: Fix Relogin being triggered too fast
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit 4005a995668b8fd58f4cf1460dd4cf63efa18363 upstream.
Current driver design schedules relogin process via DPC thread every 1 second. In a large fabric, this DPC thread tries to schedule too many jobs and might get overloaded. As a result of this processing of DPC thread, it can schedule relogin earlier than 1 second.
--- drivers/scsi/qla2xxx/qla_def.h | 1 + drivers/scsi/qla2xxx/qla_mid.c | 22 ++++++++++++++-------- drivers/scsi/qla2xxx/qla_os.c | 22 ++++++++++++++-------- 3 files changed, 29 insertions(+), 16 deletions(-)
drivers/scsi/qla2xxx/qla_def.h +1 -0
@@ -4110,6 +4110,7 @@ typedef struct scsi_qla_host {#define LOOP_READY 5#define LOOP_DEAD 6 +unsigned long relogin_jif;unsigned long dpc_flags;#define RESET_MARKER_NEEDED 0/* Send marker to ISP. */ #define RESET_ACTIVE 1
drivers/scsi/qla2xxx/qla_mid.c +14 -8
@@ -343,15 +343,21 @@ qla2x00_do_dpc_vp(scsi_qla_host_t *vha) "FCPort update end.\n"); } -if ((test_and_clear_bit (RELOGIN_NEEDED , &vha->dpc_flags)) && - !test_bit (LOOP_RESYNC_NEEDED , &vha->dpc_flags) && -atomic_read (&vha->loop_state) !=LOOP_DOWN ) { +if (test_bit (RELOGIN_NEEDED , &vha->dpc_flags) && + !test_bit (LOOP_RESYNC_NEEDED , &vha->dpc_flags) && +atomic_read (&vha->loop_state) !=LOOP_DOWN ) { -ql_dbg (ql_dbg_dpc, vha,0x4018 , -"Relogin needed scheduled.\n" ); -qla2x00_relogin (vha); -ql_dbg (ql_dbg_dpc, vha,0x4019 , -"Relogin needed end.\n" ); +if (!vha->relogin_jif || +time_after_eq (jiffies, vha->relogin_jif)) { + vha->relogin_jif = jiffies +HZ ; +clear_bit (RELOGIN_NEEDED , &vha->dpc_flags); + +ql_dbg (ql_dbg_dpc, vha,0x4018 , +"Relogin needed scheduled.\n" ); +qla2x00_relogin (vha); +ql_dbg (ql_dbg_dpc, vha,0x4019 , +"Relogin needed end.\n" ); + } } if (test_and_clear_bit(RESET_MARKER_NEEDED, &vha->dpc_flags) &&
drivers/scsi/qla2xxx/qla_os.c +14 -8
@@ -4905,7 +4905,7 @@ void qla2x00_relogin(struct scsi_qla_hos*/ if (atomic_read (&fcport->state) !=FCS_ONLINE && fcport->login_retry && !(fcport->flags &FCF_ASYNC_SENT )) { - fcport->login_retry--; +if (fcport->flags &FCF_FABRIC_DEVICE ) { ql_dbg(ql_dbg_disc, fcport->vha, 0x2108, "%s %8phC DS %d LS %d\n", __func__,
@@ -4916,6 +4916,7 @@ void qla2x00_relogin(struct scsi_qla_hos ea.fcport = fcport;qla2x00_fcport_event_handler (vha, &ea); }else { + fcport->login_retry--; status =qla2x00_local_device_login (vha, fcport);if (status ==QLA_SUCCESS ) {
@@ -5898,16 +5899,21 @@ qla2x00_do_dpc(void *data) }/* Retry each device up to login retry count */ -if ((test_and_clear_bit (RELOGIN_NEEDED , - &base_vha->dpc_flags)) && +if (test_bit (RELOGIN_NEEDED , &base_vha->dpc_flags) && !test_bit (LOOP_RESYNC_NEEDED , &base_vha->dpc_flags) &&atomic_read (&base_vha->loop_state) !=LOOP_DOWN ) { -ql_dbg (ql_dbg_dpc, base_vha,0x400d , -"Relogin scheduled.\n" ); -qla2x00_relogin (base_vha); -ql_dbg (ql_dbg_dpc, base_vha,0x400e , -"Relogin end.\n" ); +if (!base_vha->relogin_jif || +time_after_eq (jiffies, base_vha->relogin_jif)) { + base_vha->relogin_jif = jiffies +HZ ; +clear_bit (RELOGIN_NEEDED , &base_vha->dpc_flags); + +ql_dbg (ql_dbg_dpc, base_vha,0x400d , +"Relogin scheduled.\n" ); +qla2x00_relogin (base_vha); +ql_dbg (ql_dbg_dpc, base_vha,0x400e , +"Relogin end.\n" ); + } } loop_resync_check: if (test_and_clear_bit(LOOP_RESYNC_NEEDED,
Greg Kroah-Hartman
maintainerPATCH 135/146 scsi: qla2xxx: Fix PRLI state check
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit 23c645595dab7b414f23639d0a428a07515807df upstream.
Get Port Database MBX cmd is to validate current Login state upon PRLI completion. Current code looks at the last login state for re-validation which was incorrect. This patch removed incorrect state check.
--- drivers/scsi/qla2xxx/qla_mbx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/scsi/qla2xxx/qla_mbx.c +1 -2
@@ -6160,8 +6160,7 @@ int __qla24xx_parse_gpdb(struct scsi_qla }/* Check for logged in state. */ -if (current_login_state !=PDS_PRLI_COMPLETE && - last_login_state !=PDS_PRLI_COMPLETE ) { +if (current_login_state !=PDS_PRLI_COMPLETE ) {ql_dbg (ql_dbg_mbx, vha,0x119a ,"Unable to verify login-state (%x/%x) for loop_id %x.\n" , current_login_state, last_login_state, fcport->loop_id);
Greg Kroah-Hartman
maintainerPATCH 136/146 scsi: qla2xxx: Fix abort command deadlock due to spinlock
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit b0dcce746b32ac573343ad39cb3dc485030de95e upstream.
Original code acquires hardware_lock to add Abort IOCB onto driver request queue for processing. However, abort_command() will also acquire hardware lock to look up sp pointer before issuing abort IOCB command resulting into a deadlock. This patch safely removes the possible deadlock scenario by removing extra spinlock.
--- drivers/scsi/qla2xxx/qla_iocb.c | 3 --- 1 file changed, 3 deletions(-)
drivers/scsi/qla2xxx/qla_iocb.c +0 -3
@@ -2394,7 +2394,6 @@ qla2x00_els_dcmd_iocb_timeout(void *datastruct scsi_qla_host *vha = sp->vha;struct qla_hw_data *ha = vha->hw;struct srb_iocb *lio = &sp->u.iocb_cmd; -unsigned long flags =0 ; ql_dbg(ql_dbg_io, vha, 0x3069, "%s Timeout, hdl=%x, portid=%02x%02x%02x\n",
@@ -2402,7 +2401,6 @@ qla2x00_els_dcmd_iocb_timeout(void *data fcport->d_id.b.al_pa);/* Abort the exchange */ -spin_lock_irqsave (&ha->hardware_lock, flags);if (ha->isp_ops->abort_command (sp)) {ql_dbg (ql_dbg_io, vha,0x3070 ,"mbx abort_command failed.\n" );
@@ -2410,7 +2408,6 @@ qla2x00_els_dcmd_iocb_timeout(void *dataql_dbg (ql_dbg_io, vha,0x3071 ,"mbx abort_command success.\n" ); } -spin_unlock_irqrestore (&ha->hardware_lock, flags);complete (&lio->u.els_logo.comp); }
Greg Kroah-Hartman
maintainerPATCH 137/146 scsi: qla2xxx: Replace fcport alloc with qla2x00_alloc_fcport
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit 063b36d6b0ad74c748d536f5cb47bac2f850a0fa upstream.
Current code manually allocate an fcport structure that is not properly initialize. Replace kzalloc with qla2x00_alloc_fcport, so that all fields are initialized. Also set set scan flag to port found
--- drivers/scsi/qla2xxx/qla_target.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/qla2xxx/qla_target.c +1 -1
@@ -5782,7 +5782,7 @@ static fc_port_t *qlt_get_port_database(unsigned long flags;u8 newfcport =0 ; - fcport =kzalloc (sizeof (*fcport),GFP_KERNEL ); + fcport =qla2x00_alloc_fcport (vha,GFP_KERNEL );if (!fcport) { ql_dbg(ql_dbg_tgt_mgt, vha, 0xf06f, "qla_target(%d): Allocation of tmp FC port failed",
Greg Kroah-Hartman
maintainerPATCH 138/146 scsi: qla2xxx: Fix scan state field for fcport
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit 76f9a2dd4c60183879a1898bcd56a1dbab19a85d upstream.
Add correct value of scan_state field indicating state of the FC port
--- drivers/scsi/qla2xxx/qla_target.c | 1 + 1 file changed, 1 insertion(+)
drivers/scsi/qla2xxx/qla_target.c +1 -0
@@ -5811,6 +5811,7 @@ static fc_port_t *qlt_get_port_database( tfcp->port_type = fcport->port_type; tfcp->supported_classes = fcport->supported_classes; tfcp->flags |= fcport->flags; + tfcp->scan_state =QLA_FCPORT_FOUND ; del = fcport; fcport = tfcp;
Greg Kroah-Hartman
maintainerPATCH 139/146 scsi: qla2xxx: Clear loop id after delete
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit ba743f9148e951abe1c94f89c174ec8e44fb145b upstream.
Clear loop id after delete to prevent session invalidation of stale session.
--- drivers/scsi/qla2xxx/qla_target.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
drivers/scsi/qla2xxx/qla_target.c +4 -5
@@ -985,7 +985,7 @@ static void qlt_free_session_done(structqlt_send_first_logo (vha, &logo); } -if (sess->logout_on_delete) { +if (sess->logout_on_delete && sess->loop_id !=FC_NO_LOOP_ID ) {int rc; rc =qla2x00_post_async_logout_work (vha, sess,NULL );
@@ -1044,8 +1044,7 @@ static void qlt_free_session_done(struct sess->login_succ =0 ; } -if (sess->chip_reset != ha->base_qpair->chip_reset) -qla2x00_clear_loop_id (sess); +qla2x00_clear_loop_id (sess);if (sess->conflict) { sess->conflict->login_pause =0 ;
@@ -4599,9 +4598,9 @@ qlt_find_sess_invalidate_other(scsi_qla_"Invalidating sess %p loop_id %d wwn %llx.\n" , other_sess, other_sess->loop_id, other_wwn); - other_sess->keep_nport_handle =1 ; - *conflict_sess = other_sess; +if (other_sess->disc_state !=DSC_DELETED ) + *conflict_sess = other_sess;qlt_schedule_sess_for_deletion (other_sess, true); }
Greg Kroah-Hartman
maintainerPATCH 140/146 scsi: qla2xxx: Defer processing of GS IOCB calls
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Giridhar Malavali <[email protected]>
commit 5d3300a9b8b122b4743aed5a178bf12c87e2b8c9 upstream.
This patch defers processing of GS IOCB calls from interrupt context to avoid hardware spinlock recursion.
Following stack trace is seen
? mod_timer+0x193/0x330 ? ql_dbg+0xa7/0xf0 [qla2xxx] _raw_spin_lock_irqsave+0x31/0x40 qla2x00_start_sp+0x3b/0x250 [qla2xxx] qla24xx_async_gnl+0x1d3/0x240 [qla2xxx] qla24xx_fcport_handle_login+0x285/0x290 [qla2xxx] ? vprintk_func+0x20/0x50
--- drivers/scsi/qla2xxx/qla_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/scsi/qla2xxx/qla_init.c +2 -2
@@ -975,7 +975,7 @@ int qla24xx_fcport_handle_login(struct sql_dbg (ql_dbg_disc, vha,0x20bd ,"%s %d %8phC post gnl\n" , __func__, __LINE__, fcport->port_name); -qla24xx_async_gnl (vha, fcport); +qla24xx_post_gnl_work (vha, fcport); }else { ql_dbg(ql_dbg_disc, vha, 0x20bf, "%s %d %8phC post login\n",
@@ -1143,7 +1143,7 @@ void qla24xx_handle_relogin_event(scsi_qql_dbg (ql_dbg_disc, vha,0x20e9 ,"%s %d %8phC post gidpn\n" , __func__, __LINE__, fcport->port_name); -qla24xx_async_gidpn (vha, fcport); +qla24xx_post_gidpn_work (vha, fcport);return ; }
Greg Kroah-Hartman
maintainerPATCH 141/146 scsi: qla2xxx: Remove aborting ELS IOCB call issued as part of timeout.
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Giridhar Malavali <[email protected]>
commit bf07ef86e882013522876f7c834c8eea085f35b4 upstream.
This fix the spinlock recursion issue seen while unloading the driver.
14 [ffff9f2e21e03db8] native_queued_spin_lock_slowpath at ffffffffad0d8802 15 [ffff9f2e21e03dc0] do_raw_spin_lock at ffffffffad0d99e4
16 [ffff9f2e21e03dd8] _raw_spin_lock_irqsave at ffffffffad652471 17 [ffff9f2e21e03e00] qla2x00_els_dcmd_iocb_timeout at ffffffffc070cd63 18 [ffff9f2e21e03e40] qla2x00_sp_timeout at ffffffffc06f06d3 [qla2xxx] 19 [ffff9f2e21e03e68] call_timer_fn at ffffffffad0f97d8
20 [ffff9f2e21e03ed8] run_timer_softirq at ffffffffad0faf47
21 [ffff9f2e21e03f68] __softirqentry_text_start at ffffffffad655f32
--- drivers/scsi/qla2xxx/qla_iocb.c | 10 ---------- 1 file changed, 10 deletions(-)
drivers/scsi/qla2xxx/qla_iocb.c +0 -10
@@ -2392,7 +2392,6 @@ qla2x00_els_dcmd_iocb_timeout(void *datasrb_t *sp = data;fc_port_t *fcport = sp->fcport;struct scsi_qla_host *vha = sp->vha; -struct qla_hw_data *ha = vha->hw;struct srb_iocb *lio = &sp->u.iocb_cmd; ql_dbg(ql_dbg_io, vha, 0x3069,
@@ -2400,15 +2399,6 @@ qla2x00_els_dcmd_iocb_timeout(void *data sp->name, sp->handle, fcport->d_id.b.domain, fcport->d_id.b.area, fcport->d_id.b.al_pa); -/* Abort the exchange */ -if (ha->isp_ops->abort_command (sp)) { -ql_dbg (ql_dbg_io, vha,0x3070 , -"mbx abort_command failed.\n" ); - }else { -ql_dbg (ql_dbg_io, vha,0x3071 , -"mbx abort_command success.\n" ); - } -complete (&lio->u.els_logo.comp); }
Greg Kroah-Hartman
maintainerPATCH 142/146 scsi: qla2xxx: Fix system crash in qlt_plogi_ack_unref
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Quinn Tran <[email protected]>
commit 19759033e0d0beed70421ab9258f5ede79e070ae upstream.
Fix system crash due to NULL pointer access.
qlt_plogi_ack_t and fc_port structures were not properly bound before calling qlt_plogi_ack_unref().
RIP: 0010:qlt_plogi_ack_unref+0xa1/0x150 [qla2xxx] Call Trace: qla24xx_create_new_sess+0xb1/0x320 [qla2xxx] qla2x00_do_work+0x123/0x260 [qla2xxx] qla2x00_iocb_work_fn+0x30/0x40 [qla2xxx] process_one_work+0x1f3/0x530 worker_thread+0x4e/0x480 kthread+0x10c/0x140
--- drivers/scsi/qla2xxx/qla_os.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/scsi/qla2xxx/qla_os.c +5 -5
@@ -4750,11 +4750,11 @@ void qla24xx_create_new_sess(struct scsi }else {list_add_tail (&fcport->list, &vha->vp_fcports); -if (pla) { -qlt_plogi_ack_link (vha, pla, fcport, -QLT_PLOGI_LINK_SAME_WWN ); - pla->ref_count--; - } + } +if (pla) { +qlt_plogi_ack_link (vha, pla, fcport, +QLT_PLOGI_LINK_SAME_WWN ); + pla->ref_count--; } }spin_unlock_irqrestore (&vha->hw->tgt.sess_lock, flags);
Greg Kroah-Hartman
maintainerPATCH 143/146 scsi: qla2xxx: Fix memory leak in dual/target mode
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: [email protected] <[email protected]>
commit 7867b98dceb7741065c9c1b645136facad5c2e93 upstream.
When driver is loaded in Target/Dual mode, it creates QPair to support MQ and allocates resources for each QPair. This Qpair initialization is delayed until the FW personality is changed to Dual/Target mode by issuing chip reset. At the time of chip reset firmware is re-initilized in correct personality all the QPairs are initialized by sending MBC_INITIALIZE_MULTIQ (001Fh).
This patch fixes memory leak by adding check to issue MBC_INITIALIZE_MULTIQ command only while deleting rsp/req queue when the flag is set for initiator mode, and clean up QPair resources correctly during the driver unload. This MBX does not need to be issued for Target/Dual mode because chip reset will reset ISP.
--- drivers/scsi/qla2xxx/qla_init.c | 4 +--- drivers/scsi/qla2xxx/qla_mid.c | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-)
drivers/scsi/qla2xxx/qla_init.c +1 -3
@@ -8221,9 +8221,6 @@ int qla2xxx_delete_qpair(struct scsi_qlaint ret =QLA_FUNCTION_FAILED ;struct qla_hw_data *ha = qpair->hw; -if (!vha->flags.qpairs_req_created && !vha->flags.qpairs_rsp_created) - goto fail; - qpair->delete_in_progress =1 ;while (atomic_read (&qpair->ref_count))msleep (500 );
@@ -8231,6 +8228,7 @@ int qla2xxx_delete_qpair(struct scsi_qla ret =qla25xx_delete_req_que (vha, qpair->req);if (ret !=QLA_SUCCESS ) goto fail; + ret =qla25xx_delete_rsp_que (vha, qpair->rsp);if (ret !=QLA_SUCCESS ) goto fail;
drivers/scsi/qla2xxx/qla_mid.c +10 -8
@@ -575,14 +575,15 @@ qla25xx_free_rsp_que(struct scsi_qla_hosint qla25xx_delete_req_que (struct scsi_qla_host *vha,struct req_que *req) { -int ret =-1 ; +int ret =QLA_SUCCESS ; -if (req) { +if (req && vha->flags.qpairs_req_created) { req->options |=BIT_0 ; ret =qla25xx_init_req_que (vha, req); +if (ret !=QLA_SUCCESS ) +return QLA_FUNCTION_FAILED ; } -if (ret ==QLA_SUCCESS ) -qla25xx_free_req_que (vha, req); +qla25xx_free_req_que (vha, req);return ret; }
@@ -590,14 +591,15 @@ qla25xx_delete_req_que(struct scsi_qla_hint qla25xx_delete_rsp_que (struct scsi_qla_host *vha,struct rsp_que *rsp) { -int ret =-1 ; +int ret =QLA_SUCCESS ; -if (rsp) { +if (rsp && vha->flags.qpairs_rsp_created) { rsp->options |=BIT_0 ; ret =qla25xx_init_rsp_que (vha, rsp); +if (ret !=QLA_SUCCESS ) +return QLA_FUNCTION_FAILED ; } -if (ret ==QLA_SUCCESS ) -qla25xx_free_rsp_que (vha, rsp); +qla25xx_free_rsp_que (vha, rsp);return ret; }
Greg Kroah-Hartman
maintainerPATCH 144/146 NFS: Fix an incorrect type in struct nfs_direct_req
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Trond Myklebust <[email protected]>
commit d9ee65539d3eabd9ade46cca1780e3309ad0f907 upstream.
The start offset needs to be of type loff_t.
Fixed: 5fadeb47dcc5c ("nfs: count DIO good bytes correctly with mirroring")
--- fs/nfs/direct.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
fs/nfs/direct.c +1 -1
@@ -86,10 +86,10 @@ struct nfs_direct_req {struct nfs_direct_mirror mirrors[NFS_PAGEIO_DESCRIPTOR_MIRROR_MAX ];int mirror_count; +loff_t io_start;/* Start offset for I/O */ ssize_t count,/* bytes actually processed */ max_count,/* max expected count */ bytes_left,/* bytes left to be sent */ - io_start,/* start of IO */ error;/* any reported error */ struct completion completion;/* wait for i/o completion */
Greg Kroah-Hartman
maintainerPATCH 145/146 pNFS: Prevent the layout header refcount going to zero in pnfs_roc()
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Trond Myklebust <[email protected]>
commit 9c6376ebddad585da4238532dd6d90ae23ffee67 upstream.
Ensure that we hold a reference to the layout header when processing the pNFS return-on-close so that the refcount value does not inadvertently go to zero.
--- fs/nfs/pnfs.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
fs/nfs/pnfs.c +10 -3
@@ -292,8 +292,11 @@ pnfs_detach_layout_hdr(struct pnfs_layouvoid pnfs_put_layout_hdr (struct pnfs_layout_hdr *lo) { -struct inode *inode = lo->plh_inode; +struct inode *inode; +if (!lo) +return ; + inode = lo->plh_inode;pnfs_layoutreturn_before_put_layout_hdr (lo);if (refcount_dec_and_lock (&lo->plh_refcount, &inode->i_lock)) {
@@ -1241,10 +1244,12 @@ retry:spin_lock (&ino->i_lock); lo = nfsi->layout;if (!lo || !pnfs_layout_is_valid (lo) || -test_bit (NFS_LAYOUT_BULK_RECALL , &lo->plh_flags)) +test_bit (NFS_LAYOUT_BULK_RECALL , &lo->plh_flags)) { + lo =NULL ; goto out_noroc; + } +pnfs_get_layout_hdr (lo);if (test_bit (NFS_LAYOUT_RETURN_LOCK , &lo->plh_flags)) { -pnfs_get_layout_hdr (lo);spin_unlock (&ino->i_lock);wait_on_bit (&lo->plh_flags,NFS_LAYOUT_RETURN ,TASK_UNINTERRUPTIBLE );
@@ -1312,10 +1317,12 @@ out_noroc:struct pnfs_layoutdriver_type *ld =NFS_SERVER (ino)->pnfs_curr_ld;if (ld->prepare_layoutreturn) ld->prepare_layoutreturn (args); +pnfs_put_layout_hdr (lo);return true; }if (layoutreturn)pnfs_send_layoutreturn (lo, &stateid, iomode, true); +pnfs_put_layout_hdr (lo);return false; }
Greg Kroah-Hartman
maintainerPATCH 146/146 NFS: Fix unstable write completion
In reply to Greg Kroah-Hartman4.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Trond Myklebust <[email protected]>
commit c4f24df942a181699c5bab01b8e5e82b925f77f3 upstream.
We do want to respect the FLUSH_SYNC argument to nfs_commit_inode() to ensure that all outstanding COMMIT requests to the inode in question are complete. Currently we may exit early from both nfs_commit_inode() and nfs_write_inode() even if there are COMMIT requests in flight, or unstable writes on the commit list.
In order to get the right semantics w.r.t. sync_inode(), we don't need to have nfs_commit_inode() reset the inode dirty flags when called from nfs_wb_page() and/or nfs_wb_all(). We just need to ensure that nfs_write_inode() leaves them in the right state if there are outstanding commits, or stable pages.
--- fs/nfs/write.c | 83 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 40 deletions(-)
fs/nfs/write.c +43 -40
@@ -1878,40 +1878,43 @@ int nfs_generic_commit_list(struct inodereturn status; } -int nfs_commit_inode (struct inode *inode,int how) +static int __nfs_commit_inode (struct inode *inode,int how, +struct writeback_control *wbc) {LIST_HEAD (head);struct nfs_commit_info cinfo;int may_wait = how &FLUSH_SYNC ; -int error =0 ; -int res; +int ret, nscan;nfs_init_cinfo_from_inode (&cinfo, inode);nfs_commit_begin (cinfo.mds); - res =nfs_scan_commit (inode, &head, &cinfo); -if (res) - error =nfs_generic_commit_list (inode, &head, how, &cinfo); +for (;;) { + ret = nscan =nfs_scan_commit (inode, &head, &cinfo); +if (ret <=0 ) +break ; + ret =nfs_generic_commit_list (inode, &head, how, &cinfo); +if (ret <0 ) +break ; + ret =0 ; +if (wbc && wbc->sync_mode ==WB_SYNC_NONE ) { +if (nscan < wbc->nr_to_write) + wbc->nr_to_write -= nscan; +else + wbc->nr_to_write =0 ; + } +if (nscan <INT_MAX ) +break ; +cond_resched (); + }nfs_commit_end (cinfo.mds); -if (res ==0 ) -return res; -if (error <0 ) - goto out_error; -if (!may_wait) - goto out_mark_dirty; - error =wait_on_commit (cinfo.mds); -if (error <0 ) -return error; -return res; -out_error: - res = error; -/* Note: If we exit without ensuring that the commit is complete, -* we must mark the inode as dirty. Otherwise, future calls to -* sync_inode() with the WB_SYNC_ALL flag set will fail to ensure -* that the data is on the disk. -*/ -out_mark_dirty: -__mark_inode_dirty (inode,I_DIRTY_DATASYNC ); -return res; +if (ret || !may_wait) +return ret; +return wait_on_commit (cinfo.mds); +} + +int nfs_commit_inode (struct inode *inode,int how) +{ +return __nfs_commit_inode (inode, how,NULL ); }EXPORT_SYMBOL_GPL (nfs_commit_inode);
@@ -1921,11 +1924,11 @@ int nfs_write_inode(struct inode *inode,int flags =FLUSH_SYNC ;int ret =0 ; -/* no commits means nothing needs to be done */ -if (!atomic_long_read (&nfsi->commit_info.ncommit)) -return ret; -if (wbc->sync_mode ==WB_SYNC_NONE ) { +/* no commits means nothing needs to be done */ +if (!atomic_long_read (&nfsi->commit_info.ncommit)) + goto check_requests_outstanding; +/* Don't commit yet if this is a non-blocking flush and there * are a lot of outstanding writes for this mapping. */
@@ -1936,16 +1939,16 @@ int nfs_write_inode(struct inode *inode, flags =0 ; } - ret =nfs_commit_inode (inode, flags); -if (ret >=0 ) { -if (wbc->sync_mode ==WB_SYNC_NONE ) { -if (ret < wbc->nr_to_write) - wbc->nr_to_write -= ret; -else - wbc->nr_to_write =0 ; - } -return 0 ; - } + ret =__nfs_commit_inode (inode, flags, wbc); +if (!ret) { +if (flags &FLUSH_SYNC ) +return 0 ; + }else if (atomic_long_read (&nfsi->commit_info.ncommit)) + goto out_mark_dirty; + +check_requests_outstanding: +if (!atomic_read (&nfsi->commit_info.rpcs_out)) +return ret; out_mark_dirty:__mark_inode_dirty (inode,I_DIRTY_DATASYNC );return ret;
stable-rc/linux-4.15.y boot: 144 boots: 8 failed, 112 passed with 21 offline, 2 untried/unknown, 1 conflict (v4.15.9-147-g478762923754)
stable-rc/linux-4.15.y boot: 144 boots: 8 failed, 112 passed with 21 offline, 2 untried/unknown, 1 conflict (v4.15.9-147-g478762923754)
Full Boot Summary: https://kernelci.org/boot/all/job/stable-rc/branch/linux-4.15.y/kernel/v4.15.9-147-g478762923754/
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-4.15.y/kernel/v4.15.9-147-g478762923754/
Tree: stable-rc
Branch: linux-4.15.y
Git Describe: v4.15.9-147-g478762923754
Git Commit: 47876292375471e74934c42b819483362073feb2
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Tested: 77 unique boards, 22 SoC families, 17 builds out of 185
Boot Regressions Detected:
arm:
exynos_defconfig:
exynos5800-peach-pi:
lab-baylibre-seattle: failing since 1 day (last pass: v4.15.8-12-g212dd4bb587d - first fail: v4.15.9)
multi_v7_defconfig:
meson8b-odroidc1:
lab-baylibre-seattle: new failure (last pass: v4.15.8)
sun8i-a33-sinlinx-sina33:
lab-free-electrons: new failure (last pass: v4.15.9)
mvebu_v7_defconfig:
armada-375-db:
lab-free-electrons: new failure (last pass: v4.15.9)arm64:
defconfig:
apq8016-sbc:
lab-mhart: new failure (last pass: v4.15.9)
meson-gxbb-p200:
lab-baylibre-seattle: failing since 1 day (last pass: v4.15.8 - first fail: v4.15.9)
meson-gxl-s905d-p230:
lab-baylibre-seattle: new failure (last pass: v4.15.9)
meson-gxl-s905x-khadas-vim:
lab-baylibre: new failure (last pass: v4.15.9)
meson-gxl-s905x-p212:
lab-baylibre-seattle: new failure (last pass: v4.15.9)Boot Failures Detected:
arm:
mvebu_v7_defconfig
armada-375-db: 1 failed lab
multi_v7_defconfig
meson8b-odroidc1: 1 failed lab
sun8i-a33-sinlinx-sina33: 1 failed labarm64:
defconfig
apq8016-sbc: 1 failed lab
meson-gxbb-p200: 1 failed lab
meson-gxl-s905d-p230: 1 failed lab
meson-gxl-s905x-khadas-vim: 1 failed lab
meson-gxl-s905x-p212: 1 failed labOffline Platforms:
arm:
tegra_defconfig:
tegra124-jetson-tk1: 1 offline lab
multi_v7_defconfig:
alpine-db: 1 offline lab
am335x-boneblack: 1 offline lab
at91-sama5d4_xplained: 1 offline lab
exynos5410-odroidxu: 1 offline lab socfpga_cyclone5_de0_sockit: 1 offline lab
sun5i-r8-chip: 1 offline lab
tegra124-jetson-tk1: 1 offline lab
vf610-colibri-eval-v3: 1 offline lab
sunxi_defconfig:
sun5i-r8-chip: 1 offline lab
imx_v6_v7_defconfig:
vf610-colibri-eval-v3: 1 offline lab
sama5_defconfig:
at91-sama5d4_xplained: 1 offline lab
exynos_defconfig:
exynos5410-odroidxu: 1 offline lab
bcm2835_defconfig:
bcm2835-rpi-b: 1 offline lab
omap2plus_defconfig:
am335x-boneblack: 1 offline lab
arm64:
defconfig:
apq8016-sbc: 1 offline lab
juno-r2: 1 offline lab
meson-gxbb-odroidc2: 1 offline lab meson-gxl-s905x-khadas-vim: 1 offline lab meson-gxl-s905x-nexbox-a95x: 1 offline lab
mt7622-rfb1: 1 offline lab
Conflicting Boot Failure Detected: (These likely are not failures as other labs are reporting PASS. Needs review.)
arm:
exynos_defconfig:
exynos5800-peach-pi:
lab-collabora: PASS
lab-baylibre-seattle: FAIL---
For more info write to <[email protected]>
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.15.10 release. There are 146 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu Mar 15 15:22:37 UTC 2018. Anything received after that time might be too late.
Build results:
total: 147 pass: 147 fail: 0
Qemu test results:
total: 141 pass: 141 fail: 0Details are available at http://kerneltests.org/builders.
Guenter
Greg Kroah-Hartman
maintainerQuoted 10 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.15.10 release. There are 146 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu Mar 15 15:22:37 UTC 2018. Anything received after that time might be too late.
Quoted 6 lines
Build results:
total: 147 pass: 147 fail: 0 Qemu test results: total: 141 pass: 141 fail: 0Details are available at http://kerneltests.org/builders.
Great, thanks for testing both of these and letting me know.
greg k-h
Quoted 309 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.15.10 release. There are 146 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu Mar 15 15:22:37 UTC 2018. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-4.15.y
and the diffstat can be found below.thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:Greg Kroah-Hartman <[email protected]>
Linux 4.15.10-rc1Trond Myklebust <[email protected]>
NFS: Fix unstable write completionTrond Myklebust <[email protected]>
pNFS: Prevent the layout header refcount going to zero inpnfs_roc()Trond Myklebust <[email protected]>
NFS: Fix an incorrect type in structnfs_direct_req[email protected] <[email protected]>
scsi: qla2xxx: Fix memory leak in dual/target modeQuinn Tran <[email protected]>
scsi: qla2xxx: Fix system crash inqlt_plogi_ack_unrefGiridhar Malavali <[email protected]>
scsi: qla2xxx: Remove aborting ELS IOCB call issued as part of timeout.Giridhar Malavali <[email protected]>
scsi: qla2xxx: Defer processing of GS IOCB callsQuinn Tran <[email protected]>
scsi: qla2xxx: Clear loop id after deleteQuinn Tran <[email protected]>
scsi: qla2xxx: Fix scan state field for fcportQuinn Tran <[email protected]>
scsi: qla2xxx: Replace fcport alloc withqla2x00_alloc_fcportQuinn Tran <[email protected]>
scsi: qla2xxx: Fix abort command deadlock due to spinlockQuinn Tran <[email protected]>
scsi: qla2xxx: Fix PRLI state checkQuinn Tran <[email protected]>
scsi: qla2xxx: Fix Relogin being triggered too fastQuinn Tran <[email protected]>
scsi: qla2xxx: Relogin to target port on a cable swapSawan Chandak <[email protected]>
scsi: qla2xxx: Fix NPIV host cleanup in target modeQuinn Tran <[email protected]>
scsi: qla2xxx: Fix login state machine stuck at GPDBQuinn Tran <[email protected]>
scsi: qla2xxx: Serialize GPNID for multiple RSCNQuinn Tran <[email protected]>
scsi: qla2xxx: Retry switch command on time outQuinn Tran <[email protected]>
scsi: qla2xxx: Fix re-login for Nport Handle in useQuinn Tran <[email protected]>
scsi: qla2xxx: Skip IRQ affinity for Target QPairsQuinn Tran <[email protected]>
scsi: qla2xxx: Move session delete to driver work queueQuinn Tran <[email protected]>
scsi: qla2xxx: Fix gpnid error processingQuinn Tran <[email protected]>
scsi: qla2xxx: Fix system crash for Notify ack timeout handlingPrarit Bhargava <[email protected]>
x86/xen: Calculate__max_logical_packageson PV domainsJavier Martinez Canillas <[email protected]>
tpm: only attempt to disable the LPC CLKRUN if is already enabledArnd Bergmann <[email protected]>
tpm: remove unused variablesJavier Martinez Canillas <[email protected]>
tpm: delete theTPM_TIS_CLK_ENABLEflagAzhar Shaikh <[email protected]>
tpm: Keep CLKRUN enabled throughout the duration oftransmit_cmd()Azhar Shaikh <[email protected]>
tpm_tis: Moveilb_base_addrtotpm_tis_dataEric Dumazet <[email protected]>
netfilter: useskb_to_full_skinip6_route_me_harderFlorian Westphal <[email protected]>
netfilter: ipv6: fix use-after-free Write innf_nat_ipv6_manip_pktFlorian Westphal <[email protected]>
netfilter: bridge:ebt_among: add missing match size checksFlorian Westphal <[email protected]>
netfilter: ebtables:CONFIG_COMPAT: don't trust userland offsetsEric Dumazet <[email protected]>
netfilter: IDLETIMER: be syzkaller friendlyPaolo Abeni <[email protected]>
netfilter: nat: cope with negative port rangePaolo Abeni <[email protected]>
netfilter:x_tables: fix missing timer initialization inxt_LEDEric Dumazet <[email protected]>
netfilter:xt_hashlimit: fix lock imbalanceCong Wang <[email protected]>
netfilter:ipt_CLUSTERIP: fix a race condition of proc file creationFlorian Westphal <[email protected]>
netfilter: add back stackpointer size checksJerry Hoemann <[email protected]>
watchdog: hpwdt: Remove legacy NMI sourcing.Arnd Bergmann <[email protected]>
watchdog: hpwdt: fix unused variable warningJerry Hoemann <[email protected]>
watchdog: hpwdt: Check source of NMIJerry Hoemann <[email protected]>
watchdog: hpwdt: SMBIOS checkFrancis Deslauriers <[email protected]>
x86/kprobes: Fix kernel crash when probing .entry_trampoline codeJosh Poimboeuf <[email protected]>
objtool: Fix 32-bit buildJosh Poimboeuf <[email protected]>
objtool: Fix another switch table detection issuePeter Zijlstra <[email protected]>
objtool, retpolines: Integrate objtool with retpoline support more closelyPeter Zijlstra <[email protected]>
objtool: Add module specific retpoline rulesPeter Zijlstra <[email protected]>
objtool: Add retpoline validationPeter Zijlstra <[email protected]>
objtool: Use existing global variables for optionsPeter Zijlstra <[email protected]>
x86/mm/sme, objtool: Annotate indirect call insme_encrypt_execute()Peter Zijlstra <[email protected]>
x86/boot, objtool: Annotate indirect jump insecondary_startup_64()Peter Zijlstra <[email protected]>
x86/paravirt, objtool: Annotate indirect callsIngo Molnar <[email protected]>
x86/speculation: Move firmware_restrict_branch_speculation_*() from C to CPPPeter Zijlstra <[email protected]>
x86/speculation, objtool: Annotate indirect calls/jumps for objtoolDavid Woodhouse <[email protected]>
x86/retpoline: Support retpoline builds with ClangDavid Woodhouse <[email protected]>
x86/speculation: Use IBRS if available before calling into firmwareDavid Woodhouse <[email protected]>
Revert "x86/retpoline: Simplifyvmexit_fill_RSB()"Jan Beulich <[email protected]>
x86-64/realmode: Add instruction suffixJan Beulich <[email protected]>
x86/LDT: Avoid warning in 32-bit builds with older gccJan Beulich <[email protected]>
x86/IO-APIC: Avoid warning in 32-bit buildsJan Beulich <[email protected]>
x86/asm: Improve how GEN_*_SUFFIXED_RMWcc() specify clobbersJann Horn <[email protected]>
x86/mm: Remove stale comment about KMEMCHECKDominik Brodowski <[email protected]>
x86/entry/64: Use 'xorl' for faster register clearingDominik Brodowski <[email protected]>
x86/entry: Reduce the code footprint of the 'idtentry' macroDan Williams <[email protected]>
nospec: Include <asm/barrier.h> dependencyDan Williams <[email protected]>
nospec: Killarray_index_nospec_mask_check()Paul Burton <[email protected]>
MIPS: CPC: Map registers using DT inmips_cpc_default_phys_base()Paul Burton <[email protected]>
dt-bindings: Document mti,mips-cpc binding[email protected] <[email protected]>
scsi: qla2xxx: Fix recursion while sending terminate exchange[email protected] <[email protected]>
scsi: qla2xxx: Fix NULL pointer crash due to probe failureDennis Wassenberg <[email protected]>
ALSA: hda: add dock and led support for HP ProBook 640 G2Dennis Wassenberg <[email protected]>
ALSA: hda: add dock and led support for HP EliteBook 820 G3Hui Wang <[email protected]>
ALSA: hda - Fix a wrong FIXUP for alc289 on Dell machinesTakashi Iwai <[email protected]>
ALSA: seq: More protection for concurrent write and ioctl racesTakashi Iwai <[email protected]>
ALSA: seq: Don't allow resizing pool in useDennis Wassenberg <[email protected]>
ALSA: hda/realtek - Make dock sound work on ThinkPad L570Takashi Iwai <[email protected]>
ALSA: hda/realtek - Fix dock line-out volume on Dell Precision 7520Benjamin Berg <[email protected]>
ALSA: hda/realtek: Limit mic boost on T480Kailang Yang <[email protected]>
ALSA: hda/realtek - Add headset mode support for Dell laptopKailang Yang <[email protected]>
ALSA: hda/realtek - Add support headset mode for DELL WYSEKonrad Rzeszutek Wilk <[email protected]>
x86/spectre_v2: Don't check microcode versions when running under hypervisorsAdrian Hunter <[email protected]>
perf tools: Fix trigger classtrigger_on()Seunghun Han <[email protected]>
x86/MCE: Serialize sysfs changesTony Luck <[email protected]>
x86/MCE: Save microcode revision in machine check recordsMichael Lyle <[email protected]>
bcache: don't attach backing with duplicate UUIDTang Junhui <[email protected]>
bcache: fix crashes in duplicate cache device registerSergey Gorenko <[email protected]>
IB/mlx5: Fix incorrect size of klms in the memory regionArnd Bergmann <[email protected]>
dm bufio: avoid false-positive Wmaybe-uninitialized warningJames Hogan <[email protected]>
kbuild: Handle builtin dtb file names containing hyphensChristoph Hellwig <[email protected]>
Revert "nvme: create 'slaves' and 'holders' entries for hidden controllers"Parav Pandit <[email protected]>
IB/core: Fix missing RDMA cgroups release in case of failure to register deviceArd Biesheuvel <[email protected]>
arm64: mm: fix thinko in non-global page table attribute checkDavid Hildenbrand <[email protected]>
KVM: s390: fix memory overwrites when not using SCA entriesTiwei Bie <[email protected]>
virtio_ring: fixnum_freehandling in error case
Quoted 8 lines
Ross Zwisler <[email protected]>
loop: Fix lost writes caused by missing flagMatthew Wilcox <[email protected]>
Documentation/sphinx: Fix Directive import errorDaniel Vacek <[email protected]>
mm/page_alloc: fixmemmap_init_zonepageblock alignment
On 4.14 and 4.15, this patch breaks booting on dragonboard 410c and hikey 620 (both arm64). The fix has been proposed and tested but is not yet in mainline per https://lkml.org/lkml/2018/3/12/710
A new fix proposed by Daniel is under review,mm/page_alloc: fix boot hang in memmap_init_zone
https://lkml.org/lkml/2018/3/13/1422
Greg Kroah-Hartman
maintainerQuoted 6 lines · Naresh Kamboju
Quoted 2 lines · Greg Kroah-Hartman
Daniel Vacek <[email protected]>
mm/page_alloc: fixmemmap_init_zonepageblock alignment
Quoted 7 lines
On 4.14 and 4.15, this patch breaks booting on dragonboard 410c and hikey 620 (both arm64). The fix has been proposed and tested but is not yet in mainline per https://lkml.org/lkml/2018/3/12/710
A new fix proposed by Daniel is under review,
mm/page_alloc: fix boot hang inmemmap_init_zone
https://lkml.org/lkml/2018/3/13/1422
Yeah, I think I'm going to drop this patch now, and add it for the next round.
And please learn to trim your email context...
thanks,
greg k-h
Greg Kroah-Hartman
maintainerQuoted 5 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.15.10 release. There are 146 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Quoted 8 lines
Responses should be made by Thu Mar 15 15:22:37 UTC 2018. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-4.15.y
and the diffstat can be found below.
-rc2 is out to resolve a boot problem on some ARM boards:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.10-rc2.gz
Quoted 9 lines · Greg Kroah-Hartman
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.15.10 release. There are 146 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu Mar 15 15:22:37 UTC 2018. Anything received after that time might be too late.
Quoted 8 lines
Quoted 5 lines
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-4.15.y
and the diffstat can be found below.-rc2 is out to resolve a boot problem on some ARM boards:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.10-rc2.gz
Results from Linaro’s test farm.
No regressions on arm64, arm, qemu_x86_64 and x86_64.
Summary
------------------------------------------------------------------------
kernel: 4.15.10-rc2
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-4.15.y
git commit: 2ad27e8a3cad093b4d4f5f7471ac80bdfb6bb372
git describe: v4.15.9-146-g2ad27e8a3cad
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.15-oe/build/v4.15.9-146-g2ad27e8a3cad
No regressions (compared to build v4.15.9-147-g478762923754)
Boards, architectures and test suites:
-------------------------------------
dragonboard-410c - arm64
* boot - pass: 22, fail: 2
* kselftest - pass: 45, skip: 20,
* libhugetlbfs - pass: 90, skip: 1,
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 2,
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 21, skip: 1,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 14,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1002, skip: 148,
* ltp-timers-tests - pass: 12, skip: 1,
hi6220-hikey - arm64
* boot - pass: 20,
* kselftest - pass: 48, skip: 17,
* libhugetlbfs - pass: 90, skip: 1,
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 2,
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 21, skip: 1,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 10, skip: 4,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 999, skip: 151,
* ltp-timers-tests - pass: 12, skip: 1,
juno-r2 - arm64
* boot - pass: 20,
* kselftest - pass: 48, skip: 17,
* libhugetlbfs - pass: 90, skip: 1,
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 10, skip: 4,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1001, skip: 149,
* ltp-timers-tests - pass: 12, skip: 1,
qemu_x86_64
* boot - pass: 20,
* kselftest - pass: 61, skip: 21,
* libhugetlbfs - pass: 90, skip: 1,
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 57, skip: 6,
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 13, skip: 1,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1002, skip: 148,
* ltp-timers-tests - pass: 12, skip: 1,
x15 - arm
* boot - pass: 20,
* kselftest - pass: 41, skip: 21,
* libhugetlbfs - pass: 87, skip: 1,
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 63, skip: 18,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 2,
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 20, skip: 2,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 13, skip: 1,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1053, skip: 97,
* ltp-timers-tests - pass: 12, skip: 1,
x86_64
* boot - pass: 20,
* kselftest - pass: 61, skip: 19,
* libhugetlbfs - pass: 90, skip: 1,
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 62, skip: 1,
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 9, skip: 5,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1031, skip: 119,
* ltp-timers-tests - pass: 12, skip: 1,
--
Linaro QA (beta)
https://qa-reports.linaro.org
Quoted 5 lines
_______________________________________________
Lkft-triage mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lkft-triage
Greg Kroah-Hartman
maintainerQuoted 17 lines · Naresh Kamboju
Quoted 15 lines · Greg Kroah-Hartman
Quoted 13 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.15.10 release. There are 146 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu Mar 15 15:22:37 UTC 2018. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-4.15.y
and the diffstat can be found below.
Quoted 5 lines
Quoted 2 lines
-rc2 is out to resolve a boot problem on some ARM boards:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.10-rc2.gzResults from Linaro’s test farm.
No regressions on arm64, arm,qemu_x86_64andx86_64.
Great, thanks for testing both of these and letting me know.
greg k-h