Quite a bit of this is fixing things broken previously (the advansys fix
is still pending resolution, but I'll send it as an -rc fix when we have
it). There's the final elimination of all drivers that are esp based
but don't use the scsi_esp core (that's mostly m68k and alpha). Plus
the usual bunch of driver updates and the addition of a new enclosure
services driver and the corresponding ULD.
The patch is available from:
master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
The short changelog is:
Adrian Bunk (2):
advansys: make 3 functions static
libiscsi: make __iscsi_complete_pdu() static
Aegis Lin (1):
ps3rom: sector size should be 512 bytes
Andrew Morton (1):
dc395x: fix uninitialized var warning
Andrew Vasquez (9):
qla2xxx: Update version number to 8.02.00-k8.
qla2xxx: Correct issue where incorrect init-fw mailbox command was used on
qla2xxx: Move RISC-interrupt-register modifications to qla2x00_request_irq
qla2xxx: Consolidate RISC-parity enablement codes.
qla2xxx: Cleanse memory allocation logic during probe.
qla2xxx: Clear EFT buffer before firmware reinitialization.
qla2xxx: Cleanup any outstanding SRB resources during shutdown.
qla2xxx: Add MODULE_FIRMWARE hint for ISP25XX firmware.
qla2xxx: Correct resource_size_t usages.
Boaz Harrosh (1):
arm: convert to accessors and !use_sg cleanup
James Bottomley (10):
ses: add new Enclosure ULD
enclosure: add support for enclosure services
sr: fix test unit ready responses
NCR53C9x: remove driver
remove m68k NCR53C9x based drivers
dec_esp: Remove driver
update my email address
add protocol definitions
sd: handle bad lba in sense information
mca_53c9x: remove driver
Mike Christie (12):
iscsi: bump version to 2.0-868
libiscsi: fix session age rollover and remove cid encoding
iscsi: fix up iscsi printk prefix
iscsi ...I'm going to guess that this is the entry in feature-removal.txt that need an update then: --------------------------- What: old NCR53C9x driver When: October 2007 Why: Replaced by the much better esp_scsi driver. Actual low-level driver can be ported over almost trivially. Who: David Miller <davem@davemloft.net> Christoph Hellwig <hch@lst.de> Cheers, Harvey --
Not immediately ... I anticipate a few "where'd my driver go?" type questions from m68k for which this provides a useful reference to point to ... James --
Well, if not removed, how about updated: What: old NCR53C9x driver When: Removed Feb 2008 Why: Replaced by the much better esp_scsi driver. Actual low-level driver can be ported over almost trivially. Who: James Bottomley <James.Bottomley@HansenPartnership.com> Cheers, Harvey --
Don't bother, we're fully aware of this.
The shortest feature removal notice in Linux's history (is it?) didn't go
unnoticed ;-)
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
I don't know where you get that from. The notice went in on 30 April 2007 and we gave you six months to convert the drivers, hence the October 2007 date for when the deletion will actually be done. I've actually delayed removal until February 2007 giving you a further three months. Even then I only removed the drivers because they no longer compile. I think nine months isn't unreasonable for a feature removal ... unless you work on a different time scale from me? James --
So....would a patch be welcome to remove this entry then? Harvey --
Not at the moment for the reasons I already gave. Ping me in about three months if it's not gone by then. James --
OK, the advansys fix came in. I've added it to the patch.
James
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Date: Fri, 8 Feb 2008 09:50:08 +0900
Subject: [SCSI] advansys: fix overrun_buf aligned bug
struct asc_dvc_var needs overrun buffer to be placed on an 8 byte
boundary. advansys defines struct asc_dvc_var:
struct asc_dvc_var {
...
uchar overrun_buf[ASC_OVERRUN_BSIZE] __aligned(8);
The problem is that struct asc_dvc_var is placed on
shost->hostdata. So if the hostdata is not on an 8 byte boundary, the
advansys crashes. The hostdata is placed on a sizeof(unsigned long)
boundary so the 8 byte boundary is not garanteed with x86_32.
With 2.6.23 and 2.6.24, the hostdata is on an 8 byte boundary by
chance, but with the current git, it's not.
This patch removes overrun_buf static array and use kzalloc.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
---
drivers/scsi/advansys.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index ccef891..3c2d688 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -566,7 +566,7 @@ typedef struct asc_dvc_var {
ASC_SCSI_BIT_ID_TYPE unit_not_ready;
ASC_SCSI_BIT_ID_TYPE queue_full_or_busy;
ASC_SCSI_BIT_ID_TYPE start_motor;
- uchar overrun_buf[ASC_OVERRUN_BSIZE] __aligned(8);
+ uchar *overrun_buf;
dma_addr_t overrun_dma;
uchar scsi_reset_wait;
uchar chip_no;
@@ -13833,6 +13833,12 @@ static int __devinit advansys_board_found(struct Scsi_Host *shost,
*/
if (ASC_NARROW_BOARD(boardp)) {
ASC_DBG(2, "AscInitAsc1000Driver()\n");
+
+ asc_dvc_varp->overrun_buf = kzalloc(ASC_OVERRUN_BSIZE, GFP_KERNEL);
+ if (!asc_dvc_varp->overrun_buf) {
+ ret = -ENOMEM;
+ goto err_free_wide_mem;
+ }
warn_code = AscInitAsc1000Driver(asc_dvc_varp);
if (warn_code || asc_dvc_varp->err_code) {
@@ -13840,8 ...On Thu, 07 Feb 2008 19:37:07 -0600 Seems that it was a bit late, Linus pulled scsi-misc before the patch was added. --
Sob. Can we please merge "Convert SG from nopage to fault"? It has been
sent three times, the first time was Dec 5 last year and it has thus far
received the lead balloon treatment. Despite my explicit request for
consideration last time I sent it
If there is no movement here then I have to carry the moderately intrusive
mm-remove-nopage.patch for another N months and we need to watch out for
new ->nopage implementations popping up etc.
From: Nick Piggin <npiggin@suse.de>
Convert SG from nopage to fault.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Douglas Gilbert <dougg@torque.net>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/scsi/sg.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff -puN drivers/scsi/sg.c~sg-nopage drivers/scsi/sg.c
--- a/drivers/scsi/sg.c~sg-nopage
+++ a/drivers/scsi/sg.c
@@ -1160,23 +1160,22 @@ sg_fasync(int fd, struct file *filp, int
return (retval < 0) ? retval : 0;
}
-static struct page *
-sg_vma_nopage(struct vm_area_struct *vma, unsigned long addr, int *type)
+static int
+sg_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
{
Sg_fd *sfp;
- struct page *page = NOPAGE_SIGBUS;
unsigned long offset, len, sa;
Sg_scatter_hold *rsv_schp;
struct scatterlist *sg;
int k;
if ((NULL == vma) || (!(sfp = (Sg_fd *) vma->vm_private_data)))
- return page;
+ return VM_FAULT_SIGBUS;
rsv_schp = &sfp->reserve;
- offset = addr - vma->vm_start;
+ offset = vmf->pgoff << PAGE_SHIFT;
if (offset >= rsv_schp->bufflen)
- return page;
- SCSI_LOG_TIMEOUT(3, printk("sg_vma_nopage: offset=%lu, scatg=%d\n",
+ return VM_FAULT_SIGBUS;
+ SCSI_LOG_TIMEOUT(3, printk("sg_vma_fault: offset=%lu, scatg=%d\n",
offset, rsv_schp->k_use_sg));
sg = rsv_schp->buffer;
sa = vma->vm_start;
@@ -1185,21 +1184,21 @@ sg_vma_nopage(struct vm_area_struct *vma
len = vma->vm_end - sa;
len = (len < ...Heh. I just took it directly then. I think it's more of a VM patch than a SCSI patch anyway, so I don't think you really should even have tried to push it through the SCSI tree. It's not like we ever do the low-level FS changes for VFS issues through the FS maintainers anyway (ie you sent me all those iget/read_inode things directly rather than trying to go through each filesystem). I don't think this is any different, really. Linus --
Yes. For ->faul Nick should just have sent on the whole batch after giving fs/driver people enough time to review it. --
I agree ... I've pinged Doug privately, this is publicly. Unfortunately, it is an intrusive change and needs testing .. I just don't have the tools that do this for SG. James --
I keep on forgetting that sg==dougg. <looks in MAINTAINERS. Shifts blame.> In fact scsi is the area in which I have the most who-maintains-what trouble. I just don't believe what MAINTAINERS says about scsi drivers and I tend to resort to git-whatchanged to find out who's really doing stuff. The number of people@lsil.com makes my head spin and I tend to cc as many as I can get my hands on. IOW: some care and attention to the ./MAINTAINERS file would really help here. --
