On 12/22/20 2:11 AM, Kashyap Desai wrote: > diff --git a/drivers/scsi/mpi3mr/mpi/mpi30_type.h b/drivers/scsi/mpi3mr/mpi/mpi30_type.h > new file mode 100644 > index 000000000000..5de35e7a660f > --- /dev/null > +++ b/drivers/scsi/mpi3mr/mpi/mpi30_type.h > @@ -0,0 +1,89 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ > +/* > + * Copyright 2016-2020 Broadcom Inc. All rights reserved. > + * > + * Name: mpi30_type.h > + * Description: MPI basic type definitions > + * Creation Date: 10/07/2016 > + * Version: 03.00.00 > + */ > +#ifndef MPI30_TYPE_H > +#define MPI30_TYPE_H 1 > + > +/***************************************************************************** > + * Define MPI3_POINTER if it has not already been defined. By default * > + * MPI3_POINTER is defined to be a near pointer. MPI3_POINTER can be defined * > + * as a far pointer by defining MPI3_POINTER as "far *" before this header * > + * file is included. * > + ****************************************************************************/ > +#ifndef MPI3_POINTER > +#define MPI3_POINTER * > +#endif /* MPI3_POINTER */ Near and far pointers are concepts that come from 16-bit Intel architectures. I think that these concepts are not relevant in the Linux kernel. Hence please remove the MPI3_POINTER macro and use '*' directly. > +typedef u8 U8; > +typedef __le16 U16; > +typedef __le32 U32; > +typedef __le64 U64 __aligned(4); Typedefs like the above reduce source code readability significantly. Please remove these typedefs and use __le16 etc. directly. > +typedef U8 * PU8; > +typedef U16 * PU16; > +typedef U32 * PU32; > +typedef U64 * PU64; Same comment for the above typedefs. > +typedef struct _S64struct { > + U32 Low; > + S32 High; > +} S64struct; > + > +typedef struct _U64struct { > + U32 Low; > + U32 High; > +} U64struct; Please use upper_32_bits() and lower_32_bits() and remove the above structure definitions. > +typedef S8 * PS8; > +typedef U8 * PU8; > +typedef S16 * PS16; > +typedef U16 * PU16; > +typedef S32 *PS32; > +typedef U32 *PU32; > +typedef S64 * PS64; > +typedef U64 * PU64; > +typedef S64struct * PS64struct; > +typedef U64struct * PU64struct; Please remove these typedefs too. Additionally, please follow the Linux kernel coding style (only a space at the left of '*' but not at the right). Thanks, Bart.