[SCSI] zfcp: Use correct width for timer_interval field
authorChristof Schmitt <christof.schmitt@de.ibm.com>
Fri, 16 Jul 2010 13:37:36 +0000 (15:37 +0200)
committerJames Bottomley <James.Bottomley@suse.de>
Wed, 28 Jul 2010 14:48:48 +0000 (09:48 -0500)
The timer_interval is 14 bits in width. Introduce a define for
properly masking the value.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/s390/scsi/zfcp_fsf.c
drivers/s390/scsi/zfcp_fsf.h

index 71663fb..ee0c1df 100644 (file)
@@ -495,7 +495,7 @@ static int zfcp_fsf_exchange_config_evaluate(struct zfcp_fsf_req *req)
        fc_host_supported_classes(shost) = FC_COS_CLASS2 | FC_COS_CLASS3;
 
        adapter->hydra_version = bottom->adapter_type;
-       adapter->timer_ticks = bottom->timer_interval;
+       adapter->timer_ticks = bottom->timer_interval & ZFCP_FSF_TIMER_INT_MASK;
        adapter->stat_read_buf_num = max(bottom->status_read_buf_num,
                                         (u16)FSF_STATUS_READS_RECOM);
 
index 519083f..ca45e32 100644 (file)
@@ -352,6 +352,8 @@ struct fsf_qtcb_bottom_support {
        u8  els[256];
 } __attribute__ ((packed));
 
+#define ZFCP_FSF_TIMER_INT_MASK        0x3FFF
+
 struct fsf_qtcb_bottom_config {
        u32 lic_version;
        u32 feature_selection;