[sane-devel] avision: Out of memory

Rene Rebe rene.rebe@gmx.net
Fri, 07 Feb 2003 20:58:38 +0100 (CET)


On: Fri, 07 Feb 2003 16:13:32 +0100,
    abel deuring <a.deuring@satzbau-gmbh.de> wrote:
> Rene Rebe wrote:
> > =

> > Hi.
> > =

> > On: Thu, 6 Feb 2003 09:44:32 +0100,
> >     Henning Meier-Geinitz <henning@meier-geinitz.de> wrote:
> > > Hi,
> > >
> > > On Thu, Feb 06, 2003 at 01:24:37AM +0100, Rene Rebe wrote:
> > =

> > > That's suspicious. I don't think you can ignore
> > > sanei_scsi_max_request_size. If you send larger requests, it won'=
t work.
> > > But maybe I'm missing something here?
> > >
> > > IIRC the default size is 128 kb on Linux (and may be lower on oth=
er
> > > systems). So if the inquiry buffer size is bigger than that, it w=
on't
> > > work. You could use sanei_scsi_open_extended to set a bigger SCSI=
 size. But you
> > > still must check if the bigger size was accepted.
> > =

> > Hm. It works just fine reading 160kB using hpusbscsi on my HP Scanj=
et
> > 5300 ... - Just vanilla source, nothing hacked.
> > =

> > Maybe I should use the sanei_scsi_open_extende and modify the
> > hpusbscsi module to let me pass such a huge amount of data ... (As =
far
> > as I can tell such a big transfer is currently only needed for the =
USB
> > devices. The SCSI ones can return the calibration data in smaller
> > junks ...)
> =

> Using sanei_scsi_open_extended is probably the best solution, because=

> you can specify different buffer sizes for each device file. But you
> should be aware that you don't always get the beffer size you request=
ed.
> For some OSes, sanei_scsi.c simply sets a certain maximum size. I don=
't
> know, if this is a hard limit for all OSes, or if you can issue comma=
nds
> with larger data blocks. Another example are ISA adapters under Linux=
;
> for these adapters, the max buffer size is < 64 kB. Some SCSI/USB
> "translators"  for Linux limit the buffer size too, IIRC. In these ca=
se,
> sending a larger buffer will never succeed. In short: I think that it=
 is
> better not to try to send more data than specified by
> sanei_scsi_max_request_size (if sanei_scsi_open is used) or as return=
ed
> by sanei_scsi_open_extended. Alternatively, you can try to send more
> data, but in this case the backend should hanlde the "no memory" erro=
r
> more gracefully. =


Yes. Full ACK. I simply had not yet any problem AND I will add
inteligent code to handle the maximal transfer limit this weekend.

> Abel

- Ren=E9

--  =

Ren=E9 Rebe - Europe/Germany/Berlin
e-mail:   rene.rebe@gmx.net, rene@rocklinux.org
web:      www.rocklinux.org, drocklinux.dyndns.org/rene/

Anyone sending unwanted advertising e-mail to this address will be
charged $25 for network traffic and computing time. By extracting my
address from this message or its header, you agree to these terms.