Josh Durgin
1b7927f047
libceph: fix invalid unsigned->signed conversion for timespec encoding
commit 8b8cf8917f upstream.
__kernel_time_t is a long, which cannot hold a U32_MAX on 32-bit
architectures. Just drop this check as it has limited value.
This fixes a crash like:
[ 957.905812] kernel BUG at /srv/autobuild-ceph/gitbuilder.git/build/include/linux/ceph/decode.h:164!
[ 957.914849] Internal error: Oops - BUG: 0 [#1] SMP ARM
[ 957.919978] Modules linked in: rbd libceph libcrc32c ipmi_devintf ipmi_si ipmi_msghandler nfsd nfs_acl auth_rpcgss nfs fscache lockd sunrpc
[ 957.932547] CPU: 1 Tainted: G W (3.9.0-ceph-19bb6a83-highbank #1)
[ 957.939881] PC is at ceph_osdc_build_request+0x8c/0x4f8 [libceph]
[ 957.945967] LR is at 0xec520904
[ 957.949103] pc : [<bf13e76c>] lr : [<ec520904>] psr: 20000153
[ 957.949103] sp : ec753df8 ip : 00000001 fp : ec53e100
[ 957.960571] r10: ebef25c0 r9 : ec5fa400 r8 : ecbcc000
[ 957.965788] r7 : 00000000 r6 : 00000000 r5 : ffffffff r4 : 00000020
[ 957.972307] r3 : 51cc8143 r2 : ec520900 r1 : ec753e58 r0 : ec520908
[ 957.978827] Flags: nzCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment user
[ 957.986039] Control: 10c5387d Table: 2c59c04a DAC: 00000015
[ 957.991777] Process rbd (pid: 2138, stack limit = 0xec752238)
[ 957.997514] Stack: (0xec753df8 to 0xec754000)
[ 958.001864] 3de0: 00000001 00000001
[ 958.010032] 3e00: 00000001 bf139744 ecbcc000 ec55a0a0 00000024 00000000 ebef25c0 fffffffe
[ 958.018204] 3e20: ffffffff 00000000 00000000 00000001 ec5fa400 ebef25c0 ec53e100 bf166b68
[ 958.026377] 3e40: 00000000 0000220f fffffffe ffffffff ec753e58 bf13ff24 51cc8143 05b25ed2
[ 958.034548] 3e60: 00000001 00000000 00000000 bf1688d4 00000001 00000000 00000000 00000000
[ 958.042720] 3e80: 00000001 00000060 ec5fa400 ed53d200 ed439600 ed439300 00000001 00000060
[ 958.050888] 3ea0: ec5fa400 ed53d200 00000000 bf16a320 00000000 ec53e100 00000040 ec753eb8
[ 958.059059] 3ec0: ec51df00 ed53d7c0 ed53d200 ed53d7c0 00000000 ed53d7c0 ec5fa400 bf16ed70
[ 958.067230] 3ee0: 00000000 00000060 00000002 ed53d200 00000000 bf16acf4 ed53d7c0 ec752000
[ 958.075402] 3f00: ed980e50 e954f5d8 00000000 00000060 ed53d240 ed53d258 ec753f80 c04f44a8
[ 958.083574] 3f20: edb7910c ec664700 01ade920 c02e4c44 00000060 c016b3dc ec51de40 01adfb84
[ 958.091745] 3f40: 00000060 ec752000 ec753f80 ec752000 00000060 c0108444 00000007 ec51de48
[ 958.099914] 3f60: ed0eb8c0 00000000 00000000 ec51de40 01adfb84 00000001 00000060 c0108858
[ 958.108085] 3f80: 00000000 00000000 51cc8143 00000060 01adfb84 00000007 00000004 c000dd68
[ 958.116257] 3fa0: 00000000 c000dbc0 00000060 01adfb84 00000007 01adfb84 00000060 01adfb80
[ 958.124429] 3fc0: 00000060 01adfb84 00000007 00000004 beded1a8 00000000 01adf2f0 01ade920
[ 958.132599] 3fe0: 00000000 beded180 b6811324 b6811334 800f0010 00000007 2e7f5821 2e7f5c21
[ 958.140815] [<bf13e76c>] (ceph_osdc_build_request+0x8c/0x4f8 [libceph]) from [<bf166b68>] (rbd_osd_req_format_write+0x50/0x7c [rbd])
[ 958.152739] [<bf166b68>] (rbd_osd_req_format_write+0x50/0x7c [rbd]) from [<bf1688d4>] (rbd_dev_header_watch_sync+0xe0/0x204 [rbd])
[ 958.164486] [<bf1688d4>] (rbd_dev_header_watch_sync+0xe0/0x204 [rbd]) from [<bf16a320>] (rbd_dev_image_probe+0x23c/0x850 [rbd])
[ 958.175967] [<bf16a320>] (rbd_dev_image_probe+0x23c/0x850 [rbd]) from [<bf16acf4>] (rbd_add+0x3c0/0x918 [rbd])
[ 958.185975] [<bf16acf4>] (rbd_add+0x3c0/0x918 [rbd]) from [<c02e4c44>] (bus_attr_store+0x20/0x2c)
[ 958.194850] [<c02e4c44>] (bus_attr_store+0x20/0x2c) from [<c016b3dc>] (sysfs_write_file+0x168/0x198)
[ 958.203984] [<c016b3dc>] (sysfs_write_file+0x168/0x198) from [<c0108444>] (vfs_write+0x9c/0x170)
[ 958.212768] [<c0108444>] (vfs_write+0x9c/0x170) from [<c0108858>] (sys_write+0x3c/0x70)
[ 958.220768] [<c0108858>] (sys_write+0x3c/0x70) from [<c000dbc0>] (ret_fast_syscall+0x0/0x30)
[ 958.229199] Code: e59d1058 e5913000 e3530000 ba000114 (e7f001f2)
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-13 11:42:26 -07:00
..
2013-05-17 14:31:05 -04:00
2013-07-13 11:42:26 -07:00
2013-05-04 12:31:18 -07:00
2013-05-05 17:36:20 -07:00
2013-05-17 00:42:33 +02:00
2013-05-11 16:12:44 -07:00
2013-05-06 15:41:42 -07:00
2013-05-09 10:15:46 -07:00
2013-05-14 13:40:45 +02:00
2013-05-25 20:30:31 -07:00
2013-05-13 18:27:18 +04:00
2013-05-16 17:32:21 -07:00
2013-05-14 10:23:57 +05:30
2013-05-30 10:51:20 -07:00
2013-05-07 19:46:02 -07:00
2013-05-07 22:27:15 -04:00
2013-05-08 10:13:35 -07:00
2013-05-08 10:13:35 -07:00
2013-05-15 14:42:15 -07:00
2013-05-24 10:50:24 +09:00
2013-05-02 09:03:55 -07:00
2013-05-09 13:46:38 -04:00
2013-05-31 11:32:30 +02:00
2013-06-12 16:29:44 -07:00
2013-05-11 15:23:17 -07:00
2013-05-01 17:51:54 -07:00
2013-05-10 14:37:17 +01:00
2013-05-02 21:52:26 +05:30
2013-05-07 18:38:27 -07:00
2013-06-10 22:23:32 -07:00
2013-06-20 19:02:45 +04:00
2013-05-09 20:14:25 -04:00
2013-05-09 20:10:22 -04:00
2013-05-06 13:07:33 +02:00
2013-05-07 18:38:27 -07:00
2013-05-08 11:51:05 -07:00
2013-06-12 00:56:27 -07:00
2013-06-19 23:16:50 -07:00
2013-05-02 12:10:19 +02:00
2013-05-13 09:45:01 -04:00
2013-05-24 16:22:51 -07:00
2013-05-16 07:55:07 -07:00
2013-05-31 11:32:30 +02:00
2013-05-05 10:58:06 -07:00
2013-05-31 17:31:52 -07:00
2013-06-12 16:29:47 -07:00
2013-05-07 18:38:26 -07:00
2013-05-02 07:34:58 -07:00
2013-06-26 13:42:54 -07:00
2013-05-23 11:58:55 +02:00
2013-05-06 17:24:22 -04:00
2013-05-04 14:47:26 -04:00
2013-05-08 09:55:05 -04:00
2013-05-02 21:50:38 +05:30
2013-05-07 11:22:14 -07:00
2013-05-02 07:32:24 -07:00
2013-05-17 14:12:06 -06:00
2013-05-28 11:05:08 +02:00
2013-05-07 20:16:25 -07:00
2013-05-05 13:23:27 -07:00
2013-06-19 12:55:10 +02:00
2013-05-22 01:34:24 +02:00
2013-05-07 18:38:27 -07:00
2013-06-02 20:53:59 -07:00
2013-05-28 22:47:13 -04:00
2013-05-28 22:47:13 -04:00
2013-05-24 16:22:50 -07:00
2013-05-24 16:22:50 -07:00
2013-05-30 09:20:20 +02:00
2013-05-11 14:29:11 -07:00
2013-05-01 17:51:54 -07:00
2013-06-25 16:07:44 -07:00
2013-05-06 09:24:16 +03:00
2013-06-14 19:24:42 -10:00
2013-06-06 11:52:14 -07:00
2013-06-20 19:02:45 +04:00
2013-06-12 16:29:46 -07:00
2013-06-12 16:29:44 -07:00
2013-05-09 09:40:49 -07:00
2013-05-14 20:54:06 +02:00
2013-06-10 13:37:10 -07:00
2013-05-11 14:29:11 -07:00
2013-05-20 10:24:22 +09:30
2013-05-02 14:14:04 -07:00
2013-05-20 12:15:59 -07:00
2013-05-31 11:31:50 +02:00
2013-05-24 16:22:50 -07:00
2013-05-07 20:16:25 -07:00