Commit graph

767,456 commits

Author SHA1 Message Date
Masahiro Yamada
8b9d271240 kbuild: reword help of LD_DEAD_CODE_DATA_ELIMINATION
Since commit 5d20ee3192 ("kbuild: Allow LD_DEAD_CODE_DATA_ELIMINATION
to be selectable if enabled"), HAVE_LD_DEAD_CODE_DATA_ELIMINATION is
supposed to be selected by architectures that are capable of this
functionality.  LD_DEAD_CODE_DATA_ELIMINATION is now users' selection.
Update the help message.

Signed-off-by: Masahiro Yamada <[email protected]>
2018-06-28 22:48:07 +09:00
Dirk Gouders
ecd53ac2f2 kconfig: handle P_SYMBOL in print_symbol()
Each symbol has a property of type P_SYMBOL since commit
59e89e3ddf (kconfig: save location of config symbols).
Handle those properties in print_symbol().

Further, place a pointer to print_symbol() in the comment above the
list of known property type.

Signed-off-by: Dirk Gouders <[email protected]>
Signed-off-by: Masahiro Yamada <[email protected]>
2018-06-28 22:47:47 +09:00
Michael Straube
a98a5c27b5 staging: rtl8188eu: remove whitespace - coding style
Remove unrequired whitespace in some declarations,
fix an indentation and remove unrequired blank lines.

Signed-off-by: Michael Straube <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:46:01 +09:00
Michael Straube
a50d971c08 staging: rtl8723bs: use mac_pton() in rtw_macaddr_cfg()
Use the mac_pton() helper to convert the mac address string.

The functions key_char2num() and key_2char2num() are not used
anywhere else and can be removed.

This also has the benefit of validating the input since mac_pton()
returns false if the string is not valid.

Signed-off-by: Michael Straube <[email protected]>
Reviewed-by: Andy Shevchenko <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:46:01 +09:00
Michael Straube
9579ba6e5d staging: rtl8723bs: use ether_addr_copy() in rtw_macaddr_cfg()
Use ether_addr_copy() instead of memcpy() to copy the mac address.

Suggested-by: Andy Shevchenko <[email protected]>
Signed-off-by: Michael Straube <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:46:01 +09:00
Michael Straube
375a2bd275 staging: rtl8723bs: refactor rtw_macaddr_cfg()
Using is_broadcast_ether_addr() and is_zero_ether_addr() instead of
testing each byte of the mac[] array for 0xff and 0x00 shortens the
code and improves readability.

If np == NULL, of_get_property() returns NULL, hence the "np" check
is not needed.

Instead of a fixed default mac address use a random one to reduce the
likelihood of mac address collision.

Thanks to Joe Perches and Dan Carpenter.

Suggested-by: Joe Perches <[email protected]>
Suggested-by: Dan Carpenter <[email protected]>
Signed-off-by: Michael Straube <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:46:01 +09:00
Michael Straube
05ccc7061a staging: rtl8723bs: fix comparsion to NULL - coding style
Fix comparsion to NULL issues found by checkpatch.
Use !x instead of x == NULL.

Signed-off-by: Michael Straube <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:46:01 +09:00
Joe Perches
6d2b0f7b9c staging: Convert random_ether_addr to eth_random_addr
random_ether_addr is a #define for eth_random_addr which is
generally preferred in kernel code by ~3:1

Convert the uses of random_ether_addr to enable removing the #define

Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:14:01 +09:00
Michael Straube
b244f917ac staging: rtl8188eu: remove blank lines
Remove unrequired blank lines after open and before close braces.
Reported by checkpatch.

Signed-off-by: Michael Straube <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:12:55 +09:00
Tim Collier
39b2ef70d6 staging: wlan-ng: add parentheses to macro argument usage in prism2mgmt.c
Fix two "CHECK: Macro argument 'N' may be better as '(N)' to avoid
precedence issue" messages, reported by checkpatch, by adding
parentheses around the offending macro argument references.

Signed-off-by: Tim Collier <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:12:50 +09:00
Tim Collier
b2679009fa staging: wlan-ng: replace macro with inline function in prism2mgmt.c
checkpatch gives the following message for the p80211rate_to_p2bit
macro:

CHECK: Macro argument reuse 'n' - possible side-effects?

To fix the message, replace the macro with an equivalent inline
function.

Signed-off-by: Tim Collier <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:12:50 +09:00
Tim Collier
9e5ffffb68 staging: wlan-ng: replace WLAN_CTL_FRAMELEN with inline function in p80211hdr.h
checkpatch reports a "CHECK" diagnostic for WLAN_CTL_FRAMELEN as the
macro reuses its argument, leading to possible side-effects. Avoid
this by replacing the macro with an equivalent function, named
wlan_ctl_framelen (as recommended in the coding style). All references
to the macro also updated accordingly.

Signed-off-by: Tim Collier <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:12:50 +09:00
Tim Collier
a37545e5e5 staging: wlan-ng: fix coding style (indentation) in prism2mib.c
Fix "CHECK: Alignment should match open parenthesis" reported by
checkpatch.pl.

Signed-off-by: Tim Collier <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:12:50 +09:00
Jia-Ju Bai
ac5e4875e6 staging: rtlwifi: Fix a possible sleep-in-atomic-context bug in _is_fw_read_cmd_down()
The driver may sleep with holding a spinlock.
The function call path (from bottom to top) in Linux-4.16.7 is:

[FUNC] schedule
drivers/staging/rtlwifi/halmac/rtl_halmac.c, 884:
		schedule in _is_fw_read_cmd_down
drivers/staging/rtlwifi/halmac/rtl_halmac.c, 912:
		_is_fw_read_cmd_down in rtl_halmac_send_h2c
drivers/staging/rtlwifi/halmac/rtl_halmac.c, 907:
		_raw_spin_lock_irqsave in rtl_halmac_send_h2c

To fix this bug, schedule() is replaced with mdelay(1).

This bug is found by my static analysis tool (DSAC-2) and checked by
my code review.

Signed-off-by: Jia-Ju Bai <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:10:51 +09:00
Chris Opperman
6b142341a6 staging: wlan-ng: improved readability of function prism2_add_key
Improve readability of prism2_add_key:
a) Reduce nesting and removed goto statement by using more return statements.

Signed-off-by: Chris Opperman <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:10:51 +09:00
Arnd Bergmann
c238d7b1e5 staging: rtsx: remove rtsx_trace() and related code
The driver has rather excessive amount of tracing code, which would be
better done using ftrace. This is obviously not a main feature of the
driver, and it should work just as well without it.

Removing it saves over 1300 lines of code and likely makes the driver
a bit faster by avoiding lots of calls into the timekeeping code.

I came across this while cleaning up the last users of the deprecated
getnstimeofday64() function, of which there is one in the now-removed
get_current_time() function of the rtsx driver that was only used for
tracing.

Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:10:47 +09:00
Omer Efrat
5c6a5eb3aa staging: use BIT_ULL for NL80211_STA_INFO_* attribute types
The BIT macro uses unsigned long which some architectures handle as 32 bit
and therefore might cause macro's shift to overflow when used on a value
equals or larger than 32 (NL80211_STA_INFO_RX_DURATION and afterwards).

Since 'filled' member in station_info changed to u64, BIT_ULL macro
should be used with all NL80211_STA_INFO_* attribute types instead of BIT
to prevent future possible bugs when one will use BIT macro for higher
attributes by mistake.

This commit cleans up all usages of BIT macro with the above field
in cfg80211 by changing it to BIT_ULL instead.

Signed-off-by: Omer Efrat <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:08:56 +09:00
Marcin Ciupak
efc8f3b2f3 staging: most: fix sparse warning Using plain integer as NULL pointer
This patch fixes following sparse warning:
Using plain integer as NULL pointer
in drivers/staging/most/dim2/dim2.c

Signed-off-by: Marcin Ciupak <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:08:51 +09:00
Michael Straube
7c5746c448 staging: rtl8723bs: remove rtw_set_tx_chksum_offload()
The function rtw_set_tx_chksum_offload() has empty definition.

Signed-off-by: Michael Straube <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:06:11 +09:00
Henriette Hofmeier
e8466ea7bc staging: rtl8723bs: Fix comment on variable init
Change comment from 'local variable' to 'global variables'
and change style to comply with coding-style.

Signed-off-by: Henriette Hofmeier <[email protected]>
Signed-off-by: Florian Harbecke <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:05:05 +09:00
Henriette Hofmeier
cbb2cb50c0 staging: rtl8723bs: Remove unnecessary initializations
Remove initializations of global variables with 0.
Criticized by checkpatch.

Signed-off-by: Henriette Hofmeier <[email protected]>
Signed-off-by: Florian Harbecke <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:05:05 +09:00
Henriette Hofmeier
3520c7a47b staging: rtl8723bs: Move definition open brace
Move open braces of definitions to the next line
to comply with codestyle.
Criticized by checkpatch.

Signed-off-by: Henriette Hofmeier <[email protected]>
Signed-off-by: Florian Harbecke <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:05:05 +09:00
Jia-Ju Bai
05e540b277 staging: rtl8723bs: Fix two possible sleep-in-atomic-context bugs in translate_scan()
The driver may sleep with holding a spinlock.
The function call paths (from bottom to top) in Linux-4.16.7 are:

[FUNC] kzalloc(GFP_KERNEL)
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c, 323:
		kzalloc in translate_scan
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c, 1554:
		translate_scan in rtw_wx_get_scan
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c, 1533:
		spin_lock_bh in rtw_wx_get_scan

[FUNC] kzalloc(GFP_KERNEL)
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c, 455:
		kzalloc in translate_scan
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c, 1554:
		translate_scan in rtw_wx_get_scan
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c, 1533:
		spin_lock_bh in rtw_wx_get_scan

To fix these bugs, GFP_KERNEL is replaced with GFP_ATOMIC.

These bugs are found by my static analysis tool (DSAC-2) and checked by
my code review.

Signed-off-by: Jia-Ju Bai <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:05:05 +09:00
Arnd Bergmann
8498887660 staging: rtl8723bs: remove get_monotonic_boottime()
get_monotonic_boottime() is deprecated because it uses the
old 'timespec' structure. This replaces one of the last callers
with a call to ktime_get_boottime, which also simplifies it
a bit by avoiding a double conversion.

Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:05:04 +09:00
Quytelda Kahja
8cc46a2cc2 staging: rtl8723bs: Add missing curly braces on else statement.
Fix 'braces {} should be used on all arms of this statement' coding
style problem in 'phy_get_tx_pwr_lmt()'.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
904604397d staging: rtl8723bs: Merge workaround conditionals into single else-if.
The if conditionals used to work around wrong TX power limit indices
can be condensed into a single if/else-if statement for more concise
expression.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
f574684821 staging: rtl8723bs: Merge conditionals with similar bodies.
Two conditionals that set 'channel' based on 'band_type' in
'phy_get_tx_pwr_lmt()' can be simplified into one single-line conditional.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
871081d4e9 staging: rtl8723bs: Fix spelling mistake in comment.
Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
81dff62b3d staging: rtl8723bs: Move bandwidth index lookup to new function.
Factoring out the conditional lookup of bandwidth index into the power
limit table into it's own function simplifies the logic of
'phy_get_tx_pwr_lmt()'.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
9ca65c3041 staging: rtl8723bs: Move rate section index lookup to new function.
The rate section lookup is a large switch statement in the middle of
'phy_get_tx_pwr_lmt()'; refactor this statement into it's own function
for increased readability.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
ac41f631d4 staging: rtl8723bs: Remove empty else-if conditional.
This else-if conditional block does nothing; remove it.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
fdf620d697 staging: rtl8723bs: Combine if statements with equivalent body.
Two if statements that carry out the same operation can be combined with
a logical OR.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
717209ec61 staging: rtl8723bs: Fix camel-case names in phy_get_tx_pwr_lmt().
Change camel-case names to snake-case names; to avoid variable name
conflicts, rename table index variables to idx_*.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
cc2231a3bb staging: rtl8723bs: Rename PHY_GetTxPowerLimit().
Rename camel-case 'PHY_GetTxPowerLimit()' to 'phy_get_tx_pwr_lmt()'.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:16 +09:00
Quytelda Kahja
26472590a6 staging: rtl8723bs: Clean up whitespace in 'PHY_GetTxPowerLimit()'.
Wrap lines longer than 80 characters where possible, delete double
newlines, and fix alignment per the kernel coding style guidelines.

Signed-off-by: Quytelda Kahja <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:03:15 +09:00
Valentin Vidic
e8b8fc8a38 staging: pi433: cleanup comments in rf69.h
Fixes checkpatch warning:

  WARNING: line over 80 characters

Signed-off-by: Valentin Vidic <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:00:13 +09:00
Valentin Vidic
ecfacacf3f staging: pi433: add SPDX-License-Identifier tag
Use GPL-2.0+ based on the license text in each of the files.

Signed-off-by: Valentin Vidic <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:00:13 +09:00
Valentin Vidic
8679339524 staging: pi433: replace simple switch statements
Use const array to map switch cases to resulting values.

Signed-off-by: Valentin Vidic <[email protected]>
Reviewed-by: Marcus Wolf <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:00:13 +09:00
Hugo Lefeuvre
983000d7fa staging: pi433: fix race condition in pi433_open
The device structure contains a useless non-atomic users counter which
is subject to race conditions. It has probably been created to handle
the case where remove is executed while operations are still executing
on open fds but this will never happen because of reference counts.

Drop the users counter and move rx buffer {de,}allocation to probe()
and remove(). Remove associated dead code from open() and release().
Remove related TODO entry from ioctl().

Signed-off-by: Hugo Lefeuvre <[email protected]>
Reviewed-by: Dan Carpenter <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 22:00:13 +09:00
Arnd Bergmann
10c553b154 staging: android/vsoc: stop using 'timespec'
The timespec structure suffers from the y2038 overflow and should not
be used. This changes handle_vsoc_cond_wait() to use ktime_t directly.

Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed-by: Martijn Coenen <[email protected]>
Tested-by: Alistair Strachan <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:57:06 +09:00
Alistair Strachan
8632c61456 staging: android: ashmem: Fix mmap size validation
The ashmem driver did not check that the size/offset of the vma passed
to its .mmap() function was not larger than the ashmem object being
mapped. This could cause mmap() to succeed, even though accessing parts
of the mapping would later fail with a segmentation fault.

Ensure an error is returned by the ashmem_mmap() function if the vma
size is larger than the ashmem object size. This enables safer handling
of the problem in userspace.

Cc: Todd Kjos <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: Joel Fernandes <[email protected]>
Signed-off-by: Alistair Strachan <[email protected]>
Acked-by: Joel Fernandes (Google) <[email protected]>
Reviewed-by: Martijn Coenen <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:57:06 +09:00
Alistair Strachan
59848d6ade staging: android: ashmem: Remove use of unlikely()
There is no speed difference, and it makes the code harder to read.

Cc: Greg Kroah-Hartman <[email protected]>
Cc: Arve Hjønnevåg <[email protected]>
Cc: Todd Kjos <[email protected]>
Cc: Martijn Coenen <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: Joel Fernandes <[email protected]>
Suggested-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Alistair Strachan <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:57:05 +09:00
Ajay Singh
5c6d0dbb02 staging: wilc1000: updated TODO file
Item [1] in TODO list is already addressed, so removed it from TODO file.

[1]. Move handling for each individual members of 'union message_body' out
into a separate 'struct work_struct' and completely remove the
multiplexerthat is currently part of host_if_work(), allowing movement
of the implementation of each message handler into the callsite of the
function that currently queues the 'host_if_msg'.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:52 +09:00
Ajay Singh
688a45ea20 staging: wilc1000: avoid use of static variable 'rssi'
Instead of static variable now allocating the data and passing to
handle_get_rssi() to fill the rssi information.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:52 +09:00
Ajay Singh
6566dc0416 staging: wilc1000: avoid use of static variable 'inactive_time'
Avoided the use of static variable 'inactive_time' and move it as part of
'sta_inactive_t' structure.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:51 +09:00
Ajay Singh
56b408e513 staging: wilc1000: handle freeing of 'key' & 'seq' data in wilc_add_rx_gtk()
Handle freeing of memory allocated to keep 'key' & 'seq' in wilc_add_rx_gtk().
Once completion event is received, free the memory allocated for
to avoid missing of free in work function.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:51 +09:00
Ajay Singh
5b9be6713a staging: wilc1000: handle freeing of key data in wilc_add_ptk()
Handle freeing of memory allocated to store the 'key' in wilc_add_ptk()
function. Once work completion notification is received, free the
memory allocated to avoid missing of free in work function sepecially
for error scenario.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:51 +09:00
Ajay Singh
e6ea187b5b staging: wilc1000: handle freeing of key data in wep add key
Modified the code to free the allocated memory, used to store the key in
wilc_add_wep_key_bss_sta() and wilc_add_wep_key_bss_ap().
After work completion notification is received, free the
memory allocated to avoid missing of free in work function.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:51 +09:00
Ajay Singh
c6a358d564 staging: wilc1000: rename wilc_enqueue_cmd() to wilc_enqueue_work()
Rename wilc_enqueue_cmd() to wilc_enqueue_work() because its used to
enqueue the work queue. Also removed the function header comment for
wilc_enqueue_cmd() as its not correct.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:51 +09:00
Ajay Singh
708d96fb2a staging: wilc1000: remove 'hif_thread_comp' completions
Remove 'hif_thread_comp' completions as its not required after adding
completion event as part work data to handle each sync call.

Signed-off-by: Ajay Singh <[email protected]>
Reviewed-by: Claudiu Beznea <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-06-28 21:55:51 +09:00