Patch "[PATCH 061/135] s390/cio: update measurement characteristics" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
[PATCH 061/135] s390/cio: update measurement characteristics
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
0061-s390-cio-update-measurement-characteristics.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
fa6df6413bbe96f3cfc0196dd60368aff4e809efMon Sep 17 00:00:00 2001
From: Sebastian Ott <[email protected]>
Date: Mon, 25 Jan 2016 10:32:51 +0100
Subject: [PATCH 061/135] s390/cio: update measurement characteristics
[ Upstream commit 9f3d6d7a40a178b8a5b5274f4e55fec8c30147c9 ]
Per channel path measurement characteristics are obtained during channel path registration. However if some properties of a channel path change we don't update the measurement characteristics.
Make sure to update the characteristics when we change the properties of a channel path or receive a notification from FW about such a change.
--- drivers/s390/cio/chp.c | 12 +++++------- drivers/s390/cio/chsc.c | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 9 deletions(-)
drivers/s390/cio/chp.c +5 -7
@@ -416,7 +416,8 @@ static void chp_release(struct device *d* chp_update_desc - update channel-path description * @chp - channel-path * -* Update the channel-path description of the specified channel-path. +* Update the channel-path description of the specified channel-path +* including channel measurement related information. * Return zero on success, non-zero otherwise. */ int chp_update_desc (struct channel_path *chp)
@@ -428,8 +429,10 @@ int chp_update_desc(struct channel_pathreturn rc; rc =chsc_determine_fmt1_channel_path_desc (chp->chpid, &chp->desc_fmt1); +if (rc) +return rc; -return rc; +return chsc_get_channel_measurement_chars (chp); }/**
@@ -466,11 +469,6 @@ int chp_new(struct chp_id chpid) ret = -ENODEV ; goto out_free; } - - ret =chsc_get_channel_measurement_chars (chp); -if (ret) - goto out_free; -dev_set_name (&chp->dev,"chp%x.%02x" , chpid.cssid, chpid.id);/* make it known to the system */
drivers/s390/cio/chsc.c +15 -2
@@ -14,6 +14,7 @@#include <linux/slab.h> #include <linux/init.h> #include <linux/device.h> +#include <linux/mutex.h> #include <linux/pci.h> #include <asm/cio.h>
@@ -224,8 +225,9 @@ out_unreg:void chsc_chp_offline (struct chp_id chpid) { -char dbf_txt[15 ]; +struct channel_path *chp =chpid_to_chp (chpid);struct chp_link link; +char dbf_txt[15 ];sprintf (dbf_txt,"chpr%x.%02x" , chpid.cssid, chpid.id);CIO_TRACE_EVENT (2 , dbf_txt);
@@ -236,6 +238,11 @@ void chsc_chp_offline(struct chp_id chpi link.chpid = chpid;/* Wait until previous actions have settled. */ css_wait_for_slow_path (); + +mutex_lock (&chp->lock); +chp_update_desc (chp); +mutex_unlock (&chp->lock); +for_each_subchannel_staged (s390_subchannel_remove_chpid,NULL , &link); }
@@ -690,8 +697,9 @@ static void chsc_process_crw(struct crwvoid chsc_chp_online (struct chp_id chpid) { -char dbf_txt[15 ]; +struct channel_path *chp =chpid_to_chp (chpid);struct chp_link link; +char dbf_txt[15 ];sprintf (dbf_txt,"cadd%x.%02x" , chpid.cssid, chpid.id);CIO_TRACE_EVENT (2 , dbf_txt);
@@ -701,6 +709,11 @@ void chsc_chp_online(struct chp_id chpid link.chpid = chpid;/* Wait until previous actions have settled. */ css_wait_for_slow_path (); + +mutex_lock (&chp->lock); +chp_update_desc (chp); +mutex_unlock (&chp->lock); +for_each_subchannel_staged (__s390_process_res_acc,NULL , &link);css_schedule_reprobe ();
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/0059-s390-cio-fix-measurement-characteristics-memleak.patch queue-4.4/0061-s390-cio-update-measurement-characteristics.patch queue-4.4/0094-s390-pci_dma-fix-DMA-table-corruption-with-4-TB-main.patch queue-4.4/0060-s390-cio-ensure-consistent-measurement-state.patch