aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-01-06 19:57:39 -0500
committerJeff Garzik <jgarzik@pobox.com>2006-01-09 10:32:40 -0500
commit17fa6e2f115ad734ef802b663071159a1a64d06f (patch)
tree9cd0ca9b3bb4c14e2441637b84c1dc8e70f5bdbb /drivers
parent5367f2d67c7d0bf1faae90e6e7b4e2ac3c9b5e0f (diff)
[PATCH] sk98lin: routine called from probe marked __init
Sk98lin driver has a routine marked __init that is called from the probe code. If using pci hotplug, this could be called after the initialization so it needs to be marked __devinit. So if you hot added a sk98lin board, the kernel would crash. I don't have hot plug hardware to actually try this feat. Also, there are two routines, only called from SkGeBoardInit that can be marked __devinit. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/sk98lin/skge.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c
index 9a76ac180b11..3302d644011f 100644
--- a/drivers/net/sk98lin/skge.c
+++ b/drivers/net/sk98lin/skge.c
@@ -282,10 +282,11 @@ SK_U32 Val) /* pointer to store the read value */
282 * Description: 282 * Description:
283 * This function initialize the PCI resources and IO 283 * This function initialize the PCI resources and IO
284 * 284 *
285 * Returns: N/A 285 * Returns:
286 * 286 * 0 - indicate everything worked ok.
287 * != 0 - error indication
287 */ 288 */
288int SkGeInitPCI(SK_AC *pAC) 289static __devinit int SkGeInitPCI(SK_AC *pAC)
289{ 290{
290 struct SK_NET_DEVICE *dev = pAC->dev[0]; 291 struct SK_NET_DEVICE *dev = pAC->dev[0];
291 struct pci_dev *pdev = pAC->PciDev; 292 struct pci_dev *pdev = pAC->PciDev;
@@ -492,7 +493,7 @@ module_param_array(AutoSizing, charp, NULL, 0);
492 * 0, if everything is ok 493 * 0, if everything is ok
493 * !=0, on error 494 * !=0, on error
494 */ 495 */
495static int __init SkGeBoardInit(struct SK_NET_DEVICE *dev, SK_AC *pAC) 496static int __devinit SkGeBoardInit(struct SK_NET_DEVICE *dev, SK_AC *pAC)
496{ 497{
497short i; 498short i;
498unsigned long Flags; 499unsigned long Flags;
@@ -633,8 +634,7 @@ SK_BOOL DualNet;
633 * SK_TRUE, if all memory could be allocated 634 * SK_TRUE, if all memory could be allocated
634 * SK_FALSE, if not 635 * SK_FALSE, if not
635 */ 636 */
636static SK_BOOL BoardAllocMem( 637static __devinit SK_BOOL BoardAllocMem(SK_AC *pAC)
637SK_AC *pAC)
638{ 638{
639caddr_t pDescrMem; /* pointer to descriptor memory area */ 639caddr_t pDescrMem; /* pointer to descriptor memory area */
640size_t AllocLength; /* length of complete descriptor area */ 640size_t AllocLength; /* length of complete descriptor area */
@@ -727,8 +727,7 @@ size_t AllocLength; /* length of complete descriptor area */
727 * 727 *
728 * Returns: N/A 728 * Returns: N/A
729 */ 729 */
730static void BoardInitMem( 730static __devinit void BoardInitMem(SK_AC *pAC)
731SK_AC *pAC) /* pointer to adapter context */
732{ 731{
733int i; /* loop counter */ 732int i; /* loop counter */
734int RxDescrSize; /* the size of a rx descriptor rounded up to alignment*/ 733int RxDescrSize; /* the size of a rx descriptor rounded up to alignment*/