[PATCH] kvm: fix incorrect NULL check on list iterator

2022-03-26 Thread Xiaomeng Tong
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

2022-03-26 Thread Mauro Carvalho Chehab
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

2022-03-26 Thread Arnd Bergmann
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

2022-03-26 Thread Larry Finger

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

2022-03-26 Thread Joe Perches
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

2022-03-26 Thread Joe Perches
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

2022-03-26 Thread Larry Finger

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

2022-03-26 Thread Mauro Carvalho Chehab
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

2022-03-26 Thread Mauro Carvalho Chehab
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

2022-03-26 Thread Mauro Carvalho Chehab
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

2022-03-26 Thread Christophe Leroy
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