Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: qlge: devlink health: use retained error fmsg API

Drop unneeded error checking.

devlink_fmsg_*() family of functions is now retaining errors,
so there is no need to check for them after each call.

Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Przemek Kitszel and committed by
David S. Miller
3465915e 18256cb2

+16 -44
+16 -44
drivers/staging/qlge/qlge_devlink.c
··· 2 2 #include "qlge.h" 3 3 #include "qlge_devlink.h" 4 4 5 - static int qlge_fill_seg_(struct devlink_fmsg *fmsg, 6 - struct mpi_coredump_segment_header *seg_header, 7 - u32 *reg_data) 5 + static void qlge_fill_seg_(struct devlink_fmsg *fmsg, 6 + struct mpi_coredump_segment_header *seg_header, 7 + u32 *reg_data) 8 8 { 9 9 int regs_num = (seg_header->seg_size 10 10 - sizeof(struct mpi_coredump_segment_header)) / sizeof(u32); 11 - int err; 12 11 int i; 13 12 14 - err = devlink_fmsg_pair_nest_start(fmsg, seg_header->description); 15 - if (err) 16 - return err; 17 - err = devlink_fmsg_obj_nest_start(fmsg); 18 - if (err) 19 - return err; 20 - err = devlink_fmsg_u32_pair_put(fmsg, "segment", seg_header->seg_num); 21 - if (err) 22 - return err; 23 - err = devlink_fmsg_arr_pair_nest_start(fmsg, "values"); 24 - if (err) 25 - return err; 13 + devlink_fmsg_pair_nest_start(fmsg, seg_header->description); 14 + devlink_fmsg_obj_nest_start(fmsg); 15 + devlink_fmsg_u32_pair_put(fmsg, "segment", seg_header->seg_num); 16 + devlink_fmsg_arr_pair_nest_start(fmsg, "values"); 26 17 for (i = 0; i < regs_num; i++) { 27 - err = devlink_fmsg_u32_put(fmsg, *reg_data); 28 - if (err) 29 - return err; 18 + devlink_fmsg_u32_put(fmsg, *reg_data); 30 19 reg_data++; 31 20 } 32 - err = devlink_fmsg_obj_nest_end(fmsg); 33 - if (err) 34 - return err; 35 - err = devlink_fmsg_arr_pair_nest_end(fmsg); 36 - if (err) 37 - return err; 38 - err = devlink_fmsg_pair_nest_end(fmsg); 39 - return err; 21 + devlink_fmsg_obj_nest_end(fmsg); 22 + devlink_fmsg_arr_pair_nest_end(fmsg); 23 + devlink_fmsg_pair_nest_end(fmsg); 40 24 } 41 25 42 - #define FILL_SEG(seg_hdr, seg_regs) \ 43 - do { \ 44 - err = qlge_fill_seg_(fmsg, &dump->seg_hdr, dump->seg_regs); \ 45 - if (err) { \ 46 - kvfree(dump); \ 47 - return err; \ 48 - } \ 49 - } while (0) 26 + #define FILL_SEG(seg_hdr, seg_regs) \ 27 + qlge_fill_seg_(fmsg, &dump->seg_hdr, dump->seg_regs) 50 28 51 29 static int qlge_reporter_coredump(struct devlink_health_reporter *reporter, 52 30 struct devlink_fmsg *fmsg, void *priv_ctx, ··· 92 114 FILL_SEG(xfi_hss_tx_hdr, serdes_xfi_hss_tx); 93 115 FILL_SEG(xfi_hss_rx_hdr, serdes_xfi_hss_rx); 94 116 FILL_SEG(xfi_hss_pll_hdr, serdes_xfi_hss_pll); 95 - 96 - err = qlge_fill_seg_(fmsg, &dump->misc_nic_seg_hdr, 97 - (u32 *)&dump->misc_nic_info); 98 - if (err) { 99 - kvfree(dump); 100 - return err; 101 - } 102 - 117 + qlge_fill_seg_(fmsg, &dump->misc_nic_seg_hdr, 118 + (u32 *)&dump->misc_nic_info); 103 119 FILL_SEG(intr_states_seg_hdr, intr_states); 104 120 FILL_SEG(cam_entries_seg_hdr, cam_entries); 105 121 FILL_SEG(nic_routing_words_seg_hdr, nic_routing_words); ··· 112 140 FILL_SEG(sem_regs_seg_hdr, sem_regs); 113 141 114 142 kvfree(dump); 115 - return err; 143 + return 0; 116 144 } 117 145 118 146 static const struct devlink_health_reporter_ops qlge_reporter_ops = {