Hello, sorry, this might be a beginner question, but I couldn't find any infos in the FAQ. I'm writing a driver (module) for a PCI card with a neural processor (NP-processor) on it for kernel 2.4.1. The registers of this processor are mapped to a memory area. I access the different registers of the NP-processor with ioctl's (there are 8bit and 16bit registers): switch (cmd) { case NP_IOCSGCR: get_user (b, (byte *) arg); writeb (b, np.mem + Z_GCR); break; case NP_IOCGGCR: b = readb (np.mem + Z_GCR); put_user (b, (byte *) arg); break; case NP_IOCSMIF: get_user (w, (word *) arg); writew (w, np.mem + Z_MIF); break; case NP_IOCGMIF: w = readw (np.mem + Z_MIF); put_user (w, (word *) arg); break; When I load the module and init the device, I can read the registers. Some of them have default values after a reset of the chip and they are ok. But when I load data to the registers and let the NP-processor categorize the data, strange things happen: I wrote a program to test the driver which loads some data to the NP-processor and tries to categorize it. The program prints its result to STDOUT. - everything works ok, results are correct, if I redirect STDOUT to a file - if I don't redirect, I get reproducibly wrong results when I print to STDOUT My first idea was to disable/enable interrupts when entering/leaving the ioctl-function (using save_flags(); cli(); and restore_flags();), but it didn't help. Armin. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/