Suzuki K Poulose
d375b356e6
coresight: Fix support for sparsely populated ports
...
On some systems the firmware may not describe all the ports
connected to a component (e.g, for security reasons). This
could be especially problematic for "funnels" where we could
end up in modifying memory beyond the allocated space for
refcounts.
e.g, for a funnel with input ports listed 0, 3, 5, nr_inport = 3.
However the we could access refcnts[5] while checking for
references, like :
[ 526.110401] ==================================================================
[ 526.117988] BUG: KASAN: slab-out-of-bounds in funnel_enable+0x54/0x1b0
[ 526.124706] Read of size 4 at addr ffffff8135f9549c by task bash/1114
[ 526.131324]
[ 526.132886] CPU: 3 PID: 1114 Comm: bash Tainted: G S 5.4.25 #232
[ 526.140397] Hardware name: Qualcomm Technologies, Inc. SC7180 IDP (DT)
[ 526.147113] Call trace:
[ 526.149653] dump_backtrace+0x0/0x188
[ 526.153431] show_stack+0x20/0x2c
[ 526.156852] dump_stack+0xdc/0x144
[ 526.160370] print_address_description+0x3c/0x494
[ 526.165211] __kasan_report+0x144/0x168
[ 526.169170] kasan_report+0x10/0x18
[ 526.172769] check_memory_region+0x1a4/0x1b4
[ 526.177164] __kasan_check_read+0x18/0x24
[ 526.181292] funnel_enable+0x54/0x1b0
[ 526.185072] coresight_enable_path+0x104/0x198
[ 526.189649] coresight_enable+0x118/0x26c
...
[ 526.237782] Allocated by task 280:
[ 526.241298] __kasan_kmalloc+0xf0/0x1ac
[ 526.245249] kasan_kmalloc+0xc/0x14
[ 526.248849] __kmalloc+0x28c/0x3b4
[ 526.252361] coresight_register+0x88/0x250
[ 526.256587] funnel_probe+0x15c/0x228
[ 526.260365] dynamic_funnel_probe+0x20/0x2c
[ 526.264679] amba_probe+0xbc/0x158
[ 526.268193] really_probe+0x144/0x408
[ 526.271970] driver_probe_device+0x70/0x140
...
[ 526.316810]
[ 526.318364] Freed by task 0:
[ 526.321344] (stack is not available)
[ 526.325024]
[ 526.326580] The buggy address belongs to the object at ffffff8135f95480
[ 526.326580] which belongs to the cache kmalloc-128 of size 128
[ 526.339439] The buggy address is located 28 bytes inside of
[ 526.339439] 128-byte region [ffffff8135f95480, ffffff8135f95500)
[ 526.351399] The buggy address belongs to the page:
[ 526.356342] page:ffffffff04b7e500 refcount:1 mapcount:0 mapping:ffffff814b00c380 index:0x0 compound_mapcount: 0
[ 526.366711] flags: 0x4000000000010200(slab|head)
[ 526.371475] raw: 4000000000010200 ffffffff05034008 ffffffff0501eb08 ffffff814b00c380
[ 526.379435] raw: 0000000000000000 0000000000190019 00000001ffffffff 0000000000000000
[ 526.387393] page dumped because: kasan: bad access detected
[ 526.393128]
[ 526.394681] Memory state around the buggy address:
[ 526.399619] ffffff8135f95380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 526.407046] ffffff8135f95400: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 526.414473] >ffffff8135f95480: 04 fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 526.421900] ^
[ 526.426029] ffffff8135f95500: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 526.433456] ffffff8135f95580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 526.440883] ==================================================================
To keep the code simple, we now track the maximum number of
possible input/output connections to/from this component
@ nr_inport and nr_outport in platform_data, respectively.
Thus the output connections could be sparse and code is
adjusted to skip the unspecified connections.
Cc: Mathieu Poirier <mathieu.poirier@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Reported-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org >
Tested-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org >
Tested-by: Stephen Boyd <swboyd@chromium.org >
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Link: https://lore.kernel.org/r/20200518180242.7916-13-mathieu.poirier@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-05-19 16:31:16 +02:00
..
2020-04-28 17:44:34 +02:00
2020-04-18 15:44:54 -05:00
2020-03-30 12:42:42 +02:00
2020-02-18 21:47:54 +01:00
2020-03-04 18:11:44 +01:00
2020-01-21 11:06:12 +05:30
2020-03-24 16:19:01 -07:00
2020-04-28 15:46:54 +02:00
2020-04-01 14:47:40 -07:00
2020-03-31 21:29:04 +02:00
2020-05-13 13:59:13 +02:00
2020-04-20 14:07:00 +02:00
2020-04-16 10:28:12 +01:00
2019-12-11 09:12:38 +01:00
2019-11-12 11:43:29 -05:00
2020-01-08 12:59:53 +01:00
2020-04-08 21:29:10 -07:00
2020-01-31 14:40:36 -08:00
2020-04-01 18:18:18 -07:00
2020-03-26 14:45:31 +01:00
2020-03-30 10:14:19 +02:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2020-03-17 22:50:30 +00:00
2020-03-19 13:59:46 +01:00
2020-03-31 22:08:54 +02:00
2020-05-06 16:40:14 -07:00
2020-04-10 15:36:22 -07:00
2020-03-30 11:45:18 -07:00
2020-03-24 07:57:08 -06:00
2020-03-18 21:57:20 +00:00
2020-03-08 22:07:09 -07:00
2020-01-20 10:29:56 -08:00
2020-04-18 15:44:56 -05:00
2020-04-03 15:05:35 -07:00
2020-03-20 19:25:14 +05:30
2020-04-07 19:44:52 -07:00
2020-05-02 11:24:01 -07:00
2020-03-16 22:08:34 -04:00
2020-04-02 15:50:04 -07:00
2020-04-08 21:03:40 -07:00
2020-03-28 13:19:05 -05:00
2019-12-04 13:32:45 +10:00
2019-12-25 20:47:19 -07:00
2020-01-24 21:03:53 +01:00
2020-01-14 15:16:50 +01:00
2020-03-31 10:05:01 -07:00
2020-02-24 16:12:28 +01:00
2020-01-15 22:55:36 -05:00
2019-11-23 09:56:02 -08:00
2020-05-09 16:07:57 -06:00
2020-05-07 08:45:47 -06:00
2020-03-25 10:03:36 -05:00
2020-04-18 15:44:54 -05:00
2020-03-12 15:48:37 -07:00
2020-03-05 13:23:25 -08:00
2020-04-07 10:43:42 -07:00
2020-04-07 10:43:43 -07:00
2020-04-18 15:44:54 -05:00
2020-04-01 14:56:44 -06:00
2020-04-18 15:44:54 -05:00
2020-03-30 11:43:51 -07:00
2020-02-25 08:40:07 -07:00
2020-03-03 17:38:42 -05:00
2020-03-30 01:34:00 +02:00
2020-03-30 01:34:00 +02:00
2020-03-30 14:59:53 -07:00
2020-03-30 17:36:33 -07:00
2020-03-30 19:52:37 -07:00
2020-03-27 16:07:24 -07:00
2019-11-14 13:15:11 -05:00
2020-01-22 23:04:52 +01:00
2020-04-15 23:58:48 -04:00
2019-12-04 19:44:12 -08:00
2020-01-04 20:23:39 -07:00
2020-04-03 11:30:20 -07:00
2020-02-12 17:57:51 -05:00
2020-03-25 17:38:23 -07:00
2020-01-07 11:31:47 +01:00
2020-01-27 10:24:32 +01:00
2020-03-21 15:23:56 +01:00
2020-04-10 15:36:21 -07:00
2020-03-31 11:04:05 -07:00
2020-04-07 10:43:42 -07:00
2020-04-07 10:43:42 -07:00
2020-03-21 16:00:24 +01:00
2020-03-17 15:26:43 +01:00
2020-03-21 15:23:53 +01:00
2020-01-27 19:59:55 +01:00
2020-05-19 16:31:16 +02:00
2020-01-27 10:24:32 +01:00
2020-04-18 15:44:55 -05:00
2020-03-28 11:42:55 +01:00
2020-03-06 16:02:50 +00:00
2020-03-16 15:48:54 +00:00
2020-01-23 00:35:50 +01:00
2020-03-20 13:06:18 +01:00
2020-04-03 11:32:13 -04:00
2020-01-09 11:30:53 +08:00
2020-04-02 19:15:03 -07:00
2019-11-15 13:49:04 -05:00
2020-02-28 12:08:37 -08:00
2020-04-17 17:08:50 +02:00
2019-12-16 10:11:10 +01:00
2020-04-07 10:45:15 +02:00
2020-03-25 08:35:03 +09:00
2020-04-02 19:15:03 -07:00
2020-04-08 11:00:00 -07:00
2020-04-18 15:44:54 -05:00
2020-03-09 11:12:19 +01:00
2020-04-18 15:44:54 -05:00
2020-04-30 19:47:39 +05:30
2019-11-21 18:14:35 +01:00
2019-12-11 11:13:33 +05:30
2019-11-28 11:16:43 -08:00
2020-03-16 10:48:12 +01:00
2020-04-27 21:26:23 +05:30
2020-03-10 10:30:52 +01:00
2019-12-03 11:20:37 +01:00
2020-02-27 12:15:24 +01:00
2020-02-17 13:37:00 +01:00
2020-03-20 14:57:54 +01:00
2020-03-31 11:04:05 -07:00
2020-03-21 15:24:00 +01:00
2020-04-18 15:44:54 -05:00
2020-04-18 15:44:54 -05:00
2020-03-22 23:06:34 +01:00
2020-01-27 11:09:31 +01:00
2019-12-27 16:40:02 -08:00
2020-04-18 15:44:54 -05:00
2020-02-03 17:27:38 -07:00
2020-01-29 15:45:47 -07:00
2019-12-16 10:35:33 +01:00
2019-11-12 08:18:04 -08:00
2020-03-19 07:41:01 +01:00
2020-03-25 08:16:13 +09:00
2020-03-22 21:16:28 -07:00
2020-01-03 09:42:52 +01:00
2020-03-25 23:17:16 +01:00
2020-01-03 14:27:40 +01:00
2020-01-18 09:19:18 -05:00
2020-03-20 08:47:27 -06:00
2020-03-13 12:49:51 -07:00
2020-03-20 14:54:04 +01:00
2020-02-07 14:48:39 -05:00
2020-02-07 14:48:38 -05:00
2020-05-04 09:16:37 -07:00
2020-03-19 21:56:54 -07:00
2020-03-25 10:27:16 +01:00
2020-03-25 10:27:16 +01:00
2020-01-14 13:27:32 -08:00
2019-12-11 12:22:38 -08:00
2020-03-06 11:06:15 +01:00
2020-03-04 17:58:48 +01:00
2020-04-18 15:44:54 -05:00
2020-03-30 11:20:13 -07:00
2020-04-07 10:43:38 -07:00
2020-02-10 12:58:36 +01:00
2020-03-21 16:03:53 +01:00
2020-03-17 17:25:06 +01:00
2020-02-26 13:31:18 +02:00
2020-02-12 14:18:33 +01:00
2020-03-27 20:19:24 -03:00
2020-01-15 16:21:28 +10:00
2020-01-14 12:20:55 +01:00
2020-04-07 10:43:39 -07:00
2020-04-02 09:35:32 -07:00
2020-04-10 15:36:21 -07:00
2020-01-23 13:15:09 -08:00
2020-01-26 22:10:17 -05:00
2020-03-10 12:20:04 +01:00
2020-04-15 11:48:21 +02:00
2020-02-25 11:01:39 -08:00
2020-01-30 07:39:10 -08:00
2019-11-08 08:46:49 -08:00
2020-03-29 21:25:29 -07:00
2020-01-08 12:52:33 -08:00
2020-04-18 15:44:55 -05:00
2020-04-18 15:44:55 -05:00
2020-03-12 07:43:57 -04:00
2020-03-12 22:34:48 -07:00
2019-12-12 18:58:24 +01:00
2020-03-13 14:25:46 +01:00
2020-02-10 10:41:20 +01:00
2019-12-16 09:25:24 +02:00
2020-03-08 11:06:42 +01:00
2020-03-11 14:15:20 -06:00
2020-01-10 15:52:25 +00:00
2020-02-19 11:21:41 -08:00
2020-03-12 07:07:38 -06:00
2020-03-27 11:14:52 +01:00
2020-03-23 22:00:02 -07:00
2019-11-07 15:44:14 +01:00
2020-03-29 22:30:57 -07:00
2020-03-21 16:00:24 +01:00
2020-04-19 11:23:33 -07:00
2020-03-17 19:13:32 +01:00
2020-02-21 11:29:15 +01:00
2020-04-01 13:20:14 +02:00
2020-01-25 03:01:56 -05:00
2020-03-21 15:23:58 +01:00
2020-04-02 09:35:30 -07:00
2019-12-04 19:44:14 -08:00
2020-01-31 17:33:54 +00:00
2019-11-21 07:33:24 +01:00
2020-02-20 21:17:24 +01:00
2019-12-11 09:12:38 +01:00
2020-03-16 15:53:47 -04:00
2020-03-29 12:40:41 +01:00
2020-02-12 12:05:46 +01:00
2020-04-02 09:35:25 -07:00
2020-03-30 18:51:47 -07:00
2020-04-14 10:39:56 -04:00
2020-01-30 18:45:55 +01:00
2019-12-21 20:09:54 +01:00
2020-04-06 22:55:27 +02:00
2020-03-26 10:28:20 -06:00
2019-11-26 13:35:25 -07:00
2020-03-17 12:23:21 -07:00
2019-11-14 11:36:53 +08:00
2020-03-31 17:29:33 -07:00
2020-02-16 19:39:44 -08:00
2020-04-18 15:44:55 -05:00
2020-01-10 14:00:57 -08:00
2020-03-17 17:25:06 +01:00
2020-03-23 18:40:25 +01:00
2019-12-09 17:53:58 -05:00
2020-04-30 20:29:34 -07:00
2020-03-31 17:29:33 -07:00
2020-03-21 15:23:56 +01:00
2020-03-09 20:13:16 -07:00
2020-03-17 22:51:16 -07:00
2020-04-10 15:36:21 -07:00
2020-04-18 15:44:55 -05:00
2020-04-10 15:36:21 -07:00
2020-04-07 10:43:40 -07:00
2020-04-02 09:35:31 -07:00
2019-11-07 15:45:00 +01:00
2020-04-08 21:03:40 -07:00
2020-05-11 09:17:15 +02:00
2020-03-26 14:33:38 -03:00
2019-12-25 19:51:33 -08:00
2020-03-15 17:10:14 -07:00
2020-03-06 11:56:59 +01:00
2020-03-19 07:41:02 +01:00
2020-04-07 10:43:38 -07:00
2020-04-07 10:43:41 -07:00
2020-04-10 15:36:21 -07:00
2020-01-14 11:54:47 -04:00
2020-04-08 21:03:40 -07:00
2020-04-03 13:22:40 -07:00
2020-02-01 10:01:52 -08:00
2019-12-01 12:59:05 -08:00
2019-12-09 10:55:03 +01:00
2020-03-24 13:42:44 +01:00
2020-03-24 07:57:08 -06:00
2020-03-21 16:00:24 +01:00
2020-03-13 21:08:19 -04:00
2019-11-14 19:06:47 -08:00
2019-12-12 17:04:54 -08:00
2020-03-26 20:17:36 -07:00
2020-03-30 19:52:37 -07:00
2020-03-18 16:35:48 -07:00
2020-03-25 18:58:11 -07:00
2020-01-15 10:54:33 -05:00
2020-04-06 13:56:33 -04:00
2020-04-01 13:37:57 -04:00
2020-04-28 15:58:38 -04:00
2019-12-04 19:44:12 -08:00
2020-01-14 12:20:48 +01:00
2020-02-18 10:28:05 -08:00
2020-04-04 09:09:39 +02:00
2019-11-22 02:21:08 +09:00
2020-03-19 07:41:02 +01:00
2020-01-09 10:48:54 +01:00
2020-02-14 14:25:26 -06:00
2020-02-12 12:57:59 -08:00
2020-02-10 12:58:36 +01:00
2019-12-26 15:17:26 -08:00
2019-11-21 07:49:29 -06:00
2020-01-02 16:50:04 +01:00
2019-12-17 08:06:51 -08:00
2019-12-11 16:37:02 +08:00
2020-04-02 09:35:27 -07:00
2020-04-07 10:43:39 -07:00
2020-04-07 10:43:38 -07:00
2020-01-31 10:30:39 -08:00
2020-04-07 10:43:38 -07:00
2020-02-04 03:05:25 +00:00
2020-04-23 17:05:39 +02:00
2020-03-25 09:50:09 -06:00
2020-04-03 14:25:02 -07:00
2020-03-28 13:19:04 -05:00
2020-01-15 16:30:28 +00:00
2020-04-02 17:57:10 +01:00
2020-04-02 17:57:10 +01:00
2020-04-03 14:25:02 -07:00
2020-02-23 21:59:42 +01:00
2020-04-07 10:43:43 -07:00
2020-01-31 11:15:59 -08:00
2020-01-20 17:04:02 -07:00
2020-02-11 13:10:58 +01:00
2020-03-27 10:41:44 -03:00
2019-12-09 10:36:44 -08:00
2020-03-23 22:00:02 -07:00
2020-03-30 11:52:27 -07:00
2020-02-28 12:06:14 -06:00
2020-04-09 12:15:35 -05:00
2020-02-12 11:54:08 -08:00
2020-04-28 17:44:33 +02:00
2020-01-02 16:52:40 +01:00
2019-11-11 10:27:15 +05:30
2020-02-14 10:37:27 +01:00
2020-03-04 11:01:18 +01:00
2019-11-13 11:41:50 +01:00
2020-01-23 13:15:09 -08:00
2020-04-22 11:36:11 +02:00
2020-04-18 15:44:55 -05:00
2019-12-30 20:19:27 -08:00
2020-03-04 09:54:55 +01:00
2019-12-19 01:36:32 +01:00
2020-02-20 21:17:24 +01:00
2020-04-10 13:18:57 -07:00
2020-04-07 10:43:42 -07:00
2020-04-02 11:22:17 -07:00
2019-12-03 11:46:20 +01:00
2020-01-02 16:49:59 +01:00
2020-03-20 13:06:18 +01:00
2020-03-20 13:06:19 +01:00
2020-01-04 13:49:51 +08:00
2020-02-04 03:05:25 +00:00
2020-03-30 11:16:38 -07:00
2020-01-13 18:16:43 -08:00
2020-03-18 15:05:57 +00:00
2020-03-30 16:55:26 +02:00
2020-01-07 22:14:38 -08:00
2019-11-11 11:06:27 +01:00
2020-02-07 14:48:37 -05:00
2020-02-27 23:21:52 -05:00
2019-12-04 19:44:13 -08:00
2020-01-24 10:24:31 -08:00
2020-02-17 10:55:14 +01:00
2020-02-20 15:58:23 -08:00
2020-01-24 10:37:27 -08:00
2020-02-20 16:03:30 -08:00
2020-02-20 16:03:30 -08:00
2020-03-21 16:00:22 +01:00
2020-04-08 12:05:07 +02:00
2020-02-19 18:12:31 +00:00
2020-03-25 22:29:45 -07:00
2020-01-20 16:19:10 +01:00
2019-12-05 11:43:31 -08:00
2019-12-05 11:43:31 -08:00
2020-03-06 22:33:38 -08:00
2020-03-27 16:39:01 -04:00
2020-04-18 15:44:56 -05:00
2020-04-18 15:44:56 -05:00
2020-04-02 18:47:30 +02:00
2019-11-14 13:07:48 +08:00
2020-03-21 16:00:24 +01:00
2020-03-21 16:00:24 +01:00
2019-11-13 12:50:40 -07:00
2020-04-02 11:22:17 -07:00
2019-12-24 11:35:48 +00:00
2020-03-04 14:48:54 -08:00
2020-03-31 15:49:51 -07:00
2020-02-21 10:31:18 +01:00
2019-11-14 13:15:12 -05:00
2020-04-07 10:43:42 -07:00
2020-03-17 15:58:00 +01:00
2020-03-12 17:16:42 +01:00
2019-12-11 11:53:41 -08:00
2020-04-07 10:43:38 -07:00
2020-03-26 14:41:22 -04:00
2020-04-18 15:44:56 -05:00
2020-03-09 22:34:58 +01:00
2020-04-10 15:36:20 -07:00
2020-01-24 20:40:09 +01:00
2020-03-30 12:18:49 -07:00
2019-11-14 13:15:11 -05:00
2020-03-21 16:00:24 +01:00
2020-03-21 16:00:24 +01:00
2020-03-02 14:04:31 -07:00
2020-04-07 10:43:43 -07:00
2020-03-18 09:50:20 +00:00
2019-11-13 12:15:34 -08:00
2020-04-21 15:54:45 -07:00
2020-01-17 10:19:21 +01:00
2020-02-04 03:05:26 +00:00
2020-03-23 13:41:55 +01:00
2020-01-31 10:30:40 -08:00
2020-04-18 15:44:56 -05:00
2020-04-07 10:43:41 -07:00
2020-02-05 18:53:05 +01:00
2020-01-15 11:00:39 -06:00
2020-01-06 13:33:14 -08:00
2020-01-29 19:38:34 -08:00
2019-12-04 19:44:11 -08:00
2020-04-05 11:34:35 -07:00
2020-03-07 09:52:02 +01:00
2020-04-30 12:23:22 -07:00
2020-02-28 13:37:42 +01:00
2020-03-12 11:56:53 +01:00
2019-12-04 19:44:14 -08:00
2020-03-21 17:48:13 +01:00
2020-04-18 15:44:56 -05:00
2019-12-09 12:32:59 -08:00
2020-03-30 18:51:47 -07:00
2020-03-21 15:23:58 +01:00
2020-01-14 12:20:59 +01:00
2020-03-21 15:23:57 +01:00
2020-02-21 11:22:15 -08:00
2020-02-20 15:58:22 -08:00
2020-03-30 14:59:53 -07:00
2020-04-02 09:35:26 -07:00
2020-04-18 15:44:56 -05:00
2019-12-17 11:46:43 +02:00
2020-03-19 17:48:36 -04:00
2019-11-14 13:15:12 -05:00
2019-11-22 19:41:08 -05:00
2019-12-10 22:29:58 -05:00
2020-04-22 22:06:35 -04:00
2020-01-15 22:55:37 -05:00
2020-05-04 09:16:37 -07:00
2020-02-21 11:22:15 -08:00
2019-11-07 20:03:08 -08:00
2020-03-06 12:28:24 +11:00
2020-03-18 12:34:10 +01:00
2020-01-31 10:30:39 -08:00
2020-02-19 11:08:52 +01:00
2020-02-23 19:24:51 +01:00
2020-02-23 19:24:51 +01:00
2020-01-14 12:20:48 +01:00
2020-04-07 10:43:39 -07:00
2020-03-23 17:01:47 +01:00
2020-04-17 06:05:30 -04:00
2020-04-23 10:50:26 +09:00
2020-03-24 09:32:41 -06:00
2020-04-01 12:06:26 -04:00
2020-05-06 17:23:06 -07:00
2020-04-27 10:18:01 -07:00
2020-04-17 06:05:30 -04:00
2020-04-07 10:43:38 -07:00
2020-04-21 11:11:56 -07:00
2019-12-04 19:44:11 -08:00
2019-11-14 18:12:18 -08:00
2020-04-16 18:31:08 -04:00
2020-03-06 08:35:39 +01:00
2019-11-14 12:20:02 +08:00
2020-02-11 13:10:56 +01:00
2020-04-03 12:27:36 -07:00
2020-03-12 17:42:08 -04:00
2020-04-18 15:44:56 -05:00
2020-01-31 10:30:40 -08:00
2020-03-09 11:12:19 +01:00