diff options
author | Michael Holzheu <holzheu@linux.vnet.ibm.com> | 2013-06-21 07:21:30 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-06-24 05:16:34 -0400 |
commit | eda4ddf7e3a2245888e8c45c566fd514cdd5abbb (patch) | |
tree | 2696b557069247b9a3d4761bfbcff48383fa6723 /arch | |
parent | 35b03aec919c952e67b0b093638e0d79b468f9bc (diff) |
s390/ipl: Fix FCP WWPN and LUN format strings for read
The following git commit changed the behavior of sscanf:
commit 53809751ac230a3611b5cdd375f3389f3207d471
Author: Jan Beulich <JBeulich@suse.com>
Date: Mon Dec 17 16:01:31 2012 -0800
sscanf: don't ignore field widths for numeric conversions
This broke the WWPN and LUN sysfs attributes for s390 reipl and dump
on panic.
Example:
$ echo 0x0123456701234567 > /sys/firmware/reipl/fcp/wwpn
$ cat /sys/firmware/reipl/fcp/wwpn
0x0001234567012345
So fix this and use format strings that work also with the
new sscanf implementation:
$ echo 0x012345670123456789 > /sys/firmware/reipl/fcp/wwpn
$ cat /sys/firmware/reipl/fcp/wwpn
0x0123456701234567
Cc: stable@vger.kernel.org # 3.8+
Reviewed-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/kernel/ipl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index d8a6a385d048..feb719d3c851 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
@@ -754,9 +754,9 @@ static struct bin_attribute sys_reipl_fcp_scp_data_attr = { | |||
754 | .write = reipl_fcp_scpdata_write, | 754 | .write = reipl_fcp_scpdata_write, |
755 | }; | 755 | }; |
756 | 756 | ||
757 | DEFINE_IPL_ATTR_RW(reipl_fcp, wwpn, "0x%016llx\n", "%016llx\n", | 757 | DEFINE_IPL_ATTR_RW(reipl_fcp, wwpn, "0x%016llx\n", "%llx\n", |
758 | reipl_block_fcp->ipl_info.fcp.wwpn); | 758 | reipl_block_fcp->ipl_info.fcp.wwpn); |
759 | DEFINE_IPL_ATTR_RW(reipl_fcp, lun, "0x%016llx\n", "%016llx\n", | 759 | DEFINE_IPL_ATTR_RW(reipl_fcp, lun, "0x%016llx\n", "%llx\n", |
760 | reipl_block_fcp->ipl_info.fcp.lun); | 760 | reipl_block_fcp->ipl_info.fcp.lun); |
761 | DEFINE_IPL_ATTR_RW(reipl_fcp, bootprog, "%lld\n", "%lld\n", | 761 | DEFINE_IPL_ATTR_RW(reipl_fcp, bootprog, "%lld\n", "%lld\n", |
762 | reipl_block_fcp->ipl_info.fcp.bootprog); | 762 | reipl_block_fcp->ipl_info.fcp.bootprog); |
@@ -1323,9 +1323,9 @@ static struct shutdown_action __refdata reipl_action = { | |||
1323 | 1323 | ||
1324 | /* FCP dump device attributes */ | 1324 | /* FCP dump device attributes */ |
1325 | 1325 | ||
1326 | DEFINE_IPL_ATTR_RW(dump_fcp, wwpn, "0x%016llx\n", "%016llx\n", | 1326 | DEFINE_IPL_ATTR_RW(dump_fcp, wwpn, "0x%016llx\n", "%llx\n", |
1327 | dump_block_fcp->ipl_info.fcp.wwpn); | 1327 | dump_block_fcp->ipl_info.fcp.wwpn); |
1328 | DEFINE_IPL_ATTR_RW(dump_fcp, lun, "0x%016llx\n", "%016llx\n", | 1328 | DEFINE_IPL_ATTR_RW(dump_fcp, lun, "0x%016llx\n", "%llx\n", |
1329 | dump_block_fcp->ipl_info.fcp.lun); | 1329 | dump_block_fcp->ipl_info.fcp.lun); |
1330 | DEFINE_IPL_ATTR_RW(dump_fcp, bootprog, "%lld\n", "%lld\n", | 1330 | DEFINE_IPL_ATTR_RW(dump_fcp, bootprog, "%lld\n", "%lld\n", |
1331 | dump_block_fcp->ipl_info.fcp.bootprog); | 1331 | dump_block_fcp->ipl_info.fcp.bootprog); |