[PATCH] kvm: fix incorrect NULL check on list iterator
The bug is here: if (!p) return ret; The list iterator value 'p' will *always* be set and non-NULL by list_for_each_entry(), so it is incorrect to assume that the iterator value will be NULL if the list is empty or no element is found. To fix the bug, Use a new value 'iter' as the list iterator, while use the old value 'p' as a dedicated variable to point to the found element. Cc: sta...@vger.kernel.org Fixes: dfaa973ae9605 ("KVM: PPC: Book3S HV: In H_SVM_INIT_DONE, migrate remaining normal-GFNs to secure-GFNs") Signed-off-by: Xiaomeng Tong --- arch/powerpc/kvm/book3s_hv_uvmem.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c index e414ca44839f..0cb20ee6a632 100644 --- a/arch/powerpc/kvm/book3s_hv_uvmem.c +++ b/arch/powerpc/kvm/book3s_hv_uvmem.c @@ -360,13 +360,15 @@ static bool kvmppc_gfn_is_uvmem_pfn(unsigned long gfn, struct kvm *kvm, static bool kvmppc_next_nontransitioned_gfn(const struct kvm_memory_slot *memslot, struct kvm *kvm, unsigned long *gfn) { - struct kvmppc_uvmem_slot *p; + struct kvmppc_uvmem_slot *p = NULL, *iter; bool ret = false; unsigned long i; - list_for_each_entry(p, &kvm->arch.uvmem_pfns, list) - if (*gfn >= p->base_pfn && *gfn < p->base_pfn + p->nr_pfns) + list_for_each_entry(iter, &kvm->arch.uvmem_pfns, list) + if (*gfn >= iter->base_pfn && *gfn < iter->base_pfn + iter->nr_pfns) { + p = iter; break; + } if (!p) return ret; /* -- 2.17.1
Re: [PATCH 16/22] dvb-usb: Replace comments with C99 initializers
Em Sat, 26 Mar 2022 15:11:46 -0500 Larry Finger escreveu: > On 3/26/22 14:51, Joe Perches wrote: > > On Sat, 2022-03-26 at 19:27 +0100, Mauro Carvalho Chehab wrote: > >> Em Sat, 26 Mar 2022 19:24:54 +0100 > >> Mauro Carvalho Chehab escreveu: > >> > >>> Em Sat, 26 Mar 2022 17:59:03 +0100 > >>> Benjamin Stürz escreveu: > >>> > This replaces comments with C99's designated > initializers because the kernel supports them now. > > Signed-off-by: Benjamin Stürz > --- > drivers/media/usb/dvb-usb/dibusb-mb.c | 62 +-- > drivers/media/usb/dvb-usb/dibusb-mc.c | 34 +++ > 2 files changed, 48 insertions(+), 48 deletions(-) > > diff --git a/drivers/media/usb/dvb-usb/dibusb-mb.c > b/drivers/media/usb/dvb-usb/dibusb-mb.c > index e9dc27f73970..f188e07f518b 100644 > --- a/drivers/media/usb/dvb-usb/dibusb-mb.c > +++ b/drivers/media/usb/dvb-usb/dibusb-mb.c > @@ -122,40 +122,40 @@ static int dibusb_probe(struct usb_interface *intf, > > /* do not change the order of the ID table */ > static struct usb_device_id dibusb_dib3000mb_table [] = { > -/* 00 */{ USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > -/* 01 */{ USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, > -/* 02 */{ USB_DEVICE(USB_VID_COMPRO, > USB_PID_COMPRO_DVBU2000_COLD) }, > -/* 03 */{ USB_DEVICE(USB_VID_COMPRO, > USB_PID_COMPRO_DVBU2000_WARM) }, > -/* 04 */{ USB_DEVICE(USB_VID_COMPRO_UNK, > USB_PID_COMPRO_DVBU2000_UNK_COLD) }, > -/* 05 */{ USB_DEVICE(USB_VID_DIBCOM, > USB_PID_DIBCOM_MOD3000_COLD) }, > -/* 06 */{ USB_DEVICE(USB_VID_DIBCOM, > USB_PID_DIBCOM_MOD3000_WARM) }, > -/* 07 */{ USB_DEVICE(USB_VID_EMPIA, > USB_PID_KWORLD_VSTREAM_COLD) }, > -/* 08 */{ USB_DEVICE(USB_VID_EMPIA, > USB_PID_KWORLD_VSTREAM_WARM) }, > -/* 09 */{ USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_GRANDTEC_DVBT_USB_COLD) }, > -/* 10 */{ USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_GRANDTEC_DVBT_USB_WARM) }, > -/* 11 */{ USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_DIBCOM_MOD3000_COLD) }, > -/* 12 */{ USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_DIBCOM_MOD3000_WARM) }, > -/* 13 */{ USB_DEVICE(USB_VID_HYPER_PALTEK, > USB_PID_UNK_HYPER_PALTEK_COLD) }, > -/* 14 */{ USB_DEVICE(USB_VID_HYPER_PALTEK, > USB_PID_UNK_HYPER_PALTEK_WARM) }, > -/* 15 */{ USB_DEVICE(USB_VID_VISIONPLUS, > USB_PID_TWINHAN_VP7041_COLD) }, > -/* 16 */{ USB_DEVICE(USB_VID_VISIONPLUS, > USB_PID_TWINHAN_VP7041_WARM) }, > -/* 17 */{ USB_DEVICE(USB_VID_TWINHAN, > USB_PID_TWINHAN_VP7041_COLD) }, > -/* 18 */{ USB_DEVICE(USB_VID_TWINHAN, > USB_PID_TWINHAN_VP7041_WARM) }, > -/* 19 */{ USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_COLD) }, > -/* 20 */{ USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_WARM) }, > -/* 21 */{ USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_AN2235_COLD) }, > -/* 22 */{ USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_AN2235_WARM) }, > -/* 23 */{ USB_DEVICE(USB_VID_ADSTECH, > USB_PID_ADSTECH_USB2_COLD) }, > +[0] = { USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > +[1] = { USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, > >>> > >>> While here, please properly indent this table, and respect the 80-columns > >>> limit, > >>> e. g.: > >>> > >>> static struct usb_device_id dibusb_dib3000mb_table [] = { > >>> [0] = { USB_DEVICE(USB_VID_WIDEVIEW > >>> USB_PID_AVERMEDIA_DVBT_USB_COLD) > >>> }, > >>> [1] = { USB_DEVICE(USB_VID_WIDEVIEW, > >>>USB_PID_AVERMEDIA_DVBT_USB_WARM) > >>> }, > >>> ... > >> > >> Err something went wrong with my space bar and I ended hitting send to > >> soon... I meant: > >> > >> static struct usb_device_id dibusb_dib3000mb_table [] = { > >>[0] = { USB_DEVICE(USB_VID_WIDEVIEW > >> USB_PID_AVERMEDIA_DVBT_USB_COLD) > >>}, > >>[1] = { USB_DEVICE(USB_VID_WIDEVIEW, > >> USB_PID_AVERMEDIA_DVBT_USB_WARM) > >>}, > >>... > >> }; > > > > maybe static const too > > > > and > > > > maybe > > > > #define DIB_DEVICE(vid, pid)\ > > { USB_DEVICE(USB_VID_ ## vid, USB_PID_ ## pid) } > > > > so maybe > > > > static const struct usb_device_id dib
Re: [PATCH 01/22] orion5x: Replace comments with C99 initializers
On Sat, Mar 26, 2022 at 5:58 PM Benjamin Stürz wrote: > > This replaces comments with C99's designated > initializers because the kernel supports them now. The change looks fine, but the comment looks misplaced, as enum initializers are not c99 feature. Also, the named array and struct intializers have been supported by gnu89 for a long time and widely used in the kernel, so it's not a recent change even for the others. Also, Arnd
Re: [PATCH 16/22] dvb-usb: Replace comments with C99 initializers
On 3/26/22 14:51, Joe Perches wrote: On Sat, 2022-03-26 at 19:27 +0100, Mauro Carvalho Chehab wrote: Em Sat, 26 Mar 2022 19:24:54 +0100 Mauro Carvalho Chehab escreveu: Em Sat, 26 Mar 2022 17:59:03 +0100 Benjamin Stürz escreveu: This replaces comments with C99's designated initializers because the kernel supports them now. Signed-off-by: Benjamin Stürz --- drivers/media/usb/dvb-usb/dibusb-mb.c | 62 +-- drivers/media/usb/dvb-usb/dibusb-mc.c | 34 +++ 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/drivers/media/usb/dvb-usb/dibusb-mb.c b/drivers/media/usb/dvb-usb/dibusb-mb.c index e9dc27f73970..f188e07f518b 100644 --- a/drivers/media/usb/dvb-usb/dibusb-mb.c +++ b/drivers/media/usb/dvb-usb/dibusb-mb.c @@ -122,40 +122,40 @@ static int dibusb_probe(struct usb_interface *intf, /* do not change the order of the ID table */ static struct usb_device_id dibusb_dib3000mb_table [] = { -/* 00 */ { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_COLD) }, -/* 01 */ { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_WARM) }, -/* 02 */ { USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_DVBU2000_COLD) }, -/* 03 */ { USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_DVBU2000_WARM) }, -/* 04 */ { USB_DEVICE(USB_VID_COMPRO_UNK, USB_PID_COMPRO_DVBU2000_UNK_COLD) }, -/* 05 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3000_COLD) }, -/* 06 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3000_WARM) }, -/* 07 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_KWORLD_VSTREAM_COLD) }, -/* 08 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_KWORLD_VSTREAM_WARM) }, -/* 09 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB_COLD) }, -/* 10 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB_WARM) }, -/* 11 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_DIBCOM_MOD3000_COLD) }, -/* 12 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_DIBCOM_MOD3000_WARM) }, -/* 13 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, USB_PID_UNK_HYPER_PALTEK_COLD) }, -/* 14 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, USB_PID_UNK_HYPER_PALTEK_WARM) }, -/* 15 */ { USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TWINHAN_VP7041_COLD) }, -/* 16 */ { USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TWINHAN_VP7041_WARM) }, -/* 17 */ { USB_DEVICE(USB_VID_TWINHAN, USB_PID_TWINHAN_VP7041_COLD) }, -/* 18 */ { USB_DEVICE(USB_VID_TWINHAN, USB_PID_TWINHAN_VP7041_WARM) }, -/* 19 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_COLD) }, -/* 20 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_WARM) }, -/* 21 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_COLD) }, -/* 22 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_WARM) }, -/* 23 */ { USB_DEVICE(USB_VID_ADSTECH, USB_PID_ADSTECH_USB2_COLD) }, +[0] = { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_COLD) }, +[1] = { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_WARM) }, While here, please properly indent this table, and respect the 80-columns limit, e. g.: static struct usb_device_id dibusb_dib3000mb_table [] = { [0] = { USB_DEVICE(USB_VID_WIDEVIEW USB_PID_AVERMEDIA_DVBT_USB_COLD) }, [1] = { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_WARM) }, ... Err something went wrong with my space bar and I ended hitting send to soon... I meant: static struct usb_device_id dibusb_dib3000mb_table [] = { [0] = { USB_DEVICE(USB_VID_WIDEVIEW USB_PID_AVERMEDIA_DVBT_USB_COLD) }, [1] = { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_WARM) }, ... }; maybe static const too and maybe #define DIB_DEVICE(vid, pid)\ { USB_DEVICE(USB_VID_ ## vid, USB_PID_ ## pid) } so maybe static const struct usb_device_id dibusb_dib3000mb_table[] = { [0] = DIB_DEVICE(WIDEVIEW, AVERMEDIA_DVBT_USB_COLD), [1] = DIB_DEVICE(WIDEVIEW, AVERMEDIA_DVBT_USB_WARM), ... }; though I _really_ doubt the value of the specific indexing. I think this isn't really worth changing at all. I agree. For the drivers that I maintain, I try to keep the vendor and device ids in numerical order. As this table does not require a special order, adding a new one in the middle would require redoing all of then after that point. That would be pointless work! Larry
Re: [PATCH 16/22] dvb-usb: Replace comments with C99 initializers
On Sat, 2022-03-26 at 19:27 +0100, Mauro Carvalho Chehab wrote: > Em Sat, 26 Mar 2022 19:24:54 +0100 > Mauro Carvalho Chehab escreveu: > > > Em Sat, 26 Mar 2022 17:59:03 +0100 > > Benjamin Stürz escreveu: > > > > > This replaces comments with C99's designated > > > initializers because the kernel supports them now. > > > > > > Signed-off-by: Benjamin Stürz > > > --- > > > drivers/media/usb/dvb-usb/dibusb-mb.c | 62 +-- > > > drivers/media/usb/dvb-usb/dibusb-mc.c | 34 +++ > > > 2 files changed, 48 insertions(+), 48 deletions(-) > > > > > > diff --git a/drivers/media/usb/dvb-usb/dibusb-mb.c > > > b/drivers/media/usb/dvb-usb/dibusb-mb.c > > > index e9dc27f73970..f188e07f518b 100644 > > > --- a/drivers/media/usb/dvb-usb/dibusb-mb.c > > > +++ b/drivers/media/usb/dvb-usb/dibusb-mb.c > > > @@ -122,40 +122,40 @@ static int dibusb_probe(struct usb_interface *intf, > > > > > > /* do not change the order of the ID table */ > > > static struct usb_device_id dibusb_dib3000mb_table [] = { > > > -/* 00 */ { USB_DEVICE(USB_VID_WIDEVIEW, > > > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > > > -/* 01 */ { USB_DEVICE(USB_VID_WIDEVIEW, > > > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, > > > -/* 02 */ { USB_DEVICE(USB_VID_COMPRO, > > > USB_PID_COMPRO_DVBU2000_COLD) }, > > > -/* 03 */ { USB_DEVICE(USB_VID_COMPRO, > > > USB_PID_COMPRO_DVBU2000_WARM) }, > > > -/* 04 */ { USB_DEVICE(USB_VID_COMPRO_UNK, > > > USB_PID_COMPRO_DVBU2000_UNK_COLD) }, > > > -/* 05 */ { USB_DEVICE(USB_VID_DIBCOM, > > > USB_PID_DIBCOM_MOD3000_COLD) }, > > > -/* 06 */ { USB_DEVICE(USB_VID_DIBCOM, > > > USB_PID_DIBCOM_MOD3000_WARM) }, > > > -/* 07 */ { USB_DEVICE(USB_VID_EMPIA, > > > USB_PID_KWORLD_VSTREAM_COLD) }, > > > -/* 08 */ { USB_DEVICE(USB_VID_EMPIA, > > > USB_PID_KWORLD_VSTREAM_WARM) }, > > > -/* 09 */ { USB_DEVICE(USB_VID_GRANDTEC, > > > USB_PID_GRANDTEC_DVBT_USB_COLD) }, > > > -/* 10 */ { USB_DEVICE(USB_VID_GRANDTEC, > > > USB_PID_GRANDTEC_DVBT_USB_WARM) }, > > > -/* 11 */ { USB_DEVICE(USB_VID_GRANDTEC, > > > USB_PID_DIBCOM_MOD3000_COLD) }, > > > -/* 12 */ { USB_DEVICE(USB_VID_GRANDTEC, > > > USB_PID_DIBCOM_MOD3000_WARM) }, > > > -/* 13 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, > > > USB_PID_UNK_HYPER_PALTEK_COLD) }, > > > -/* 14 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, > > > USB_PID_UNK_HYPER_PALTEK_WARM) }, > > > -/* 15 */ { USB_DEVICE(USB_VID_VISIONPLUS, > > > USB_PID_TWINHAN_VP7041_COLD) }, > > > -/* 16 */ { USB_DEVICE(USB_VID_VISIONPLUS, > > > USB_PID_TWINHAN_VP7041_WARM) }, > > > -/* 17 */ { USB_DEVICE(USB_VID_TWINHAN, > > > USB_PID_TWINHAN_VP7041_COLD) }, > > > -/* 18 */ { USB_DEVICE(USB_VID_TWINHAN, > > > USB_PID_TWINHAN_VP7041_WARM) }, > > > -/* 19 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > > USB_PID_ULTIMA_TVBOX_COLD) }, > > > -/* 20 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > > USB_PID_ULTIMA_TVBOX_WARM) }, > > > -/* 21 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > > USB_PID_ULTIMA_TVBOX_AN2235_COLD) }, > > > -/* 22 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > > USB_PID_ULTIMA_TVBOX_AN2235_WARM) }, > > > -/* 23 */ { USB_DEVICE(USB_VID_ADSTECH, > > > USB_PID_ADSTECH_USB2_COLD) }, > > > +[0] = { USB_DEVICE(USB_VID_WIDEVIEW, > > > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > > > +[1] = { USB_DEVICE(USB_VID_WIDEVIEW, > > > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, > > > > While here, please properly indent this table, and respect the 80-columns > > limit, > > e. g.: > > > > static struct usb_device_id dibusb_dib3000mb_table [] = { > > [0] = { USB_DEVICE(USB_VID_WIDEVIEW > >USB_PID_AVERMEDIA_DVBT_USB_COLD) > > }, > > [1] = { USB_DEVICE(USB_VID_WIDEVIEW, > > USB_PID_AVERMEDIA_DVBT_USB_WARM) > > }, > > ... > > Err something went wrong with my space bar and I ended hitting send to > soon... I meant: > > static struct usb_device_id dibusb_dib3000mb_table [] = { > [0] = { USB_DEVICE(USB_VID_WIDEVIEW > USB_PID_AVERMEDIA_DVBT_USB_COLD) > }, > [1] = { USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_WARM) > }, > ... > }; maybe static const too and maybe #define DIB_DEVICE(vid, pid)\ { USB_DEVICE(USB_VID_ ## vid, USB_PID_ ## pid) } so maybe static const struct usb_device_id dibusb_dib3000mb_table[] = { [0] = DIB_DEVICE(WIDEVIEW, AVERMEDIA_DVBT_USB_COLD), [1] = DIB_DEVICE(WIDEVIEW, AVERMEDIA_DVBT_USB_WARM), ... }; though I _really_ doubt the value of the specific indexing. I think this isn't really worth changing at all.
Re: [PATCH 02/22] s3c: Replace comments with C99 initializers
On Sat, 2022-03-26 at 17:58 +0100, Benjamin Stürz wrote: > This replaces comments with C99's designated > initializers because the kernel supports them now. [] > diff --git a/arch/arm/mach-s3c/bast-irq.c b/arch/arm/mach-s3c/bast-irq.c [] > @@ -29,22 +29,22 @@ > * the irq is not implemented > */ > static const unsigned char bast_pc104_irqmasks[] = { > - 0, /* 0 */ > - 0, /* 1 */ > - 0, /* 2 */ > - 1, /* 3 */ > - 0, /* 4 */ > - 2, /* 5 */ > - 0, /* 6 */ > - 4, /* 7 */ > - 0, /* 8 */ > - 0, /* 9 */ > - 8, /* 10 */ > - 0, /* 11 */ > - 0, /* 12 */ > - 0, /* 13 */ > - 0, /* 14 */ > - 0, /* 15 */ > + [0] = 0, > + [1] = 0, > + [2] = 0, > + [3] = 1, > + [4] = 0, > + [5] = 2, > + [6] = 0, > + [7] = 4, > + [8] = 0, > + [9] = 0, > + [10] = 8, > + [11] = 0, > + [12] = 0, > + [13] = 0, > + [14] = 0, > + [15] = 0, > }; I don't find this better than the initial array. > > static const unsigned char bast_pc104_irqs[] = { 3, 5, 7, 10 }; For the same reason this array is just an array without the specified indexing.
Re: [PATCH 21/22] rtw89: Replace comments with C99 initializers
On 3/26/22 11:59, Benjamin Stürz wrote: This replaces comments with C99's designated initializers because the kernel supports them now. Signed-off-by: Benjamin Stürz --- drivers/net/wireless/realtek/rtw89/coex.c | 40 +++ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/coex.c b/drivers/net/wireless/realtek/rtw89/coex.c index 684583955511..3c83a0bfb120 100644 --- a/drivers/net/wireless/realtek/rtw89/coex.c +++ b/drivers/net/wireless/realtek/rtw89/coex.c @@ -97,26 +97,26 @@ static const struct rtw89_btc_fbtc_slot s_def[] = { }; static const u32 cxtbl[] = { - 0x, /* 0 */ - 0x, /* 1 */ - 0x, /* 2 */ - 0x6655, /* 3 */ - 0x66556655, /* 4 */ - 0x5a5a5a5a, /* 5 */ - 0x5a5a5aaa, /* 6 */ - 0xaa5a5a5a, /* 7 */ - 0x6a5a5a5a, /* 8 */ - 0x6a5a5aaa, /* 9 */ - 0x6a5a6a5a, /* 10 */ - 0x6a5a6aaa, /* 11 */ - 0x6afa5afa, /* 12 */ - 0x5aaa, /* 13 */ - 0xaaaa, /* 14 */ - 0xaaaa, /* 15 */ - 0xfafafafa, /* 16 */ - 0xddff, /* 17 */ - 0xdaffdaff, /* 18 */ - 0xfafadafa /* 19 */ + [0] = 0x, + [1] = 0x, + [2] = 0x, + [3] = 0x6655, + [4] = 0x66556655, + [5] = 0x5a5a5a5a, + [6] = 0x5a5a5aaa, + [7] = 0xaa5a5a5a, + [8] = 0x6a5a5a5a, + [9] = 0x6a5a5aaa, + [10] = 0x6a5a6a5a, + [11] = 0x6a5a6aaa, + [12] = 0x6afa5afa, + [13] = 0x5aaa, + [14] = 0xaaaa, + [15] = 0xaaaa, + [16] = 0xfafafafa, + [17] = 0xddff, + [18] = 0xdaffdaff, + [19] = 0xfafadafa }; struct rtw89_btc_btf_tlv { Is this change really necessary? Yes, the entries must be ordered; however, the comment carries that information at very few extra characters. To me, this patch looks like unneeded source churn. One other concern is that this driver is backported to older kernels and older compilers by several distros. Will this change require adding extra conditional statements to the source used in these applications? Larry
Re: [PATCH 16/22] dvb-usb: Replace comments with C99 initializers
Em Sat, 26 Mar 2022 19:24:54 +0100 Mauro Carvalho Chehab escreveu: > Em Sat, 26 Mar 2022 17:59:03 +0100 > Benjamin Stürz escreveu: > > > This replaces comments with C99's designated > > initializers because the kernel supports them now. > > > > Signed-off-by: Benjamin Stürz > > --- > > drivers/media/usb/dvb-usb/dibusb-mb.c | 62 +-- > > drivers/media/usb/dvb-usb/dibusb-mc.c | 34 +++ > > 2 files changed, 48 insertions(+), 48 deletions(-) > > > > diff --git a/drivers/media/usb/dvb-usb/dibusb-mb.c > > b/drivers/media/usb/dvb-usb/dibusb-mb.c > > index e9dc27f73970..f188e07f518b 100644 > > --- a/drivers/media/usb/dvb-usb/dibusb-mb.c > > +++ b/drivers/media/usb/dvb-usb/dibusb-mb.c > > @@ -122,40 +122,40 @@ static int dibusb_probe(struct usb_interface *intf, > > > > /* do not change the order of the ID table */ > > static struct usb_device_id dibusb_dib3000mb_table [] = { > > -/* 00 */ { USB_DEVICE(USB_VID_WIDEVIEW, > > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > > -/* 01 */ { USB_DEVICE(USB_VID_WIDEVIEW, > > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, > > -/* 02 */ { USB_DEVICE(USB_VID_COMPRO, > > USB_PID_COMPRO_DVBU2000_COLD) }, > > -/* 03 */ { USB_DEVICE(USB_VID_COMPRO, > > USB_PID_COMPRO_DVBU2000_WARM) }, > > -/* 04 */ { USB_DEVICE(USB_VID_COMPRO_UNK, > > USB_PID_COMPRO_DVBU2000_UNK_COLD) }, > > -/* 05 */ { USB_DEVICE(USB_VID_DIBCOM, > > USB_PID_DIBCOM_MOD3000_COLD) }, > > -/* 06 */ { USB_DEVICE(USB_VID_DIBCOM, > > USB_PID_DIBCOM_MOD3000_WARM) }, > > -/* 07 */ { USB_DEVICE(USB_VID_EMPIA, > > USB_PID_KWORLD_VSTREAM_COLD) }, > > -/* 08 */ { USB_DEVICE(USB_VID_EMPIA, > > USB_PID_KWORLD_VSTREAM_WARM) }, > > -/* 09 */ { USB_DEVICE(USB_VID_GRANDTEC, > > USB_PID_GRANDTEC_DVBT_USB_COLD) }, > > -/* 10 */ { USB_DEVICE(USB_VID_GRANDTEC, > > USB_PID_GRANDTEC_DVBT_USB_WARM) }, > > -/* 11 */ { USB_DEVICE(USB_VID_GRANDTEC, > > USB_PID_DIBCOM_MOD3000_COLD) }, > > -/* 12 */ { USB_DEVICE(USB_VID_GRANDTEC, > > USB_PID_DIBCOM_MOD3000_WARM) }, > > -/* 13 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, > > USB_PID_UNK_HYPER_PALTEK_COLD) }, > > -/* 14 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, > > USB_PID_UNK_HYPER_PALTEK_WARM) }, > > -/* 15 */ { USB_DEVICE(USB_VID_VISIONPLUS, > > USB_PID_TWINHAN_VP7041_COLD) }, > > -/* 16 */ { USB_DEVICE(USB_VID_VISIONPLUS, > > USB_PID_TWINHAN_VP7041_WARM) }, > > -/* 17 */ { USB_DEVICE(USB_VID_TWINHAN, > > USB_PID_TWINHAN_VP7041_COLD) }, > > -/* 18 */ { USB_DEVICE(USB_VID_TWINHAN, > > USB_PID_TWINHAN_VP7041_WARM) }, > > -/* 19 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > USB_PID_ULTIMA_TVBOX_COLD) }, > > -/* 20 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > USB_PID_ULTIMA_TVBOX_WARM) }, > > -/* 21 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > USB_PID_ULTIMA_TVBOX_AN2235_COLD) }, > > -/* 22 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > > USB_PID_ULTIMA_TVBOX_AN2235_WARM) }, > > -/* 23 */ { USB_DEVICE(USB_VID_ADSTECH, > > USB_PID_ADSTECH_USB2_COLD) }, > > +[0] = { USB_DEVICE(USB_VID_WIDEVIEW, > > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > > +[1] = { USB_DEVICE(USB_VID_WIDEVIEW, > > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, > > While here, please properly indent this table, and respect the 80-columns > limit, > e. g.: > > static struct usb_device_id dibusb_dib3000mb_table [] = { > [0] = { USB_DEVICE(USB_VID_WIDEVIEW > USB_PID_AVERMEDIA_DVBT_USB_COLD) > }, > [1] = { USB_DEVICE(USB_VID_WIDEVIEW, >USB_PID_AVERMEDIA_DVBT_USB_WARM) > }, > ... Err something went wrong with my space bar and I ended hitting send to soon... I meant: static struct usb_device_id dibusb_dib3000mb_table [] = { [0] = { USB_DEVICE(USB_VID_WIDEVIEW USB_PID_AVERMEDIA_DVBT_USB_COLD) }, [1] = { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_WARM) }, ... }; Thanks, Mauro
Re: [PATCH 16/22] dvb-usb: Replace comments with C99 initializers
Em Sat, 26 Mar 2022 17:59:03 +0100 Benjamin Stürz escreveu: > This replaces comments with C99's designated > initializers because the kernel supports them now. > > Signed-off-by: Benjamin Stürz > --- > drivers/media/usb/dvb-usb/dibusb-mb.c | 62 +-- > drivers/media/usb/dvb-usb/dibusb-mc.c | 34 +++ > 2 files changed, 48 insertions(+), 48 deletions(-) > > diff --git a/drivers/media/usb/dvb-usb/dibusb-mb.c > b/drivers/media/usb/dvb-usb/dibusb-mb.c > index e9dc27f73970..f188e07f518b 100644 > --- a/drivers/media/usb/dvb-usb/dibusb-mb.c > +++ b/drivers/media/usb/dvb-usb/dibusb-mb.c > @@ -122,40 +122,40 @@ static int dibusb_probe(struct usb_interface *intf, > > /* do not change the order of the ID table */ > static struct usb_device_id dibusb_dib3000mb_table [] = { > -/* 00 */ { USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > -/* 01 */ { USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, > -/* 02 */ { USB_DEVICE(USB_VID_COMPRO, > USB_PID_COMPRO_DVBU2000_COLD) }, > -/* 03 */ { USB_DEVICE(USB_VID_COMPRO, > USB_PID_COMPRO_DVBU2000_WARM) }, > -/* 04 */ { USB_DEVICE(USB_VID_COMPRO_UNK, > USB_PID_COMPRO_DVBU2000_UNK_COLD) }, > -/* 05 */ { USB_DEVICE(USB_VID_DIBCOM, > USB_PID_DIBCOM_MOD3000_COLD) }, > -/* 06 */ { USB_DEVICE(USB_VID_DIBCOM, > USB_PID_DIBCOM_MOD3000_WARM) }, > -/* 07 */ { USB_DEVICE(USB_VID_EMPIA, > USB_PID_KWORLD_VSTREAM_COLD) }, > -/* 08 */ { USB_DEVICE(USB_VID_EMPIA, > USB_PID_KWORLD_VSTREAM_WARM) }, > -/* 09 */ { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_GRANDTEC_DVBT_USB_COLD) }, > -/* 10 */ { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_GRANDTEC_DVBT_USB_WARM) }, > -/* 11 */ { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_DIBCOM_MOD3000_COLD) }, > -/* 12 */ { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_DIBCOM_MOD3000_WARM) }, > -/* 13 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, > USB_PID_UNK_HYPER_PALTEK_COLD) }, > -/* 14 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, > USB_PID_UNK_HYPER_PALTEK_WARM) }, > -/* 15 */ { USB_DEVICE(USB_VID_VISIONPLUS, > USB_PID_TWINHAN_VP7041_COLD) }, > -/* 16 */ { USB_DEVICE(USB_VID_VISIONPLUS, > USB_PID_TWINHAN_VP7041_WARM) }, > -/* 17 */ { USB_DEVICE(USB_VID_TWINHAN, > USB_PID_TWINHAN_VP7041_COLD) }, > -/* 18 */ { USB_DEVICE(USB_VID_TWINHAN, > USB_PID_TWINHAN_VP7041_WARM) }, > -/* 19 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_COLD) }, > -/* 20 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_WARM) }, > -/* 21 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_AN2235_COLD) }, > -/* 22 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, > USB_PID_ULTIMA_TVBOX_AN2235_WARM) }, > -/* 23 */ { USB_DEVICE(USB_VID_ADSTECH, > USB_PID_ADSTECH_USB2_COLD) }, > +[0] = { USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_COLD) }, > +[1] = { USB_DEVICE(USB_VID_WIDEVIEW, > USB_PID_AVERMEDIA_DVBT_USB_WARM) }, While here, please properly indent this table, and respect the 80-columns limit, e. g.: static struct usb_device_id dibusb_dib3000mb_table [] = { [0] = { USB_DEVICE(USB_VID_WIDEVIEW USB_PID_AVERMEDIA_DVBT_USB_COLD) }, [1] = { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_WARM) }, ... Regards, Mauro > +[2] = { USB_DEVICE(USB_VID_COMPRO, > USB_PID_COMPRO_DVBU2000_COLD) }, > +[3] = { USB_DEVICE(USB_VID_COMPRO, > USB_PID_COMPRO_DVBU2000_WARM) }, > +[4] = { USB_DEVICE(USB_VID_COMPRO_UNK, > USB_PID_COMPRO_DVBU2000_UNK_COLD) }, > +[5] = { USB_DEVICE(USB_VID_DIBCOM, > USB_PID_DIBCOM_MOD3000_COLD) }, > +[6] = { USB_DEVICE(USB_VID_DIBCOM, > USB_PID_DIBCOM_MOD3000_WARM) }, > +[7] = { USB_DEVICE(USB_VID_EMPIA, > USB_PID_KWORLD_VSTREAM_COLD) }, > +[8] = { USB_DEVICE(USB_VID_EMPIA, > USB_PID_KWORLD_VSTREAM_WARM) }, > +[9] = { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_GRANDTEC_DVBT_USB_COLD) }, > +[10] = { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_GRANDTEC_DVBT_USB_WARM) }, > +[11] = { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_DIBCOM_MOD3000_COLD) }, > +[12] = { USB_DEVICE(USB_VID_GRANDTEC, > USB_PID_DIBCOM_MOD3000_WARM) }, > +[13] = { USB_DEVICE(USB_VID_HYPER_PALTEK, > USB_PID_UNK_HYPER_PALTEK_COLD) }, > +[14] = { USB_DEVICE(USB_VID_HYPER_PALTEK, > USB_PID_UNK_HYPER_PALTEK_WARM) }, > +[15] = { USB_DEVICE(USB_VID_VISIONPLUS, > USB_PID_TWINHAN_VP7041_COLD) }, > +[16] = { USB_DEVICE(USB_VID_VISIONPLUS, > USB_PI
Re: [PATCH 01/22] orion5x: Replace comments with C99 initializers
Em Sat, 26 Mar 2022 17:58:48 +0100 Benjamin Stürz escreveu: > This replaces comments with C99's designated > initializers because the kernel supports them now. Please: 1. Split this series per sub-system. It makes no sense to mailbomb all subsystems for things that won't belong there; 2. Add a patch 00 to the series, in order to make easier to do reviews like this that are meant to the series as a hole. Regards, Mauro > > Signed-off-by: Benjamin Stürz > --- > arch/arm/mach-orion5x/dns323-setup.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/mach-orion5x/dns323-setup.c > b/arch/arm/mach-orion5x/dns323-setup.c > index 87cb47220e82..d762248c6512 100644 > --- a/arch/arm/mach-orion5x/dns323-setup.c > +++ b/arch/arm/mach-orion5x/dns323-setup.c > @@ -61,9 +61,9 @@ > > /* Exposed to userspace, do not change */ > enum { > - DNS323_REV_A1, /* 0 */ > - DNS323_REV_B1, /* 1 */ > - DNS323_REV_C1, /* 2 */ > + DNS323_REV_A1 = 0, > + DNS323_REV_B1 = 1, > + DNS323_REV_C1 = 2, > }; > > Thanks, Mauro
Re: [RFC PATCH 3/3] objtool/mcount: Add powerpc specific functions
Le 21/03/2022 a 08:56, Christophe Leroy a ecrit : > > > Le 21/03/2022 a 03:27, Michael Ellerman a ecrit : >> Christophe Leroy writes: >>> Le 18/03/2022 a 13:26, Peter Zijlstra a ecrit : On Fri, Mar 18, 2022 at 04:21:40PM +0530, Sathvika Vasireddy wrote: > This patch adds powerpc specific functions required for > 'objtool mcount' to work, and enables mcount for ppc. I would love to see more objtool enablement for Power :-) >>> >>> I have not received this series and I can't see it on powerpc patchwork >>> either (https://patchwork.ozlabs.org/project/linuxppc-dev/list/) >>> >>> Did you send it to linuxppc-dev list ? If not can you resend it there ? >> >> It is there, might have been delayed? >> >> http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=291129 >> >> There are some CI failures. >> > > On PPC32 I get : > > [0.00] ftrace: No functions to be traced? > > Without this series I get: > > [0.00] ftrace: allocating 22508 entries in 17 pages > [0.00] ftrace: allocated 17 pages with 2 groups > With the changes below I managed to get a working ftrace on a PPC32 target. Christophe - From: Christophe Leroy Subject: [PATCH] powerpc/objtool: Set to big endian and 32 bits Small ack to crossbuild a PPC32 kernel with a x86_64 host. Signed-off-by: Christophe Leroy --- tools/objtool/arch/powerpc/decode.c | 3 ++- tools/objtool/arch/powerpc/include/arch/endianness.h | 9 + tools/objtool/elf.c | 4 ++-- tools/objtool/utils.c| 12 +++- 4 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 tools/objtool/arch/powerpc/include/arch/endianness.h diff --git a/tools/objtool/arch/powerpc/decode.c b/tools/objtool/arch/powerpc/decode.c index 58988f88b315..330af382e39f 100644 --- a/tools/objtool/arch/powerpc/decode.c +++ b/tools/objtool/arch/powerpc/decode.c @@ -8,6 +8,7 @@ #include #include #include +#include int arch_decode_instruction(struct objtool_file *file, const struct section *sec, unsigned long offset, unsigned int maxlen, @@ -20,7 +21,7 @@ int arch_decode_instruction(struct objtool_file *file, const struct section *sec u64 imm; *immediate = imm = 0; - memcpy(&insn, sec->data->d_buf+offset, 4); + insn = bswap_if_needed(*(u32 *)(sec->data->d_buf + offset)); *len = 4; *type = INSN_OTHER; diff --git a/tools/objtool/arch/powerpc/include/arch/endianness.h b/tools/objtool/arch/powerpc/include/arch/endianness.h new file mode 100644 index ..275087bfcc16 --- /dev/null +++ b/tools/objtool/arch/powerpc/include/arch/endianness.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#ifndef _ARCH_ENDIANNESS_H +#define _ARCH_ENDIANNESS_H + +#include + +#define __TARGET_BYTE_ORDER __BIG_ENDIAN + +#endif /* _ARCH_ENDIANNESS_H */ diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c index 4b384c907027..433f0e327b68 100644 --- a/tools/objtool/elf.c +++ b/tools/objtool/elf.c @@ -867,7 +867,7 @@ static struct section *elf_create_rela_reloc_section(struct elf *elf, struct sec strcpy(relocname, ".rela"); strcat(relocname, base->name); - sec = elf_create_section(elf, relocname, 0, sizeof(GElf_Rela), 0); + sec = elf_create_section(elf, relocname, 0, sizeof(Elf32_Rela), 0); free(relocname); if (!sec) return NULL; @@ -876,7 +876,7 @@ static struct section *elf_create_rela_reloc_section(struct elf *elf, struct sec sec->base = base; sec->sh.sh_type = SHT_RELA; - sec->sh.sh_addralign = 8; + sec->sh.sh_addralign = 4; sec->sh.sh_link = find_section_by_name(elf, ".symtab")->idx; sec->sh.sh_info = base->idx; sec->sh.sh_flags = SHF_INFO_LINK; diff --git a/tools/objtool/utils.c b/tools/objtool/utils.c index c9c14fa0dfd7..f77695c81386 100644 --- a/tools/objtool/utils.c +++ b/tools/objtool/utils.c @@ -151,7 +151,7 @@ int decode_instructions(struct objtool_file *file) int create_mcount_loc_sections(struct objtool_file *file) { struct section *sec; - unsigned long *loc; + unsigned int *loc; struct instruction *insn; int idx; @@ -169,15 +169,17 @@ int create_mcount_loc_sections(struct objtool_file *file) list_for_each_entry(insn, &file->mcount_loc_list, call_node) idx++; - sec = elf_create_section(file->elf, "__mcount_loc", 0, sizeof(unsigned long), idx); + sec = elf_create_section(file->elf, "__mcount_loc", 0, sizeof(unsigned int), idx); if (!sec) return -1; + sec->sh.sh_addralign = 4; + idx = 0; list_for_each_entry(insn, &file->mcount_loc_list, call_node) { - loc = (unsigned long *)sec->data->d_buf + idx; - memset(loc, 0, sizeof(unsigned long)); + loc = (unsigned i