Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262228AbVBQOtX (ORCPT ); Thu, 17 Feb 2005 09:49:23 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262193AbVBQOtV (ORCPT ); Thu, 17 Feb 2005 09:49:21 -0500 Received: from fsmlabs.com ([168.103.115.128]:24505 "EHLO fsmlabs.com") by vger.kernel.org with ESMTP id S262138AbVBQOrv (ORCPT ); Thu, 17 Feb 2005 09:47:51 -0500 Date: Thu, 17 Feb 2005 07:48:47 -0700 (MST) From: Zwane Mwaikambo To: Davide Rossetti cc: linux-kernel@vger.kernel.org Subject: Re: rmmod while module is in use In-Reply-To: Message-ID: References: <4214926B.3030707@roma1.infn.it> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1293 Lines: 43 On Thu, 17 Feb 2005, Zwane Mwaikambo wrote: > On Thu, 17 Feb 2005, Davide Rossetti wrote: > > > maybe RTFM... > > a module: > > - char device driver for.. > > - a PCI device > > > > any clue as to how to protect from module unloading while there is still some > > process opening it??? have I to sleep in the remove_one() pci driver function > > till last process closes its file descriptor??? > > > > static void __devexit apedev_remove_one(struct pci_dev *pdev) > > { > > ApeDev* apedev = pci_get_drvdata(pdev); > > > > if(test_bit(APEDEV_FLAG_OPEN, &apedev->flags)) { > > PERROR("still open flag on!!! (flags=0x%08x)\n", apedev->flags); > > > > // sleep here till it gets closed... > > > > } > > ... > > } > > > > static struct pci_driver apedev_driver = { > > .name = DEVNAME, > > .id_table = apedev_pci_tbl, > > .probe = apedev_init_one, > > .remove = __devexit_p(apedev_remove_one), > > }; > > Add .module = THIS_MODULE to your file_operations. ^^^^^^^ That should be .owner - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/