Re: [patch 10/17] scsi: gdth.c use unaligned access helpers

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

 



OK, there are two ways to go on this.  Either we eliminate the current
SCSI wrappers for this, or we extend them and use them.  Matthew Wilcox
already has a patch for the extensions, so do we have a consensus?

James


On Mon, 2008-09-22 at 14:56 -0700, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
> From: Harvey Harrison <harvey.harrison@xxxxxxxxx>
> 
> Remove two now unnecessary local vars.
> 
> [akpm@xxxxxxxxxxxxxxxxxxxx: coding-style fixes]
> Signed-off-by: Harvey Harrison <harvey.harrison@xxxxxxxxx>
> Cc: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
> Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
> 
>  drivers/scsi/gdth.c |   23 ++++++++++-------------
>  1 file changed, 10 insertions(+), 13 deletions(-)
> 
> diff -puN drivers/scsi/gdth.c~scsi-gdthc-use-unaligned-access-helpers drivers/scsi/gdth.c
> --- a/drivers/scsi/gdth.c~scsi-gdthc-use-unaligned-access-helpers
> +++ a/drivers/scsi/gdth.c
> @@ -131,6 +131,7 @@
>  #include <asm/system.h>
>  #include <asm/io.h>
>  #include <asm/uaccess.h>
> +#include <asm/unaligned.h>
>  #include <linux/spinlock.h>
>  #include <linux/blkdev.h>
>  #include <linux/scatterlist.h>
> @@ -2429,8 +2430,8 @@ static int gdth_fill_cache_cmd(gdth_ha_s
>  {
>      register gdth_cmd_str *cmdp;
>      struct gdth_cmndinfo *cmndinfo = gdth_cmnd_priv(scp);
> -    ulong32 cnt, blockcnt;
> -    ulong64 no, blockno;
> +    ulong32 blockcnt;
> +    ulong64 blockno;
>      int i, cmd_index, read_write, sgcnt, mode64;
>  
>      cmdp = ha->pccb;
> @@ -2498,19 +2499,15 @@ static int gdth_fill_cache_cmd(gdth_ha_s
>  
>      if (read_write) {
>          if (scp->cmd_len == 16) {
> -            memcpy(&no, &scp->cmnd[2], sizeof(ulong64));
> -            blockno = be64_to_cpu(no);
> -            memcpy(&cnt, &scp->cmnd[10], sizeof(ulong32));
> -            blockcnt = be32_to_cpu(cnt);
> +		blockno = get_unaligned_be64(&scp->cmnd[2]);
> +		blockcnt = get_unaligned_be64(&scp->cmnd[10]);
>          } else if (scp->cmd_len == 10) {
> -            memcpy(&no, &scp->cmnd[2], sizeof(ulong32));
> -            blockno = be32_to_cpu(no);
> -            memcpy(&cnt, &scp->cmnd[7], sizeof(ushort));
> -            blockcnt = be16_to_cpu(cnt);
> +		blockno = get_unaligned_be32(&scp->cmnd[2]);
> +		blockcnt = get_unaligned_be16(&scp->cmnd[7]);
>          } else {
> -            memcpy(&no, &scp->cmnd[0], sizeof(ulong32));
> -            blockno = be32_to_cpu(no) & 0x001fffffUL;
> -            blockcnt= scp->cmnd[4]==0 ? 0x100 : scp->cmnd[4];
> +		blockno = get_unaligned_be32(&scp->cmnd[2]);
> +		blockno &= 0x001fffffUL;
> +		blockcnt = scp->cmnd[4] == 0 ? 0x100 : scp->cmnd[4];
>          }
>          if (mode64) {
>              cmdp->u.cache64.BlockNo = blockno;
> _
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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