Re: [PATCH 01/24] mpi3mr: add mpi30 Rev-R headers and Kconfig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux