Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 314697 Details for
Bug 436068
[Areca 5.3 feat] Update arcmsr to version 1.20.00.15.RH1
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Restructured patch
areca.patch (text/plain), 4.75 KB, created by
Tomas Henzl
on 2008-08-21 12:06:52 UTC
(
hide
)
Description:
Restructured patch
Filename:
MIME Type:
Creator:
Tomas Henzl
Created:
2008-08-21 12:06:52 UTC
Size:
4.75 KB
patch
obsolete
>diff -Naurp linux-2.6.18.i686/Documentation/scsi/ChangeLog.arcmsr linux-2.6.18.i686a/Documentation/scsi/ChangeLog.arcmsr >--- linux-2.6.18.i686/Documentation/scsi/ChangeLog.arcmsr 2008-08-19 13:31:42.000000000 +0200 >+++ linux-2.6.18.i686a/Documentation/scsi/ChangeLog.arcmsr 2008-08-21 12:04:37.000000000 +0200 >@@ -119,4 +119,10 @@ > ** 8.replace pci_alloc_consistent()/pci_free_consistent() with kmalloc()/kfree() in arcmsr_iop_message_xfer() > ** 9. fix the release of dma memory for type B in arcmsr_free_ccb_pool() > ** 10.fix the arcmsr_polling_hbb_ccbdone() >+** 1.20.00.15.RH 02/27/2008 Erich Chen & Nick Cheng >+** 1.arcmsr_iop_message_xfer() is called from atomic context under the >+** queuecommand scsi_host_template handler. James Bottomley pointed out >+** that the current GFP_KERNEL|GFP_DMA flags are wrong: firstly we are in >+** atomic context, secondly this memory is not used for DMA. >+** Also removed some unneeded casts. Thanks to Daniel Drake <dsd@gentoo.org> > ************************************************************************** >diff -Naurp linux-2.6.18.i686/drivers/scsi/arcmsr/arcmsr.h linux-2.6.18.i686a/drivers/scsi/arcmsr/arcmsr.h >--- linux-2.6.18.i686/drivers/scsi/arcmsr/arcmsr.h 2008-08-19 13:31:42.000000000 +0200 >+++ linux-2.6.18.i686a/drivers/scsi/arcmsr/arcmsr.h 2008-08-21 12:02:57.000000000 +0200 >@@ -48,7 +48,7 @@ struct class_device_attribute; > /*The limit of outstanding scsi command that firmware can handle*/ > #define ARCMSR_MAX_OUTSTANDING_CMD 256 > #define ARCMSR_MAX_FREECCB_NUM 320 >-#define ARCMSR_DRIVER_VERSION "Driver Version 1.20.00.15.RH 2007/12/24" >+#define ARCMSR_DRIVER_VERSION "Driver Version 1.20.00.15.RH1 2008/02/27" > #define ARCMSR_SCSI_INITIATOR_ID 255 > #define ARCMSR_MAX_XFER_SECTORS 512 > #define ARCMSR_MAX_XFER_SECTORS_B 4096 >@@ -341,13 +341,13 @@ struct MessageUnit_B > uint32_t done_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; > uint32_t postq_index; > uint32_t doneq_index; >- uint32_t __iomem *drv2iop_doorbell_reg; >- uint32_t __iomem *drv2iop_doorbell_mask_reg; >- uint32_t __iomem *iop2drv_doorbell_reg; >- uint32_t __iomem *iop2drv_doorbell_mask_reg; >- uint32_t __iomem *msgcode_rwbuffer_reg; >- uint32_t __iomem *ioctl_wbuffer_reg; >- uint32_t __iomem *ioctl_rbuffer_reg; >+ void __iomem *drv2iop_doorbell_reg; >+ void __iomem *drv2iop_doorbell_mask_reg; >+ void __iomem *iop2drv_doorbell_reg; >+ void __iomem *iop2drv_doorbell_mask_reg; >+ void __iomem *msgcode_rwbuffer_reg; >+ void __iomem *ioctl_wbuffer_reg; >+ void __iomem *ioctl_rbuffer_reg; > }; > > /* >diff -Naurp linux-2.6.18.i686/drivers/scsi/arcmsr/arcmsr_hba.c linux-2.6.18.i686a/drivers/scsi/arcmsr/arcmsr_hba.c >--- linux-2.6.18.i686/drivers/scsi/arcmsr/arcmsr_hba.c 2008-08-19 13:31:42.000000000 +0200 >+++ linux-2.6.18.i686a/drivers/scsi/arcmsr/arcmsr_hba.c 2008-08-21 12:02:47.000000000 +0200 >@@ -1423,18 +1423,17 @@ static int arcmsr_iop_message_xfer(struc > switch(controlcode) { > > case ARCMSR_MESSAGE_READ_RQBUFFER: { >- unsigned long *ver_addr; >+ unsigned char *ver_addr; > uint8_t *pQbuffer, *ptmpQbuffer; > int32_t allxfer_len = 0; >- void *tmp; > >- tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA); >- ver_addr = (unsigned long *)tmp; >- if (!tmp) { >+ >+ ver_addr = kmalloc(1032, GFP_ATOMIC); >+ if (!ver_addr) { > retvalue = ARCMSR_MESSAGE_FAIL; > goto message_out; > } >- ptmpQbuffer = (uint8_t *) ver_addr; >+ ptmpQbuffer = ver_addr; > while ((acb->rqbuf_firstindex != acb->rqbuf_lastindex) > && (allxfer_len < 1031)) { > pQbuffer = &acb->rqbuffer[acb->rqbuf_firstindex]; >@@ -1463,26 +1462,24 @@ static int arcmsr_iop_message_xfer(struc > } > arcmsr_iop_message_read(acb); > } >- memcpy(pcmdmessagefld->messagedatabuffer, (uint8_t *)ver_addr, allxfer_len); >+ memcpy(pcmdmessagefld->messagedatabuffer, ver_addr, allxfer_len); > pcmdmessagefld->cmdmessage.Length = allxfer_len; > pcmdmessagefld->cmdmessage.ReturnCode = ARCMSR_MESSAGE_RETURNCODE_OK; >- kfree(tmp); >+ kfree(ver_addr); > } > break; > > case ARCMSR_MESSAGE_WRITE_WQBUFFER: { >- unsigned long *ver_addr; >+ unsigned char *ver_addr; > int32_t my_empty_len, user_len, wqbuf_firstindex, wqbuf_lastindex; > uint8_t *pQbuffer, *ptmpuserbuffer; >- void *tmp; > >- tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA); >- ver_addr = (unsigned long *)tmp; >- if (!tmp) { >+ ver_addr = kmalloc(1032, GFP_ATOMIC); >+ if (!ver_addr) { > retvalue = ARCMSR_MESSAGE_FAIL; > goto message_out; > } >- ptmpuserbuffer = (uint8_t *)ver_addr; >+ ptmpuserbuffer = ver_addr; > user_len = pcmdmessagefld->cmdmessage.Length; > memcpy(ptmpuserbuffer, pcmdmessagefld->messagedatabuffer, user_len); > wqbuf_lastindex = acb->wqbuf_lastindex; >@@ -1528,7 +1525,7 @@ static int arcmsr_iop_message_xfer(struc > retvalue = ARCMSR_MESSAGE_FAIL; > } > } >- kfree(tmp); >+ kfree(ver_addr); > } > break; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 436068
:
296858
|
296873
| 314697