Re: [PATCH v5 05/10] powerpc/smp: Dont assume l2-cache to be superset of sibling

2020-09-11 Thread Srikar Dronamraju
* Michael Ellerman [2020-09-11 21:55:23]: > Srikar Dronamraju writes: > > Current code assumes that cpumask of cpus sharing a l2-cache mask will > > always be a superset of cpu_sibling_mask. > > > > Lets stop that assumption. cpu_l2_cache_mask is a superset of > > cpu_sibling_mask if and only

[PATCH] serial: ucc_uart: make qe_uart_set_mctrl() static

2020-09-11 Thread Jason Yan
This eliminates the following sparse warning: drivers/tty/serial/ucc_uart.c:286:6: warning: symbol 'qe_uart_set_mctrl' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: Jason Yan --- drivers/tty/serial/ucc_uart.c | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH v2] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Vasily Gorbik
Currently to make sure that every page table entry is read just once gup_fast walks perform READ_ONCE and pass pXd value down to the next gup_pXd_range function by value e.g.: static int gup_pud_range(p4d_t p4d, unsigned long addr, unsigned long end, unsigned int flags,

[PATCH] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Vasily Gorbik
Currently to make sure that every page table entry is read just once gup_fast walks perform READ_ONCE and pass pXd value down to the next gup_pXd_range function by value e.g.: static int gup_pud_range(p4d_t p4d, unsigned long addr, unsigned long end, unsigned int flags,

Re: [PATCH v2] selftests/seccomp: fix ptrace tests on powerpc

2020-09-11 Thread Kees Cook
On Fri, Sep 11, 2020 at 03:10:12PM -0300, Thadeu Lima de Souza Cascardo wrote: > As pointed out by Michael Ellerman, the ptrace ABI on powerpc does not > allow or require the return code to be set on syscall entry when > skipping the syscall. It will always return ENOSYS and the return code > must

Re: [PATCH] powerpc/papr_scm: Fix warning triggered by perf_stats_show()

2020-09-11 Thread Ira Weiny
On Sat, Sep 12, 2020 at 01:36:46AM +0530, Vaibhav Jain wrote: > Thanks for reviewing this patch Ira, > > > Ira Weiny writes: > > > On Thu, Sep 10, 2020 at 02:52:12PM +0530, Vaibhav Jain wrote: > >> A warning is reported by the kernel in case perf_stats_show() returns > >> an error code. The

[PATCH] ibmvfc: Avoid link down on FS9100 canister reboot

2020-09-11 Thread Brian King
When a canister on a FS9100, or similar storage, running in NPIV mode, is rebooted, its WWPNs will fail over to another canister. When this occurs, we see a WWPN going away from the fabric at one N-Port ID, and, a short time later, the same WWPN appears at a different N-Port ID. When the canister

Re: [PATCH] powerpc/boot/dts: Fix dtc "pciex" warnings

2020-09-11 Thread Christian Lamparter
Hello, On 2020-09-08 20:52, Christian Lamparter wrote: On Tue, Sep 8, 2020 at 9:12 AM Michael Ellerman wrote: Christian Lamparter writes: On 2020-06-23 15:03, Michael Ellerman wrote: With CONFIG_OF_ALL_DTBS=y, as set by eg. allmodconfig, we see lots of warnings about our dts files, such

Re: [PATCH] powerpc/papr_scm: Fix warning triggered by perf_stats_show()

2020-09-11 Thread Vaibhav Jain
Thanks for reviewing this patch Ira, Ira Weiny writes: > On Thu, Sep 10, 2020 at 02:52:12PM +0530, Vaibhav Jain wrote: >> A warning is reported by the kernel in case perf_stats_show() returns >> an error code. The warning is of the form below: >> >> papr_scm

Re: [PATCH] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Jason Gunthorpe
On Fri, Sep 11, 2020 at 04:40:00PM -0300, Jason Gunthorpe wrote: > These would probably be better as static inlines though, as only s390 > compiles will type check pudp like this. Never mind, it must be a macro - still need brackets though Jason

Re: [PATCH] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Jason Gunthorpe
On Fri, Sep 11, 2020 at 09:03:06PM +0200, Vasily Gorbik wrote: > diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h > index e8cbc2e795d5..e899d3506671 100644 > +++ b/include/linux/pgtable.h > @@ -1427,6 +1427,16 @@ typedef unsigned int pgtbl_mod_mask; > #define mm_pmd_folded(mm)

Re: [PATCH] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Linus Torvalds
On Fri, Sep 11, 2020 at 12:04 PM Vasily Gorbik wrote: > > Currently to make sure that every page table entry is read just once > gup_fast walks perform READ_ONCE and pass pXd value down to the next > gup_pXd_range function by value e.g.: [ ... ] Ack, this looks sane to me. I was going to ask

Re: [PATCH v2] selftests/seccomp: fix ptrace tests on powerpc

2020-09-11 Thread Shuah Khan
On 9/11/20 12:10 PM, Thadeu Lima de Souza Cascardo wrote: As pointed out by Michael Ellerman, the ptrace ABI on powerpc does not allow or require the return code to be set on syscall entry when skipping the syscall. It will always return ENOSYS and the return code must be set on syscall exit.

[PATCH v2] selftests/seccomp: fix ptrace tests on powerpc

2020-09-11 Thread Thadeu Lima de Souza Cascardo
As pointed out by Michael Ellerman, the ptrace ABI on powerpc does not allow or require the return code to be set on syscall entry when skipping the syscall. It will always return ENOSYS and the return code must be set on syscall exit. This code does that, behaving more similarly to strace. It

Re: [PATCH] selftests/seccomp: fix ptrace tests on powerpc

2020-09-11 Thread Thadeu Lima de Souza Cascardo
On Tue, Sep 08, 2020 at 04:18:17PM -0700, Kees Cook wrote: > On Tue, Jun 30, 2020 at 01:47:39PM -0300, Thadeu Lima de Souza Cascardo wrote: > > As pointed out by Michael Ellerman, the ptrace ABI on powerpc does not > > allow or require the return code to be set on syscall entry when > > skipping

[PATCH v2 14/14] powerpc/pseries/iommu: Rename "direct window" to "dma window"

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, A previous change introduced the usage of DDW as a bigger indirect DMA mapping when the DDW available size does not map the whole partition. As most of the code that manipulates direct mappings was reused for indirect mappings,

[PATCH v2 13/14] powerpc/pseries/iommu: Make use of DDW for indirect mapping

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, So far it's assumed possible to map the guest RAM 1:1 to the bus, which works with a small number of devices. SRIOV changes it as the user can configure hundreds VFs and since phyp preallocates TCEs and does not allow IOMMU pages

[PATCH v2 12/14] powerpc/pseries/iommu: Find existing DDW with given property name

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Extract find_existing_ddw_windows() into find_existing_ddw_windows_named() and calls it with current property name. This will allow more property names to be checked in find_existing_ddw_windows(), enabling the creation of new

[PATCH v2 11/14] powerpc/pseries/iommu: Update remove_dma_window() to accept property name

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Update remove_dma_window() so it can be used to remove DDW with a given property name. This enables the creation of new property names for DDW, so we can have different usage for it, like indirect mapping. Signed-off-by: Leonardo

[PATCH v2 10/14] powerpc/pseries/iommu: Reorganize iommu_table_setparms*() with new helper

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Add a new helper _iommu_table_setparms(), and use it in iommu_table_setparms() and iommu_table_setparms_lpar() to avoid duplicated code. Also, setting tbl->it_ops was happening outsite iommu_table_setparms*(), so move it to the

[PATCH v2 09/14] powerpc/pseries/iommu: Add ddw_property_create() and refactor enable_ddw()

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Code used to create a ddw property that was previously scattered in enable_ddw() is now gathered in ddw_property_create(), which deals with allocation and filling the property, letting it ready for of_property_add(), which now

[PATCH v2 08/14] powerpc/pseries/iommu: Allow DDW windows starting at 0x00

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, enable_ddw() currently returns the address of the DMA window, which is considered invalid if has the value 0x00. Also, it only considers valid an address returned from find_existing_ddw if it's not 0x00. Changing this behavior

[PATCH v2 07/14] powerpc/pseries/iommu: Add ddw_list_new_entry() helper

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, There are two functions creating direct_window_list entries in a similar way, so create a ddw_list_new_entry() to avoid duplicity and simplify those functions. Signed-off-by: Leonardo Bras ---

[PATCH v2 05/14] powerpc/kernel/iommu: Add new iommu_table_in_use() helper

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Having a function to check if the iommu table has any allocation helps deciding if a tbl can be reset for using a new DMA window. It should be enough to replace all instances of !bitmap_empty(tbl...). iommu_table_in_use() skips

[PATCH v2 06/14] powerpc/pseries/iommu: Add iommu_pseries_alloc_table() helper

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Creates a helper to allow allocating a new iommu_table without the need to reallocate the iommu_group. This will be helpful for replacing the iommu_table for the new DMA window, after we remove the old one with

[PATCH v2 04/14] powerpc/kernel/iommu: Use largepool as a last resort when !largealloc

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, As of today, doing iommu_range_alloc() only for !largealloc (npages <= 15) will only be able to use 3/4 of the available pages, given pages on largepool not being available for !largealloc. This could mean some drivers not being

[PATCH v2 03/14] powerpc/kernel/iommu: Align size for IOMMU_PAGE_SIZE() to save TCEs

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Currently both iommu_alloc_coherent() and iommu_free_coherent() align the desired allocation size to PAGE_SIZE, and gets system pages and IOMMU mappings (TCEs) for that value. When IOMMU_PAGE_SIZE < PAGE_SIZE, this behavior may

[PATCH v2 02/14] powerpc/pseries/iommu: Makes sure IOMMU_PAGE_SIZE <= PAGE_SIZE

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Having System pagesize < IOMMU pagesize may cause a page owned by another process/VM to be written by a buggy driver / device. As it's intended to use DDW for indirect mapping, it's possible to get a configuration where (PAGE_SIZE

[PATCH v2 01/14] powerpc/pseries/iommu: Replace hard-coded page shift

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, Some functions assume IOMMU page size can only be 4K (pageshift == 12). Update them to accept any page size passed, so we can use 64K pages. In the process, some defines like TCE_SHIFT were made obsolete, and then removed. IODA3

[PATCH v2 00/14] DDW Indirect Mapping

2020-09-11 Thread Leonardo Bras
Cc: linuxppc-dev@lists.ozlabs.org, linux-ker...@vger.kernel.org, ## This patchset is based on top of: https://github.com/linuxppc/linux/tree/next that already contains http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=194179=%2A=both ## So far it's assumed possible to map the guest

Re: [RFC PATCH v2 1/3] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Linus Torvalds
On Fri, Sep 11, 2020 at 5:20 AM Alexander Gordeev wrote: > > What if the entry is still pud_present, but got remapped after > READ_ONCE(*pudp)? IOW, it is still valid, but points elsewhere? That can't happen. The GUP walk doesn't hold any locks, but it *is* done with interrupts disabled, and

Re: [PATCH] powerpc/traps: fix recoverability of machine check handling on book3s/32

2020-09-11 Thread Michael Ellerman
Michal Suchánek writes: > Hello, > > does this logic apply to "Unrecoverable System Reset" as well? Which logic do you mean? We do call die() before checking MSR_RI in system_reset_exception(): /* * No debugger or crash dump registered, print logs then * panic.

Re: [PATCH v1] pseries/hotplug-memory: hot-add: skip redundant LMB lookup

2020-09-11 Thread Michael Ellerman
Hi Scott, Scott Cheloha writes: > During memory hot-add, dlpar_add_lmb() calls memory_add_physaddr_to_nid() > to determine which node id (nid) to use when later calling __add_memory(). > ... > > Consider an LPAR with 126976 LMBs. In one test, hot-adding 126000 Nice little machine you got there

Re: [PATCH] powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP

2020-09-11 Thread Michael Ellerman
Christophe Leroy writes: > Le 11/09/2020 à 01:56, Michael Ellerman a écrit : >> Christophe Leroy writes: >>> low_sleep_handler() has an hardcoded restore of segment registers >>> that doesn't take KUAP and KUEP into account. >>> >>> Use head_32's load_segment_registers() routine instead. >>> >>>

Re: [RFC PATCH v2 1/3] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Alexander Gordeev
On Thu, Sep 10, 2020 at 07:11:16PM -0300, Jason Gunthorpe wrote: > On Thu, Sep 10, 2020 at 02:22:37PM -0700, John Hubbard wrote: > > > Or am I way off here, and it really is possible (aside from the current > > s390 situation) to observe something that "is no longer a page table"? > > Yes, that

Re: [PATCH] KVM: PPC: Don't return -ENOTSUPP to userspace in ioctls

2020-09-11 Thread Thadeu Lima de Souza Cascardo
On Fri, Sep 11, 2020 at 12:53:45PM +0200, Greg Kurz wrote: > ENOTSUPP is a linux only thingy, the value of which is unknown to > userspace, not to be confused with ENOTSUP which linux maps to > EOPNOTSUPP, as permitted by POSIX [1]: > > [EOPNOTSUPP] > Operation not supported on socket. The type

Re: [PATCH v5 05/10] powerpc/smp: Dont assume l2-cache to be superset of sibling

2020-09-11 Thread Michael Ellerman
Srikar Dronamraju writes: > Current code assumes that cpumask of cpus sharing a l2-cache mask will > always be a superset of cpu_sibling_mask. > > Lets stop that assumption. cpu_l2_cache_mask is a superset of > cpu_sibling_mask if and only if shared_caches is set. I'm seeing oopses with this: [

Re: [RFC PATCH v2 1/3] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread Jason Gunthorpe
On Fri, Sep 11, 2020 at 09:09:39AM +0200, pet...@infradead.org wrote: > On Thu, Sep 10, 2020 at 06:59:21PM -0300, Jason Gunthorpe wrote: > > So, I suggest pXX_offset_unlocked() > > Urgh, no. Elsewhere in gup _unlocked() means it will take the lock > itself (get_user_pages_unlocked()) -- although

[PATCH] KVM: PPC: Don't return -ENOTSUPP to userspace in ioctls

2020-09-11 Thread Greg Kurz
ENOTSUPP is a linux only thingy, the value of which is unknown to userspace, not to be confused with ENOTSUP which linux maps to EOPNOTSUPP, as permitted by POSIX [1]: [EOPNOTSUPP] Operation not supported on socket. The type of socket (address family or protocol) does not support the requested

[PATCH v4 4/8] mm/memory_hotplug: prepare passing flags to add_memory() and friends

2020-09-11 Thread David Hildenbrand
We soon want to pass flags, e.g., to mark added System RAM resources. mergeable. Prepare for that. This patch is based on a similar patch by Oscar Salvador: https://lkml.kernel.org/r/20190625075227.15193-3-osalva...@suse.de Acked-by: Wei Liu Reviewed-by: Juergen Gross # Xen related part

Re: [PATCH] powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP

2020-09-11 Thread Christophe Leroy
Le 11/09/2020 à 01:56, Michael Ellerman a écrit : Christophe Leroy writes: low_sleep_handler() has an hardcoded restore of segment registers that doesn't take KUAP and KUEP into account. Use head_32's load_segment_registers() routine instead. Signed-off-by: Christophe Leroy Fixes:

Re: [PATCH v1] pseries/hotplug-memory: hot-add: skip redundant LMB lookup

2020-09-11 Thread kernel test robot
'--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Scott-Cheloha/pseries-hotplug-memory-hot-add-skip-redundant-LMB-lookup/20200911-015744 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc

[PATCH v2] powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP

2020-09-11 Thread Christophe Leroy
low_sleep_handler() has an hardcoded restore of segment registers that doesn't take KUAP and KUEP into account. Use head_32's load_segment_registers() routine instead. Signed-off-by: Christophe Leroy Fixes: a68c31fc01ef ("powerpc/32s: Implement Kernel Userspace Access Protection") Fixes:

Re: [PATCH] powerpc/traps: fix recoverability of machine check handling on book3s/32

2020-09-11 Thread Christophe Leroy
Hello, Le 11/09/2020 à 11:15, Michal Suchánek a écrit : Hello, does this logic apply to "Unrecoverable System Reset" as well? I don't know, I don't think I have any way the generate a System Reset on my board to check it. Christophe Thanks Michal On Tue, Jan 22, 2019 at 02:11:24PM

Re: [PATCH] powerpc/traps: fix recoverability of machine check handling on book3s/32

2020-09-11 Thread Michal Suchánek
Hello, does this logic apply to "Unrecoverable System Reset" as well? Thanks Michal On Tue, Jan 22, 2019 at 02:11:24PM +, Christophe Leroy wrote: > Looks like book3s/32 doesn't set RI on machine check, so > checking RI before calling die() will always be fatal > allthought this is not an

Re: [PATCH 1/7] powerpc/sysfs: Fix W=1 compile warning

2020-09-11 Thread Cédric Le Goater
On 9/11/20 7:26 AM, Christophe Leroy wrote: > > > Le 10/09/2020 à 23:02, Cédric Le Goater a écrit : >> arch/powerpc/kernel/sysfs.c: In function ‘sysfs_create_dscr_default’: >> arch/powerpc/kernel/sysfs.c:228:7: error: variable ‘err’ set but not used >> [-Werror=unused-but-set-variable] >>    

Re: [PATCH] KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest

2020-09-11 Thread Greg Kurz
On Fri, 11 Sep 2020 10:08:10 +0200 Michal Suchánek wrote: > On Fri, Sep 11, 2020 at 10:01:33AM +0200, Greg Kurz wrote: > > On Fri, 11 Sep 2020 09:45:36 +0200 > > Greg Kurz wrote: > > > > > On Fri, 11 Sep 2020 01:16:07 -0300 > > > Fabiano Rosas wrote: > > > > > > > The current nested KVM code

Re: [PATCH] KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest

2020-09-11 Thread Michal Suchánek
On Fri, Sep 11, 2020 at 10:01:33AM +0200, Greg Kurz wrote: > On Fri, 11 Sep 2020 09:45:36 +0200 > Greg Kurz wrote: > > > On Fri, 11 Sep 2020 01:16:07 -0300 > > Fabiano Rosas wrote: > > > > > The current nested KVM code does not support HPT guests. This is > > > informed/enforced in some ways:

Re: [PATCH] KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest

2020-09-11 Thread Greg Kurz
On Fri, 11 Sep 2020 09:45:36 +0200 Greg Kurz wrote: > On Fri, 11 Sep 2020 01:16:07 -0300 > Fabiano Rosas wrote: > > > The current nested KVM code does not support HPT guests. This is > > informed/enforced in some ways: > > > > - Hosts < P9 will not be able to enable the nested HV feature; > >

Re: [PATCH] KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest

2020-09-11 Thread Greg Kurz
On Fri, 11 Sep 2020 01:16:07 -0300 Fabiano Rosas wrote: > The current nested KVM code does not support HPT guests. This is > informed/enforced in some ways: > > - Hosts < P9 will not be able to enable the nested HV feature; > > - The nested hypervisor MMU capabilities will not contain >

Re: [RFC PATCH v2 1/3] mm/gup: fix gup_fast with dynamic page table folding

2020-09-11 Thread peterz
On Thu, Sep 10, 2020 at 06:59:21PM -0300, Jason Gunthorpe wrote: > So, I suggest pXX_offset_unlocked() Urgh, no. Elsewhere in gup _unlocked() means it will take the lock itself (get_user_pages_unlocked()) -- although often it seems to mean the lock is already held (git grep _unlocked and marvel).

Re: [PATCH 5/7] powerpc/powernv/pci: Fix W=1 compile warning

2020-09-11 Thread Oliver O'Halloran
On Fri, Sep 11, 2020 at 7:02 AM Cédric Le Goater wrote: > > CC arch/powerpc/platforms/powernv/pci-ioda.o > ../arch/powerpc/platforms/powernv/pci-ioda.c: In function > ‘pnv_ioda_configure_pe’: > ../arch/powerpc/platforms/powernv/pci-ioda.c:897:18: error: variable ‘parent’ > set but not

Re: [PATCH 3/7] powerpc/sstep: Fix W=1 compile warning

2020-09-11 Thread Christophe Leroy
Le 11/09/2020 à 07:59, Cédric Le Goater a écrit : On 9/11/20 7:38 AM, Christophe Leroy wrote: Le 10/09/2020 à 23:02, Cédric Le Goater a écrit : ../arch/powerpc/lib/sstep.c: In function ‘mlsd_8lsd_ea’: ../arch/powerpc/lib/sstep.c:225:3: error: suggest braces around empty body in an ‘if’

Re: [PATCH 2/7] powerpc/prom: Fix W=1 compile warning

2020-09-11 Thread Cédric Le Goater
On 9/11/20 7:33 AM, Christophe Leroy wrote: > > > Le 10/09/2020 à 23:02, Cédric Le Goater a écrit : >> arch/powerpc/kernel/prom.c: In function ‘early_reserve_mem’: >> arch/powerpc/kernel/prom.c:625:10: error: variable ‘reserve_map’ set but not >> used [-Werror=unused-but-set-variable] >>   

Re: [PATCH 3/7] powerpc/sstep: Fix W=1 compile warning

2020-09-11 Thread Cédric Le Goater
On 9/11/20 7:38 AM, Christophe Leroy wrote: > > > Le 10/09/2020 à 23:02, Cédric Le Goater a écrit : >> ../arch/powerpc/lib/sstep.c: In function ‘mlsd_8lsd_ea’: >> ../arch/powerpc/lib/sstep.c:225:3: error: suggest braces around empty body >> in an ‘if’ statement [-Werror=empty-body] >>     ; /*