1. 09 1月, 2009 13 次提交
  2. 08 1月, 2009 27 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · 9e42d0cf
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        sparc64: Work around branch tracer warning.
        sparc64: Fix unsigned long long warnings in drivers.
        sparc64: Use unsigned long long for u64.
        sparc: refactor code in fault_32.c
        sparc64: refactor code in init_64.c
        sparc64: refactor code in viohs.c
        sparc: make proces_ver_nack a bit more readable
      9e42d0cf
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · 97c440ba
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
        V4L/DVB (10191a): Update MAINTAINERS entries on media drivers
        V4L/DVB (10190): cx88: Fix some Kbuild troubles
        V4L/DVB (10189): dm1105: Fix build with INPUT=m and DVB_DM1105=y
        V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc
        V4L/DVB (10182): tda8290: fix TDA8290 + TDA18271 initialization
        V4L/DVB (10181): v4l2-device: Fix some sparse warnings
        V4L/DVB (10180): drivers/media: Fix a number of sparse warnings
        V4L/DVB (10179): tda8290: Fix two sparse warnings
        V4L/DVB (10178): dvb_frontend: Fix some sparse warnings due to static symbols
        V4L/DVB (10177): Fix sparse warnings on em28xx
        V4L/DVB (10176b): pxa-camera: fix redefinition warnings and missing DMA definitions
        V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage
      97c440ba
    • L
      Merge branch 'for-2.6.29' of git://linux-nfs.org/~bfields/linux · 713404d6
      Linus Torvalds 提交于
      * 'for-2.6.29' of git://linux-nfs.org/~bfields/linux: (67 commits)
        nfsd: get rid of NFSD_VERSION
        nfsd: last_byte_offset
        nfsd: delete wrong file comment from nfsd/nfs4xdr.c
        nfsd: git rid of nfs4_cb_null_ops declaration
        nfsd: dprint each op status in nfsd4_proc_compound
        nfsd: add etoosmall to nfserrno
        NFSD: FIDs need to take precedence over UUIDs
        SUNRPC: The sunrpc server code should not be used by out-of-tree modules
        svc: Clean up deferred requests on transport destruction
        nfsd: fix double-locks of directory mutex
        svc: Move kfree of deferral record to common code
        CRED: Fix NFSD regression
        NLM: Clean up flow of control in make_socks() function
        NLM: Refactor make_socks() function
        nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT
        SUNRPC: Ensure the server closes sockets in a timely fashion
        NFSD: Add documenting comments for nfsctl interface
        NFSD: Replace open-coded integer with macro
        NFSD: Fix a handful of coding style issues in write_filehandle()
        NFSD: clean up failover sysctl function naming
        ...
      713404d6
    • D
      sparc64: Work around branch tracer warning. · 18b8e08e
      David S. Miller 提交于
      As reported by Sam Ravnborg, Gcc-3.4.5 does not handle:
      
      	if (get_user() || get_user())
      
      with the new branch tracer enabled.
      
      Just seperate it out into seperate statements for now
      so people can get work done.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      18b8e08e
    • M
      V4L/DVB (10191a): Update MAINTAINERS entries on media drivers · 661263b5
      Mauro Carvalho Chehab 提交于
      This patch updates the MAINTAINERS entries for the media drivers.
      
      We are doing a few changes during 2009 to improve patch handling for
      drivers/media stuff.
      
      Currently, v4l-dvb-maintainer list at linuxtv.org were used to to be v4l/dvb
      driver maintainers ML, in order to keep track of patch merge requests and to
      receive bug fixes. This list allows posting for everybody, but, in order to
      avoid spam, the user subscribe/unsubscribe at the ML is moderated. Other
      development discussions and end-user forums happened on two separated ML (one
      for V4L and another for DVB).
      
      At the beginning of 2009, we've created linux-media@vger.kernel.org, meaning to
      be the main upstream development mailing list for drivers/media, including V4L
      and DVB core and drivers.
      
      The choice for vger.kernel.org were due to the fact that most of upstream lists
      are there. Also, its anti-spam filtering rules are better than what we
      currently have at linuxtv.org.
      
      For now, both video4linux-list and linux-dvb ML will remain active, but more
      focused on end users. It is expected that those lists will gradually be
      replaced also by linux-media@vger.kernel.org.
      
      This patch reflect those changes at linux MAINTAINERS file.
      
      Since the development and bug fix discussions will now happen at
      linux-media@vger.kernel.org, this patch does the following changes
      
      	- replaces v4l-dvb-maintainer ML for the new
      	  linux-media@vger.kernel.org;
      
      	- replaces video4linux ML for the new linux-media@vger.kernel.org;
      
      While here, it also:
      
      	- Fixes the existing -git tree entries for drivers/media (since the
                repository name changed);
      
      	- Adds the missing drivers/media -git tree entry on a few maintainers
                entries that don't point to a tree.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      661263b5
    • M
      V4L/DVB (10190): cx88: Fix some Kbuild troubles · e32fadc4
      Mauro Carvalho Chehab 提交于
      As Randy Dunlap <randy.dunlap@oracle.com> reported, cx88 has some compilation issues:
      
      drivers/built-in.o: In function `cx88_call_i2c_clients':
      (.text+0x20af17): undefined reference to `videobuf_dvb_get_frontend'
      drivers/built-in.o: In function `cx8802_probe':
      cx88-mpeg.c:(.devinit.text+0x268c4): undefined reference to `videobuf_dvb_alloc_frontend'
      cx88-mpeg.c:(.devinit.text+0x268ea): undefined reference to `videobuf_dvb_dealloc_frontends'
      
      With those configs:
      
      CONFIG_VIDEO_CX88=y
      CONFIG_VIDEO_CX88_BLACKBIRD=y
      CONFIG_VIDEO_CX88_DVB=m
      CONFIG_DVB_CORE=m
      
      After carefully examining the code, with the current code, several cx88 drivers
      (cx8800, cx8802, cx88_dvb and cx88_blackbird) should be compiled as a module,
      if one of them is marked as such. Just fixing Kconfig could create a very complex
      set of rules. Also, this hides a problem with the current approach where the dvb
      functionality weren't confined inside dvb module.
      
      What happens is that:
      	- cx88-i2c (part of cx8800) has some special rules if DVB;
      	- cx88-mpeg (cx8802 module) has also part of DVB init code;
      	- cx88-dvb has the rest of the dvb code;
      	- cx88-blackbird can be used with cx88-mpeg, having cx88-dvb or not.
      
      So, instead of doing some tricks at Kconfig and wait for a next breakage,
      this patch moves the dvb code inside cx88-i2c and cx88-mpeg into cx88-dvb.
      
      Another problem is that cx8802 were being compiled, even without cx88-dvb
      and cx88-blackbird modules.
      
      While on this code, let's fix also a reported problem:
      http://www.linuxtv.org/pipermail/linux-dvb/2009-January/031225.html
      
      A solution for the issue were proposed here:
      http://www.mail-archive.com/linux-media@vger.kernel.org/msg00021.html
      
      Thanks to Randy, Andy, Gregoire and Thomas for helping us to detect
      and solve the issues.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      e32fadc4
    • M
      V4L/DVB (10189): dm1105: Fix build with INPUT=m and DVB_DM1105=y · 571d864c
      Mauro Carvalho Chehab 提交于
      As reported by Randy Dunlap <randy.dunlap@oracle.com>:
      
      With CONFIG_INPUT=m and CONFIG_DVB_DM1105=y:
      
      drivers/built-in.o: In function `input_sync':
      dm1105.c:(.text+0x120c33): undefined reference to `input_event'
      drivers/built-in.o: In function `dm1105_emit_key':
      dm1105.c:(.text+0x120c6c): undefined reference to `input_event'
      dm1105.c:(.text+0x120c82): undefined reference to `input_event'
      dm1105.c:(.text+0x120cb2): undefined reference to `input_event'
      dm1105.c:(.text+0x120cd1): undefined reference to `input_event'
      drivers/built-in.o: In function `dm1105_ir_init':
      (.devinit.text+0xd8ae): undefined reference to `input_allocate_device'
      drivers/built-in.o: In function `dm1105_ir_init':
      (.devinit.text+0xd9f6): undefined reference to `input_register_device'
      drivers/built-in.o: In function `dm1105_ir_init':
      (.devinit.text+0xda09): undefined reference to `input_free_device'
      drivers/built-in.o: In function `dm1105_ir_exit':
      (.devexit.text+0xcde): undefined reference to `input_unregister_device'
      
      This is due to the lack of a dependency between dm1105 and CONFIG_INPUT
      
      Cc: Igor M. Liplianin <liplianin@me.by>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      571d864c
    • J
      V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc · 2230c3c8
      Julia Lawall 提交于
      This patch extends 13417982 by using
      usb_endpoint_xfer_control, usb_endpoint_xfer_isoc, usb_endpoint_xfer_bulk,
      and usb_endpoint_xfer_int in the negated case as well.
      
      The semantic patch that makes this change is as follows:
      (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_CONTROL\|0\))
      + !usb_endpoint_xfer_control(epd)
      
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_ISOC\|1\))
      + !usb_endpoint_xfer_isoc(epd)
      
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_BULK\|2\))
      + !usb_endpoint_xfer_bulk(epd)
      
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_INT\|3\))
      + !usb_endpoint_xfer_int(epd)
      // </smpl>
      Signed-off-by: NJulia Lawall <julia@diku.dk>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      2230c3c8
    • M
      V4L/DVB (10182): tda8290: fix TDA8290 + TDA18271 initialization · 439b72b6
      Michael Krufky 提交于
      Don't call tda8290_init_tuner unless we have either a TDA8275 or TDA8275A
      present. Calling this function will cause a TDA18271 to get sick, so we
      should only call it when needed.
      Signed-off-by: NMichael Krufky <mkrufky@linuxtv.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      439b72b6
    • M
      V4L/DVB (10181): v4l2-device: Fix some sparse warnings · 43266337
      Mauro Carvalho Chehab 提交于
      /home/v4l/master/v4l/v4l2-device.c:32:2: warning: Using plain integer as NULL pointer
      /home/v4l/master/v4l/v4l2-device.c:64:2: warning: Using plain integer as NULL pointer
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      43266337
    • M
      V4L/DVB (10180): drivers/media: Fix a number of sparse warnings · ffbc5f88
      Mauro Carvalho Chehab 提交于
      anysee.c:44:5: warning: symbol 'dvb_usb_anysee_delsys' was not declared. Should it be static?
      cx24116.c:378:3: warning: symbol 'CX24116_MODFEC_MODES' was not declared. Should it be static?
      stb0899_algo.c:57:5: warning: symbol 'stb0899_get_srate' was not declared. Should it be static?
      stb0899_algo.c:766:6: warning: symbol 'Log2Int' was not declared. Should it be static?
      stb0899_drv.c:137:20: warning: symbol 'stb0899_quant_tab' was not declared. Should it be static?
      stb0899_drv.c:180:20: warning: symbol 'stb0899_est_tab' was not declared. Should it be static?
      stb0899_drv.c:220:5: warning: symbol '_stb0899_read_reg' was not declared. Should it be static?
      budget-ci.c:1348:23: warning: symbol 'tt3200_stb6100_config' was not declared. Should it be static?
      /home/v4l/master/v4l/cx25840-core.c:190:6: warning: symbol 'cx25840_work_handler' was not declared. Should it be static?
      /home/v4l/master/v4l/m5602_s5k83a.c:116:6: warning: symbol 's5k83a_dump_registers' was not declared. Should it be static?
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      ffbc5f88
    • M
      V4L/DVB (10179): tda8290: Fix two sparse warnings · 4c27f1a4
      Mauro Carvalho Chehab 提交于
      /home/v4l/master/v4l/tda8290.c:233:7: warning: symbol 'i' shadows an earlier one
      /home/v4l/master/v4l/tda8290.c:178:3: warning: symbol 'fm_mode' was not declared. Should it be static?
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      4c27f1a4
    • M
      V4L/DVB (10178): dvb_frontend: Fix some sparse warnings due to static symbols · 072ce0c5
      Mauro Carvalho Chehab 提交于
      /home/v4l/master/v4l/dvb_frontend.c:838:19: warning: symbol 'dtv_cmds' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1035:6: warning: symbol 'dtv_property_dump' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1066:5: warning: symbol 'is_legacy_delivery_system' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1080:6: warning: symbol 'dtv_property_cache_sync' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1132:6: warning: symbol 'dtv_property_legacy_params_sync' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1187:6: warning: symbol 'dtv_property_adv_params_sync' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1222:6: warning: symbol 'dtv_property_cache_submit' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1253:5: warning: symbol 'dtv_property_process_get' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1362:5: warning: symbol 'dtv_property_process_set' was not declared. Should it be static?
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      072ce0c5
    • M
      V4L/DVB (10177): Fix sparse warnings on em28xx · 26cdc76b
      Mauro Carvalho Chehab 提交于
      /home/v4l/master/v4l/em28xx-core.c:396:25: warning: symbol 'outputs' was not declared. Should it be static?
      /home/v4l/master/v4l/em28xx-input.c:324:6: warning: symbol 'em28xx_ir_start' was not declared. Should it be static?
      /home/v4l/master/v4l/em28xx-cards.c:1925:5: warning: symbol 'em28xx_init_dev' was not declared. Should it be static?
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      26cdc76b
    • E
      V4L/DVB (10176b): pxa-camera: fix redefinition warnings and missing DMA definitions · cfbaf4df
      Eric Miao 提交于
      1. now pxa_camera.c uses ioremap() for register access, pxa_camera.h is
         totally useless. Remove it.
      
      2. <asm/dma.h> does no longer include <mach/dma.h>, include the latter
         file explicitly
      
       delete mode 100644 drivers/media/video/pxa_camera.h
      Signed-off-by: NEric Miao <eric.miao@marvell.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      cfbaf4df
    • G
      V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage · c0cd5010
      Guennadi Liakhovetski 提交于
      Not all architectures provide clear_user_page(), but clear_user_highpage()
      is available everywhere at least via the compatibility inline function.
      
      Is this the "trivial patch" that's required for these two drivers?
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      c0cd5010
    • H
    • H
      trivial: replace last usages of __FUNCTION__ in kernel · 9b4778f6
      Harvey Harrison 提交于
      __FUNCTION__ is gcc-specific, use __func__
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Acked-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9b4778f6
    • L
      Merge branch 'sched-fixes-for-linus' of... · 8cfc7f9c
      Linus Torvalds 提交于
      Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        sched: fix possible recursive rq->lock
      8cfc7f9c
    • L
      Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · b424e8d3
      Linus Torvalds 提交于
      * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (98 commits)
        PCI PM: Put PM callbacks in the order of execution
        PCI PM: Run default PM callbacks for all devices using new framework
        PCI PM: Register power state of devices during initialization
        PCI PM: Call pci_fixup_device from legacy routines
        PCI PM: Rearrange code in pci-driver.c
        PCI PM: Avoid touching devices behind bridges in unknown state
        PCI PM: Move pci_has_legacy_pm_support
        PCI PM: Power-manage devices without drivers during suspend-resume
        PCI PM: Add suspend counterpart of pci_reenable_device
        PCI PM: Fix poweroff and restore callbacks
        PCI: Use msleep instead of cpu_relax during ASPM link retraining
        PCI: PCIe portdrv: Add kerneldoc comments to remining core funtions
        PCI: PCIe portdrv: Rearrange code so that related things are together
        PCI: PCIe portdrv: Fix suspend and resume of PCI Express port services
        PCI: PCIe portdrv: Add kerneldoc comments to some core functions
        x86/PCI: Do not use interrupt links for devices using MSI-X
        net: sfc: Use pci_clear_master() to disable bus mastering
        PCI: Add pci_clear_master() as opposite of pci_set_master()
        PCI hotplug: remove redundant test in cpq hotplug
        PCI: pciehp: cleanup register and field definitions
        ...
      b424e8d3
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 7c7758f9
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (123 commits)
        wimax/i2400m: add CREDITS and MAINTAINERS entries
        wimax: export linux/wimax.h and linux/wimax/i2400m.h with headers_install
        i2400m: Makefile and Kconfig
        i2400m/SDIO: TX and RX path backends
        i2400m/SDIO: firmware upload backend
        i2400m/SDIO: probe/disconnect, dev init/shutdown and reset backends
        i2400m/SDIO: header for the SDIO subdriver
        i2400m/USB: TX and RX path backends
        i2400m/USB: firmware upload backend
        i2400m/USB: probe/disconnect, dev init/shutdown and reset backends
        i2400m/USB: header for the USB bus driver
        i2400m: debugfs controls
        i2400m: various functions for device management
        i2400m: RX and TX data/control paths
        i2400m: firmware loading and bootrom initialization
        i2400m: linkage to the networking stack
        i2400m: Generic probe/disconnect, reset and message passing
        i2400m: host/device procotol and core driver definitions
        i2400m: documentation and instructions for usage
        wimax: Makefile, Kconfig and docbook linkage for the stack
        ...
      7c7758f9
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async · 67acd8b4
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async:
        async: don't do the initcall stuff post boot
        bootchart: improve output based on Dave Jones' feedback
        async: make the final inode deletion an asynchronous event
        fastboot: Make libata initialization even more async
        fastboot: make the libata port scan asynchronous
        fastboot: make scsi probes asynchronous
        async: Asynchronous function calls to speed up kernel boot
      67acd8b4
    • D
      topology: Fix sparc64 build. · b13d3720
      David Miller 提交于
      Due to changeset ba84be23 ("remove
      linux/hardirq.h from asm-generic/local.h") the sparc64 build started
      failing on drivers/base/topology.c:
      
        drivers/base/topology.c: In function ‘show_physical_package_id’:
        drivers/base/topology.c:103: error: implicit declaration of function ‘cpu_data’
        drivers/base/topology.c:103: error: request for member ‘proc_id’ in something not a structure or union
        drivers/base/topology.c: In function ‘show_core_id’:
        drivers/base/topology.c:106: error: request for member ‘core_id’ in something not a structure or union
      
      Adding the obvious fix of including asm/cpudata.h into asm/topology.h on
      sparc64 doesn't fix it, in fact it makes things worse because of the
      header file dependency chain:
      
      	linux/gfp.h --> linux/mmzone.h --> linux/topology.h -->
      	asm/topology.h --> asm/cpudata.h --> linux/percpu.h -->
      	linux/slab.h
      
      which results in:
      
        include/linux/slub_def.h: In function ‘kmalloc_large’:
        include/linux/slub_def.h:209: error: implicit declaration of function ‘__get_free_pages’
        include/linux/slub_def.h:209: error: ‘__GFP_COMP’ undeclared (first use in this function)
        include/linux/slub_def.h:209: error: (Each undeclared identifier is reported only once
        include/linux/slub_def.h:209: error: for each function it appears in.)
        include/linux/slub_def.h:209: warning: cast to pointer from integer of different size
      
      The simplest thing to do is to add yet another one-off hack like parts
      of the guilty changeset did, by putting an explicit linux/hardirq.h
      include into drivers/base/topology.c
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b13d3720
    • B
      nfsd: get rid of NFSD_VERSION · db43910c
      Benny Halevy 提交于
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      db43910c
    • B
      nfsd: last_byte_offset · 87df4de8
      Benny Halevy 提交于
      refactor the nfs4 server lock code to use last_byte_offset
      to compute the last byte covered by the lock.  Check for overflow
      so that the last byte is set to NFS4_MAX_UINT64 if offset + len
      wraps around.
      
      Also, use NFS4_MAX_UINT64 for ~(u64)0 where appropriate.
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      87df4de8
    • M
      4e65ebf0
    • B
      nfsd: git rid of nfs4_cb_null_ops declaration · df96fcf0
      Benny Halevy 提交于
      There's no use for nfs4_cb_null_ops's declaration in fs/nfsd/nfs4callback.c
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      df96fcf0