static inline int
 qla27xx_verify_template_checksum(struct qla27xx_fwdt_template *tmp)
 {
-       return qla27xx_template_checksum(tmp, tmp->template_size) == 0;
+       return qla27xx_template_checksum(tmp,
+               le32_to_cpu(tmp->template_size)) == 0;
 }
 
 static inline int
        ulong len = 0;
 
        if (qla27xx_fwdt_template_valid(tmp)) {
-               len = tmp->template_size;
+               len = le32_to_cpu(tmp->template_size);
                tmp = memcpy(buf, tmp, len);
                ql27xx_edit_template(vha, tmp);
                qla27xx_walk_template(vha, tmp, buf, &len);
        ulong len = 0;
 
        if (qla27xx_fwdt_template_valid(tmp)) {
-               len = tmp->template_size;
+               len = le32_to_cpu(tmp->template_size);
                qla27xx_walk_template(vha, tmp, NULL, &len);
        }
 
 {
        struct qla27xx_fwdt_template *tmp = p;
 
-       return tmp->template_size;
+       return le32_to_cpu(tmp->template_size);
 }
 
 int