Re: [PATCH v9 00/10] error: auto propagated local_err part I

2020-03-13 Thread Vladimir Sementsov-Ogievskiy

12.03.2020 17:24, Markus Armbruster wrote:

Vladimir Sementsov-Ogievskiy  writes:


v9
01: A lot of rewordings [thanks to Eric]
 Still, keep all r-b marks, assuming that they are mostly about macro 
definition
02: significant changes are:
 1. Do not match double propagation pattern in ERRP_AUTO_PROPAGATE-adding 
rule
 2. Introduce errp->->errp scheme to match only functions matched by 
rule1
in rules inherited from rule1
 3. Add rules to warn about unusual patterns

 Also, add line to MAINTAINERS to keep error related coccinelle scripts 
under
 Error section.
07: add Christian's r-b
09: add Eric's r-b
10: a bit of context in xen_block_iothread_create  and qmp_object_add()
 signature are changed. Patch change is obvious, so I keep Paul's r-b

v9 is available at
  https://src.openvz.org/scm/~vsementsov/qemu.git #tag 
up-auto-local-err-partI-v9


Did you forget to push the tag?


Seems I've pushed it to wrong remote. Done now.




v8 is available at
  https://src.openvz.org/scm/~vsementsov/qemu.git #tag 
up-auto-local-err-partI-v8

[...]




--
Best regards,
Vladimir



Re: [PATCH v9 00/10] error: auto propagated local_err part I

2020-03-12 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy  writes:

> v9
> 01: A lot of rewordings [thanks to Eric]
> Still, keep all r-b marks, assuming that they are mostly about macro 
> definition
> 02: significant changes are:
> 1. Do not match double propagation pattern in ERRP_AUTO_PROPAGATE-adding 
> rule
> 2. Introduce errp->->errp scheme to match only functions matched by 
> rule1
>in rules inherited from rule1
> 3. Add rules to warn about unusual patterns
>
> Also, add line to MAINTAINERS to keep error related coccinelle scripts 
> under
> Error section.
> 07: add Christian's r-b
> 09: add Eric's r-b
> 10: a bit of context in xen_block_iothread_create  and qmp_object_add()
> signature are changed. Patch change is obvious, so I keep Paul's r-b
>
> v9 is available at
>  https://src.openvz.org/scm/~vsementsov/qemu.git #tag 
> up-auto-local-err-partI-v9

Did you forget to push the tag?

> v8 is available at
>  https://src.openvz.org/scm/~vsementsov/qemu.git #tag 
> up-auto-local-err-partI-v8
[...]




[PATCH v9 00/10] error: auto propagated local_err part I

2020-03-12 Thread Vladimir Sementsov-Ogievskiy
v9
01: A lot of rewordings [thanks to Eric]
Still, keep all r-b marks, assuming that they are mostly about macro 
definition
02: significant changes are:
1. Do not match double propagation pattern in ERRP_AUTO_PROPAGATE-adding 
rule
2. Introduce errp->->errp scheme to match only functions matched by 
rule1
   in rules inherited from rule1
3. Add rules to warn about unusual patterns

Also, add line to MAINTAINERS to keep error related coccinelle scripts under
Error section.
07: add Christian's r-b
09: add Eric's r-b
10: a bit of context in xen_block_iothread_create  and qmp_object_add()
signature are changed. Patch change is obvious, so I keep Paul's r-b

v9 is available at
 https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-partI-v9
v8 is available at
 https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-partI-v8

In these series, there is no commit-per-subsystem script, each generated
commit is generated in separate.

Still, generating commands are very similar, and looks like

sed -n '/^$/,/^$/{s/^F: //p}' MAINTAINERS | \
xargs git ls-files | grep '\.[hc]$' | \
xargs spatch \
--sp-file scripts/coccinelle/auto-propagated-errp.cocci \
--macro-file scripts/cocci-macro-file.h \
--in-place --no-show-diff --max-width 80

Note, that in each generated commit, generation command is the only
text, indented by 8 spaces in 'git log -1' output, so, to regenerate all
commits (for example, after rebase, or change in coccinelle script), you
may use the following command:

git rebase -x "sh -c \"git show --pretty= --name-only | xargs git checkout 
HEAD^ -- ; git reset; git log -1 | grep '^' | sh\"" HEAD~7

Which will start automated interactive rebase for generated patches,
which will stop if generated patch changed
(you may do git commit --amend to apply updated generated changes).

Note:
  git show --pretty= --name-only   - lists files, changed in HEAD
  git log -1 | grep '^' | sh   - rerun generation command of HEAD


Check for compilation of changed .c files
git rebase -x "sh -c \"git show --pretty= --name-only | sed -n 's/\.c$/.o/p' | 
xargs make -j9\"" HEAD~7

Vladimir Sementsov-Ogievskiy (10):
  error: auto propagated local_err
  scripts: Coccinelle script to use ERRP_AUTO_PROPAGATE()
  hw/sd/ssi-sd: fix error handling in ssi_sd_realize
  SD (Secure Card): introduce ERRP_AUTO_PROPAGATE
  pflash: introduce ERRP_AUTO_PROPAGATE
  fw_cfg: introduce ERRP_AUTO_PROPAGATE
  virtio-9p: introduce ERRP_AUTO_PROPAGATE
  TPM: introduce ERRP_AUTO_PROPAGATE
  nbd: introduce ERRP_AUTO_PROPAGATE
  xen: introduce ERRP_AUTO_PROPAGATE

 scripts/coccinelle/auto-propagated-errp.cocci | 327 ++
 include/block/nbd.h   |   1 +
 include/qapi/error.h  | 208 +--
 block/nbd.c   |  21 +-
 hw/9pfs/9p-local.c|  12 +-
 hw/9pfs/9p.c  |   1 +
 hw/block/dataplane/xen-block.c|  17 +-
 hw/block/pflash_cfi01.c   |   7 +-
 hw/block/pflash_cfi02.c   |   7 +-
 hw/block/xen-block.c  | 125 +++
 hw/nvram/fw_cfg.c |  14 +-
 hw/pci-host/xen_igd_pt.c  |   7 +-
 hw/sd/sdhci-pci.c |   7 +-
 hw/sd/sdhci.c |  21 +-
 hw/sd/ssi-sd.c|  26 +-
 hw/tpm/tpm_util.c |   7 +-
 hw/xen/xen-backend.c  |   7 +-
 hw/xen/xen-bus.c  |  92 +++--
 hw/xen/xen-host-pci-device.c  |  27 +-
 hw/xen/xen_pt.c   |  25 +-
 hw/xen/xen_pt_config_init.c   |  20 +-
 nbd/client.c  |   5 +
 nbd/server.c  |   5 +
 tpm.c |   7 +-
 MAINTAINERS   |   1 +
 25 files changed, 717 insertions(+), 280 deletions(-)
 create mode 100644 scripts/coccinelle/auto-propagated-errp.cocci

Cc: Eric Blake 
Cc: Kevin Wolf 
Cc: Max Reitz 
Cc: Greg Kurz 
Cc: Christian Schoenebeck 
Cc: Stefano Stabellini 
Cc: Anthony Perard 
Cc: Paul Durrant 
Cc: Stefan Hajnoczi 
Cc: "Philippe Mathieu-Daudé" 
Cc: Laszlo Ersek 
Cc: Gerd Hoffmann 
Cc: Stefan Berger 
Cc: Markus Armbruster 
Cc: Michael Roth 
Cc: qemu-de...@nongnu.org
Cc: qemu-block@nongnu.org
Cc: xen-de...@lists.xenproject.org

-- 
2.21.0