From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anderson Briglia Subject: Re: [patch 3/5] Add MMC password protection (lock/unlock) support V3 Date: Wed, 11 Jan 2006 09:58:03 -0400 Message-ID: <43C50EEB.9060501@indt.org.br> References: <43C2E0A2.3090701@indt.org.br> <20060109224204.GH19131@flint.arm.linux.org.uk> <43C42B00.60206@indt.org.br> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <43C42B00.60206@indt.org.br> Sender: linux-kernel-owner@vger.kernel.org To: Anderson Briglia Cc: Russell King , ext David Brownell , linux@arm.linux.org.uk, "Lizardo Anderson (EXT-INdT/Manaus)" , drzeus-list@drzeus.cx, "Linux-omap-open-source@linux.omap.com" , linux-kernel@vger.kernel.org List-Id: linux-omap@vger.kernel.org Anderson Briglia wrote: > Russell King wrote: > > >>On Mon, Jan 09, 2006 at 06:16:02PM -0400, Anderson Briglia wrote: >> >> >> >>>+ dev = bus_find_device(&mmc_bus_type, NULL, NULL, mmc_match_lockable); >>>+ if (!dev) >>>+ goto error; >>>+ card = dev_to_mmc_card(dev); >>>+ >>>+ if (operation == KEY_OP_INSTANTIATE) { /* KEY_OP_INSTANTIATE */ >>>+ if (mmc_card_locked(card)) { >>>+ ret = mmc_lock_unlock(card, key, MMC_LOCK_MODE_UNLOCK); >>>+ mmc_remove_card(card); >>>+ mmc_register_card(card); >>>+ } >>>+ else >>>+ ret = mmc_lock_unlock(card, key, MMC_LOCK_MODE_SET_PWD); >>> > >>Also, removing and re-registering a card is an offence. These >>things are ref-counted, and mmc_remove_card() will drop the last >>reference - so the memory associated with it will be freed. Then >>you re-register it. Whoops. >> >>If you merely want to try to attach a driver, use device_attach() >>instead. >> We changed the mmc_remove_card() and mmc_register_card() by device_release_driver() and device_attach(), supposedly avoiding ref-counts issues. Regards, Anderson Briglia INdT - Manaus