- 22 Jun, 2004 5 commits
-
-
Andrew Vasquez authored
Problem reported/corrected by Michael Reed [mdr@sgi.com]: We have a 2312 that puts the 8.00.00b12-k qla2xxx driver into an infinite loop with a solid interrupt, 0x8008, hcsr = 0x7430, risc status register 0x40008110, immediately after enabling parity on the board. It looks as though the early out test in qla_isr.c:qla2x00_intr_handler() against stat is broken. HSR_RISC_PAUSED is set. Also, there's a stale mailbox completion flagged (stat&0xff) which will short circuit the default case in the switch if it got that far. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Andrew Vasquez authored
Restructure qla2x00_start_scsi() so that PCI mappings are done after we've verified command list and request queue resource availability. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Andrew Vasquez authored
On Tuesday, June 22, 2004 12:07 AM, Arjan van de Ven wrote: > On Tue, 2004-06-22 at 07:49, Andrew Vasquez wrote: > > > diff -Nru a/drivers/scsi/qla2xxx/qla_iocb.c > b/drivers/scsi/qla2xxx/qla_iocb.c > > --- a/drivers/scsi/qla2xxx/qla_iocb.c 2004-06-21 15:36:37 -07:00 > > +++ b/drivers/scsi/qla2xxx/qla_iocb.c 2004-06-21 15:36:37 -07:00 @@ > > -43,7 +43,7 @@ else if (cmd->sc_data_direction == > > DMA_FROM_DEVICE) cflags = CF_READ; else { > > - switch (cmd->data_cmnd[0]) { > > + switch (cmd->cmnd[0]) { > > case WRITE_6: > > case WRITE_10: > > case WRITE_12: > > this sounds wrong. > Yes, it is _wrong_! This code is baggage left behind from earlier drivers when we were 'asked' to work around certain applications' inability to properly construct commands. > Is there any reason qlogic drivers can't use/trust the midlayer > instead of doing qla2x00_get_cmd_direction() to reverse engineer to > direction ?? Sure. Especially considering an earlier thread: http://marc.theaimsgroup.com/?t=108727983000002&r=1&w=2Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Andrew Vasquez authored
Problem reported/corrected by Tony Battersby [tonyb@cybernetics.com]: o The qla2xxx driver calculates data transfer residuals for some but not all circumstances. The patch below adds data transfer residual calculations for the remaining cases. o Interrogate the proper cmnd[] array when determining the transfer direction. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Andrew Vasquez authored
Add memory barriers to ensure that all load operations have completed before the (MMIO) write to the ISP's registers. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
- 21 Jun, 2004 9 commits
-
-
Guennadi Liakhovetski authored
While reviewing tmscsim, I noticed something, I didn't quite like / understand. The driver takes the host_lock (with irqsave) at the entry to the ISR, and releases it at the exit. And inside the ISR there are potentially long busy-waits... Like int ctr = 6000000; /* only try for about a second */ while( --ctr && !((dstate = DC390_read8 (DMA_Status)) & DMA_XFER_DONE) && pSRB->SGToBeXferLen ); The attached patch is attempting to fix those places. Not sure if this is a proper fix though. In my understanding, after looking through the code, the host_lock is used to protect host-specific data and host-registers. The ->queuecommand is already called with it help, so, one just, basically, have to protect other contexts - interrupt, timer,... So, looks mostly right. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Guennadi Liakhovetski authored
On Sun, 23 May 2004, Christoph Hellwig wrote: > these leaks. Maybe also merge dc390_init and dc390_init_one? > > Similarly I think DC390_release should be merged into dc390_remove_one. Attached. Also fixed some __init / __devinit and __exit / __devexit attributes. Although, would be good to have something like #ifdef CONFIG_HOTPLUG_PCI #define __pcidevinit #define __pcidevinitdata #define __pcidevexit #define __pcidevexitdata #else #define __pcidevinit __init #define __pcidevinitdata __initdata #define __pcidevexit __exit #define __pcidevexitdata __exitdata #endif Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Mark Haverkamp authored
Allows 32 bit apps to use ioctls in a 64 bit kernel. Signed-off-by Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Christoph Hellwig authored
+ minor cleanups Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Christoph Hellwig authored
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Christoph Hellwig authored
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Christoph Hellwig authored
avoid obsolete APIs Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Christoph Hellwig authored
Avoid old APIs and fix a bad bug were the irq handler argument was derefenced as struct Scsi_Host * instead of Adpater * which made the driver instantly crash on SMP. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Christoph Hellwig authored
replace obsolete typedefs and scsi_to_pci_dma_dir, use proper includes and re-order includes correctly. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
- 20 Jun, 2004 4 commits
-
-
James Bottomley authored
From: Joel Soete <soete.joel@tiscali.be> This patch makes the ncr driver capable of accepting segments which are larger than the block size. It has been tested against IOMMU merging on parisc. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
James Bottomley authored
From: Matthew Wilcox <willy@debian.org> - remove all of the PCI chips (8xx series) leaving only 720 - pull out stand alone initialisation code (driver becomes a chip only driver for NCR Q720 and Zalon) - remove most vestiges of PCI support (chip driver should be bus neutral) - tidy up typedefs - remove simulated intfly (may need putting back for 770) Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Christoph Hellwig authored
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Arjan van de Ven authored
the patch below finishes off the removal of the obsolete hosts.h usage, and now that the users are gone, it's safe to turn on the warning to prevent accidental future use... Please apply Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
- 18 Jun, 2004 22 commits
-
-
Brian King authored
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Brian King authored
Some SCSI-IDE cdrom drives take up to 15 seconds to respond following an abort being issued to them. This patch changes ipr to only send a cancel all to a device as part of request sense processing when the device is running tagged command queueing. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Brian King authored
The following patch fixes a hang that occurs when an abort is issued by the midlayer. The hang is the result of overriding a field in the union of the ipr_cmd struct. It is fixed by moving this pointer outside of the union, since it is not mutually exclusive with the other fields in the union. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
James Bottomley authored
into mulgrave.(none):/home/jejb/BK/scsi-misc-2.6
-
Jeremy Higdon authored
The BLIST_REPORTLUN2 blacklist item has exactly the behavior that the MYLEX DACARMRB (and SGI TP9100, which is really a 2Gb upgrade to the DACARMRB) need. These devices use a PQ of 1 instead of 3 for unconfigured luns, which means that every RAID has 32 luns, many or most of which are just phantoms. However, it does support Report Luns, and it returns the correct data. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
James Bottomley authored
The object of this infrastructure is to give HBAs early warning that error handling is about to happen and also provide them with the opportunity to do something about it. It introduces the extra template callback: eh_timed_out() which scsi_times_out() will call if it is populated to notify the LLD that an outstanding command took a timeout. There are three possible returns: EH_HANDLED: I've fixed the problem, please complete the command for me (as soon as the timer fires, scsi_done will do nothing, so the timer itself will call a special version of scsi_done that doesn't check the timer). EH_NOT_HANDLED: Invoke error recovery as normal EH_RESET_TIMER: The command will complete, reset the timer to its original value and start it ticking again. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com> Based on work by Christoph Hellwig and Luben Tuikov
-
Alan Cox authored
I've been going through Mark's changes with a fine toothcomb and this merges most of them. Its tested on 64bit SMP hardware and seems to be fine. There are a couple of Mark's changes I've left out for now but there isnt really an easy way to break down the changes further. This fixes a whole host of problems including random hangs under high load Signed-off-by: Alan Cox <alan@redhat.com> Original contribution under GPL from Adaptec, updates checking by Red Hat Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
James Bottomley authored
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
bk://linux-scsi.bkbits.net/scsi-for-linus-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Jens Axboe authored
This is a fix for when we encounter an alias during insert. When that happens we move the request to dispatch, but it may happen that this request is also the ->last_merge hint. So we may attempt to merge with this later, when it's either in progress or already freed. Rearrange the logic a bit so we clear the merge hint there as well. It looks more complex than it is, the only real code change is the addition of a cfq_remove_merge_hints() in cfq_dispatch_sort(). Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
It's possible under unlucky circumstances for this race to trigger. I described it with a comment in the code. Signed-Off-By: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
This makes the CFQ tunables available in sysfs, like AS and deadline. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Linus Torvalds authored
Noted by Alexey Dobriyan.
-
Linus Torvalds authored
-
Linus Torvalds authored
-
Linus Torvalds authored
-
bk://bk.arm.linux.org.uk/linux-2.6-rmkLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Russell King authored
This cset adds the code to handle the hardware vector floating point unit found on some ARM926 and later CPUs. The hardware provides an implementation for the common cases, and bounces exceptions for other cases, which have to be handled in software, and signalling SIGFPE as appropriate.
-
Linus Torvalds authored
-
Chris Wright authored
Remove unused queued_signals global accounting. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Chris Wright authored
Add a user_struct pointer to the sigqueue structure. Charge sigqueue allocation and destruction to the user_struct rather than a global pool. This per user rlimit accounting obsoletes the global queued_signals accouting. The patch as charges the sigqueue struct allocation to the queue that it's pending on (the receiver of the signal). So the owner of the queue is charged for whoever writes to it (much like quota for a 777 file). The patch started out charging the task which allocated the sigqueue struct. In most cases, these are always the same user (permission for sending a signal), so those cases are moot. In the cases where it isn't the same user, it's a privileged user sending a signal to another user. It seems wrong to charge the allocation to the privleged user, when the other user could block receipt as long as it feels. The flipside is, someone else can fill your queue (expectation is that someone else is privileged). I think it's right the way it is. The change to revert is very small. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Chris Wright authored
Update send_signal() api to allow passing the task receiving the signal. This is necessary to ensure signals generated out of process context can be charged to the correct user. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-